Tech World With Milan Newsletter

Tech World With Milan Newsletter

The Software Engineering Books I keep recommending我一直在推荐的软件工程书籍

And what each one actually teaches you以及每本书的核心价值

Dr Milan Milanović's avatar
Dr Milan Milanović
Jun 04, 2026

People who know me are aware that I love books. I read them all the time and have a big bookshelf. Some ask me why, and the reason is twofold. First, it is a way to work (almost) directly with big names in our industry; second, this is my comparative advantage, as most developers don’t read. 了解我的人都知道我热爱读书。我总是手不释卷,书架上也摆满了书。有人问我为什么,原因有二:首先,这是与行业大牛进行(近乎)直接交流的一种方式;其次,这是我的比较优势,因为大多数开发者并不读书。

Knowledge from the books gives me breadth and depth when discussing, deciding, and working with people and projects. And also in the AI world, it is even more important, so we can judge and guide AI properly.书籍中的知识让我在与人沟通、决策以及处理项目时,拥有更广的视野和更深的见解。在人工智能时代,这一点尤为重要,它能帮助我们正确地评判和引导 AI。

When I look at the must-read book list, they are all the same. You will find books such as Clean Code, The Pragmatic Programmer, and DDIA. When people ask me to recommend books, I tend to add something more to those ones. I base my opinion on books I have used, talked about with colleagues, and already recommended in private. 当我查看必读书单时,发现内容大同小异。你总会看到《代码整洁之道》、《程序员修炼之道》和《数据密集型应用系统设计》(DDIA)等书。当人们请我推荐书籍时,我倾向于在这些经典之外补充一些内容。我的观点基于我亲身阅读、与同事探讨以及私下推荐过的书籍。

Some of these books are really old, like 15-20 years or more, but they are still valid because they contain evergreen knowledge. But there are some new ones which I believe will become evergreen in the future. You will notice they are mostly tech-agnostic, so they can be relevant in many fields.其中一些书非常老,甚至有 15-20 年以上的历史,但它们依然不过时,因为其中蕴含着永恒的知识。当然,也有一些我认为未来会成为经典的新书。你会发现它们大多与具体技术无关,因此在许多领域都适用。

I grouped the books by the problem they solve. Because the right question isn’t “what should I read?” It’s “What am I struggling with right now?”我按书籍解决的问题对它们进行了分类。因为正确的问题不是“我该读什么?”,而是“我目前正面临什么难题?”

In 2024, I shared a long list of 30+ fundamentals that don’t change. This is the shorter, 2026 version: the books I still recommend, plus the AI and systems books that actually matter now.2024 年,我分享了一份包含 30 多条不变基础原则的清单。这是 2026 年的精简版:我依然推荐的书籍,以及现在真正重要的 AI 和系统类书籍。

So, let’s dive in.那么,让我们开始吧。


Your team’s second brain. Now in Slack. (Sponsored)
你团队的“第二大脑”,现已接入 Slack。(赞助内容)

Your engineers talk in Slack. They code in the terminal. Somewhere between those two things, context dies.工程师在 Slack 上交流,在终端里写代码。在这两者之间,上下文往往会丢失。

  • A bug is debated in #incidents at 2 AM.凌晨 2 点在 #incidents 频道讨论 Bug。

  • An architectural call is made in a DM.在私信中敲定架构决策。

Every handoff leaks context, and every leak costs you. That’s the context tax - and your team pays it every day.每一次交接都会造成上下文流失,而每一次流失都在增加你的成本。这就是“上下文税”——你的团队每天都在为此买单。

CodeRabbit Agent for Slack is built for agentic SDLC workflows. One agent for your entire Software Development Lifecycle, living in the channel where the work already happens. Your team keeps shipping while the agent maintains context.CodeRabbit Agent for Slack 专为代理驱动的 SDLC(软件开发生命周期)工作流而生。它是一个贯穿整个开发周期的智能代理,就驻留在你们日常工作的频道中。在团队持续交付的同时,代理会自动维护上下文。

