HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings
Playlists

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
    "Simple Made Easy" - Rich Hickey (2011)1:01:39

    "Simple Made Easy" - Rich Hickey (2011)

    219K views • 5 years ago
    Strange Loop Conference
    Rich 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. 2
    A Philosophy of Software Design | John Ousterhout | Talks at Google1:01:40

    A Philosophy of Software Design | John Ousterhout | Talks at Google

    547K views • 8 years ago
    Talks at Google
    John 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. 3
    How To Design A Good API and Why it Matters1:00:19

    How To Design A Good API and Why it Matters

    453K views • 19 years ago
    Google TechTalks
    Joshua 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. 4
    RailsConf 2014 - All the Little Things by Sandi Metz38:47

    RailsConf 2014 - All the Little Things by Sandi Metz

    190K views • 12 years ago
    Confreaks
    Sandi 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. 5
    "Making Impossible States Impossible" by Richard Feldman25:06

    "Making Impossible States Impossible" by Richard Feldman

    63K views • 10 years ago
    elm-conf
    Richard 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. 6
    Ruby Conf 12 - Boundaries by Gary Bernhardt45:55

    Ruby Conf 12 - Boundaries by Gary Bernhardt

    58K views • 13 years ago
    Confreaks
    Gary 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. 7
    🚀  TDD, Where Did It All Go Wrong (Ian Cooper)1:03:55

    🚀 TDD, Where Did It All Go Wrong (Ian Cooper)

    619K views • 8 years ago
    DevTernity Conference
    Ian 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. 8
    Hammock Driven Development - Rich Hickey39:49

    Hammock Driven Development - Rich Hickey

    333K views • 13 years ago
    ClojureTV
    Rich 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. 9
    Bret Victor - Inventing on Principle54:20

    Bret Victor - Inventing on Principle

    339K views • 14 years ago
    Rui Oliveira
    Bret 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. 10
    Growing a Language, by Guy Steele53:31

    Growing a Language, by Guy Steele

    165K views • 14 years ago
    Bill Pugh
    Guy 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. 11
    Google I/O 2009 - The Myth of the Genius Programmer55:17

    Google I/O 2009 - The Myth of the Genius Programmer

    1.2M views • 17 years ago
    Google for Developers
    Brian 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. 12
    "The Mess We're In" by Joe Armstrong45:50

    "The Mess We're In" by Joe Armstrong

    398K views • 12 years ago
    Strange Loop Conference
    Joe 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. 13
    Preventing the Collapse of Civilization / Jonathan Blow (Thekla, Inc)1:02:42

    Preventing the Collapse of Civilization / Jonathan Blow (Thekla, Inc)

    315K views • 7 years ago
    DevGAMM
    A 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.