ThoughtWorks(中国) 程序员读书雷达

ThoughtWorks(中国) 程序员读书雷达:

ThoughtWorks(中国)程序员读书雷达 {style=”color: #555555!important; font-family: Verdana,sans-serif; font-size: 1.8em; font-weight: normal; vertical-align: baseline;”}

软件业的特点是变化。若要提高软件开发的技能,就必须跟上技术发展的步伐。埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识。世界上并不存在速成的终南捷径,但阅读好的技术书籍,尤其是阅读大师们的经典著作,总能收到事半功倍之效。一位优秀的程序员,或许就是一名好的阅读者。好的阅读者,总是知道如何选择好的书籍。书海浩繁,良莠不齐。阅读技术好书,如与智者交谈,“与君一席话胜读十年书”;遭遇技术烂书,如被拐卖,“少小离家老大回,乡音无改鬓毛衰”。

ThoughtWorks作为一家学习型组织,颇为看重每一位员工的学习能力。事实上,大多数ThoughtWorker的骨子里,都溢满了读书的基因。与书相伴,与书为伍,既是一种乐趣,又是一种习惯。当习惯成为自然时,书籍就成为生活和工作不可或缺的一部分了。如果说人文历史哲学等书籍是一碗心灵鸡汤,技术书籍大抵算得上是一味营养素,读之可以直接带来养分;可若是不了解自己究竟缺了哪一种营养,乱吃乱补,结果就可能适得其反了。有鉴于此,我和同事刘龙军结合自身的阅读经验,为新入职ThoughtWorks的程序员制作了一份读书路线图。我们将范围明确为程序员,是因为作为程序员的我们,它是我们最了解的工作角色。我们筛选出了一些大家公认的经典书籍,再结合自己的阅读体会,并广泛征集了更多ThoughtWorker的意见,包括徐昊,熊节,郑晔等资深阅读者,得到了这样一份草稿。在中国公司内部推出时,这份读书路线图得到了多数人的认可和欢迎。继而,我们在成都办公室陆续针对此读书路线图展开了读书俱乐部的活动,算是做了一次全方位大面积的试水。

现在,我们觉得是推出正式版本,并面向更多受众的时机了。这就是大家现在看到的ThoughtWorks(中国)程序员读书雷达。它相较于之前的读书路线图草稿,分类更为专业,书籍筛选更为合理,并以雷达独有的优势,来展现不同的阅读维度与阅读深度。显然,读书雷达更能表达我们对所选书籍的深度认识。它可以作为学习型组织的一份知识输入,每一位程序员都可以根据自身水平与能力,选择适合自己的书籍,甚至组成一份表达阅读履历的读书路线图,在获得知识完善与汲取的过程中,提高自身能力,达至各个维度的巅峰。

该读书雷达将书籍分为了如下四个维度:

Coding Practice(编程实践) Architecture & Design(架构与设计) Methodology(方法学) Thought & Leadership(思想与领导力)

我们之所以将方法学、思想与领导力放入到这个为程序员设计的读书雷达中,乃是因为软件开发不仅仅是个人的活动,也不仅仅是编码技巧和设计能力的体现。我们认为,开发技能其实是一项综合的系统工程。了解方法学,可以促进你对开发过程的理解;关于思想,则涉及大脑思维的修炼,可以提高程序员的抽象能力、学习能力,有助于帮助程序员发现事物发展的规律和本质;至于领导力,则有助于程序员在开发团队中发挥更大的作用,并能作为很好的团队成员,提升团队的整体能力。我们没有在这个读书雷达中包括语言类的书籍,原因在于这类书籍太过于发散,且更新较快;我们也不可能奢望在一张读书雷达图中,为不同的语言平台展现不同的优秀书籍。相比较语言的学习,我们更看重程序员在编程实践上的基本功。

每个维度皆分为三个等级,分别为Fundamental、Medium和Advanced,对应初学、进阶和高级。在雷达图中,读者可以根据该书在图中距离圆心的远近,判断它的难度级别。我们还使用了不同的图示来表达对每本书的倾向性意见,其中,橙色的三角形图示代表“强烈推荐”,蓝色的圆形图示代表“推荐”。我们希望这类书籍对于程序员而言,可以根据自己目前的水平,选择适合自己的书籍。在这个层次上,强烈推荐可能就意味着必读。

或许有人会质疑读书雷达的挑选标准。正所谓“每个人心中都有自己的哈姆雷特”,我们认同的未必能得到读者的认同,这是我们这个世界关于一种观点或态度的常态。我们发布这个读书雷达,只是希望能提供更多有用的信息与参考,而非代表一种读书权利的绝对化。事实上,我们也不可能做到。此外,”吾生也有涯,而知也无涯”,我们阅读的书籍毕竟有限,且读书雷达的容量也有限,难免会有遗珠之叹,这也是一件无可奈何之事。然而,我们欢迎更多的批评与建议,或许你推荐的好书恰恰是我们遗忘的,又或者激起了我们的共识,那么我们也会毫不吝啬地更新读书雷达,以求做到我们能力范围内的尽善尽美。当然,正如你看到的,我们在Methodolog(方法学)维度,更多地推荐了与敏捷和精益相关的书籍。这是因为我们对敏捷技能与方法更有心得和信心。对于我和刘龙军还不够擅长的领域,我们不敢也不愿做出可能误导人的推荐。

本读书雷达虽然冠以ThoughtWorks(中国)之名,但选书的倾向与意见并非ThoughtWorks(中国)官方的态度,而是作为制作者(龙军和我)个人表达的意见而已。如果你也加入了ThoughtWorks,你一定会发现这种自发组织的民间活动,在ThoughtWorks可谓俯拾皆是,不用诧异。

我将在后面的文章中,根据每个维度为每一本书给出我们的推荐理由。此时,书籍成为了我们的臣民,我想对这个王国做一次不吝惜赞赏的巡视。最后,列出读书雷达的中英文书单,如下所示(感谢凯峰为这个雷达图建立的豆列,可以访问ThoughtWorks(中国)程序员读书雷达):

Coding Practice | 编程实践 {style=”font-family: Verdana,sans-serif; font-size: 1.3em; font-weight: normal; vertical-align: baseline;”}

基础篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Clean Code《代码整洁之道》 Pragmatic Unit Testing《单元测试之道》 The Productive Programmer《卓有成效的程序员》 Test-Driven Development By Example《测试驱动开发》 Clean Coder《程序员的职业修养》 The Art of Readable Code《编写可读代码的艺术》

进阶篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Refactoring To Patterns《重构与模式》 Implementation Patterns《实现模式》 Code Completed《代码大全》 The Pragmatic Programmer《程序员修炼之道》

高级篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Structure and Interpretation of Computer Programs《计算机程序的构造和解释》 Working Effectively with Legacy Code《修改代码的艺术》

Architecture & Design | 架构与设计 {style=”font-family: Verdana,sans-serif; font-size: 1.3em; font-weight: normal; vertical-align: baseline;”}

基础篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Agile Software Development 《敏捷软件开发:原则、实践与模式》 Head First Design Patterns《深入浅出设计模式》 Design Patterns 《设计模式》

进阶篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

The Art of UNIX Programming 《Unix编程艺术》 Practical API Design 《框架设计的艺术》 Domain Specific Languages 《领域特定语言》 Patterns of Enterprise Application Architecture 《企业应用架构模式》

高级篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Release It Domain-Driven Design 《领域驱动设计》 Enterprise Integration Patterns《企业集成模式》 Beautiful Architecture《架构之美》 Pattern-Oriented Software Architecture《面向模式的软件架构》

Methodology | 方法学 {style=”font-family: Verdana,sans-serif; font-size: 1.3em; font-weight: normal; vertical-align: baseline;”}

基础篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

User Stories Applied《用户故事与敏捷方法》 The Gold Mine《金矿》 Scrum and XP From the Trenches《硝烟中的Scrum和XP》 Continuous Integration《持续集成》 Extreme Programming Explained《解析极限编程》

进阶篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Lean Thinking《精益思想》 Continuous Delivery《持续交付》 How Google Tests Software Agile Testing Extreme Programming Refactored《重构极限编程》

高级篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

Specification By Example

Thought & Leadership | 思想与领导力 {style=”font-family: Verdana,sans-serif; font-size: 1.3em; font-weight: normal; vertical-align: baseline;”}

基础篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

The Effective Executive《卓有成效的管理者》 Are Your Lights On?《你的灯亮着吗》 Becoming A Technical Leader《成为技术领导者》

进阶篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

The Fifth Discipline《第五项修炼》 The Design Of Business Management 3.0《管理3.0:培养和提升敏捷领导力》 Presentation To Win The McKinsey Way《麦肯锡方法》

高级篇 {style=”font-family: Verdana,sans-serif; font-size: 1em; vertical-align: baseline;”}

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

Written on April 22, 2013