The best fun programming talks

I love a good tech talk. I like to watch them, I like to give them, and now that I have lots of free time on my hands, I’ve put together a list of the must-see talks for every programmer. In this list, I’ve avoided language or library specific talks and instead focused on high-level, general topics that apply to everyone:

  1. The future of technology
  2. User interface
  3. Programming language design
  4. Software engineering
  5. Computers and learning
  6. A career in programming
  7. Computer gaming
  8. Fun talks

If I missed a talk you love, leave a comment. Happy watching!

The future of technology

When thinking about the future, you can’t do better than Alan Kay. In The Future Doesn’t Have To Be Incremental, Kay describes how Xerox PARC was able to develop so many new technologies in such a short time, including the personal computer, bitmap displays, GUI, desktop publishing, word processing, laser printing, Ethernet, and object oriented programming. The key was a culture focused on invention - that is, fundamentally new research - instead of incremental innovation. Invention requires a significantly higher investment of money, much longer time frames, and a different approach to problem solving (“wouldn’t it be ridiculous if in 30 years we didn’t have…”).

Other essential talks on the future of technology:

  1. The Mother of All Demos by Douglas Engelbart. A demonstration of hypertext, graphics, video conferencing, the mouse, word processing, and much more - all in 1968! This is the kind of leap frog invention Kay is referring to.
  2. The Future of Programming by Bret Victor. A brilliant talk where Bret Victor takes us back in time and reminds us that “the most dangerous thought that you can have as a creative person is to think that you know what you’re doing. Because once you think you know what you’re doing you stop looking around for other ways of doing things and you stop being able to see other ways of doing things. You become blind.”
  3. The Computer Revolution Hasn’t Happened Yet by Alan Kay. “I made up the term object-oriented and I can tell you I didn’t have C++ in mind.”

User Interface

Bret Victor’s talk Inventing on Principle will make all of your programming languages and tools feel obsolete. He presents a new way to write code: a user interface that makes the computer do the tedious work so that you can experiment with andreact to your code instead of trying to simulate it in your head. This not only makes it much easier to learn programming, it fundamentally changes how we go about solving problems.

More UI goodness:

  1. Stop Drawing Dead Fish by Bret Victor. Using computers to bring art to life.
  2. Media Thinking for the Unthinkable by Bret Victor. Designing a new medium for science and engineering.
  3. Doing With Images Makes Symbols by Alan Kay. How humans learn and how to build user interfaces that support it. “The parts of the body you want to have learn don’t understand English.”

Programming language design

Rich Hickey, the creator of Clojure, has the ability to make you see basic concepts in computer science in a whole new light. Complexity is one of these basic concepts and Simple Made Easy defines some of the best tools - the best language - to reason about it.

A few other talks to add to your playlist:

  1. Are We There Yet? by Rich Hickey. Another foundational talk by Hickey that will force you to reconsider state, time, identity, values, and types.
  2. Growing a Language by Guy Steele. One of the most clever presentations I’ve ever seen on programming language design. Give it about 10 minutes - the payoff is amazing.
  3. The Science of Insecurity by Meredith Patterson. Why current systems and protocols are inherently insecure and how to fix that in the future.

Software Engineering

Greg Wilson will force you to look closely at how you make decisions in software engineering: should you use Java? Ruby? Play Framework? Rails? TDD? Agile? Code reviews? Most of your answers are probably based solely on opinions, memes, trends, and anecdotes. What We Actually Know About Software Development, and Why We Believe It’s True is an important call to change our practices and move to a world of evidence-based software engineering.

Other great talks:

  1. Real Software Engineering by Glenn Vanderburg. Software engineering as it’s taught in universities simply doesn’t work. It doesn’t produce software systems of high quality, and it doesn’t produce them for low cost. Sometimes, even when practiced rigorously, it doesn’t produce systems at all.
  2. Hammock Driven Development by Rich Hickey. “Most of the biggest problems in software are problems of misconception.” To solve hard problems, step away from the computer, take some time to think, and write it down.
  3. The Language of the System by Rich Hickey. We focus extensively on the perfect programming language to build a single system, but what about languages for how multiple systems communicate with each other?

Computers and Learning

Daphne Koller and Andrew Ng are trying to reinvent education. They created Coursera, which offers real university classes, online and for free, to anyone in the world. What we’re learning from online education talks about some of the techniques they are using to run classes of hundreds of thousands of students - including video, discussion forums, interactive UI’s, automatic grading, and peer grading - and how this experiment is giving us unprecedented insight into how humans learn.

A few other powerful talks on education:

  1. Let’s use video to reinvent education by Salman Khan. Whereas Koller’s talk is about university classes, Khan’s talk is about online education for K-12 via the Khan Academy.
  2. Teaching Creative Computer Science by Simon Peyton Jones. Every child should learn computer science because it teaches them a new way of thinking.
  3. Machine Learning, A Love Story by Hilary Mason. The talks above are about teaching people; this talk is about teaching computers.

A Career in Programming

You and Your Research is the blueprint for a successful career in any discipline, not just research; in fact, the talk has the nickname “You and Your Career”. In this lecture, Richard Hamming shares his observations on “why do so few scientists make significant contributions and so many are forgotten in the long run?’’ Some of the key ideas include courage, luck, drive (“knowledge and productivity are like compound interest”), a focus on important problems (“If you do not work on an important problem, it’s unlikely you’ll do important work”), open doors, selling the work (“I suggest that when you open a journal, as you turn the pages, you ask why you read some articles and not others”), and much more. This should be required viewing for every high school student.

More talks on how to succeed in the programming industry:

  1. The Myth of the Genius Programmer by Brian Fitzpatrick and Ben Collins-Sussman. This talk isn’t about geniuses or 10x programmers, but rather, about building a culture that avoids elitism and provides support for personal growth, collaboration, and ideas.
  2. Programming Well With Others: Social Skills for Geeks by Brian Fitzpatrick and Ben Collins-Sussman. The Fitz and Ben duo are back to remind you that you need to learn more than just programming languages, compilers, debuggers, and algorithms to be a successful software engineer
  3. JavaScript Masterclass by Angelina Fabbro. Don’t let the title fool you: this talk is a tutorial for how intermediate developers can become experts in any topic, not just JavaScript.

Computer Gaming

By the time kids graduate high school, they have spent 10,000 hours playing games: this is roughly equivalent to the time they spend in school (if they had perfect attendance!) and the amount of time it takes to become an expert. What are they learning during those 10,000 hours? Jane McGonigal will show you how this time and learning can be used to make a better world.

More gaming goodness:

  1. The game that can give you 10 extra years of life by Jane McGonigal. A powerful talk by McGonigal about how games can improve our lives and how they helped her recover from suicidal depression following a severe concussion.
  2. Human Computation by Luis von Ahn. We can use human brain power and gaming to solve problems that are difficult for computers, such as image recognition, translation, and “common sense”.
  3. Design Outside the Box by Jesse Schell. What happens when games invade every aspect of our lives.

Fun talks

Now, it’s time for some fun. Gary Bernhardt’s talk Wat is 5 minutes of pure awesome.

A few others to brighten your day:

  1. Computers are a sadness, I am the cure by James Mickens.
  2. Programming is terrible - lessons from a life wasted by Thomas Figg.
  3. The Web Will Die When OOP Dies by Zed Shaw.