There's a computer under every piece of software you've ever run, and almost nobody sees how it actually works. This tutorial builds one from nothing. You start at a single switch — open or closed, nothing else. Then you wire switches into logic gates, and gates into an adder. You give the adder a memory, give the memory an address, and give the address a bus. Last, you give the whole thing a loop that fetches an instruction and obeys it. By the final chapter a real program is running on a machine you understand completely — because you built it, one decision at a time. Every idea here has a widget you can flip, wire and watch run — nothing is claimed without being shown working first.
Start Chapter 1