Richard Feynman Computer Science Lecture - Hardware, Software and Heuristics

Muon Ray8 HN recommenders · 2013–2026
978K views · lecture · evergreen · Uploaded 2012-06-03

A lecture by Richard Feynman on how computers work, using the analogy of a filing clerk that becomes progressively dumber and faster. It also covers heuristics and how computers handle data and solve problems in finite time.

Frequently recommended as the clearest plain-language explanation of what a computer fundamentally is, with at least one commenter saying it changed how they think about programming.

Watch on YouTube

20 comments from Hacker News

@tannerwelsh2013 · in “Why Is Learning To Program A Good Thing?”

Good catch re: 'late antiquity' -> I should have been a bit more rigorous in my research there. I like your point about "how little knowledge is a perilous thing?" Completely agree that programming is far from the only important skill. I just generally think that demystifying what is popularly considered to be "esoteric" knowledge is almost always good for a healthy society. The less we know about how the mysterious machines work, the more we fear them and the more trust and power we give to the people who can manipulate them. I think this is hogwash and completely unnecessary since a computer is really just a super-fast filing clerk [ [VIDEO] ].

@evanb2014 · in “What Problems to Solve”

You might be interested in this lecture that Feynman gave at a meeting called "Idiosyncratic Thinking": [VIDEO]

RecommendsView on HN
@harry82015 · in “What would Feynman do? (2011)”

I'm pretty sure this is what Feynman wouldn't do. What he would do is be extremely confrontational from the start if he had to be there, eg his army psychological assessment, or just walk out if he didn't. If there was one defining characteristic of the man on the subject it was not suffering this kind of foolishness. Nobody mentioned Feynman's work for "Thinking machines" A couple more Feynman computing links: [VIDEO] [LINK]

@trymas2015 · in “Richard Feynman on the Challenger disaster (1986) [video]”

I am always amazed how Richard Feynman can make such simple stories and comparisons to explain the situation/theory in "explain like I'm 5" style. It seems that in every lecture or interview he gives he can explain the situation very fluently and in a way that literally, probably, a 5 year old could understand. The best one I saw is where R. Feynman explains how a computer works [1]. Even though I knew everything he told, I was astonished how intriguing and simple his way of presenting was. [1] [VIDEO]

Strongly recommendsView on HN
@e12e2016 · in “The Controlled Natural Language of Randall Munroe's Thing Explainer [pdf]”

This seems like a good companion (probably as a sequel) to: "Richard Feynman - Computer Heuristics Lecture": [VIDEO] In general, Feynman might be a poster child for using simple language to explain complex things.

RecommendsView on HN
@hellameta2016 · in “Google supercharges machine learning tasks with TPU custom chip”

Sure. I don't have anything to link on the spot but this was/is/has been foreseeable for some time. Although it's all very cool and shiny - most business applications of machine learning remain squarely in the territory of classic algos like GLM & forests (random, boosted trees etc. etc.). As a fun note, advances like these highlight that data scientists etc. will not be beaten by more complex automated methods, but simply by speed. Much like the filing system that 'runs' whatever you're using to see these words ( [VIDEO] ). Edit: to elaborate... single model training runs are possible to do quite fast now, but knowing how to tune hyper parameters remains the 'voodoo' of the field. But the best hyper params are also possible to discover through brute force: try every combination you can! Today, you can use various heuristics to improve this process, but either way, being able to train whatever X times faster just means we can search hyper parameter space that much faster. The robots are coming :)

@bklaasen2017 · in “Playboy Interview: Steve Jobs (1985)”

Most likely this one: [VIDEO] Check out Feynman's very cool "Thinking Machines" t-shirt. He was working with Danny Hillis at the time.

@westurner2017 · in “Ask HN: How to introduce someone to programming concepts during 12-hour drive?”

I believe it was Feynman who introduced the analogy: desktop : filing cabinet :: RAM : hard drive Here's a video: "Richard Feynman Computer Heuristics Lecture" (1985) [VIDEO] Somewhere in my comments here, I talk about topologically sorting CS concepts; in what little time I spent, I think I suggested "Constructor Theory" (Deutsch 201?) as a first physical principle. [LINK]

RecommendsView on HN
@mfichman2017 · in “How the Index Card Cataloged the World”

What's fascinating to me is that index cards are a kind of spiritual predecessor to modern database systems and computers - perhaps even more closely related than counting devices like the abacus. Richard Feynman touches on this in one of his lectures [1] that's been linked many times on HN. The theory of information and computing seems pretty fundamental, and not necessarily tied to what we typically think of as a computer, with CPUs, RAM, SSDs, etc. In a way, a card catalog full of index cards and run by a bunch of people is a computer too. Maybe this isn't an incredible revelation, but it's still interesting to think about. [1] [VIDEO]

@cup-of-tea2018 · in “Ask HN: What is your favourite tech talk?”

Most recently I really liked "The Unreasonable Effectiveness of Dynamic Typing for Practical Programs": [LINK] The ones that had the most profound effect for me would be Linus's talk about git and Carsten Dominik on org-mode. Also, Richard Feynman explaining how computers work: [VIDEO] This actually changed the way I think about it after years of programming.

Strongly recommendsView on HN
@mpweiher2019 · in “Think in Math, Write in Code”

"One of the miseries of life is that everyone names everything a litte bit wrong, and so it makes everything a little harder to understand in the world than it would be if it were named differently. A computer does not primarily compute in the sense of doing arithmetic. Strange. Although they call them computers, that's not what they primarily do. They primarily are filing systems. People in the computer business say they're not really computers, they are "data handlers". All right. That's nice. Data handlers would have been a better name because it gives a better idea of the idea of a filing system." Richard Feynman [VIDEO]

@d0mine2020 · in “On the cruelty of really teaching computing science (1988) [pdf]”

It reminds me how Feynman described a computer as a superfast filing system [VIDEO] Though programming is less about precise detailed instructions, it is more about glueing together mostly existing components in a manner understood by your team.

@jamcohen2021 · in “Computer Science from the Bottom Up”

Richard Feynman's lecture is a great resource for this: [VIDEO] He proposes a file clerk that gets progressively dumber and faster until they get so dumb that they can be simulated by an electronic circuit.

RecommendsView on HN
@PKop2022 · in “The Central Social Institution in Prague, Czechoslovakia, 1937”

Reminds me of Richard Feynman's explanation of a computer as an extremely large and fast filing system [VIDEO]

@type02024 · in “My favorite 1980's Canadian TV show: Bits and Bytes”

> Richard Feynman on explaining technical matters to the average person Richard Feynman lecture on computing [VIDEO]

@godelski2024 · in “AGI is far from inevitable”

I think we already knew this though. Because the Turing test was passed by Eliza in the 1960's. PARRY was even better and not even a decade later. For some reason people still talk about Chess performance as if Deep Blue didn't demonstrate this. Hell, here's even Feynman talking about many of the same things we're discussing today, but this was in the 80's [VIDEO]

@defvar2025 · in “Obituary for Cyc”

The game mentioned in this article reminds me of the story about heuristics told by Richard Feynman in a lecture: [VIDEO] I was wondering then who was the guy he talked about.It is great that this article provides so much details of it.

@o4c2026 · in “Good developers learn to program. Most courses teach a language”

Sorry I am pasting my old comment here, but the intention is same Before learning programming one should know what is computing in general? It sets good mental model, after that you can easily pickup and start writing program yourself . Data, data, data :))) Some basic notions to know: Input → Computation → Output Information is omnipresent (this is just an intuition, not a claim). It serves as both input and output. Computation—also known as a procedure, function, set of instructions, transformation, method, algorithm, or calculation. In my early days, I ignored the fundamental notion of data and procedures. But eventually, it clicked: Programs = Data + Instructions Watch Feynman on computing—he even starts with the same concept of data, introducing computers as information processing systems. And processing requires algorithms (i.e., instructions or procedures). Programming is simply writing instructions for the computer to perform computations. A computer is just a machine for computing. Computation is a general idea: a transformation of one form of information into another. Richard Feynman Computer Science Lecture: [VIDEO] Old documentry on programming: [LINK] George Hotz video: what is programming? [LINK] [LINK] [LINK]

RecommendsView on HN
@pillars2026 · in “Good developers learn to program. Most courses teach a language”

Sorry I am pasting my old comment here, but the intention is same Before learning programming one should know what is computing in general? It sets good mental model, after that you can easily pickup and start writing program yourself . Data, data, data :))) Some basic notions to know: Input → Computation → Output Information is omnipresent (this is just an intuition, not a claim). It serves as both input and output. Computation—also known as a procedure, function, set of instructions, transformation, method, algorithm, or calculation. In my early days, I ignored the fundamental notion of data and procedures. But eventually, it clicked: Programs = Data + Instructions Watch Feynman on computing—he even starts with the same concept of data, introducing computers as information processing systems. And processing requires algorithms (i.e., instructions or procedures). Programming is simply writing instructions for the computer to perform computations. A computer is just a machine for computing. Computation is a general idea: a transformation of one form of information into another. [LINK] Richard Feynman Computer Science Lecture: [VIDEO] Old documentry on programming: [LINK] George Hotz video: what is programming? [LINK] [LINK] [LINK] [LINK]

RecommendsView on HN
@adityaathalye2026 · in “The Beam Engine”

Excellent work, glinscott. Thank you for sharing! I am about to send this to all my pals who are parents to schoolkids (um, and also pals who are still, like me, basically a schoolkid :p XD). Building things up from first principles, and ideally also tactile / visceral examples, is my absolute favourite genre of explanations. Alas, a rarefied genre, because it is so much harder to do well (without doing disservice to the learner's intellect and ability) than expert talking to (presumed) expert. So thanks for contributing to it. People like George Polya [0], Richard Feynman [1], Grace Hopper [2] are exemplars of this tradition. [0] [LINK] [1] [VIDEO] [2] [LINK] (And I too try in my own meagre way through my blog and source code, albeit it's all plain text because visual explainers, animated ones that too are ridiculously difficult. So I have some idea of how much of a labour of love your piece is. <Claps hands, Whistles, Doffs hat>.)