深色模式
28 天打卡表
在这个网站上怎么用这张表
这是原来按日历排的 28 天计划,可选。网站首页的「今日计划」不按日历走:先清掉到期的复习卡,再学下一篇没学完的。断几天也不会乱。
想按天打卡就用这张表,勾选会自动保存。每天的篇目可以直接点进去。
Day 1 · 导读:先看地图再走路
- 篇目: 操作系统导读:一台机器内部在忙什么
- 复习昨日 15min(第一天,跳过)
- 精读本篇 60min,把联系图谱自己画一遍
- 输出 3 句:操作系统这一块和别的三块在哪接
Day 2 · 进程与线程
- 篇目: 进程与线程:谁在跑,跑的时候带着什么
- 复习导读 15min:不看资料说出 OS 的 5 个核心抽象
- 精读本篇 60min,画出进程状态转换图
- 输出 3 句:进程和线程到底差在哪
Day 3 · 虚拟内存
- 篇目: 虚拟内存:让每个程序都以为自己独占一台机器
- 复习进程线程 15min:说出上下文切换保存了什么
- 精读本篇 60min,画出虚拟地址到物理地址的转换
- 输出 3 句:虚拟内存骗了谁、为什么值得骗
Day 4 · 调度与并发同步
- 篇目: 调度与并发同步:CPU 分给谁,共享数据谁先动
- 复习虚拟内存 15min:说出缺页中断的完整处理流程
- 精读本篇 60min,写出死锁四个必要条件
- 输出 3 句:锁为什么慢,CAS 快在哪又坑在哪
Day 5 · IO 模型与零拷贝
- 篇目: IO 模型与零拷贝:等设备的时候,CPU 在干什么
- 复习调度同步 15min:说出互斥锁和自旋锁各自适合什么场景
- 精读本篇 60min,画出五种 IO 模型的差异图
- 输出 3 句:为什么 Redis 单线程还这么快
Day 6 · 内核态与系统调用
- 篇目: 内核态与系统调用:用户程序怎么"申请"做事
- 复习 IO 模型 15min:说出 epoll 的三个关键机制
- 精读本篇 60min,跟踪一次 read 系统调用的全过程
- 输出 3 句:为什么不能让用户程序直接操作硬件
Day 7 · 复盘日(不学新内容)
- 篇目: -
- 合上所有资料,默画 OS 全模块联系图 30min
- 重做 W1 四道周验收 30min,答不出的记下来
- 补漏:只看答不出的那几处 30min
Day 8 · 网络导读
- 篇目: 网络导读:两台机器怎么说话
- 复习 OS 15min:说出 OS 在"一次请求"里负责哪几件事
- 精读本篇 60min,画出四层模型与每层的代表协议
- 输出 3 句:分层到底解决了什么问题
Day 9 · 分层模型与一次请求的一生
- 篇目: 分层模型与一次请求的一生
- 复习导读 15min:不看资料说出四层各自职责
- 精读本篇 60min,完整走一遍 URL 到响应
- 输出 3 句:封装和解封装是什么意思
Day 10 · TCP 连接管理
- 篇目: TCP 连接管理:三次握手、四次挥手、TIME_WAIT
- 复习分层 15min:说出每层加的头叫什么
- 精读本篇 60min,画出三次握手四次挥手时序图
- 输出 3 句:为什么是三次不是两次
Day 11 · TCP 可靠传输与拥塞控制
- 篇目: TCP 可靠传输与拥塞控制
- 复习连接管理 15min:说出 TIME_WAIT 的两个作用
- 精读本篇 60min,画出滑动窗口与拥塞窗口的关系
- 输出 3 句:流量控制和拥塞控制分别防的是什么
Day 12 · HTTP / HTTPS 与缓存
- 篇目: HTTP / HTTPS 与缓存
- 复习 TCP 15min:说出快重传的触发条件
- 精读本篇 60min,列出 HTTP 各版本的关键差异
- 输出 3 句:HTTPS 到底加密了哪一部分
Day 13 · DNS 与 ARP
- 篇目: DNS 与 ARP:两个"翻译官"
- 复习 HTTP 15min:说出强缓存和协商缓存的区别
- 精读本篇 60min,画出 DNS 递归与迭代查询
- 输出 3 句:为什么有了 IP 还需要 MAC
Day 14 · 复盘日(不学新内容)
- 篇目: -
- 不看资料口述全链路 30min,录音回听
- 重做 W2 四道周验收 30min
- 补漏 30min
Day 15 · 数据结构导读
- 篇目: 数据结构导读:数据怎么摆,决定了它有多快
- 复习网络 15min:说出一次请求里网络层做了哪 3 件事
- 精读本篇 60min,画出"操作 → 选结构"的决策树
- 输出 3 句:数据结构的本质是在权衡什么
Day 16 · 复杂度与数组链表
- 篇目: 复杂度与数组、链表
- 复习导读 15min:说出选结构的三个判断维度
- 精读本篇 60min,写出数组与链表的操作复杂度对比
- 输出 3 句:为什么数组"随机访问快"而链表不快
Day 17 · 栈、队列与哈希表
- 篇目: 栈、队列与哈希表
- 复习数组链表 15min:说出 CPU 缓存为什么偏爱数组
- 精读本篇 60min,画出哈希冲突的两种解法
- 输出 3 句:哈希表为什么平均 O(1)、什么时候退化
Day 18 · 树与堆
- 篇目: 树与堆
- 复习哈希 15min:说出扩容为什么翻倍
- 精读本篇 60min,手画一棵 AVL 的旋转
- 输出 3 句:为什么数据库索引不用二叉树
Day 19 · 图与并查集
- 篇目: 图与并查集
- 复习树堆 15min:说出堆的插入和删除各怎么做
- 精读本篇 60min,手推一遍 Dijkstra
- 输出 3 句:并查集的路径压缩省掉了什么
Day 20 · 排序与二分
- 篇目: 排序与二分
- 复习图 15min:说出 BFS 和 DFS 各自适合什么问题
- 精读本篇 60min,手写二分与快排
- 输出 3 句:为什么工程里用快排不用归并
Day 21 · 复盘日(不学新内容)
- 篇目: -
- 不看资料手写二分 + 快排,跑通边界用例 30min
- 重做 W3 四道周验收 30min
- 补漏 30min
Day 22 · 数据库导读
- 篇目: 数据库导读:数据怎么存下来还不乱
- 复习数据结构 15min:说出树和哈希各自擅长什么查询
- 精读本篇 60min,画出数据库模块的联系图
- 输出 3 句:数据库和文件系统到底差在哪
Day 23 · 索引与 B+ 树
- 篇目: 索引与 B+ 树
- 复习导读 15min:说出数据库要解决的三个核心问题
- 精读本篇 60min,画出 B+ 树的查找路径
- 输出 3 句:为什么是 B+ 树而不是 B 树
Day 24 · 事务与 ACID
- 篇目: 事务与 ACID
- 复习索引 15min:说出聚簇索引和非聚簇索引的差别
- 精读本篇 60min,把 ACID 各自对应到实现机制
- 输出 3 句:redo log 和 undo log 分别保什么
Day 25 · 隔离级别与 MVCC
- 篇目: 隔离级别与 MVCC
- 复习事务 15min:说出两阶段提交解决了什么
- 精读本篇 60min,画出 MVCC 的版本链与 ReadView
- 输出 3 句:幻读到底是怎么产生的
Day 26 · 锁与死锁
- 篇目: 锁与死锁
- 复习 MVCC 15min:说出快照读和当前读的区别
- 精读本篇 60min,写出间隙锁解决的问题
- 输出 3 句:数据库死锁和 OS 死锁有什么同源之处
Day 27 · SQL 执行与优化
- 篇目: SQL 执行与优化
- 复习锁 15min:说出 next-key lock 是哪两种锁的组合
- 精读本篇 60min,对一条慢 SQL 走完排查流程
- 输出 3 句:索引失效的常见原因
Day 28 · 串联与自测
- 篇目: 一张图串起全部:一次请求的完整旅程
- 精读串联图 40min,把四块对应关系讲一遍
- 做月度自测卷 40min,不翻资料
- 输出:列出答错的知识点,作为第 2 个月的开头