软件工程师必读的13本书
根据我的个人书架和一些研究,我列出了一些比较重要的软件工程书籍,我相信它们可以让读者的专业技术更上一层楼。
1. Introduction To Algorithms
数据结构和算法是每个软件工程师的基础支柱,虽然这些在日常工作中用的不多,但是了解不同的技术和模式是一个很好的加分项 Introduction To Algorithms 是精通数据结构和算法的完美全能书籍,这是一本理论性很强的书,不过它也有完美的算法题和解决方案。
中文版:算法导论
2. Cracking The Coding Interview
对于那些正在积极找工作,但是在技术面试中遇到困难的人来说,Cracking The Coding Interview 是一种救赎。在解决不同算法难题时,这部杰作可以给你很好的答案。
中文版:程序员面试金典
3. Clean Code
仅仅让软件正常工作可不是让软件工程师的最终目标。 每次软件工程师进行代码审查时,他/她首先想到的问题应该是: 我可以让这段代码更高效吗?我可以让这段代码占用更少的内存吗?代码是否整洁?我可以使用不同的 OOP 技术吗?而 Clean Code 肯定可以帮助您提高重构的技能。
中文版:代码整洁之道
4. Refactoring
Martin Fowler 的重构是 Clean Code 的替代书籍, 它可能是对前一个的补充,虽然某些部分可能看起来像重复的。
中文版:重构
5. Design Patterns
面向对象编程可以让软件系统更加灵活、有效,以及拥有更好的代码可读性。经验丰富的软件工程师应该经常使用这些技术。(如果技术栈合适的话……)。Design Patterns 是一本畅销书,它不仅教给我们 OOP,还教给我们很多适用于特定用例的不同设计模式。
中文版:设计模式 - 可复用面向对象软件的基础
6. Clean Architecture
Robert C. Martin 的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。
中文版:架构整洁之道
7. Software Architecture in Practice
本书根据软件生命期的特点,分预想构架、创建构架、分析构架和从一个系统至多个系统进行阐述。
中文版:软件架构实践
8. System Design Interview
本书是第二版,System Design Interview 是从全局角度理解不同软件、产品、架构的完美书籍。对于那些积极寻找软件工作的人来说,这本书很有帮助。
作者 Alex Xu 是一位经验丰富的软件工程师, 曾在 Twitter, Apple 和 Oracle 任职,来自CS名校卡内基梅隆大学,热衷于系统设计。
暂无中文版, 不过笔者之前曾翻译过第一版的几章内容,感兴趣的可以看一下。
【系统设计】设计一个支持百万用户的系统
【系统设计】设计一个限流组件
【系统设计】设计一个短链接系统
9. Designing Data-Intensive Applications
Designing Data-Intensive Applications 是我自己最喜欢的书之一, 经典之作 DDIA。这本书侧重于介绍分布式环境中的大数据软件系统。
中文版:数据密集型应用系统设计
10. Domain Driven Design
Eric Evans 的 Domain Driven Design 是一部经典著作,在出版 20 年后仍然很受欢迎。
领域模型使开发人员可以表达丰富的软件功能需求,由此实现的软件可以满足用户真正的需要,因此被公认为是软件设计的关键所在,其重要性显而易见。
但讲述如何将领域模型用于软件开发过程的杰出的实用资料却不多见。本书正是这一领域声名显赫的作品,受到众多业界大师的赞美和推介,广受读者好评。
中文版:领域驱动设计
11. Building Microservices
另一个热门话题是当下流行的微服务, Building Microservices 是理解这个架构指南的基础书籍,特别是在从单体系统开始迁移到微服务。
中文版:微服务设计
12. Effective DevOps
DevOps 的氛围在快速增长,《 Effective DevOps》是想要深入了解 DevOps 哲学的开发人员的基础书籍之一。虽然这本书可能看起来很旧,但它绝对很有用。
中文版:Effective DevOps 中文版
13. The Healthy Programmer
吾生也有涯,而知也无涯。以有涯随无涯,殆己!所以在学习的过程中也要保持一个健康的身体状态。
中文版:程序员健康指南
希望对您有用!