程序員讀書雷達

軟件業的特點是變化。若要提高軟件開發的技能,就必須跟上技術發展的步伐。埋首醉心於項目開發與實戰,固然能夠錘鍊自己的開發技巧,卻難免受限於經驗與學識。世界上並不存在速成的終南捷徑,但閱讀好的技術書籍,尤其是閱讀大師們的經典著作,總能收到事半功倍之效。一位優秀的程序員,或許就是一名好的閱讀者。好的閱讀者,總是知道如何選擇好的書籍。書海浩繁,良莠不齊。閱讀技術好書,如與智者交談,“與君一席話勝讀十年書”;遭遇技術爛書,如被拐賣,“少小離家老大回,鄉音無改鬢毛衰”。

ThoughtWorks作爲一家學習型組織,頗爲看重每一位員工的學習能力。事實上,大多數ThoughtWorker的骨子裏,都溢滿了讀書的基因。與書相伴,與書爲伍,既是一種樂趣,又是一種習慣。當習慣成爲自然時,書籍就成爲生活和工作不可或缺的一部分了。如果說人文歷史哲學等書籍是一碗心靈雞湯,技術書籍大抵算得上是一味營養素,讀之可以直接帶來養分;可若是不瞭解自己究竟缺了哪一種營養,亂吃亂補,結果就可能適得其反了。有鑑於此,我和同事劉龍軍結合自身的閱讀經驗,爲新入職ThoughtWorks的程序員製作了一份讀書路線圖。我們將範圍明確爲程序員,是因爲作爲程序員的我們,它是我們最瞭解的工作角色。我們篩選出了一些大家公認的經典書籍,再結合自己的閱讀體會,並廣泛徵集了更多ThoughtWorker的意見,包括徐昊,熊節,鄭曄等資深閱讀者,得到了這樣一份草稿。在中國公司內部推出時,這份讀書路線圖得到了多數人的認可和歡迎。繼而,我們在成都辦公室陸續針對此讀書路線圖展開了讀書俱樂部的活動,算是做了一次全方位大面積的試水。

現在,我們覺得是推出正式版本,並面向更多受衆的時機了。這就是大家現在看到的ThoughtWorks(中國)程序員讀書雷達。它相較於之前的讀書路線圖草稿,分類更爲專業,書籍篩選更爲合理,並以雷達獨有的優勢,來展現不同的閱讀維度與閱讀深度。顯然,讀書雷達更能表達我們對所選書籍的深度認識。它可以作爲學習型組織的一份知識輸入,每一位程序員都可以根據自身水平與能力,選擇適合自己的書籍,甚至組成一份表達閱讀履歷的讀書路線圖,在獲得知識完善與汲取的過程中,提高自身能力,達至各個維度的巔峯。

該讀書雷達將書籍分爲了如下四個象限:

Coding Practice(編程實踐)
Architecture & Design(架構與設計)
Methodology(方法學)
Thought & Leadership(思想與領導力)

我們之所以將方法學、思想與領導力放入到這個爲程序員設計的讀書雷達中,乃是因爲軟件開發不僅僅是個人的活動,也不僅僅是編碼技巧和設計能力的體現。我們認爲,開發技能其實是一項綜合的系統工程。瞭解方法學,可以促進你對開發過程的理解;關於思想,則涉及大腦思維的修煉,可以提高程序員的抽象能力、學習能力,有助於幫助程序員發現事物發展的規律和本質;至於領導力,則有助於程序員在開發團隊中發揮更大的作用,並能作爲很好的團隊成員,提升團隊的整體能力。我們沒有在這個讀書雷達中包括語言類的書籍,原因在於這類書籍太過於發散,且更新較快;我們也不可能奢望在一張讀書雷達圖中,爲不同的語言平臺展現不同的優秀書籍。相比較語言的學習,我們更看重程序員在編程實踐上的基本功。

每個象限皆分爲三個等級,分別爲Fundamental、Medium和Advanced,對應初學、進階和高級。在雷達圖中,讀者可以根據該書在圖中距離圓心的遠近,判斷它的難度級別。我們還使用了不同的圖示來表達對每本書的傾向性意見,其中,橙色的三角形圖示代表“強烈推薦”,藍色的圓形圖示代表“推薦”。我們希望這類書籍對於程序員而言,可以根據自己目前的水平,選擇適合自己的書籍。在這個層次上,強烈推薦可能就意味着必讀。