Try CodeRabbit Agent for Slack试用 CodeRabbit Agent for Slack


How do you think about code
如何思考代码

This group of books holds ones that keep the fundamentals of our job. They are the basis of good coding and the job of software engineers in general. 这一组书籍涵盖了我们工作中最为核心的基础知识。它们是编写高质量代码和作为一名软件工程师的立身之本。

The Pragmatic Programmer by David Thomas & Andrew Hunt
《程序员修炼之道》(The Pragmatic Programmer),作者:David Thomas 和 Andrew Hunt

I have recommended the book many times, and I will continue to do so. Some people think it is about coding, but it is more about the mindset than coding. When people ask me in our coaching sessions how to become better and more professional in their work, this is the book I recommend. It will teach you how to become responsible, avoid duplication, design for change, stay up to date with technology, and more. Now, there is an updated 20th-anniversary edition.我已经多次推荐这本书,未来还会继续推荐。有些人以为它只讲编程,但其实它更多是在讲思维方式。当人们在辅导课程中问我如何变得更优秀、更专业时,我首推这本书。它会教你如何承担责任、避免重复、为变更而设计、保持技术前沿等。现在已有 20 周年纪念版。

Check my short text about the book here. 点击此处查看我关于这本书的短评。

𝗪𝗵𝗮𝘁 𝗜 𝗟𝗲𝗮𝗿𝗻𝗲𝗱 𝗙𝗿𝗼𝗺 𝗧𝗵𝗲 𝗕𝗼𝗼𝗸 "𝗣𝗿𝗮𝗴𝗺𝗮𝘁𝗶𝗰  𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗲𝗿" One book I always recommend to developers is "Pragmatic  Programmer" by David Thomas and Andrew Hunt. Although it is not new, it  builds on

Clean Code by Robert C. Martin
《代码整洁之道》(Clean Code),作者:Robert C. Martin

Widely considered one of the best books out there. It teaches you to code and structure it properly. What I liked about it was its approach to testing for creating high-quality code.它被公认为业界最好的书籍之一。它教你如何编写和组织整洁的代码。我最喜欢的是它关于通过测试来构建高质量代码的方法。

It didn’t age well, as some of its rules are now outdated. One example is to keep functions small, resulting in many small chatty functions. Yet there are still some valid concepts, such as good naming and testing, which are worth the price alone. The book is a good pair with the next one.不过这本书有些内容已经过时了,比如它的一些规则在今天看来显得有些陈旧,例如“保持函数短小”会导致大量琐碎的函数。但书中关于良好命名和测试的理念依然有效,单凭这一点就物超所值。这本书非常适合与下一本搭配阅读。

A Philosophy of Software Design by John Ousterhout
《软件设计哲学》(A Philosophy of Software Design),作者:John Ousterhout

This is the book I wish I had read sooner. Why Clean Code is more focused on what to do, this book explains why complexity accumulates and how to fight it with abstraction and information hiding. It took me a while to understand why classes should be deep and interfaces simple and what “design it twice” really means.这是我后悔没早点读到的书。《代码整洁之道》侧重于“怎么做”,而这本书解释了复杂性是如何累积的,以及如何通过抽象和信息隐藏来对抗它。我花了一段时间才理解为什么类应该“深”而接口应该“简单”,以及“设计两次”(design it twice)的真正含义。

Yes, this book is not perfect either. It embraces code comments and considers TDD harmful, but everything has its price.当然,这本书也不完美。它推崇代码注释并认为 TDD(测试驱动开发)有害,但凡事皆有代价。

If there’s one book on this list I keep coming back to, it’s this one. Essential if you’re working on a large codebase or moving into a senior role.如果书单中有一本书是我会反复阅读的,那就是这本。如果你正在维护大型代码库或即将晋升为资深工程师,它是必读之作。

Check my full book review here.点击此处查看我的完整书评。


