Skip to content

Latest commit

 

History

History
1296 lines (1143 loc) · 118 KB

README.md

File metadata and controls

1296 lines (1143 loc) · 118 KB

Programming Talks

I watch a lot of talks that I love to share with my friends, fellows and coworkers. As I consider all GitHubbers my friends (oh yeah!), I decided it's time to share the list.

There are talks on programming language specifics as well as a more general section I call "theory". But don't expect to always get theoretical computer science for every talk there; most of them are on the architecture and design of software.

I welcome every contribution to the list; for guidelines look below.

Disclaimer: I did not give any of the talks on the list and am responsible neither for their content nor for their presentation. All links below will direct you to external sites (mostly YouTube, really), be aware of that. If you are one of the people responsible for the talks or the platform presenting it and want it removed, tell me and I'll sort it out with you.

[A] after a talk name denotes a talk that someone thought could be listened to as audio, without needing the video. This may not reflect your experience with the talk, but you can make a pull request to change it.

Names to look out for

To make choosing the right speakers a tad easier, let me give you a quick overview over my favourite speakers in no particular order:

  • Scott Meyers (C++): Scott Meyers is one of the most entertaining and knowledgeable speaker when it comes to all things C++. His talks cover a variety of topics, from type inference to API design and cache lines.
  • Rich Hickey (Clojure): I am not a Clojure programmer, but I like reasoning about and building programming languages. Even if you don't, Rich Hickeys talks are inspiring and thought-provoking. Whenever he talks about the fundamentals of programming and reasoning, you are sure to learn a ton. Oh, and if you program in Clojure, you have no excuse for not watching this guy speak.
  • Reginald Braithwaite (JavaScript): one of my favourite JavaScript speakers. He also has a variety of talks on my list, but is more true to his realm (JavaScript) than most of the other speakers on my list.
  • David Nolen (Clojure/Clojurescript): The core maintainer of Clojurescript. His talks mostly focus on immutability and share a bit of their structure. He doesn't get boring, though, and is another very smart person with deep insights in such fields as immutability.
  • David Beazley (Python): The person who singlehandedly made me a Pythonista. Need I say more? He has a lot of low-level knowledge about Python and makes poking at the Python interpreter seem more fun than it actually is.
  • Joe Armstrong (Erlang): One of the few people I actually had the chance to see live already. He is a funny, witty and smart guy and if you want to learn about Erlang, watch his talks. Most of his talks are also very beginner-friendly.
  • Brandon Rhodes (Python): Yet another Pythonista. His talks are enjoyable, enlightening and his way of talking is just enjoyable - you might think that is secondary, but it is really important. His talk on Tolkien is one of the most enjoyable diversions on this list (and a bit off-topic, mind you).
  • Aaron Patterson (Ruby): Probably the most entertaining speaker on the list. As a core developer of both Ruby and Rails, he works close to the heart of the Ruby community.
  • Philip Wadler (Haskell, Theory, ...): Incredibly knowledgeable gentleman. If you use generics in Java, you owe that to him. If you use Haskell and/or monads, you probably already know him, but in case you do not, try to change that fact. He makes theoretical computer science more approachable than it actually is, and that is a good thing.
  • Zach Tellman (Clojure, Theory): Another person in the Clojure landscape with interesting, important insights that do not only apply to Clojure. His talks on theory should inspire you to think more deeply about what you are doing, which is probably the most important thing to take away from anything ever.

Contents

On Programming Languages

Alpaca

APL

Assembly

Bash

C

Clojure







C++







Crystal

CSS

(yeah, I know, stylesheets are not traditionally programming)

D

Elixir





Elm

Erlang





F#

Factor

Frege

Go






Hackett

Haskell





Idris

Java & Android




JavaScript

(There is a good list of talks about JS to be found here)





Julia




Lisp

Objective C

OCaml

Prolog

PureScript

Python

(There is a good list of talks about Python to be found here)








Racket

Ruby






Rust




Scala



Scheme

Smalltalk

Swift

Unison

VimL

Wolfram Language

Zig

On theory

Compilers/Interpreters

Computer Graphics and Vision

Creative Technology

Databases

Data Science

Data Structures & Algorithms

Debugging

DevOps

Distributed Systems

Entrepreneurship

Functional Programming

Game Development

Hardware

Logic Programming

Machine Learning

Mathematics

Those are not necessarily programming-related and possibly very advanced mathematics.

On Languages

On the Industry/Community

Operating Systems

Performance Engineering

Programming Language Design

Program Synthesis

Research

Robotics

Security

Software Development

System Architecture

Testing

Theoretical Computer Science

Type Theory

UX/UI

Web Development

Miscellaneous

Contributing

Generally, a lot of talks are welcome on this list. The topic does not matter too much - it should be linked to Computer Science - but the format does. Talks are welcome if

  • they were recorded at a conference or meetup (i.e. no screencasts or vlogging)
  • they are awesome™!

I hope that is straightforward, understandable and makes sense.

When adding a new section/subsection or entry, please try to ensure it's sorted accordingly:

  • The two top-level sections (Languages and Theory) have their subsection headings organised alphabetically (APL > VimL).

  • The Languages subsections are sorted ascending by year (last field), then alphabetically by title. For example, an entry with (2012) should be below one with (2017) regardless of title; entries from the same year are then alphabetised within each year-group.

    • Groups of years are separated from one another by <br>\n (<br> followed by an empty line), except if a group would contain only a few (<= 3) talks and it is near another small group, in which case small adjacent year-groups are consolidated. An entry or two might also be included in an adjacent larger year-group iff the entries have different years.
  • The Theory subsections are sorted only ascendingly by year, with no attention to title, and no grouping by year.

    • It doesn't matter where in a group of same-year-talks a specific (added) talk goes.