在各個研討會、培訓課程、顧問諮詢、社群活動教授時,最常被問到的問題就是:「你推薦哪幾本書?」
其實,這個問題沒有標準答案的,因為學習是循序漸進的,每個人的 context 不同,眼下最適合的書也就不同。這篇文章先把上次推薦的 30 本經典書籍列上來,實際學員眼下讀哪幾本書最有幫助,就得 case by case 瞭解了。
敏捷開發相關
- 影響地圖
- 使用者故事對照
- 實例化需求
- 測試驅動開發的藝術
- 驗收測試驅動開發-ATDD實例(這本就沒到經典等級)
- 測試驅動的面向對象軟件開發
- 單元測試的藝術-第二版
- 高品質程式
- 修改代碼的藝術
- 重構-改善既有代碼的設計
- 重構與模式
- GoF 設計模式(經典,但很難嚼,當有一些疑惑時,我會回頭看一下最原始 GoF 的書裡是怎麼說明的,當個額外的資訊參考)
- 敏捷軟件開發-原則、模式與實踐
- Clean Code
- 浮現式設計-專業軟件開發的演進本質
- 敏捷技能修煉-敏捷軟件開發與設計的最佳實踐
Kent Beck 的 《Test Driven Development: By Example》 我一開始看不懂,後來就一直沒回頭再看了,但身為 TDD 的老爸,相信肯定也是很經典
專案管理
- 軟件項目成功之道
- 人月神話
- 項目百態
- Peopleware(經典,但時空背景有些不同了)
還有一本影響我很深的書:《軟體構築美學》,但我找不到書,就沒法拍照了。
程序員養成
- 程序員修煉之道-從小工到專家
- The Clean Coder
- 高效能程序員的修煉
- 程序員的修煉-從優秀到卓越(比較經典的 blog 文章大部分都被收到前一本書裡面)
- 高校程序員的45個習慣-敏捷開發修煉之道
- Code Craft 編程匠藝(有許多可取之處,也有一些不一定符合現在的時空背景)
基礎建設
- 持續整合
- 持續交付
領域驅動設計(DDD)
- 領域驅動設計
- 領域驅動設計模式與實踐(當作上面那一本書的參考書籍)
Domain-Driven 我還是門外漢,但相信在系統架構與軟體設計層面,DDD 有其獨到跟美妙之處。
總結
書不是擺著就有用,也不是看過就有用。怎麼有組織、有效率地建立自己的知識關聯,怎麼樣儘速完成知識轉換的循環,減少知識半成品,才有機會內化成自己的。
有用才有用,沒用就沒用。
《禮記》裡面的《學記》有幾句話相當不錯:
- 學,而知不足。
- 飛機之所以持續飛行,是因為它沒空往下墜。
- 教,而知困。
- 教學相長,學學半。
- 獨學而無友,孤陋而寡聞。
- 一個人可以走很快,但一群人可以走得遠。
下次來分享一下 Agile, Scrum, Lean, Kanban, TOC, Facilitation, Change, Learning, Presentation 的相關書籍。
補充
- 有些朋友會問,為啥簡體書居多?
因為我大部分挑的是該領域較經典的原文書,但大部分的書只有簡體中文的譯本,沒有繁體中文的譯本。而且簡體中文的售價便宜(相對的紙張品質也差,排版也不一定習慣),但對我來說,內容才是重點,如何快速獲取我需要的知識,才是我最大目標。當我對內容有所疑惑時,就會再去找找看是不是翻譯有謬誤。(當然,如果在 amazon.cn 上書評如果說翻譯地很爛,我就不會買簡體中文的版本)
- 91 的書架
- 之前整理的敏捷開發相關推薦書籍
blog 與課程更新內容,請前往新站位置:http://tdd.best/