Engineering Laws & Principles
工程定律与原则

Laws of Software Engineering by Dr. Milan Milanović
《软件工程定律》(Laws of Software Engineering),作者:Milan Milanović 博士

Yes, this is my book, which I released in April 2026 after two years of writing. It covers the gap that none of the other books do.没错,这是我自己的书,历时两年写作,于 2026 年 4 月出版。它填补了其他书籍未曾覆盖的空白。

Every engineer will learn these laws eventually during their career. You will notice Brooks’ Law when you understand that your software architecture is the same as your organizational structure. When you try to rewrite software and fail, you will hit Gall’s Law. Goodhart’s Law is the idea that when you hit defined metrics, your product and organization are still worse than before.每位工程师在职业生涯中终会领悟这些定律。当你意识到软件架构与组织结构如出一辙时,你便会发现“布鲁克斯定律”(Brooks’ Law);当你尝试重写软件却遭遇失败时,你会撞上“盖尔定律”(Gall’s Law);而“古德哈特定律”(Goodhart’s Law)则提醒我们,当你盲目追求定义的指标时,产品和组织往往会变得更糟。

The thing is that no one is teaching you these lessons systematically. You learn them by hearing them from your colleagues, in post-mortems, and when you make painful mistakes.问题在于,没有人系统地教你这些课程。你通常只能通过同事的口述、事后总结(post-mortems)或是亲身经历痛苦的错误后才能学到。

This book collects 63+ empirical laws and principles across seven areas: 这本书收集了七大领域中 63 条以上的经验定律与原则:

  • Architecture & Complexity架构与复杂性

  • People & Teams人员与团队

  • Time & Planning时间与规划

  • Quality & Maintenance质量与维护

  • Scale & Performance规模与性能

  • Coding & Design编码与设计

  • Decision-Making & Biases决策与偏见

Each law covers what it says, where it came from, when it applies, and what it looks like on a real project. Forewords by Dr. Rebecca Parsons (CTO Emerita, Thoughtworks) and Addy Osmani (Engineering Director, Google Cloud AI). Reviewed by engineers from Google, Amazon, Uber, Oracle, and others.每一条定律都涵盖了其含义、起源、适用场景以及在真实项目中的表现。由 Rebecca Parsons 博士(Thoughtworks 首席技术官)和 Addy Osmani(谷歌云 AI 工程总监)作序,并经由谷歌、亚马逊、Uber、甲骨文等公司的工程师审阅。


Architecture
架构

In this group, we have some books I consider to be fundamentals that every senior software engineer or architect should read. You will get a breath of architects’ jobs with them.这一类书籍我认为是每位资深软件工程师或架构师的必读基础。通过它们,你可以全面了解架构师的工作。

Fundamentals of Software Architecture by Mark Richards & Neil Ford
《软件架构基础》(Fundamentals of Software Architecture),作者:Mark Richards 和 Neil Ford

For anyone learning about software architecture, this is the first book I would recommend. Inside, you will learn about: Architectural styles, trade-off analysis, fitness functions, and how to document decisions that will help you in the future. 对于任何学习软件架构的人来说,这是我首推的书。书中涵盖了:架构风格、权衡分析、适应度函数,以及如何记录决策以帮助未来的工作。

Before this book, architecture felt like something more abstract than it is.读这本书之前,架构对我来说显得非常抽象。

In the meantime, the authors released a new book called Head First Software Architecture, which is even more beginner-friendly. It teaches you software architecture in simple terms and a visually rich format.顺便一提,作者们后来发布了新书《Head First Software Architecture》,对初学者更加友好。它用简单的术语和丰富的视觉格式来讲解软件架构。

Software Architecture: The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage & Zhamak Dehghani
《软件架构:难点》(Software Architecture: The Hard Parts),作者:Neal Ford, Mark Richards, Pramod Sadalage 和 Zhamak Dehghani

