2021年1月24日

2024 程式書單推薦|軟體工程師的自我修練!書櫃裡不可以少了這些書

扎實的基本功是一切的基礎,

在這個資訊發達的時代,網路上到處都可以獲得學習資源,

如果想要系統化地學習一套完整的知識,閱讀仍舊是最好的選擇之一。

Clean Code系列

《無瑕的程式碼:敏捷軟體開發技巧守則》

Clean Code: A Handbook of Agile Software Craftsmanship

難度: ★☆☆☆☆

非常著名的一本書,號稱所有工程師都該閱讀。

可以藉由閱讀此書建立一些基本概念,理解什麼是好的程式碼。

→博客來書籍連結

 

《無瑕的程式碼 敏捷完整篇:物件導向原則、設計模式與C#實踐》

Agile principles, patterns, and practices in C#

難度: ★★☆☆☆

前一本書的延續,介紹更深入的概念,例如SOLID原則,並討論要如何面對更複雜的系統。

→博客來書籍連結

 

《無瑕的程式碼:整潔的軟體設計與架構篇》

Clean Architecture : A Craftsman’s Guide to Software Structure and Design

難度: ★★★☆☆

這本相較於前面兩本,雖然也是由物件導向切入,但這本花比較大的篇幅討論架構,談論的概念相對深的多,建議較多開發經驗的人閱讀,會比較有心得。

→博客來書籍連結

開發 & 軟體工程

《單元測試的藝術》

The Art of Unit Testing: with examples in C# Second Edition

難度: ★★☆☆☆

想學習單元測試概念和做法的人,可以參考的入門書。不過書中範例是用C#,不熟悉這個語言的人,可能要稍微習慣一下。

→博客來書籍連結

 

《Design Patterns, Elements of Reusable Object-Oriented Software》

難度:★★★★☆

經典的好書,設計模式的始祖,俗稱 GOF,可惜書中的範例有點古老,若能夠接受的話,可以學到很多。

→天瓏書店書籍連結

由於 GOF 是比較經典的書籍,用字比較精簡,對於初學者來說比較困難,可以參考另外一筆比較口語的《深入淺出設計模式》

 

《重構:改善既有程式的設計》

Refactoring

難度:★★☆☆☆

提供各種做法改善既有的程式碼,藉由這樣的過程,理解什麼是好的程式。目前出到第二版,使用 JavaScript 為範例,範例相對親切好理解。

→博客來書籍連結

 

《管理、修改、重構遺留程式碼的藝術》

Working Effectively with Legacy Code

難度:★★☆☆☆

相較於《重構》,探討更多專案開發的議題,討論如何讓一個產品或專案,要怎麼保持健康度,或恢復健康。

→博客來書籍連結

 

《程序員修煉之道》

The Pragmatic Programmer

難度:☆☆☆☆☆

工程師除了技術能力要提升,也要發展在職場上的軟實力。《程序員修煉之道》中有豐富的案例,分享了作者的開發的心法,以及職場經驗,不同階段的開發人員重新閱讀,都有所不同的啟發。

→博客來書籍連結

 

《軟體構築美學:當專案團隊遇上失控程式,最真實的解決方案》

Brownfield Application Development in .NET

難度:★☆☆☆☆

已絕版的好書,圖書館或二手市場可能還找得到。對於專案開發的現場,有非常真實的描述與建議。

PHP

《PHP Objects Patterns and Practice》

難度: ★★☆☆☆

用物件導向的方式來學習 PHP,有別於一般的 PHP 入門書,此書算是比較進階一點的。但個人認為這本書對於學習 PHP 相當有幫助,不想要永遠 CRUD 的 API 工程師,必讀。

PHP 7版本→博客來書籍連結(原文)

PHP 8版本→博客來書籍連結(原文)

MySQL

《High Performance MySQL》

難度:★★★★☆

深入理解MySQL的原理,涉及資料庫系統本身設計的原理,需要一些資料結構或演算法的基礎。讀起來的難度較高,但對於MySQL會有更深入的了解,像是書中詳細說明了index的原理,開發者日後對於設定index或是SQL要怎麼下,會更有想法。

→天瓏書店書籍連結(原文)

→博客來書籍連結(簡中)

專案管理

《人月神話:軟體專案管理之道》

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition

難度: ★☆☆☆☆

專案管理的經典書籍,歷久彌新,即便不是主管或PM,都很值得閱讀。對RD來說,也可以更了解專案運行的方式,看到技術以外的面相。

→博客來書籍連結

基礎知識

《精通正規表達式》

Mastering Regular Expressions

難度: ★☆☆☆☆

正規表達式是相當方便的工具,像是從茫茫 log 中找到正確的資訊,或是撰寫欄位驗證,都可以使用;正規表達式的使用可淺出可深入,但學會正規表達式可以有效地改善您的工作效率。

→天瓏書店書籍連結

 

《Computer Networking A Top-Down Approach》

難度: ★★★☆☆

我認為這本書非常適合作為想要學習網路架構的人。尤其對於網頁工程師來說,就是在網路架構上開發,所以不論是前端、後端或維運端,都應該懂一些網路架構,這樣才有辦法處理更困難的問題,往更深的領域邁進。

 

本篇是開發系列文章,更多開發相關文章請參考→這裡