Elon Musk在一次访谈中被问到“How do you learn so much so fast? ”,他是这样说的:
"It is important to view knowledge as sort of a semantic tree — make sure you understand the fundamental principles, i.e. the trunk and big branches, before you get into the leaves/details or there is nothing for them to hang on to. "
"Nand to Tetris courses are not restricted to computer science majors. Rather, they lend themselves to learners from any discipline who seek to gain a hands-on understanding of hardware architectures, operating systems, compilation, and software engineering - all in one course! "
Lecture resources
这里是课程网站,需要的软件工具,硬件仿真(Hardware simulator, CPU emulator, VM emulator),课程资料,技术手册都在这里。 Cool Stuff这里展示了一些非常有趣的个人项目,有人不满足于本课程的HDL语言与仿真平台,直接把HACK电脑用FPGA实现了!有人实现了不可思议的光纤追踪。
你可能会问,"Is it possible to cover so much ground in a one-semester course?" 答案是肯定的,证明就是全球已经有超过150所大学开设这门课程,学生们的满意度超乎寻常,MOOC平台Coursera上的Nand to Tetris课程评分常年靠前。当然了,一个学期的课程涉及到计算机方方面面,广度自然牺牲掉了一部分深度。
Coursera课程分为上下两部分, 上部属于Hardware, 完成Hack Computer的搭建; 下部分属于Software,完成从虚拟机到操作系统,编译器汇编器,高级语言设计及最后游戏的编码。我在去年完成了这门课的上半部分,在享受造物乐趣的同时: 在仿真器里,用一个很简单的HDL硬件描述语言,从一个门电路开始到最终完成所有模块的构建, Multiplexer, Demultiplexer, Register, RAM, ALU, CPU, 一步一步学习了解到了计算机的工作原理,so there is no magic!
"We wrote this book because we felt that many computer science students are missing the forest for the trees. We believe that the best way to understand how computers work is to build one from scratch. "
Learning Roadmap
整个课程,正如路线图所展示的,总共需要完成12个硬件与软件构建任务。P1-P6完成HACK Computer(A simple but sufficiently powerful computer system)硬件的搭建;P7-P12完成从虚拟机,编译器,到操作系统的搭建。