This is the book I read when working on complex projects. Fundamentals give you the basics, but this book guides you through the complexities. Concretely, you will learn how to break apart the monolith, when each pattern can help, and how to properly balance tradeoffs for those patterns.这是我在处理复杂项目时会阅读的书。《软件架构基础》教你入门,而这本书则带你攻克复杂难题。具体来说,你将学会如何拆解单体应用、何时使用某种模式,以及如何为这些模式平衡权衡。

Check my full book review here.

Domain-Driven Design Quickly by Abel Avram & Floyd Marinescu
《领域驱动设计精简版》(Domain-Driven Design Quickly),作者:Abel Avram 和 Floyd Marinescu

This book is a good entry point for learning about DDD before you dive into Evans’ original 500-page book. It offers clear writing, a real worked example, and a solid introduction to hexagonal architecture. I recommend reading this first.​在深入阅读 Evans 那本 500 页的原著之前,这本书是学习 DDD(领域驱动设计)的绝佳切入点。它行文清晰,包含实际案例,并对六边形架构做了扎实的介绍。建议先读这一本。

Domain Driven Design Quickly : Avram, Abel, Marinescu, Floyd: Amazon.in:  Books

Systems & Data
系统与数据

In this group, we have books that help you gain a deep understanding of data and distributed systems. 这一组书籍能帮助你深入理解数据和分布式系统。

Designing Data-Intensive Applications, 2nd Edition by Martin Kleppmann & Chris Riccomini
《数据密集型应用系统设计》(Designing Data-Intensive Applications),第二版,作者:Martin Kleppmann 和 Chris Riccomini

This is the second edition of the famous DDIA book, which is probably the most referenced book in software engineering. It was released as an ebook and in print this year in March. This edition builds on it with new coverage of AI data systems and new distributed system patterns. It’s almost 700 pages, and yes, it’s not easy to understand everything, but it’s worth it. As a senior engineer, you will tackle many of these issues in your job.这是著名的 DDIA 的第二版,可能是软件工程领域被引用次数最多的书。它于今年 3 月发布了电子版和印刷版。这一版增加了关于 AI 数据系统和新的分布式系统模式的内容。全书近 700 页,确实很难完全消化,但非常值得。作为一名资深工程师,你在工作中一定会遇到这些问题。

Check my full review of the first edition here.点击此处查看我关于第一版的完整书评。

Designing Data-Intensive Applications: The Big Ideas Behind Reliable,  Scalable, and Maintainable Systems: 9781098119065: Computer Science Books @  Amazon.com

Understanding Distributed Systems by Roberto Vitillo
《理解分布式系统》(Understanding Distributed Systems),作者:Roberto Vitillo

If you need the first book to learn about Distributed Systems, this is the book for you. The book is easier to understand than DDIA, especially for those early in their careers. What stands out is that it covers the major topics of distributed systems in an understandable way for everyone, which is its main strength. You will learn about communication, APIs, coordination, transactions, scalability, resiliency, and more. Strongly recommended.如果你需要一本分布式系统的入门书,选这本就对了。相比 DDIA,这本书更容易理解,特别适合职业生涯早期的工程师。它的核心优势在于以通俗易懂的方式涵盖了分布式系统的主要议题。你将学到通信、API、协调、事务、可扩展性、弹性等知识。强烈推荐。

It was a joyful reading during my holidays.假期读这本书真是种享受。

​AI Engineering
AI 工程

This is a new section with books on building AI-based solutions, mostly from the last few years. They help design systems that are reliable and maintainable when having LLM in the loop.这是一个新板块,收录了近几年关于构建 AI 解决方案的书籍。它们能帮助你在引入大语言模型(LLM)时,设计出可靠且易于维护的系统。

The Hundred-Page Language Models Book by Andriy Burkov
《百页大模型书》(The Hundred-Page Language Models Book),作者:Andriy Burkov

