如何使用本百科
本百科以"多本书"组织:十二卷各自独立成册,侧边栏只显示本卷目录,卷与卷之间用链接互相引用。这一章说明三条经过验证的阅读路线,以及每条路线的章节顺序与前置关系。
自底向上:想理解机器的人
Section titled “自底向上:想理解机器的人”二 → 三 → 六 → 七 → 八
从门电路搭到处理器(第二卷),理解算法与数据结构(第三卷),再看操作系统如何管理这些硬件(第六卷)、网络如何把机器连起来(第七卷)、数据库如何在上面存数据(第八卷)。走完这条线,"程序为什么慢"、"这条 SQL 为什么走全表扫描"这类问题你都能沿层下降找到答案。
适合:系统方向的学习者、后端与基础设施工程师、准备面试系统岗的人。
自顶向下:想写好程序的人
Section titled “自顶向下:想写好程序的人”三 → 四 → 五 → 十一(→ 九)
先掌握数据结构与算法(第三、四卷),再理解语言如何实现(第五卷),然后是工程实践与系统设计(第十一卷);需要时再进分布式系统(第九卷)。这条线把时间花在"写出正确、可维护、可扩展的程序"上,机器细节按需再补。
适合:应用工程师、全栈与算法工程师、希望系统补齐 CS 基础的转行者。
理论线:准备研究的人
Section titled “理论线:准备研究的人”一 → 十 → 四
先建立计算模型的地基(第一卷第二部分),进入可计算性与复杂度的严格版本(第十卷),最后用算法(第四卷)把理论接回实践——NP 完全性一章就是这座桥。
适合:准备读研/读博、研究系统或理论方向的人。
几条公共规则:
- 第一、三卷是几乎所有路线的公共段:第一卷的地图与表示、第三卷的数据结构是后续一切的前置。
- 六、七、八、九卷共享"并发与故障"主题:进程与锁(第六卷)、TCP(第七卷)、事务(第八卷)与共识(第九卷)反复用同一组思想——竞态、重试、幂等、一致性。读其中任何一卷遇到困难,另一卷的相关章节往往给出不同角度的同一件事。
- 第十卷不依赖工程卷:只要求离散数学基础,可以与任何一条路线并行。
- 术语表(glossary)是随行索引:每个条目一句话定义加出处链接,遇到陌生术语先查它。
动手与阅读的配比
Section titled “动手与阅读的配比”本百科是地图而非练习册。地图告诉你在哪里、相邻是什么;技能仍需动手获得。推荐的实验资源见公开课与在线资源:Nand2Tetris 对应第二卷,xv6 对应第六卷,CS144 写 TCP,6.824 实现 Raft——每卷几乎都有一个对应的"动手版"。
- 三条路线:自底向上(二→三→六→七→八)理解机器;自顶向下(三→四→五→十一)写好程序;理论线(一→十→四)准备研究
- 第一、三卷是公共前置;六、七、八、九卷共享"并发与故障"主题
- 每卷几乎都有对应的动手实验(Nand2Tetris、xv6、CS144、6.824)
- 术语表是任何路线的随行索引