深色模式
30 天路线图
目标不是"背完",是建立骨架 + 能讲清主干 + 接得住两层追问。 1 个月做不到精通,所以这里砍掉了冷门考点。想全面,看文末的延伸路线。
配合网站使用
路线图定的是学习顺序和每周目标;每天具体做什么看首页「今日计划」:先复习到期卡,再学下一篇。每篇读完勾验收清单,然后点顶部「练本篇」。
一、四阶段总览
W1 操作系统 --+
+-> 你知道了"程序跑起来时,机器在忙什么"
W2 计算机网络 -+
+-> 你知道了"两台机器之间怎么说话"
W3 数据结构 --+
+-> 你知道了"数据怎么摆放才不慢"
W4 数据库 ----+
+-> 你知道了"数据怎么存下来还不乱"
v
串联:一次请求把四块全串起来四块不是并列的四门课,是同一个系统的四个视角:
- 操作系统管「一台机器内部」
- 网络管「机器与机器之间」
- 数据结构管「数据在内存里怎么摆」
- 数据库管「数据在磁盘上怎么存、怎么并发访问」
学每一块时都问一句:这块和上一块的接口在哪? 接口就是"连接"。
二、每周安排
| 周次 | 模块 | 每日投入 | 学几天 | 复盘日 |
|---|---|---|---|---|
| W1 | 操作系统(5 篇 + 导读) | 1.5h | 6 | 第 7 天 |
| W2 | 计算机网络(5 篇 + 导读) | 1.5h | 6 | 第 14 天 |
| W3 | 数据结构与算法(5 篇 + 导读) | 1.5h | 6 | 第 21 天 |
| W4 | 数据库(5 篇 + 导读)+ 串联 3 篇 | 2h | 7 | 第 28 天并入 |
每日固定三段,不要合并:
| 段 | 时长 | 做什么 | 为什么 |
|---|---|---|---|
| 复习 | 15min | 合上书回忆昨天那篇的主干,说不出来的地方再翻 | 主动回忆比重读有效 3 倍 |
| 新学 | 60min | 精读当天篇目,边读边在纸上画图 | 画图会暴露"以为懂了"的地方 |
| 输出 | 15min | 用自己的话写 3 句:它解决什么麻烦 / 怎么做的 / 不用会怎样 | 写不出来 = 没懂 |
三、每周验收(可判定,不是"理解了")
W1 · 操作系统
- 能在纸上画出进程 5 状态转换图,每条箭头说出触发条件
- 能说出虚拟内存解决的两个具体问题,各举一个不这么做会出的事故
- 能解释
epoll相比select强在哪,说出具体机制差异(不是"更高效"三个字) - 能说清一次系统调用里用户态和内核态各做了什么
W2 · 计算机网络
- 不看资料,口述"输入 URL 到收到响应"全链路,每层说出至少 1 个关键机制
- 能解释三次握手为什么不是两次、四次挥手为什么不是三次
- 能说清 TIME_WAIT 存在的两个理由
- 能说清 HTTPS 相比 HTTP 多做了什么,证书在其中解决什么问题
W3 · 数据结构与算法
- 能说清每种结构"为什么存在",而不是背定义
- 能手写二分查找且边界不出错(含 left<=right 与 left<right 两种写法)
- 能手写快排并说清为什么最坏是 O(n²)、怎么避免
- 能解释哈希表扩容为什么是 2 倍、为什么用 2 的幂做取模优化
W4 · 数据库
- 能说清为什么用 B+ 树而不是 B 树、不是红黑树、不是哈希
- 能把 ACID 四个字母分别对应到具体实现机制(日志、锁、MVCC)
- 能说清 MVCC 靠什么实现、解决了什么问题、undo log 在里面扮演什么角色
- 能对着一条慢 SQL 说出排查顺序(不是背"加索引")
四、进度落后了怎么办
按这个顺序砍,不要平均用力:
- 先砍导读篇(00-导读),它只是地图,跳过不影响主干。
- 再砍算法篇的代码细节,保留"为什么用这种结构"的判断。
- 绝对不砍:进程线程、TCP 连接、索引原理、事务隔离。这四块是追问重灾区。
时间只有半个月的话,就学这四篇,其余全部跳过。
五、30 天之后(第 2-3 个月延伸)
这一个月只是把骨架立起来。后面按这个顺序加肉:
第 2 个月 · 往深里挖
- 语言层:内存模型、GC、并发原语(Java 的话就是 JMM / GC / synchronized / AQS)
- 框架层:一个 Web 框架的启动流程与请求处理链路
- 中间件:Redis(数据结构 + 持久化 + 缓存三问)、消息队列(为什么需要、怎么保证不丢)
第 3 个月 · 往实战转
- 项目复盘:把做过的项目按"难点 - 方案 - 取舍 - 结果"重写成 3 个故事
- 题量训练:算法保持每周 10 题,重点在"能讲清思路"而不是 AC
- 模拟面试:找人或录音,重点练被追问时的反应,不是背答案
贯穿始终的一件事:每学一个新概念,回到 一张图串起全部:一次请求的完整旅程,看它挂在哪一层。挂不上去,说明还没真懂。
六、判断自己真懂了的三个信号
- 能不用术语把它讲明白(用了术语只是把不懂转述了一遍)。
- 能说出不这么做会怎么坏(说不出坏处,说明只是记住了结论)。
- 能把它接到另一个模块上(接不上,说明是孤立记忆,两周就忘)。
三个都做到,这篇可以永久划掉。
✅ 验收清单
- 能说出四个模块各自管什么,以及它们之间的接口在哪(机器内部 / 机器之间 / 内存里 / 磁盘上)
- 能说出每日三段各多久、各自的作用(为什么"复习"必须合上书)
- 能说出"进度落后时先砍什么、绝对不砍什么",并解释为什么那四篇不能砍
- 能说出判断"真懂了"的三个信号,并拿昨天学过的一个概念自测一遍
- 合上书,用自己的话讲 3 分钟,中途不卡壳