If you want to really understand how LLMs work, this is the right book. Burkov builds from ML basics through RNNs to transformers, with Python code and Jupyter notebooks at every step. Foreword by Tomáš Mikolov, one of the original creators of word embeddings. Burkov is the author of the even more famous book “The Hundred-Page Machine Learning” book. 如果你想真正理解 LLM 的工作原理,这就是你的不二之选。Burkov 从机器学习基础讲起,经由 RNN 到 Transformer,每一步都配有 Python 代码和 Jupyter Notebook。由 word embeddings 的原创者之一 Tomáš Mikolov 作序。Burkov 也是更著名的《百页机器学习书》的作者。

It is available free to read at thelmbook.com.​你可以在 thelmbook.com 免费阅读。

The Hundred-Page Language Models Book: hands-on with PyTorch (The Hundred-Page  Books): Burkov, Andriy: 9781778042720: Amazon.com: Books

AI Engineering by Chip Huyen
《AI 工程》(AI Engineering),作者:Chip Huyen

While Burkov’s books are mostly tied to theory, in this book, Huyen moves into production reality. The book talks about: model selection, evaluation, MLOps, multi-agent systems, and scaling. It is probably the best guide to build AI applications. 如果说 Burkov 的书侧重理论,那么 Huyen 的这本书则带你进入生产环境的现实。书中讨论了:模型选择、评估、MLOps、多智能体系统以及扩展性。这可能是构建 AI 应用最好的指南。


Testing
测试

Even though I recommended a few books in this category, this time I decided to be only one. 尽管我在这个类别中读过不少书,但这次我决定只推荐这一本。

The Art of Unit Testing by Roy Osherove
《单元测试的艺术》(The Art of Unit Testing),作者:Roy Osherove

The book describes unit testing, which is crucial for developers to make high-quality software. It goes into details on how to write unit tests, how to scope them, and what to unit test. It will help you not only catch bugs but also survive refactorings and properly hit coverage numbers. The third edition covers modern languages and tooling.​这本书阐述了单元测试,这对开发者构建高质量软件至关重要。它详细介绍了如何编写单元测试、如何确定测试范围以及测试什么。它不仅能帮你发现 Bug,还能助你从容应对重构并达成测试覆盖率目标。第三版涵盖了现代语言和工具。


Practices & Delivery
实践与交付

Accelerate by Nicole Forsgren, Jez Humble & Gene Kim
《加速》(Accelerate),作者:Nicole Forsgren, Jez Humble 和 Gene Kim

The book, which is built on research and examines what makes successful technology organizations different from others. Authors identified four metrics: deployment frequency, lead time, change failure rate, and mean time to recovery. They are called DORA metrics, and they still remain the best proxy for engineering team health. Read it before any conversation about productivity.​这本书基于研究,探讨了成功的技术组织与众不同的原因。作者确定了四个关键指标:部署频率、交付周期、变更失败率和平均恢复时间。它们被称为 DORA 指标,至今仍是衡量工程团队健康状况的最佳代理指标。在讨论生产力之前,先读读这本书。

Refactoring by Martin Fowler
《重构》(Refactoring),作者:Martin Fowler

Yes, that Refactoring book. This is one of the most important ones, as it addresses how to change existing systems rather than build new ones. Changing existing systems is something we do more often than others. Refactoring is the process of changing a software system without altering its external behavior while improving its internal structure.没错,就是那本《重构》。这是最重要的书籍之一,因为它解决了如何改变现有系统而不是重新构建的问题。改变现有系统是我们工作中做过最多的事情。重构是在不改变外部行为的前提下,改进软件内部结构的过程。

In the 2nd edition of the book, the author used JavaScript instead of Java, which was used in the 1st edition.在第二版中,作者将第一版使用的 Java 换成了 JavaScript。

Refactoring: Improving the Design of Existing Code (2nd Edition)  (Addison-Wesley Signature Series (Fowler)): Fowler, Martin: 9780134757599:  Amazon.com: Books

Career
职业发展

