From Nand to Tetris (2017)
From Nand to Tetris, a course and book that walks learners from basic NAND gates up through a simple computer, operating system, and high-level language, is widely praised as one of the most rewarding ways to truly understand how computers work from first principles. Commenters highlight how it demystifies the hardware–software stack, often pairing it with resources like Ben Eater’s videos, Turing Complete, and related hardware or compiler projects to deepen understanding. While some question its direct practical value for fields like web development or its use of a custom HDL instead of Verilog, most agree the conceptual clarity and confidence it builds more than justify the time investment.
Overall reception and personal impact
- Widely praised as one of the most rewarding CS/CE learning experiences; many call it “cannot recommend enough.”
- Several people credit it with career changes, first jobs, or finally “grokking” the full stack from gates to high-level code.
- Common theme: repeated attempts; some only finish on second or third try, but feel strong pride when they do.
Scope, structure, and difficulty
- Part I (hardware: gates → ALU → CPU → assembler) is viewed as easier, more visual, and very fun.
- Part II (VM, compiler, OS) is significantly harder and more time‑consuming; compiler and OS pieces are the heaviest.
- People report anywhere from ~40–50 hours (with prior background) to 100–150+ hours, depending on depth, detours, and how “polished” they make their solutions.
Book vs MOOC and editions
- Many complete the course using only the online materials; others prefer combining videos with the book.
- The second edition of the book explicitly splits into independent hardware and software parts, adds intros and appendices, and refines explanations based on years of learner questions.
- Some find the book format more accessible for self‑paced work than the MOOC’s deadlines.
Abstraction level and missing “layers”
- The course starts at NAND gates and deliberately avoids solid‑state physics or real electronics; this is seen as a strength by some and a limitation by others who want “sand2nand.”
- Discussion notes separate resources for transistor‑level physics and chip fabrication, but those are outside this course’s scope.
HDL choice and “real‑world” usefulness
- Debate over the custom HDL: some argue it’s ideal pedagogically and close enough to mainstream HDLs; others feel using Verilog/VHDL would make the skills more directly applicable.
- For web developers, views differ: some stress the conceptual payoff and broadened mental models; others see limited direct practical benefit compared with learning more domain‑specific tools.
Compilers, OS, and theoretical depth
- You implement: an assembler, a VM backend, and a simple recursive‑descent compiler from a Java‑like language to bytecode, with no serious optimization or advanced analysis.
- Several note it gives a solid intuitive model of compilation and runtimes but is not a full compiler course.
- A side discussion wishes for a “NAND to Turing Machines” or “sand2tetris” style treatment for computability theory and lower‑level physics.