或許有人會質疑讀書雷達的挑選標準。正所謂“每個人心中都有自己的哈姆雷特”,我們認同的未必能得到讀者的認同,這是我們這個世界關於一種觀點或態度的常態。我們發佈這個讀書雷達,只是希望能提供更多有用的信息與參考,而非代表一種讀書權利的絕對化。事實上,我們也不可能做到。此外,”吾生也有涯,而知也無涯”,我們閱讀的書籍畢竟有限,且讀書雷達的容量也有限,難免會有遺珠之嘆,這也是一件無可奈何之事。然而,我們歡迎更多的批評與建議,或許你推薦的好書恰恰是我們遺忘的,又或者激起了我們的共識,那麼我們也會毫不吝嗇地更新讀書雷達,以求做到我們能力範圍內的盡善盡美。當然,正如你看到的,我們在Methodology(方法學)象限,更多地推薦了與敏捷和精益相關的書籍。這是因爲我們對敏捷技能與方法更有心得和信心。對於我和劉龍軍還不夠擅長的領域,我們不敢也不願做出可能誤導人的推薦。

本讀書雷達雖然冠以ThoughtWorks(中國)之名,但選書的傾向與意見並非ThoughtWorks(中國)官方的態度,而是作爲製作者(龍軍和我)個人表達的意見而已。如果你也加入了ThoughtWorks,你一定會發現這種自發組織的民間活動,在ThoughtWorks可謂俯拾皆是,不用詫異。

我將在後面的文章中,根據每個象限爲每一本書給出我們的推薦理由。此時,書籍成爲了我們的臣民,我想對這個王國做一次不吝惜讚賞的巡視。最後,列出讀書雷達的中英文書單,如下所示(感謝凱峯爲這個雷達圖建立的豆列,可以訪問ThoughtWorks(中國)程序員讀書雷達):

Coding Practice | 編程實踐

基礎篇

Clean Code《代碼整潔之道》
Pragmatic Unit Testing《單元測試之道》
The Productive Programmer《卓有成效的程序員》
Test-Driven Development By Example《測試驅動開發》
Clean Coder《程序員的職業修養》
The Art of Readable Code《編寫可讀代碼的藝術》

進階篇

Refactoring To Patterns《重構與模式》
Implementation Patterns《實現模式》
Code Complete《代碼大全》
The Pragmatic Programmer《程序員修煉之道》

高級篇

Structure and Interpretation of Computer Programs《計算機程序的構造和解釋》
Working Effectively with Legacy Code《修改代碼的藝術》

Architecture & Design | 架構與設計

基礎篇

Agile Software Development 《敏捷軟件開發:原則、實踐與模式》
Head First Design Patterns《深入淺出設計模式》
Design Patterns 《設計模式》

進階篇

The Art of UNIX Programming 《Unix編程藝術》
Practical API Design 《框架設計的藝術》
Domain Specific Languages 《領域特定語言》
Patterns of Enterprise Application Architecture 《企業應用架構模式》

高級篇

Release It 
Domain-Driven Design 《領域驅動設計》
Enterprise Integration Patterns《企業集成模式》
Beautiful Architecture《架構之美》
Pattern-Oriented Software Architecture《面向模式的軟件架構》

Methodology | 方法學

基礎篇

User Stories Applied《用戶故事與敏捷方法》
The Gold Mine《金礦》
Scrum and XP From the Trenches《硝煙中的Scrum和XP》
Continuous Integration《持續集成》
Extreme Programming Explained《解析極限編程》

進階篇

Lean Thinking《精益思想》
Continuous Delivery《持續交付》
How Google Tests Software
Agile Testing
Extreme Programming Refactored《重構極限編程》

高級篇

Specification By Example

Thought & Leadership | 思想與領導力

基礎篇

The Effective Executive《卓有成效的管理者》
Are Your Lights On?《你的燈亮着嗎》
Becoming A Technical Leader《成爲技術領導者》

進階篇

The Fifth Discipline《第五項修煉》
The Design Of Business
Management 3.0《管理3.0:培養和提升敏捷領導力》
Presentation To Win
The McKinsey Way《麥肯錫方法》

高級篇

Thinking, Fast and Slow《思考快與慢》


轉自:http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-radar/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章