The Software Engineer’s Guidebook by Gergely Orosz
《软件工程师指南》(The Software Engineer’s Guidebook),作者:Gergely Orosz

It was a rare thing for someone to write a book for a software engineer’s career. This is something that we usually must learn from our own experience and the experiences of others. Gergely changed that when he wrote this book. It will help you grow from junior to staff, navigate performance reviews, and become a more effective individual contributor. 过去几乎没人专门为软件工程师的职业生涯写书。这通常是我们必须从个人经验或他人经历中领悟的。Gergely 写下这本书改变了现状。它能帮助你从初级工程师成长为资深员工,应对绩效评估,并成为更高效的个人贡献者。

It is an Amazon #1 bestseller, now in 6 languages and 8 editions. Gergely runs The Pragmatic Engineer newsletter, which is probably the best newsletter in the industry.它是亚马逊畅销榜第一名的书籍,现已有 6 种语言和 8 个版本。Gergely 运营着《The Pragmatic Engineer》时事通讯,这可能是业内最好的通讯。

Deep Work by Cal Newport
《深度工作》(Deep Work),作者:Cal Newport

This is not a software book, but it can help you a lot in your career. The author writes that the ability to focus intensely on hard problems for an extended period is valuable. This skill separates great engineers from good ones.这不是一本软件书,但对你的职业生涯大有裨益。作者认为,长时间专注于难题的能力非常宝贵。这种技能是将伟大工程师与优秀工程师区分开来的关键。

The book discusses how to improve learning performance and offers concrete strategies to do so. 书中讨论了如何提高学习效率,并提供了具体的实施策略。


Where to start
从哪里开始

Pick the book that matches where you’re stuck right now:根据你目前遇到的瓶颈,挑选最适合的一本:

Now I wonder, what’s one book that changed how you think about software, not just how you write it? Reply and let me know. The best answers will be included in a future issue. And if this list was useful, forward it to one engineer who’d appreciate it.现在我想问问,哪一本书改变了你对软件的思考方式,而不仅仅是如何编写它?欢迎回复告诉我。最好的回答将收录在未来的文章中。如果这份书单对你有用,请转发给可能需要它的工程师朋友。


Want to advertise in Tech World With Milan? 📰
想在 Tech World With Milan 投放广告吗?📰

If your company is interested in reaching founders, executives, and decision-makers, you may want to consider advertising with us.如果你的公司希望接触到创始人、高管和决策者,可以考虑与我们合作。


Love Tech World With Milan Newsletter? Tell your friends and get rewards.
喜欢 Tech World With Milan 时事通讯吗?告诉你的朋友并获取奖励。

Share it with your friends by using the button below to get benefits (my books and resources).使用下方的按钮分享给朋友,即可获得福利(我的书籍和资源)。

Share Tech World With Milan Newsletter分享 Tech World With Milan 时事通讯

Track your referrals here.在此追踪你的推荐记录。

German Rubiano's avatar
Michael Antczak's avatar
Raymond's avatar
Henry Ogedegbe Jr.'s avatar
Umesh Srinivasan's avatar
62 Likes62 个赞∙
8 Restacks8 次转发

Discussion about this post

User's avatar
Vaibhav Patil's avatar
Vaibhav Patil
6月25日

Excellent information

Like (1)
Reply
Share
The Pragmatic Backend's avatar
The Pragmatic Backend
6月5日

Great article..

Thanks for sharing

Like (1)
Reply
Share
Learn things that don't change
And take a look into books I recommend you to read in 2024. (34 books)
May 16, 2024 • Dr Milan Milanović
What I learned from the book Designing Data-Intensive Applications
One of the must-reads for every software engineer out there.
Jun 19, 2025 • Dr Milan Milanović
How to become an expert in anything
Becoming an expert in software engineering or any other field isn't just about combining years of experience or learning the latest frameworks. Learn…
Aug 22, 2024 • Dr Milan Milanović

Ready for more?

© 2026 Dr Milan Milanović · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture