
我是一个书籍爱好者,书架上堆满了各种技术书。之所以持续阅读,原因很实际:一是能"近距离"向行业大牛学习,二是因为大多数开发者并不读书,这反而成了我的比较优势。
书籍中的知识让我在讨论项目、做决策时能够既有广度又有深度。在 AI 时代,这一点更加重要——我们需要足够的认知基础,才能正确判断和引导 AI。
目前市面上的"必读书单"翻来覆去就那几本:《代码整洁之道》《程序员修炼之道》《数据密集型应用设计》。我倾向于在这些之外补充一些自己的推荐,这些书我都亲自读过、和同事讨论过、也在私下推荐过。
其中一些书已经出版 15~20 年了,依然有效,因为它们讲的是经久不衰的知识。而另一些新书,我认为未来也会成为经典——它们大多是技术无关的,适用于各个领域。
我按"解决的问题"来分类组织这些书。正确的提问不是"我该读什么",而是"我目前正被什么问题困扰"。
2024 年我分享过一个 30+ 项"不变的基础知识"长清单。这次是精简的 2026 版本:依然推荐的书目,加上当前真正重要的 AI 与系统类书籍。
代码思维:夯实编程基本功
这个类目下的书涵盖软件工程师工作的核心基础,是写出好代码的前提。
《程序员修炼之道》——专业素养的起点
David Thomas & Andrew Hunt 合著的这本书我推荐过无数次,以后还会继续推荐。有些人以为它讲的是编码,但实际上它更关注思维模式。在我们的辅导课程中,每当有人问"怎样才能让工作更专业",这本书就是答案。它会教你如何承担责任、避免重复、设计便于变更、保持技术敏感等。现在已经出版了 20 周年纪念版。

《代码整洁之道》——经典但有时代局限
Robert C. Martin 的这本书被广泛认为是最优秀的编程书籍之一,主要讲解代码编写和结构组织。我印象最深的是它对测试的重视——测试是打造高质量代码的关键手段。
不过这本书的部分观点已经不够时效了。比如"保持函数短小"这条建议,导致大量小型函数产生,反而让代码变得更碎片化。但其中关于命名规范和测试实践的核心概念依然有价值,光这一点就值回书价。这本书很适合和下一本搭配阅读。

《软件设计哲学》——深度理解设计原则
John Ousterhout 的这本书是我希望早点读到的那本。《代码整洁之道》侧重于告诉你该做什么,而这本则解释复杂性如何积累,以及如何通过抽象和信息隐藏来对抗它。
我花了不少时间才真正理解:为什么类要设计得"深"、接口要设计得"浅",以及"设计两次"到底意味着什么。
当然,这本书也不是完美的——它过度强调代码注释、对测试驱动开发持批评态度,但每本书都有其取舍。如果要说这份书单里我反复回味的,就是这本。对于从事大型代码库或准备晋升高级职位的人来说,这是必读的。

工程定律与原则
《软件工程法则》——系统性学习行业经验
这是我自己写的书,2026 年 4 月出版,花了两年时间完成。它填补了其他书籍没有覆盖的空白。
每位工程师都迟早会在职业生涯中亲身遇到这些定律。你会观察到 Brooks 定律——当意识到软件架构与组织结构高度一致时;你会撞上 Gall 定律——试图重写软件却遭遇失败时;你会经历 Goodhart 定律——达成指标后产品和组织反而更差了。
问题是,没有人系统地教授这些经验。你只能从同事那里、从复盘会议中、从犯下的惨痛错误里去慢慢领悟。
这本书汇集了 63+ 条经验定律与原则,覆盖七个领域:
- 架构与复杂性
- 人员与团队
- 时间与规划
- 质量与维护
- 规模与性能
- 编码与设计
- 决策与偏见
每条法则都说明其含义、出处、适用时机,以及在真实项目中的具体表现。本书由 Thoughtworks 前 CTO Rebecca Parsons 博士和 Google Cloud AI 工程总监 Addy Osmani 撰写前言,Google、Amazon、Uber、Oracle 等公司的工程师参与审校。

