From Nand to Tetris
Build a Modern Computer from First Principles (opens in a new tab), better known as Nand2Tetris, is a MOOC taught by Noam Nisan and Shimon Schocken on Coursera (opens in a new tab). The course walks you through 12 projects that stack sequentially, starting from a Nand gate and ending with a working computer running a Tetris game you wrote yourself.
As a largely self-taught developer, I took this course to strengthen my computer science fundamentals (opens in a new tab). It made me a better software engineer. I wrote up each half as I went:
The first half of the Nand2Tetris course: Boolean logic, arithmetic, memory, machine language, CPU architecture, and an assembler. We build the Hack computer up from Nand gates.
The start of the second half of Nand2Tetris: stack machines, virtual memory segments, and a VM translator that compiles VM bytecode down to Hack assembly.
The two halves meet at the assembler. The first half ends by translating symbolic machine language into binary, and the second half picks up translating VM code into that same assembly.
Crosse, Tyler. (Mar 2022). From Nand to Tetris. tylercrosse.com. https://tylercrosse.com/ideas/2022/nand2tetris/.
@article{crosse2022from,
title = {From Nand to Tetris},
author = {Crosse, Tyler},
journal = {tylercrosse.com},
year = {2022},
month = {Mar},
url = {https://tylercrosse.com/ideas/2022/nand2tetris/}
} Except where otherwise noted, this post is licensed under a Creative Commons International (CC BY 4.0) license.