軟件工程師必讀的12本書
- 2022 年 6 月 15 日
- 筆記
根據我的個人書架和一些研究,我列出了一些比較重要的軟件工程書籍,我相信它們可以讓讀者的專業技術更上一層樓。
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 中文版
希望對您有用!