The Elements Of Computing Systems
If you don’t have a solid mental model of how a computer actually works, all of your higher-level abstractions will be brittle.
Shimon Shocken makes a compelling idea. If you have the right environment and resources, and a desire to learn, you could learn anything on your own.
He also suggests that if you want to know how a computer works, you should go and build one. It sounds like a difficult task but that's exactly what the book he co-authors with Noam Nisan is all about. The name of the book is "The Elements Of Computing Systems" also known as "Nand To Tetris".
The book will teach you to build the chip set that makes a computer architecture, an assembler, operating system and a compiler. You'll learn about the beautiful and innovative ideas that enabled the computer revolution. In the process you will also celebrate the minds that made it possible.
I bought myself a copy and for the last months have been completing the projects. I stand right in the middle after writing the assembler in TypeScript.
In the meantime, I will write short articles summarising my learning process. In doing so, I intend to solidify the concepts and to hopefully nudge one more engineer to go on this path.
The book pairs with a set of supporting software tools. All the tools are open source for you to use, inspect and tweak.
The book consists of two parts, Hardware and Software.
Happy hacking.
Self-study, self-exploration, self-empowerment: these are the virtues of a great education.
- Hardware