软件业的特色是变化。若要提升软件开发的技能,就必须跟上技术发展的步伐。埋首醉心于项目开发与实战,当然可以锤炼本身的开发技巧,却不免受限于经验与学识。世界上并不存在速成的终南捷径,但阅读好的技术书籍,尤为是阅读大师们的经典著做,总能收到事半功倍之效。一位优秀的程序员,或许就是一名好的阅读者。好的阅读者,老是知道如何选择好的书籍。书海浩繁,参差不齐。阅读技术好书,如与智者交谈,“与君一席话胜读十年书”;遭遇技术烂书,如被拐卖,“少小离家老大回,乡音无改鬓毛衰”。程序员
ThoughtWorks做为一家学习型组织,颇为看重每一位员工的学习能力。事实上,大多数ThoughtWorker的骨子里,都溢满了读书的基因。与书相伴,与书为伍,既是一种乐趣,又是一种习惯。当习惯成为天然时,书籍就成为生活和工做不可或缺的一部分了。若是说人文历史哲学等书籍是一碗心灵鸡汤,技术书籍大抵算得上是一味养分素,读之能够直接带来营养;可如果不了解本身究竟缺了哪种养分,乱吃乱补,结果就可能拔苗助长了。有鉴于此,我和同事刘龙军结合自身的阅读经验,为新入职ThoughtWorks的程序员制做了一份读书路线图。咱们将范围明确为程序员,是由于做为程序员的咱们,它是咱们最了解的工做角色。咱们筛选出了一些你们公认的经典书籍,再结合本身的阅读体会,并普遍征集了更多ThoughtWorker的意见,包括徐昊,熊节,郑晔等资深阅读者,获得了这样一份草稿。在中国公司内部推出时,这份读书路线图获得了多数人的承认和欢迎。继而,咱们在成都办公室陆续针对此读书路线图展开了读书俱乐部的活动,算是作了一次全方位大面积的试水。编程
如今,咱们以为是推出正式版本,并面向更多受众的时机了。这就是你们如今看到的ThoughtWorks(中国)程序员读书雷达。它相较于以前的读书路线图草稿,分类更为专业,书籍筛选更为合理,并以雷达独有的优点,来展示不一样的阅读维度与阅读深度。显然,读书雷达更能表达咱们对所选书籍的深度认识。它能够做为学习型组织的一份知识输入,每一位程序员均可以根据自身水平与能力,选择适合本身的书籍,甚至组成一份表达阅读履历的读书路线图,在得到知识完善与汲取的过程当中,提升自身能力,达至各个维度的巅峰。设计模式
该读书雷达将书籍分为了以下四个维度:架构
Coding Practice(编程实践)
Architecture & Design(架构与设计)
Methodology(方法学)
Thought & Leadership(思想与领导力)框架
咱们之因此将方法学、思想与领导力放入到这个为程序员设计的读书雷达中,乃是由于软件开发不只仅是我的的活动,也不只仅是编码技巧和设计能力的体现。咱们认为,开发技能实际上是一项综合的系统工程。了解方法学,能够促进你对开发过程的理解;关于思想,则涉及大脑思惟的修炼,能够提升程序员的抽象能力、学习能力,有助于帮助程序员发现事物发展的规律和本质;至于领导力,则有助于程序员在开发团队中发挥更大的做用,并能做为很好的团队成员,提高团队的总体能力。咱们没有在这个读书雷达中包括语言类的书籍,缘由在于这类书籍太过于发散,且更新较快;咱们也不可能奢望在一张读书雷达图中,为不一样的语言平台展示不一样的优秀书籍。相比较语言的学习,咱们更看重程序员在编程实践上的基本功。单元测试
每一个维度皆分为三个等级,分别为Fundamental、Medium和Advanced,对应初学、进阶和高级。在雷达图中,读者能够根据该书在图中距离圆心的远近,判断它的难度级别。咱们还使用了不一样的图示来表达对每本书的倾向性意见,其中,橙色的三角形图示表明“强烈推荐”,蓝色的圆形图示表明“推荐”。咱们但愿这类书籍对于程序员而言,能够根据本身目前的水平,选择适合本身的书籍。在这个层次上,强烈推荐可能就意味着必读。学习
或许有人会质疑读书雷达的挑选标准。正所谓“每一个人心中都有本身的哈姆雷特”,咱们认同的未必能获得读者的认同,这是咱们这个世界关于一种观点或态度的常态。咱们发布这个读书雷达,只是但愿能提供更多有用的信息与参考,而非表明一种读书权利的绝对化。事实上,咱们也不可能作到。此外,”吾生也有涯,而知也无涯”,咱们阅读的书籍毕竟有限,且读书雷达的容量也有限,不免会有遗珠之叹,这也是一件迫不得已之事。然而,咱们欢迎更多的批评与建议,或许你推荐的好书偏偏是咱们遗忘的,又或者激起了咱们的共识,那么咱们也会绝不吝啬地更新读书雷达,以求作到咱们能力范围内的尽善尽美。固然,正如你看到的,咱们在Methodolog(方法学)维度,更多地推荐了与敏捷和精益相关的书籍。这是由于咱们对敏捷技能与方法更有心得和信心。对于我和刘龙军还不够擅长的领域,咱们不敢也不肯作出可能误导人的推荐。测试
本读书雷达虽然冠以ThoughtWorks(中国)之名,但选书的倾向与意见并不是ThoughtWorks(中国)官方的态度,而是做为制做者(龙军和我)我的表达的意见而已。若是你也加入了ThoughtWorks,你必定会发现这种自发组织的民间活动,在ThoughtWorks可谓俯拾皆是,不用诧异。编码
我将在后面的文章中,根据每一个维度为每一本书给出咱们的推荐理由。此时,书籍成为了咱们的臣民,我想对这个王国作一次不吝惜赞扬的巡视。最后,列出读书雷达的中英文书单,以下所示(感谢凯峰为这个雷达图创建的豆列,能够访问ThoughtWorks(中国)程序员读书雷达):设计
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 Completed《代码大全》
The Pragmatic Programmer《程序员修炼之道》
Structure and Interpretation of Computer Programs《计算机程序的构造和解释》
Working Effectively with Legacy Code《修改代码的艺术》
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《面向模式的软件架构》
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
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《思考快与慢》