- **MIT 6.828**(操作系统)用 xv6 做实验,从内核最小原型出发,逐步构建 OS 核心组件。 - **MIT 6.824**(分布式系统)强调容错、复制、一致性等分布式关键技术,lab 实现 Raft、KV 存储等。 - **CMU 15-445**(数据库)从存储结构到事务并发,让你自写内核组件。 这样的课程最有价值之处在于:**它们不仅讲原理,还有循序渐进的代码实战**。同学边读论文、边阅读源码、边实现关键模块,最后把多个实验串起来,就能获得对"系统如何设计与实现"较为全面的感悟。 - **Lab 驱动,重视 debug 与设计思考** - 碰到无法通过的测试,不要只顾埋头改bug,要反思:系统抽象、接口、并发或锁策略、性能瓶颈…… - 将自己卡住的问题做记录,然后查资料/看论文/看别人的代码思路,培养系统思考与调试习惯。 - **阅读论文或经典著作** - 课堂中会让你读一批论文 (如 GFS、MapReduce、BigTable、Spanner、FaRM);在读论文时可多做笔记,关注问题、思路和权衡。 - 常见书籍:CSAPP、DDIA(数据密集型应用系统设计)、Dragon Book(编译原理)、SICP(程序构造与解释)等,都能让你拓展眼界。