[推坑] 推薦敏捷開發、專案管理、程序員養成、軟體設計 經典書籍 30 本

在各個研討會、培訓課程、顧問諮詢、社群活動教授時,最常被問到的問題就是:「你推薦哪幾本書?」

其實,這個問題沒有標準答案的,因為學習是循序漸進的,每個人的 context 不同,眼下最適合的書也就不同。這篇文章先把上次推薦的 30 本經典書籍列上來,實際學員眼下讀哪幾本書最有幫助,就得 case by case 瞭解了。

敏捷開發相關

  1. 影響地圖
  2. 使用者故事對照
  3. 實例化需求
  4. 測試驅動開發的藝術
  5. 驗收測試驅動開發-ATDD實例(這本就沒到經典等級)
  6. 測試驅動的面向對象軟件開發
  7. 單元測試的藝術-第二版
  8. 高品質程式
  9. 修改代碼的藝術
  10. 重構-改善既有代碼的設計
  11. 重構與模式
  12. GoF 設計模式(經典,但很難嚼,當有一些疑惑時,我會回頭看一下最原始 GoF 的書裡是怎麼說明的,當個額外的資訊參考)
  13. 敏捷軟件開發-原則、模式與實踐
  14. Clean Code
  15. 浮現式設計-專業軟件開發的演進本質
  16. 敏捷技能修煉-敏捷軟件開發與設計的最佳實踐
Kent Beck 的 《Test Driven Development: By Example》 我一開始看不懂,後來就一直沒回頭再看了,但身為 TDD 的老爸,相信肯定也是很經典

專案管理

  1. 軟件項目成功之道
  2. 人月神話
  3. 項目百態
  4. Peopleware(經典,但時空背景有些不同了)
還有一本影響我很深的書:《軟體構築美學》,但我找不到書,就沒法拍照了。

程序員養成

  1. 程序員修煉之道-從小工到專家
  2. The Clean Coder
  3. 高效能程序員的修煉
  4. 程序員的修煉-從優秀到卓越(比較經典的 blog 文章大部分都被收到前一本書裡面)
  5. 高校程序員的45個習慣-敏捷開發修煉之道
  6. Code Craft 編程匠藝(有許多可取之處,也有一些不一定符合現在的時空背景)

基礎建設

  1. 持續整合
  2. 持續交付

領域驅動設計(DDD)

  1. 領域驅動設計
  2. 領域驅動設計模式與實踐(當作上面那一本書的參考書籍)
Domain-Driven 我還是門外漢,但相信在系統架構與軟體設計層面,DDD 有其獨到跟美妙之處。

總結

書不是擺著就有用,也不是看過就有用。怎麼有組織、有效率地建立自己的知識關聯,怎麼樣儘速完成知識轉換的循環,減少知識半成品,才有機會內化成自己的。

有用才有用,沒用就沒用。

《禮記》裡面的《學記》有幾句話相當不錯:

  • 學,而知不足。
    • 飛機之所以持續飛行,是因為它沒空往下墜。
  • 教,而知困。
    • 教學相長,學學半。
  • 獨學而無友,孤陋而寡聞。
    • 一個人可以走很快,但一群人可以走得遠。

下次來分享一下 Agile, Scrum, Lean, Kanban, TOC, Facilitation, Change, Learning, Presentation 的相關書籍。

補充

  • 有些朋友會問,為啥簡體書居多?
因為我大部分挑的是該領域較經典的原文書,但大部分的書只有簡體中文的譯本,沒有繁體中文的譯本。而且簡體中文的售價便宜(相對的紙張品質也差,排版也不一定習慣),但對我來說,內容才是重點,如何快速獲取我需要的知識,才是我最大目標。當我對內容有所疑惑時,就會再去找找看是不是翻譯有謬誤。(當然,如果在 amazon.cn 上書評如果說翻譯地很爛,我就不會買簡體中文的版本)

blog 與課程更新內容,請前往新站位置:http://tdd.best/