Teach Myself
If all you can do today is take one step, then take one step.
The Elements of Computing Systems
完整的书名是 The Elements of Computing Systems: Building a Modern Computer from First Principles, By Noam Nisan and Shimon Schocken (MIT Press)
配套的网站是 From Nand to Tetris: Building a Computer From First Principles
实现了配套的项目 https://github.com/shenlei149/nand2tetris
本书从零开始构建了整个计算机系统。不同于传统的教材,这本书是通过一个个实例,构建起了计算机硬件平台和软件平台的每个层次。从最底层的逻辑电路,到布尔运算,一步步构架出内存和 CPU,接着介绍编译器和操作系统,将高级编程语言和底层指令关联起来,将软件和硬件联系起来。
个人感觉这书的一大优势就是项目本身,涉及到硬件、操作系统、编译原理、数据结构、算法等等,配得上《计算机系统要素》的书名,同时,对于原理的讲解和工程实现的提示都恰到好处,给与了足够的信息和帮助,同时留出了空间给读者,让读者能够认真深入地思考、以完整的解决问题。
如果要硬拗一个缺点,就是有的地方略显啰嗦,同样的事情反复说好几次,特别是每章倒数第二块的工程项目,重复的太多。个人觉得知识点重复两次是恰到好处的~