架构基础
这个类目下的书,我认为每位 senior 工程师或架构师都应该读。通过它们,你能获得对架构师职责的完整认知。
《软件架构基础》——入门者的第一本书
Mark Richards & Neil Ford 合著的这本书,是我向任何想学习软件架构的人推荐的第一本。书中涵盖:架构风格、权衡分析、Fitness Function,以及如何记录决策——这些对未来的项目维护非常有价值。
读这本书之前,"架构"对我来说是某种抽象的概念;读完之后,我才看清它具体是什么。
两位作者随后还出版了《Head First Software Architecture》,更加面向初学者,用简单的语言和丰富的视觉化方式讲解软件架构。

软件架构与设计
《Software Architecture: The Hard Parts》
如果你正在处理复杂项目,这本书值得一读。它不只讲基础原理,而是带你深入理解如何拆分单体架构、各设计模式的适用场景,以及如何在这些模式间找到恰当的权衡。

《Domain-Driven Design Quickly》
这本书是入门 DDD 的理想起点,比 Evans 那本 500 页的原版著作更容易消化。内容清晰易懂,附带完整的实战案例,并介绍了六边形架构的基本概念。建议先读这本,再深入更系统的领域驱动设计理论。

系统与数据
这类书籍帮助你深入理解数据处理和分布式系统的本质。
《Designing Data-Intensive Applications》(DDIA),第 2 版
这是软件工程领域被引用最多的书籍之一,今年 3 月推出了第二版,新增了 AI 数据系统和新兴分布式系统模式的覆盖。全书近 700 页,阅读难度不低,但完全值得投入。作为高级工程师,你在工作中会遇到书中讨论的许多核心问题。

《Understanding Distributed Systems》
如果你是分布式系统学习的入门者,这本书是理想选择。它比 DDIA 更容易理解,特别适合职业生涯早期阶段。最大的亮点是将分布式系统的主要议题——通信、API、协作、事务、可扩展性、弹性等——用易懂的方式逐一展开。

AI 工程
这是今年新增的分类,收录了近几年问世的 AI 系统构建相关书籍,帮助你在 LLM 应用中设计出可靠、易维护的系统。
《The Hundred-Page Language Models Book》
想要真正理解 LLM 的工作原理,这本书是正确选择。作者 Burkov 从机器学习基础讲起,逐步覆盖 RNN 再到 Transformer,每个章节都配有 Python 代码和 Jupyter Notebook。前言由词嵌入技术原创作者之一 Tomáš Mikolov 撰写。此书可在 thelmbook.com 免费在线阅读。

《AI Engineering》
如果说 Burkov 的书侧重理论,那么这本书则聚焦生产实践。内容涵盖模型选型、评估、MLOps、多智能体系统以及规模化策略,是构建 AI 应用的最佳指南之一。

测试
《The Art of Unit Testing》
单元测试是开发者交付高质量软件的关键能力。这本书深入讲解如何编写单元测试、如何界定测试范围、以及该测什么。它不仅帮助你发现 bug,还能在重构时提供安全网,并有效达成覆盖率目标。第三版已更新至现代语言和工具链。

工程实践与交付
《Accelerate》
本书基于实证研究,剖析了成功的技术组织与普通组织之间的本质差异。作者识别出四个关键指标:部署频率、前置时间、变更失败率和平均恢复时间——这四项被称为 DORA 指标,至今仍是衡量工程团队健康状况的最佳代理变量。在讨论团队效能之前,建议先读这本书。

《Refactoring》
是的,就是那本《重构》。这本书之所以重要,是因为它关注的是「如何改造现有系统」而非「如何构建新系统」——而改造现有系统恰恰是我们日常工作中更常面对的任务。重构是在不改变系统外部行为的前提下,改善其内部结构的过程。
第二版中,作者将示例语言从第一版的 Java 改为了 JavaScript。

职业发展
《The Software Engineer's Guidebook》
专门为软件工程师职业成长而写的书向来稀缺——这类知识以往只能靠自己去摸索、靠口耳相传的经验来积累。Gergely Orosz 填补了这个空白。这本书帮助你从初级工程师成长为 staff 级别,学会应对绩效评估,成为更高效的个人贡献者。

《Deep Work》
这不是一本技术书,但它对你的职业生涯影响深远。作者指出,能够长时间深度专注于复杂问题是一项稀缺能力——这种能力区分了优秀工程师与普通工程师。书中还讨论了如何提升学习效率,并给出了具体可行的策略。

从哪里开始
选择与你当前困境最匹配的那本书:

软件工程书单:我反复推荐的那些书
从业十余年,在不同阶段反复翻阅的书目,整理于此。


评论