Independent directory · Data snapshot: October 31, 2026Visit original HackerTube ↗

Curated watch path · 10 videos

Programming Classics Worth Rewatching

This programming classics route follows ten enduring talks from abstraction and deliberate design through refactoring, API boundaries, runtime behavior, performance measurement and distributed-systems testing.

Published Last selection review Editorial responsibility: independent site operator

Who this is for

Working developers, students and technical leads who want transferable ways to reason about software instead of framework-specific tips.

Before you start

Comfort reading code is enough. The talks use Scheme, Clojure, Ruby, Java, Elm and JavaScript, but the route focuses on ideas that cross language boundaries.

How this programming classics route was selected

The sequence starts with how programmers form abstractions, moves through complexity and design boundaries, then connects code to runtime behavior, measurement and production testing.

The independent site operator reviewed the October 31, 2026 source records for direct topic fit, learning order, evergreen status and positive Hacker News recommendation history. Titles, summaries, levels and labels come from the public dataset and may contain model-generated errors. This is an editorial ordering of source records, not a claim that every video was watched end to end. Read the source methodology and limits, or report a mismatch or broken video.

What the route connects

The route is meant to give you a more precise way to discuss abstractions, interfaces and runtime behavior, then connect those ideas to code you already maintain.

How to study it

  • Bring one current design problem to each talk, such as a brittle abstraction, unclear API or failure that is hard to reproduce.
  • Write down the problem the speaker identified before adopting the proposed solution; a classic talk is still context, not a rulebook.

Programming classics in a deliberate sequence

  1. lecture · intro

    Lecture 1A | MIT 6.001 Structure and Interpretation, 1986

    Start with programming as the construction of processes and reusable abstractions.

    11 positive HN recommenders across 9 recommendation months

    ↗
  2. talk · general

    Hammock Driven Development - Rich Hickey

    Learn to spend deliberate time understanding the problem before producing code.

    12 positive HN recommenders across 11 recommendation months

    ↗
  3. talk · intermediate

    "Simple Made Easy" - Rich Hickey (2011)

    Build a vocabulary for recognizing accidental complexity and ideas that have been complected.

    14 positive HN recommenders across 14 recommendation months

    ↗
  4. talk · intermediate

    RailsConf 2014 - All the Little Things by Sandi Metz

    Watch those principles applied to a concrete refactoring where duplication can beat the wrong abstraction.

    15 positive HN recommenders across 15 recommendation months

    ↗
  5. talk · intermediate

    How To Design A Good API and Why it Matters

    Turn local design lessons into stable interfaces, boundaries and compatibility decisions.

    12 positive HN recommenders across 12 recommendation months

    ↗
  6. talk · intermediate

    "Making Impossible States Impossible" by Richard Feldman

    Model data so invalid states cannot be represented in the first place.

    9 positive HN recommenders across 13 recommendation months

    ↗
  7. talk · intermediate

    Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich

    Stretch your understanding of recursion and functional abstraction through a live derivation.

    17 positive HN recommenders across 18 recommendation months

    ↗
  8. talk · intermediate

    What the heck is the event loop anyway? | Philip Roberts | JSConf EU

    Connect language-level code to the runtime model behind callbacks and asynchronous behavior.

    16 positive HN recommenders across 14 recommendation months

    ↗
  9. talk · intermediate

    "Performance Matters" by Emery Berger

    Learn why benchmarks can mislead and how to measure the effect of an optimization.

    12 positive HN recommenders across 10 recommendation months

    ↗
  10. talk · intermediate

    "Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson

    Finish with a production example of reproducible testing for rare distributed-system failures.

    12 positive HN recommenders across 11 recommendation months

    ↗

A checkpoint for your study notes

Try it: predict an asynchronous execution order

Use this independent exercise with the event-loop talk. Run it in a browser console; familiarity with function calls and console.log is enough.

  1. Write down the expected output before running the code. Identify the synchronous calls, Promise callback and timer callback. Explain why a zero-delay timer cannot interrupt the synchronous code.
  2. Write out your reasoning before opening the answer below.
console.log('A');
setTimeout(() => console.log('D'), 0);
Promise.resolve().then(() => {
  console.log('B');
});
console.log('C');
Show the answer and checks

In the browser, expect A, C, B, D. The current script finishes, then the Promise microtask runs, followed by the timer task. Changing the timer to 100 ms preserves this example’s order; it does not guarantee an exact execution time.

Open the event-loop talk · Check MDN’s execution model reference ↗

An original site exercise, checked against the linked reference; not the speaker’s assignment or a viewing transcript. Checked .