技术书读了二十本,讲不出任何一本的内容——不是记性问题,而是读法没有产出。逐页读完的满足感来自"进度",留存却取决于"提取":能否不翻书把一章的判据复述出来。这篇按书的类型给读法,并给出可验收的产出标准。
1. 四种读法,四种留存率
| 读法 | 动作 | 典型留存 | 适用 |
|---|---|---|---|
| 逐页通读 | 从第一页到最后一页 | 低:读完记得"讲过",讲不出内容 | 入门书、结构极好的系统书 |
| 跳读 | 只读目录与小节结论 | 中:知道书里有什么 | 参考手册、已熟悉的领域 |
| 问题驱动 | 带问题找章节,答完即停 | 高:答案与问题绑定 | 工作中遇到的具体问题 |
| 教别人 | 读后写/讲一遍 | 最高:暴露理解空洞 | 任何值得留下的内容 |
差别不在勤奋,而在是否发生过提取:逐页读是被动输入,问题驱动是主动检索,后者天然带验收。
2. 技术书分四类,读法不能通用
| 类型 | 特征 | 读法 | 时间投入 | 合格产出 |
|---|---|---|---|---|
| 入门书 | 覆盖广、深度浅、例子多 | 通读 + 跟做例子 | 数天 | 能跑通一个最小例子 |
| 系统化书 | 有体系、章节依赖强 | 通读 + 画结构图 | 数周 | 能画出章节之间的依赖 |
| 参考手册 | 条目化、无叙事 | 跳读 + 建索引 | 常备 | 遇到问题知道查哪一章 |
| 深度专题 | 单一主题、密度高 | 精读 + 复现 | 数周至数月 | 能复述核心论证与边界 |
最常见的错误是用入门书读法读深度专题(逐页划重点,结果每页都重要),或用专题读法读手册(试图背下所有 API)。
3. 参考手册不该通读
手册的价值是检索命中率,不是覆盖率。通读收益接近零,因为它的组织是条目而非论证,人脑记不住条目表。
正确用法是建一层自己的索引:把"我要解决的问题"映射到"手册的章节/条目"。
<!-- cheat-index.md:手册的用法是索引,不是通读 -->
| 我要做的事 | 查哪里 | 备注 |
|---|---|---|
| 调整连接池上限 | 配置章节 / pool 小节 | 注意版本间默认值不同 |
| 事务隔离级别设置 | 事务章节 | 与数据库默认值可能冲突 |
| 自定义序列化 | 扩展点章节 | 需要实现哪个接口 |
条目应来自真实问题,不是抄目录。抄目录得到的只是手册副本,不是检索结构。
4. 问题驱动的读法
流程只有四步,关键在于第一步必须先有问题:
# 问题卡:一个问题一张,读写都围绕它
question: 为什么批量写入比单条写入快一个量级?
context: 我们在做数据导入,单条 insert 太慢
scope: 只找"批量提交/事务边界"相关章节,不读全书
stop_rule: 拿到可验证的解释就停,不再往下读
verification: 用 1000 行数据做一次批量 vs 单条对比
output: 一段能讲给别人听的解释 + 一次实测
stop_rule 是最重要的字段。没有问题边界,读书会自然扩散成"顺便看看别的章节",最后既没答完问题,也没读完书。
判据:读完的章节数不是指标,"问题被答掉几个"才是。一本书答掉 3 个真问题,胜过通读一遍。
5. 三种产出与"能讲出来"作为验收
| 产出 | 形式 | 验收标准 | 成本 |
|---|---|---|---|
| 笔记 | 结构化摘要 | 半年后能靠它复原判断 | 低 |
| 代码 | 最小可运行例子 | 能跑、能改、能解释每行 | 中 |
| 教学 | 讲一遍/写一篇 | 听众能复述核心判据 | 高 |
笔记最容易造假:抄目录、抄结论都算"有笔记",却都过不了"半年后复原"这一关。有效笔记记的是判据与边界。
<!-- 一页笔记的骨架:结论 → 判据 → 边界 → 反例 -->
## 结论
批量提交减少的是事务提交次数与网络往返,不是"SQL 更快"。
## 判据
- 提交次数是瓶颈 → 批大小收益明显
- 单行数据大、锁竞争强 → 批大小收益被抵消
## 边界
批太大导致锁持有时间长、回滚代价高、内存压力上升。
## 反例
批大小从 100 提到 10000,耗时不降反升(锁与内存换出来的)。
教学是最硬的验收:讲的时候卡住的地方,就是没读懂的地方。卡点比笔记诚实。
6. 读不下去的三种原因
| 原因 | 信号 | 处置 |
|---|---|---|
| 前置知识不足 | 每段都要查别的资料 | 换更入门的书,或先补前置(不丢人,是顺序问题) |
| 作者结构差 | 概念先用后定义、章节跳跃 | 换书;同主题的书好坏差异极大 |
| 问题不匹配 | 读着没问题要答,纯靠毅力 | 停读,等真问题出现再回来 |
三种原因处理完全不同,症状却相似(都是"读不动")。判据:读一章后能否说出"这章解决什么问题"。说不出且怪作者,多半前置不足;说不出且觉得内容散,多半结构问题。
7. 并行读与串行读
| 方式 | 优势 | 代价 | 适用 |
|---|---|---|---|
| 串行 | 上下文连贯、依赖能接上 | 卡住就全停 | 系统化书、深度专题 |
| 并行(2–3 本) | 卡住可切换,保持输入 | 上下文切换成本、易都不深 | 不同类型混读(入门+手册) |
上限 3 本且类型必须不同——两本深度专题并行等于两本都没读进去。并行读的作用是"降低单点阻塞",不是"提高阅读量"。
8. 载体:纸质、电子、标注与检索
| 维度 | 纸质 | 电子 | 判断 |
|---|---|---|---|
| 标注 | 手写、位置记忆强 | 高亮易,但难回看 | 精读用纸质/平板 |
| 检索 | 靠索引页 | 全文检索 | 手册与查阅用电子 |
| 引用 | 页码稳定 | 位置随版本变 | 写文章引用用纸质页码 |
| 成本 | 贵、占空间 | 便宜、可复制 | 大量跳读用电子 |
# 电子书的真实用法:先定位再读,而不是从头翻
pdftotext -layout book.pdf book.txt
rg -n -i 'batch|批处理' book.txt | head -20 # 先看这本书怎么谈这个问题
rg -n '第[0-9]+章' book.txt | head # 找章节边界,用于跳读
电子格式的最大优势是可检索,把"读"变成"查",正是问题驱动需要的。
9. 二手笔记的价值与陷阱
别人的笔记能省时间,但丢掉的是判断过程:为何选这个方案、为何排除另一个、何时不成立。
| 用法 | 结果 |
|---|---|
| 把二手笔记当目录,回原书找论证 | 有效:省了筛选成本 |
| 把二手笔记当结论直接用 | 危险:条件被剥离,边界消失 |
| 用二手笔记替代原书 | 无效:只记住了别人的判断,无法迁移 |
判据:二手笔记只能用来"定位",不能用来"替代"。任何要落到决策上的内容,都要回到原书看它成立的边界。
10. 复读的必要性
同一本书隔一年再读,读到的内容会变——不是书变了,是问题集变了。首读跳过的"事务边界"那一章,一年后可能最有用。
复读成本低于首读(结构已熟),收益集中在当年读不懂而现在有场景的部分。判据:书里有没有标记过"看不懂/用不上"的章节,且现在有了对应问题。
11. 书、文档、源码、文章的分工
| 来源 | 擅长 | 不擅长 | 什么时候用 |
|---|---|---|---|
| 书 | 体系、判据、边界 | 版本细节、最新特性 | 建立领域结构 |
| 官方文档 | 准确性、版本对应 | 不给判断,只给事实 | 落地实现 |
| 源码 | 真实行为 | 学习成本高 | 文档与行为不一致时 |
| 文章/博客 | 场景经验、踩坑 | 质量参差、易过时 | 找具体问题的解法 |
顺序建议:书给结构 → 文档给用法 → 源码给真相 → 文章给经验。反过来(先刷文章)会得到一堆彼此矛盾的结论,缺少判断框架。
12. 阅读预算
一年能读的技术书,现实量级是 6–12 本(按每周 3–5 小时、每本 20–40 小时估算,且要扣除项目忙季)。这个数字比大多数人预期的低,但它是可持续的。
年度预算示例(按 300 小时/年 投入):
系统化书 2 本 × 40h = 80h
深度专题 1 本 × 80h = 80h
入门书 4 本 × 15h = 60h
参考手册 常备,按需查阅 ≈ 40h
复读 1 本 × 20h = 20h
余量 20h
预算的作用是强制选择:知道一年只有 300 小时,就不会同时开五本书。宣称"一年读五十本"的多半是跳读,而跳读不需要预算。
13. 把书读成索引
成熟的读者对一本书的记忆不是内容,而是位置:这个问题在哪本书的哪一章有讨论。
| 记住的层次 | 内容 | 价值 |
|---|---|---|
| 内容 | 具体结论与数字 | 易忘、易过时 |
| 判据 | 什么条件下选 A 不选 B | 可迁移 |
| 位置 | 该问题哪本书讲得最好 | 长期有效 |
第三层最耐用。方法很土:每解决一个真问题,记一行"问题 → 出处"。一年下来这行清单比任何笔记都值钱。
14. 排错
| 现象 | 判断 | 处理 |
|---|---|---|
| 读完记不住 | 全程被动输入,无提取 | 每章合上书复述一遍 |
| 读三页就想停 | 前置不足或结构差 | 换书或换顺序,别硬读 |
| 笔记越记越多但用不上 | 抄结论而非判据 | 改写为"判据 + 边界"格式 |
| 一本书读了三个月没动 | 问题不匹配 | 停读,标记待用 |
| 用二手笔记替代原书 | 边界被剥离 | 回原书核对成立条件 |
15. 边界
| 场景 | 判断依据 | 更合适的做法 |
|---|---|---|
| 纯查阅需求 | 只要事实,不要体系 | 用文档,不读书 |
| 已有权威文档且版本快 | 书出版即过时 | 读文档 + 变更日志 |
| 领域变化极快(模型、前端框架) | 结论半年失效 | 读源码与官方指南 |
| 只需要一个 API 用法 | 投入产出不成立 | 搜索 + 官方示例 |
| 已有同主题经验 | 书提供的增量低 | 读目录 + 差异章节 |
一句话选择:书买的是结构与判据,不是信息量;只需要信息时,文档更快。
16. 自测
- 逐页通读与问题驱动读法,留存差异的机制是什么?
- 参考手册正确的用法是什么,为什么通读收益接近零?
- 问题卡里哪个字段最容易缺,缺了会怎样?
- 一页有效笔记应该包含哪四块,为什么不写"结论"就够?
- 读不下去的三种原因怎么区分,处置各是什么?
- 为什么"知道该查哪本书"比"记得书里写了什么"更耐用?