I miss learning for the sake of learning and going into rabbit holes. Reading research papers has always been aspirational for me but hard to be consistent with. They were complex and you had to spend hours getting enough context around them to actually understand what was being said.
What's different now is that the barrier to actually grokking hard concepts is so much lower. You can take a dense 1960s systems paper, work through it with an LLM, and come out the other side genuinely understanding it. You can customize the learning based on your skills, your experience, your knowledge. That wasn't possible before.
Each entry has code, an ELI10 explanation, and a CS grad-level writeup. A lot of this is automated — the code, the structure, the technical writeups. That's intentional.
But every entry has one section written by me. No AI assist on those.
Writing is how I think. There's writing I'm happy to outsource — status updates, instructions, documentation. The writing that validates my understanding has to come from me.
Each week:
| # | Winner | Year | Core Contribution | Code | Writeup |
|---|---|---|---|---|---|
| 01 | Alan Jay Perlis | 1966 | First working compiler (IT), co-designed ALGOL 60, founded CS as a discipline | compiler.py | README |
| 02 | Maurice Wilkes | 1967 | Invented microprogramming — machine instructions implemented as ROM microcode, not hardwired logic | implementation.py | README |
| 03 | Richard Hamming | 1968 | Invented error-correcting codes — parity bits that locate and fix a flipped bit without retransmission | implementation.py | README |
| 04 | Marvin Minsky | 1969 | Proved that single-layer perceptrons cannot learn XOR — forcing the field toward multi-layer networks and eventually deep learning | implementation.py | README |
| 05 | James H. Wilkinson | 1970 | Backward error analysis — judge an algorithm by how small a change to the inputs would make its answer exact, separating a stable method from an ill-conditioned problem | implementation.py | README |
| 06 | John McCarthy | 1971 | Invented Lisp and the metacircular eval — code and data share one shape, so an interpreter fits in one page; also coined "artificial intelligence" and pushed time-sharing | implementation.py | README |
| 07 | Edsger W. Dijkstra | 1972 | Invented the shortest-path algorithm (finalize the smallest tentative label, one node at a time); also structured programming (no goto) and the semaphore for coordinating concurrent processes | implementation.py | README |
Each entry and section has its own implementation. Each folder's README has the specific instructions. In general:
cd 01-alan-perlis-1966
python compiler.py # interactive REPL
python compiler.py --test # run test suite
python compiler.py --verbose # show bytecode
MIT — see LICENSE.
Python
99.4%
I miss learning for the sake of learning and going into rabbit holes. Reading research papers has always been aspirational for me but hard to be consistent with. They were complex and you had to spend hours getting enough context around them to actually understand what was being said.
What's different now is that the barrier to actually grokking hard concepts is so much lower. You can take a dense 1960s systems paper, work through it with an LLM, and come out the other side genuinely understanding it. You can customize the learning based on your skills, your experience, your knowledge. That wasn't possible before.
Each entry has code, an ELI10 explanation, and a CS grad-level writeup. A lot of this is automated — the code, the structure, the technical writeups. That's intentional.
But every entry has one section written by me. No AI assist on those.
Writing is how I think. There's writing I'm happy to outsource — status updates, instructions, documentation. The writing that validates my understanding has to come from me.
Each week:
| # | Winner | Year | Core Contribution | Code | Writeup |
|---|---|---|---|---|---|
| 01 | Alan Jay Perlis | 1966 | First working compiler (IT), co-designed ALGOL 60, founded CS as a discipline | compiler.py | README |
| 02 | Maurice Wilkes | 1967 | Invented microprogramming — machine instructions implemented as ROM microcode, not hardwired logic | implementation.py | README |
| 03 | Richard Hamming | 1968 | Invented error-correcting codes — parity bits that locate and fix a flipped bit without retransmission | implementation.py | README |
| 04 | Marvin Minsky | 1969 | Proved that single-layer perceptrons cannot learn XOR — forcing the field toward multi-layer networks and eventually deep learning | implementation.py | README |
| 05 | James H. Wilkinson | 1970 | Backward error analysis — judge an algorithm by how small a change to the inputs would make its answer exact, separating a stable method from an ill-conditioned problem | implementation.py | README |
| 06 | John McCarthy | 1971 | Invented Lisp and the metacircular eval — code and data share one shape, so an interpreter fits in one page; also coined "artificial intelligence" and pushed time-sharing | implementation.py | README |
| 07 | Edsger W. Dijkstra | 1972 | Invented the shortest-path algorithm (finalize the smallest tentative label, one node at a time); also structured programming (no goto) and the semaphore for coordinating concurrent processes | implementation.py | README |
Each entry and section has its own implementation. Each folder's README has the specific instructions. In general:
cd 01-alan-perlis-1966
python compiler.py # interactive REPL
python compiler.py --test # run test suite
python compiler.py --verbose # show bytecode
MIT — see LICENSE.
Python
99.4%