一、全书概览
一句话总结
一本教程序员"怎么干活才有价值"的书——不是教你写更好的代码,而是教你把时间花在产出最高的地方。
全书结构
| 章节 | 主题 | 一句话概括 | |------|------|------------| | 第1章 | 聚焦高杠杆率工作 | 用"杠杆率"替代"忙碌度"作为衡量自己效率的标准 | | 第2章 | 精益求精,优化学习方式 | 学习也遵循指数增长,越早投资学习复利越大 | | 第3章 | 定期调整优先级 | 保护你的"制造者时间",减少上下文切换 | | 第4章 | 投资迭代速度 | 迭代越快学得越多,工具上的投资回报惊人 | | 第5章 | 衡量你要改进的地方 | 没有度量就没有改进,但要选对指标 | | 第6章 | 尽早并经常验证你的想法 | 小步快跑,用反馈代替猜测 | | 第7章 | 提升项目估期能力 | 估期是概率分布,不是最佳情况 | | 第8章 | 务实兼顾质量 | 代码评审、抽象设计、自动化测试、偿还技术债 | | 第9章 | 最小化运维负担 | 简单性优于复杂性,快速失败优于静默出错 | | 第10章 | 投资团队成长 | 帮助同事成功是最高杠杆率的事情之一 |
二、逐章要点
第1章:聚焦高杠杆率工作
核心观点
高效的工程师不是写代码最多的工程师,而是产出价值最大的工程师。衡量标准不是"忙不忙",而是"杠杆率高不高"。
杠杆率 = 产出价值 / 投入时间
提高杠杆率有且仅有三条路径:
| 路径 | 翻译成问题 | 示例 | |------|-----------|------| | 减少做某件事的时间 | 怎么缩短完成这件事的时间? | 自动化手动部署流程,从2小时变成5分钟 | | 增加做某件事的产出 | 怎么提高这件事的价值? | 重构接口设计让整个团队能复用,而非只解决一个case | | 换到更高杠杆率的事 | 有什么更高价值的事值得花时间? | 停止修无关紧要的UI bug,去做性能优化影响百万用户 |
作者反复强调:时间是最稀缺的资源。同样的时间花在不同事情上,产出可以差几十倍。高杠杆率活动的例子包括:写一个被整个团队使用的工具、优化一个影响所有用户的性能瓶颈、建立一套自动化测试框架。低杠杆率活动的例子包括:手动执行重复性操作、在低价值的会议上消磨时间、修复不影响用户的边缘case。
关键概念
- 杠杆率:衡量单位时间产出价值的指标。是全书的核心概念,后续所有章节都在讲"如何提高杠杆率"。
- 高杠杆率活动 vs 低杠杆率活动:高杠杆率活动的一次投入可以产生持续回报(写工具、建立流程);低杠杆率活动每次都要重新投入(手动操作、重复劳动)。
- 聚焦支点:不是所有事情都值得优化。找到杠杆率最高的那几件事,把精力集中在这上面。
行动清单
- [ ] 列出你上周做的所有事情,计算每件事的杠杆率
- [ ] 找出你工作中最高杠杆率的3件事和最低杠杆率的3件事
- [ ] 把最低杠杆率的事情自动化或委托出去
第2章:精益求精,优化学习方式
核心观点
学习遵循指数增长曲线。早期看起来进步很慢,但只要持续投入,后期的加速度会越来越大。越早开始优化学习,享受复利的时间越长。
成长型思维(Growth Mindset)是基础——相信自己的能力可以改变,而不是把失败归因于天赋不够或环境不好。
选择工作环境时看六个因素:
| 因素 | 为什么重要 | 怎么判断 | |------|-----------|----------| | 快速成长 | 成长快的公司有更多学习机会 | 用户增长曲线、融资节奏 | | 培训体系 | 系统化培训比自学高效 | 有没有onboarding program、mentor制度 | | 开放文化 | 可以看到其他人的代码和决策 | 代码是否全员可见、技术文档是否公开 | | 合理节奏 | 996学不到东西,太闲也不行 | 看实际工作节奏而非口号 | | 优秀的人 | 向最优秀的人学最快 | 看团队核心成员的背景 | | 自主性 | 能自己决定技术方案 | 是否允许自下而上推动技术改进 |
作者建议每天在工作中留出1-2小时的整块时间用于学习。这看起来是在"浪费工作时间",但长期来看是杠杆率最高的投资。十条具体建议中特别值得注意的:
- 学习公司内最好的工程师的核心抽象代码
- 写更多代码——练习比阅读杠杆率更高
- 把代码发给最严格的批评家评审
- 参加各种项目的设计讨论会
- 毫不畏惧地跳入你不懂的代码
行动清单
- [ ] 每天留出1小时"学习时间",用日历block出来
- [ ] 找到团队中代码写得最好的人,阅读TA的核心代码
- [ ] 本月读一本与当前工作直接相关的技术书
第3章:定期调整优先级
核心观点
大多数人被"紧急但不重要"的事情淹没,忽略了"重要但不紧急"的事情。而后者才是真正产生长期价值的地方。
经典的四象限框架:
| | 紧急 | 不紧急 | |------|------|--------| | 重要 | 高优bug、DDL | 职业规划、学习新技能、构建工具改善工作流 | | 不重要 | 大多数邮件/会议/电话 | 刷手机、无目的的浏览 |
制造者时间 vs 管理者时间:程序员需要大段连续的时间(制造者时间)才能进入心流状态。一次会议就能打断这种状态,恢复需要15-30分钟。所以应该把会议集中安排在一天的某个时段,而不是散布在全天。
减少并行工作数量(Limit WIP)。人脑的上下文切换成本极高。同时做3个项目的效率远低于顺序做完3个项目。
用"If-Then计划"对抗拖延:提前准备一个"20分钟任务清单"(代码评审、写测试、回邮件、调查小bug),当有大段空白时间或感到拖延时,直接从清单上挑一个开始。
行动清单
- [ ] 用单一列表管理所有待办事项
- [ ] 把会议集中到下午,上午留给"制造者时间"
- [ ] 列出你的"重要但不紧急"事项,每周至少完成一件
- [ ] 准备一个"20分钟任务清单"对抗碎片时间
第4章:投资迭代速度
核心观点
迭代越快,学得越多。在工具上花的时间看起来是"浪费",但回报是指数级的。
缩短调试和验证周期是最直接的杠杆。当你发现自己反复执行同样的操作(编译、部署、测试、查日志),停下来想一想:能不能自动化?
掌握编程环境的十个切入点:
| 技能 | 投资回报 | |------|----------| | 熟练使用Vim/Emacs/IDE | 每天省几十分钟 | | 学一门脚本语言(Python/Ruby) | 自动化一切可自动化的 | | 熟悉Shell命令(grep/sed/awk/find) | 命令行比GUI快10倍 | | 习惯键盘而非鼠标 | 减少手离开键盘的次数 | | 自动化手工操作 | 一次投资,永久回报 | | 使用交互式解释器 | 快速验证想法 | | 让单元测试尽可能快 | 测试慢了就不愿意跑 | | 版本控制的高级操作 | rebase、cherry-pick、bisect |
不要忽视非工程瓶颈:最常见的瓶颈不是写代码,而是等别人审批、等设计确认、等依赖方接口。高效工程师会主动推进这些瓶颈,而不是坐在那里等。
行动清单
- [ ] 计时一周,统计你花在"等待"上的时间
- [ ] 找出最常重复的3个操作,写脚本自动化
- [ ] 学习一个你没用过的编辑器快捷键,坚持用一周
第5章:衡量你要改进的地方
核心观点
如果你不能衡量它,你就不能改进它。但选错指标比不选指标更危险——人们会优化指标而不是优化真正重要的东西。
好指标的四条标准:
| 标准 | 含义 | 反例 | |------|------|------| | 最大化影响 | 指标变化和业务目标正相关 | 用代码行数衡量产出 | | 可行动的 | 看到指标变化知道该怎么做 | 只看"平均响应时间"但不知道瓶颈在哪 | | 反应灵敏 | 能快速反映变化 | 月度指标太滞后 | | 健壮的 | 不容易被操纵 | DAU容易被刷 |
作者强调要"内部化有用的数字"——把关键指标记在脑子里,这样当数据异常时你能第一时间察觉。
值得记住的数字类型:注册用户数、日活/月活、每秒请求数、数据存储容量、不同服务的吞吐量、页面加载时长、流量增长率、不同平台/浏览器的流量分布。
行动清单
- [ ] 为你负责的系统定义3个核心指标
- [ ] 建一个dashboard,每天看一眼关键数字
- [ ] 下次做优化时,先用数据证明"确实需要优化",优化后再用数据证明"确实改善了"
第6章:尽早并经常验证你的想法
核心观点
写了一大堆代码才发现方向错了,是最低效的工作方式。花10%的投入先验证想法是否正确,可以避免90%的浪费。
验证方式按成本从低到高:
| 方式 | 成本 | 适用场景 | |------|------|----------| | 和同事讨论 | 最低 | 方案选择、设计方向 | | 写设计文档 | 低 | 架构设计、接口设计 | | 做原型/Demo | 中 | 产品功能、用户体验 | | A/B测试 | 中 | 产品假设验证 | | 完整实现 | 高 | 已验证的方案 |
当心一人团队:独立项目最容易走偏,因为没有外部反馈。建立反馈渠道的具体做法:尽早提交代码评审、请求最严格的评审者、设计阶段就展示方案、对有争议的问题尽早寻求讨论。
行动清单
- [ ] 开始一个新功能前,先花30分钟写一个简短的设计文档
- [ ] 养成"先讨论、再编码"的习惯
- [ ] 找一个最会挑刺的同事,让TA成为你的常驻reviewer
第7章:提升项目估期能力
核心观点
估期是概率分布,不是最佳情况。大多数人的估期只覆盖了"顺利情况",完全没考虑意外。
估期的十条策略:
- 拆分项目成小任务:大任务估不准,小任务相对好估
- 按实际需要的时间估,不是按期望的时间估:别自我欺骗
- 把估期视为概率分布:给出"50%概率完成"和"90%概率完成"两个时间
- 让实际做的人来估:不要让不懂细节的人代估
- 当心锚定偏差:先独立估,再讨论,不要先听到别人的数字再估
- 用多种方式交叉验证:专家判断、历史数据、功能点分析
- 警惕"人月神话":加人不能缩短工期,有时候反而更慢
- 用历史数据校准:对比以往类似项目的实际耗时
- 用时间盒子限制范围蔓延:时间不变,砍功能
- 允许别人挑战你的估期
延期时不要冲刺——加班的边际收益递减,额外工作会压垮团队,冲刺产生技术债。正确做法:重新评估时间表,砍掉低优先级功能。
行动清单
- [ ] 下次估期时,给出"乐观估计"和"悲观估计"两个数字
- [ ] 记录估期和实际耗时,校准自己的估期偏差
- [ ] 遇到延期时,先砍功能而不是加时间
第8章:务实兼顾质量
核心观点
代码评审不是流程负担,而是知识共享和质量保障。好的抽象不是设计得多么精巧,而是让使用者不需要看文档就能用对。
代码评审的好处:尽早发现bug、增加代码责任心、建立好的代码范例、共享知识、提升长期敏捷度。
好的抽象的标准:容易学习、不需要文档也能用对、很难用错、足够强大、容易扩展、对使用者友好。
自动化测试:不是"有就行",而是要快。测试跑得慢,开发者就不愿意跑,自动化测试就形同虚设。
偿还技术债:高效工程师的策略是在"人流密集"的代码区域投入时间修复——那些被最多人使用、最常修改的部分。不要试图一次性还清所有技术债,按杠杆率排序偿还。
行动清单
- [ ] 每次提交代码前自己先做一轮self-review
- [ ] 本月给一个频繁使用的模块写一套单元测试
- [ ] 找出代码库中被修改最多的3个文件,评估是否需要重构
第9章:最小化运维负担
核心观点
复杂的架构带来一系列维护问题:知识分散、单点故障、陡峭的学习曲线、资源被稀释到多个系统。先做简单的事情。
快速失败(Fail Fast):不是让程序直接崩溃给用户看,而是用全局异常处理优雅降级,但快速上报错误。错误发生时应该尽快暴露,而不是被吞掉。
幂等性:批处理任务应该设计成可重复执行而不产生副作用。这样失败了可以安全重试。
快速恢复能力:把精力放在"出问题了怎么快速恢复"上,比"怎么防止问题发生"杠杆率更高。因为复杂系统不可能不出问题,恢复速度才是关键。
行动清单
- [ ] 检查你的批处理任务是否幂等,不是的话加上
- [ ] 列出系统可能的故障模式,为每种模式制定恢复方案
- [ ] 找一个可以自动化的运维操作,花时间自动化它
第10章:投资团队成长
核心观点
帮助同事成功是最高杠杆率的事情之一。你的影响力不仅取决于你个人做了什么,还取决于你帮助团队做了什么。
招聘是每个人的责任:好的面试筛选出合适的人,同时让候选人对团队感到兴奋。
入职流程的四个目标:
- 新人尽快产出
- 传授团队文化
- 让新人具备广泛的基础知识
- 通过社交融入团队
共享代码的主人翁意识:避免一个人成为某个模块的唯一负责人。轮换任务、互相review、保持代码可读性、做技术分享、写文档。
通过事后复盘(Post-Mortem)建立集体智慧:出问题不可怕,可怕的是同样的问题反复出现。复盘不是为了追责,而是为了学习和改进。
行动清单
- [ ] 本月做一次技术分享(可以是15分钟的lunch & learn)
- [ ] 找一个新人或初级工程师,主动做TA的mentor
- [ ] 下次出问题后,组织一次无指责的复盘
三、关键概念速查
| 概念 | 定义 | 一句话理解 | |------|------|------------| | 杠杆率 | 产出价值 / 投入时间 | 衡量"这段时间花得值不值"的标尺 | | 制造者时间 | 需要大段连续时间的工作模式(程序员) | 一次会议毁掉半天的产出 | | 管理者时间 | 被切割成碎片的工作模式(管理者) | 程序员最怕变成管理者时间 | | 成长型思维 | 相信能力可以通过努力改变 | "我还没学会"vs"我学不会" | | If-Then计划 | 提前规划"如果X情况就做Y" | 用小任务清单对抗拖延 | | 技术债 | 为了赶进度而积累的代码质量问题 | 借了就要还,不还利息越来越高 | | 幂等性 | 同一操作执行多次结果相同 | 安全重试的前提 | | Fail Fast | 错误发生时立即暴露而非静默处理 | 快速失败比静默出错好 |
四、核心框架/模型
高杠杆率工程师的成长路径
第一层:优化自己的产出
├── 提高迭代速度(工具、环境、自动化)
├── 用数据驱动决策(度量、指标、A/B测试)
└── 提升估期和执行能力
第二层:扩大自己的影响范围
├── 做高杠杆率的事情(工具、框架、基础设施)
├── 建立反馈循环(代码评审、设计评审、用户反馈)
└── 持续学习和优化
第三层:放大团队的能力
├── 招聘优秀的人
├── 设计好的入职流程
├── 共享代码主人翁意识
└── 建立工程师文化
优先级四象限
紧急 不紧急
┌─────────────┬─────────────┐
重 │ DDL、高优bug │ 职业规划、学习 │
要 │ 紧急救火 │ 构建工具、读书 │
├─────────────┼─────────────┤
不 │ 大多数邮件 │ 刷手机、闲聊 │
重 │ 无关会议 │ 无目的浏览 │
要 │ │ │
└─────────────┴─────────────┘
→ 大多数人困在这里 → 高杠杆率区域
五、金句摘录
高效的工程师不是写代码最多的人,而是产出价值最大的人。衡量标准不是"忙不忙",而是"杠杆率高不高"。
学习遵循指数增长曲线。微小的差异在长期未来也能产生巨大的差别。
把会议集中安排在一天的某个时段,而不是散布在全天。程序员的产出和大段连续时间正相关。
如果你不能衡量它,你就不能改进它。但选错指标比不选指标更危险。
花费有限的时间以最高的杠杆率偿还技术债——代码库中人流密集的部分。
把精力放在"出问题了怎么快速恢复"上,比"怎么防止问题发生"杠杆率更高。
帮助同事成功是最高杠杆率的事情之一。你的影响力不仅取决于你个人做了什么,还取决于你帮助团队做了什么。
六、行动清单
每天
- [ ] 开始工作前列出今天的3个高杠杆率任务
- [ ] 保护至少2小时连续的"制造者时间"
- [ ] 留出30分钟学习时间
每周
- [ ] 回顾本周的时间分配,计算杠杆率
- [ ] 完成一个"重要但不紧急"的任务
- [ ] 至少做一次有意义的代码评审
- [ ] 写一篇简短的技术笔记或复盘
每月
- [ ] 学习一个能提升迭代速度的工具或技巧
- [ ] 找出并自动化一个重复性操作
- [ ] 做一次技术分享或帮助一个同事解决问题
- [ ] 复习优先级列表,确保方向没有偏移
七、一句话总结
工程师的影响力 = 你做的事情的价值 × 做这些事情的效率,而杠杆率就是把这两个乘数同时放大的思维框架。
八、读者热议
1. 豆瓣用户「杨小帆」(2023-05-27)
寻找高杠杆是高效工作和高效成长的关键。很有感触的是,每日半小时到一小时的学习充电时间,是自己这些年觉得杠杆率最高的事。第二部分真是绝了,我怀疑作者就是我们的PM——怎么会有人把项目中经常遇到的问题总结得这么好,不止提出问题,而且提供解决方案的文章才是好文章。
🐈 喵喵点评:第二部分(执行)确实是全书最实用的部分。很多人看完这本书最大的改变就是开始保护自己的"制造者时间"。
2. 豆瓣用户「胜同学」(2022-11-03)
推荐阅读,内容比较全面,工程师常遇到的问题很多都有覆盖到,并且内容比较务实,是那种看完了可以在工作中实操一下的,甚至可以部分程度上当做工具书——它可能无法让你一定做到卓越,但可以提高你的下限,少踩很多坑。
🐈 喵喵点评:"提高下限"这本书确实做到了。特别是项目估期和优先级管理这两章,实操性极强。
3. 豆瓣用户「芳心纵火范先生」(2022-09-04)
最近在读《卓有成效的工程师》,其中在《精益求精,优化学习方式》这一章节中关于"培养成长型思维模式"的内容让我突然多了一层感悟。人的能力是可以改变的——之所以有时候会放弃,是因为潜意识里觉得"我不适合"。
🐈 喵喵点评:成长型思维听起来像鸡汤,但结合具体的学习策略(每天1小时学习时间、十条建议)就变得可执行了。
笔记生成:2026-04-27 by 喵喵 🐈
相关笔记
同作者仅有此篇 同主题: