



Talks every programmer should watch
Curated by Claude · 13 videos · 11 hr 8 min
These are the talks that turn up in thread after thread when someone asks what every programmer should see. None of them is a language tutorial. The list starts with Rich Hickey's Simple Made Easy, then moves through design and APIs, everyday code craft and testing, ways of thinking, and working with other people. It ends with two wider looks at the state of software.
Play all on YouTube- 1
1:01:39"Simple Made Easy" - Rich Hickey (2011)
219K views • 5 years agoStrange Loop ConferenceRich Hickey's Strange Loop 2011 keynote distinguishing 'simple' (not intertwined) from 'easy' (familiar or near at hand). It argues that software complexity comes from complecting things and that we should pick simple constructs.The place to start: Hickey's split between simple (not intertwined) and easy (familiar) gives you a vocabulary for complexity that the rest of this list keeps using, and HN calls it a must-watch even if you never touch Clojure.
- 2
1:01:40A Philosophy of Software Design | John Ousterhout | Talks at Google
547K views • 8 years agoTalks at GoogleJohn Ousterhout, Stanford professor and creator of Tcl, presents the ideas of his book A Philosophy of Software Design in a Talks at Google session. He covers managing complexity, deep modules and interfaces, and what he teaches in his Stanford software design course.Ousterhout's hour on deep modules and managing complexity is HN's standard short version of his book, and a practical companion to Hickey's ideas.
- 3
1:00:19How To Design A Good API and Why it Matters
453K views • 19 years agoGoogle TechTalksJoshua Bloch's Google Tech Talk on how to design good APIs and why it matters, with concrete principles and examples. It treats every programmer as an occasional API designer.Joshua Bloch treats every programmer as an occasional API designer, and HN has called this the best resource on the subject since 2011.
- 4
38:47RailsConf 2014 - All the Little Things by Sandi Metz
190K views • 12 years agoConfreaksSandi Metz takes an ugly section of conditional code and refactors it into a few simple objects, bridging object-oriented theory and practice. The talk includes her take on the Gilded Rose refactoring kata and the idea that duplication is cheaper than the wrong abstraction.Moving from design to the code itself, Metz refactors a tangle of conditionals into small objects and explains why duplication is cheaper than the wrong abstraction.
- 5
25:06"Making Impossible States Impossible" by Richard Feldman
63K views • 10 years agoelm-confRichard Feldman's elm-conf talk on designing models so that bugs from impossible application states cannot occur, using Elm's compiler and types. It demonstrates techniques for making invalid states unrepresentable.A short talk on shaping your data so that whole classes of bugs cannot happen; the examples are in Elm, but HN commenters say the ideas carry over to any typed language.
- 6
45:55Ruby Conf 12 - Boundaries by Gary Bernhardt
58K views • 13 years agoConfreaksGary Bernhardt's RubyConf 2012 talk on testing in isolation without mocking everything. It goes through behavior versus data, mutation versus immutability, and how a functional core with an imperative shell yields natural isolation and parallelism.The talk that introduced 'functional core, imperative shell', which HN recommends as a practical answer to how to test code without mocking everything.
- 7
1:03:55🚀 TDD, Where Did It All Go Wrong (Ian Cooper)
619K views • 8 years agoDevTernity ConferenceIan Cooper's DevTernity talk revisits Kent Beck's original TDD ideas and shows where misunderstandings crept in. It argues tests should target behaviors through public interfaces rather than implementation details, so suites support refactoring instead of resisting it.Cooper goes back to Kent Beck's original idea of testing behaviour rather than implementation details, and many commenters say it changed how they write tests.
- 8
39:49Hammock Driven Development - Rich Hickey
333K views • 13 years agoClojureTVRich Hickey's philosophical talk from the first Clojure Conj in 2010. He argues that good design comes from deliberate, away-from-keyboard thinking, and describes how to feed the background mind so it solves problems.From code to thinking: Hickey's case for stepping away from the keyboard and letting your background mind solve the problem, which HN treats as permission to think before you type.
- 9
54:20Bret Victor - Inventing on Principle
339K views • 14 years agoRui OliveiraBret Victor's talk at CUSEC 2012 in which he argues that creators need immediate feedback and should organize their work around a guiding principle. He demonstrates live-coding and animation tools that show results as you type, and describes his own principle that creators must see what they are making.Victor's live demos of tools that show results as you type, plus his argument for organising your work around a principle, left one commenter writing that it blew their mind.
- 10
53:31Growing a Language, by Guy Steele
165K views • 14 years agoBill PughGuy Steele's 1998 OOPSLA keynote on designing a programming language that its users can grow. He builds the talk using only one-syllable words and terms he has defined, to demonstrate the idea.Steele makes his point about extensible languages by giving the talk in one-syllable words plus terms he defines as he goes, and HN calls it perhaps the best talk ever on the topic.
- 11
55:17Google I/O 2009 - The Myth of the Genius Programmer
1.2M views • 17 years agoGoogle for DevelopersBrian Fitzpatrick and Ben Collins-Sussman argue that the 'genius programmer' ideal harms collaboration. They advocate trading ego for growth, sharing work early, and understanding how tools shape social behavior.Software is a team sport: Fitzpatrick and Collins-Sussman make the case for humility, code review and sharing work early, and HN readers call it career-shaping.
- 12
45:50"The Mess We're In" by Joe Armstrong
398K views • 12 years agoStrange Loop ConferenceJoe Armstrong, co-inventor of Erlang, gives a funny and opinionated Strange Loop talk on the tangled state of software: build tools, package managers, entropy and the physical limits of computation. He argues for ideas like naming things by content hash and throwing away your first version.Erlang's co-creator gives a funny, opinionated tour of why software got so tangled, which HN still finds accurate years later.
- 13
1:02:42Preventing the Collapse of Civilization / Jonathan Blow (Thekla, Inc)
315K views • 7 years agoDevGAMMA DevGAMM talk by Jonathan Blow arguing that civilizations can lose technological capability and that software quality is already deteriorating. He discusses how knowledge fails to transfer between generations.The widest view to end on: Blow argues that knowledge gets lost between generations and that software quality is already slipping, and his talk is the usual link in HN threads on software decay.