一句话总结
好程序员写代码,优秀程序员解决问题,卓越的程序员懂得让工具为自己工作。
为什么读这本书
《The Pragmatic Programmer》出版于1999年,作者是 Andrew Hunt 和 David Thomas。二十多年过去,书中提到的具体技术或许已经过时,但核心思想依然历久弥新。
这本书不是教你怎么写 Java、Python 或者 JavaScript。它教你的是思维方式——如何成为一个更高效、更专业、更有价值的开发者。
核心观点
1. DRY 原则
Don’t Repeat Yourself.
系统中的每一项知识都必须具有单一、无歧义、权威的表示。
重复是万恶之源。不只是代码重复,还包括文档重复、配置重复、逻辑重复。一旦发现重复,就应该提取、抽象、复用。
2. 破窗理论
Don’t live with broken windows.
不要容忍破窗户。看到糟糕的代码就修复它,否则它会迅速蔓延。
一个项目里有一段烂代码没人管,很快就会有第二段、第三段。最后整个代码库都变成屎山,没人愿意碰。
3. 你的知识资产
Invest regularly in your knowledge portfolio.
你的知识资产就像金融投资一样,需要定期投入和复利增长。
- 每年学习一门新语言
- 每季度读一本技术书籍
- 每月参加一次技术分享
- 每天写代码、读代码
4. 早测试,常测试,自动测试
Test early. Test often. Test automatically.
测试不是开发完成后的「额外工作」,而是开发过程的一部分。自动化测试是你的安全网,让你敢于重构、敢于改进。
5. 让工具为你工作
Let the computer do the boring bits.
程序员的时间很宝贵。任何重复性的工作都应该自动化:
- 用脚本代替手动操作
- 用 IDE 快捷键代替鼠标点击
- 用 CI/CD 代替手动部署
- 用代码生成器代替手写样板代码
可实践的建议
读完这本书,我给自己定了三个行动项:
本周:自动化一个重复性任务
选一个你每周都要做的重复性任务,用脚本自动化它。哪怕是简单的文件整理、日志分析、数据备份。
我的选择:写了一个脚本自动整理下载文件夹,按文件类型分类归档。
下次写代码前:问自己三个问题
- 这段代码6个月后我还能看懂吗?
- 如果需求变了,这段代码容易修改吗?
- 有没有重复的逻辑可以提取?
建立个人知识库
把学到的技巧、踩过的坑记录成可检索的笔记。不要依赖记忆,记忆会骗人。
推荐工具:Obsidian、Notion、或者简单的 Markdown 文件 + Git。
适合谁读
| 人群 | 推荐理由 |
|---|---|
| 初级程序员 | 建立正确的编程思维,少走弯路 |
| 中级程序员 | 系统化你的经验,提升工程素养 |
| 高级程序员 | 重新审视自己的习惯,找出盲点 |
| 技术管理者 | 理解什么是「好的代码」和「好的团队」 |
金句摘录
「好程序员写代码,优秀程序员解决问题,卓越的程序员懂得让工具为自己工作。」
「DRY原则:系统中的每一项知识都必须具有单一、无歧义、权威的表示。」
「不要容忍破窗户。看到糟糕的代码就修复它,否则它会迅速蔓延。」
「尽早测试,经常测试,自动测试。」
「你的知识资产就像金融投资一样,需要定期投入和复利增长。」
结语
这本书我读了两遍。第一遍是刚工作那会儿,似懂非懂。第二遍是五年后,每章都有「啊,原来如此」的顿悟。
技术会过时,但好的思维方式不会。如果你只能读一本关于「如何成为更好的程序员」的书,读这本。
评分:⭐⭐⭐⭐⭐(9.1/10)
- 作者:Andrew Hunt & David Thomas
- 出版年份:1999(20周年纪念版:2019)
- 页数:352
- 推荐阅读方式:精读 + 做笔记 + 实践