Nand to Tetris: Build a Modern Computer from First Principles
A project-based course in which you build a complete computer, starting from a single NAND gate and ending with an assembler, a virtual machine, a compiler and a simple operating system. All materials and software tools are free on the official site. It removes the mystery from how hardware runs software better than any lecture series.
Course
Other
Noam Nisan and Shimon Schocken
Two parts, self paced
Beginner
Free
What it is
Nand to Tetris is a course and textbook by Noam Nisan and Shimon Schocken, published by MIT Press as The Elements of Computing Systems. You build a general-purpose computer layer by layer: logic gates from a NAND gate, then arithmetic chips, memory, a CPU and a full computer, all in a hardware simulator. The second half builds the software stack on top: an assembler, a virtual machine translator, a compiler for a small object-based language, and a basic operating system library. Each chapter ends with a project, and the provided tools test your work.
Who it is for
The course says it is designed for learners from high school to graduate level and needs no hardware background. The first half needs only logical thinking; the second half assumes you can program in some language, such as Python or Java, because you write the assembler, translator and compiler yourself. It suits first and second year students before or alongside computer architecture, and self-taught developers who want to understand what happens below their code.
Why it is worth your time
Most people learn computer architecture as a list of diagrams to memorise. Here you build every part and test it, so registers, the ALU, the fetch and execute cycle, memory addressing, stack-based virtual machines and compilation become things you made rather than words. That understanding carries straight into operating systems, compilers and performance work.
Free or paid
Everything on nand2tetris.org is free for non-profit use: lecture materials, project specifications and the software suite, including an online IDE. The course also runs on Coursera in two parts, where watching is free and a certificate is paid. The book can be bought from MIT Press and other sellers, but the projects can be done with the free materials.
Time and pacing
Plan for a steady few hours a week over a couple of months per half. The hardware projects are shorter; the compiler projects in the second half are the largest. You can stop after the first half and still get most of the architecture value.
Common questions
Do I need to buy the book? No. The free site has the project specifications and the lecture material; the book is helpful but optional.
Is it too basic for a CS student? Rarely. Many students who passed architecture exams find they could not actually build the pieces until they did this course.
Which language should I use for part two? Any language you know well. Python and Java are common choices.
Ready to start?
Opens on Noam Nisan and Shimon Schocken in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.