程序员读书雷达,持续学习杂谈

前言

多年来在读书Bob大爷的新书——《Clean
Architecture》(需要的同桌可以在大众号后台回复数字1取得),感觉字字珠玑,值得反复阅读&品味。关于系统规划这块,准备把相关的几本书都集中翻阅下,包括《领域驱动设计》、《实现世界驱动设计》、《敏捷软件开发:原则、模式与执行》、《公司应用架构格局》等,经过这轮的上学,再结合这两年的品种经验,应该能够抽象出一些民用的感受。

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

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

图片 1软件业的特点是转变。若要进步软件开发的技能,就亟须跟上技术提升的脚步。埋首醉心于项目开支与实战,即使可以锤炼自己的付出技术,却难免受限于经验与知识。世界上并不设有速成的终南捷径,但阅读好的技巧书籍,尤其是读书大师们的经典小说,总能收到事半功倍之效。一位出色的程序员,或许就是一名好的阅读者。好的阅读者,总是知道什么抉择好的图书。书海浩繁,良莠不齐。阅读技术好书,如与智者交谈,“与君一席话胜读十年书”;碰着技术烂书,如被拐卖,“少小离家老大回,乡音无改鬓毛衰”。

ThoughtWorks作为一家学习型协会,颇为倚重每一位员工的求学能力。事实上,大多数ThoughtWorker的龙骨里,都溢满了翻阅的基因。与书相伴,与书为伍,既是一种乐趣,又是一种习惯。当习惯变成自然时,书籍就改为生活和办事不可或缺的一片段了。假如说人文历史军事学等图书是一碗心灵鸡汤,技术书籍大抵算得上是始终营养素,读之可以直接拉动营养;可一旦不精通自己到底缺了哪类营养,乱吃乱补,结果就可能壮志未酬了。有鉴于此,我和共事刘龙军结合本人的开卷经验,为新入职ThoughtWorks的程序员制作了一份读书路线图。大家将范围显著为程序员,是因为作为程序员的我们,它是我们最了解的办事角色。咱们筛选出了一些大家公认的经文图书,再组成自己的翻阅体会,并广泛采集了更多ThoughtWorker的观点,包括徐昊,熊节,郑晔等老牌阅读者,得到了这么一份草稿。在中民公司之中生产时,这份读书路线图拿到了多数人的认同和迎接。继而,我们在西雅图办公室穿插针对此读书路线图展开了翻阅俱乐部的运动,算是做了一回全体大面积的试水。

现今,大家认为是推出正规版本,并面向更多受众的机遇了。这就是豪门现在看来的ThoughtWorks(中国)程序员读书雷达。它相较于事先的开卷路线图草稿,分类更加规范,书籍筛选更为客观,并以雷达独有的优势,来突显不同的阅读维度与读书深度。分明,读书雷达更能表明大家对所选书籍的深浅认识。它能够看成学习型协会的一份知识输入,每一位程序员都可以遵照自己水平与力量,接纳适合自己的书本,甚至结合一份表明阅读履历的开卷路线图,在赢得文化完善与汲取的历程中,提高自己能力,达至各样维度的顶峰。

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

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

大家之所以将方艺术学、思想与领导力放入到这么些为程序员设计的开卷雷达中,乃是因为软件开发不仅仅是个体的位移,也不仅仅是编码技巧和计划能力的突显。咱们以为,开发技巧其实是一项综合的系统工程。明白方艺术学,可以促进你对开发进程的知道;关于思想,则提到大脑思维的修炼,可以增进程序员的抽象能力、学习能力,有助于帮忙程序员发现东西发展的规律和本质;至于领导力,则有助于程序员在付出团队中表述更大的职能,并能作为很好的集体成员,提高团队的全部力量。我们并未在这么些读书雷达中包括语言类的图书,原因在于这类书籍太过分分散,且更新较快;大家也不容许奢望在一张读书雷达图中,为不同的言语平台突显不同的绝妙图书。相比语言的就学,大家更倚重程序员在编程实践上的功底。

各类维度皆分为两个阶段,分别为Fundamental、Medium和Advanced,对应初学、进阶和高等。在雷达图中,读者可以遵照该书在图中距离圆心的远近,判断它的难度级别。大家还拔取了不同的图示来抒发对每本书的倾向性意见,其中,蓝色的三角形图示代表“强烈推荐”,肉色的圆形图示代表“推荐”。我们目的在于这类书籍对于程序员而言,可以依照自己眼前的水平,采取适合自己的书本。在那一个层次上,强烈推荐可能就表示必读。

莫不有人会质疑读书雷达的选料专业。正所谓“每个人心中都有温馨的哈姆雷特(哈姆雷特(Hamlet))”,我们认可的未必能得到读者的确认,这是我们以此世界关于一种看法或态度的常态。大家发布那么些读书雷达,只是梦想能提供更多立竿见影的音讯与参考,而非代表一种读书权利的断然。事实上,我们也无法成功。此外,”吾生也有涯,而知也无涯”,我们涉猎的图书毕竟有限,且读书雷达的容量也有数,难免会有遗珠之叹,这也是一件无可奈何之事。不过,我们欢迎更多的批评与指出,或许你推荐的好书恰恰是我们忘记的,又或者刺激了大家的共识,那么我们也会毫无吝啬地换代读书雷达,以求做到我们能力限制内的出色。当然,正如您看到的,我们在Methodolog(方经济学)维度,更多地推荐了与迅速和精益相关的书籍。那是因为大家对快捷技能与艺术更有心得和信念。对于我们还不够擅长的小圈子,我们不敢也不愿做出可能误导人的引进。

本阅读雷达尽管冠以ThoughtWorks(中国)之名,但选书的赞同与意见并非ThoughtWorks(中国)官方的神态,而是作为制作者(龙军和我)个人表明的意见而已。若是你也参预了ThoughtWorks,你肯定会发觉这种原始协会的民间活动,在ThoughtWorks可谓俯拾皆是,不用大惊小怪。

自我将在前边的篇章中,按照各样维度为每一本书给出咱们的引进理由。此时,书籍成为了我们的臣民,我想对那些帝国做四次不珍惜称赞的巡视。最终,列出读书雷达的中英文书单,如下所示:

IT行业的学识结构

忘却在啥地方看过一篇随笔仍然问题,是讲“工作后什么不断学习”的,文中的看法我很肯定:在这些音讯爆炸的时期,需要拥有采纳和抉择。固然从全体来看,整个电脑世界的学问显示为三角形结构,从下到上依次为基础理论和文化、中间的框架和言语,最上层的是各类宏观的学问和概念。从个体来看,在IT行业持续学习,大家需要的的知识结构为多头窄中间款的双锥形结构,如下图所示:

图片 2

IT行业文化结构

本条结构得以指点我们的阅读、学习方向,将根本精力放在基础知识和微观概念上,用宏观概念去指导协调如何挑选中间的空间和具体的技巧,而基础知识不会时不时转移,搞懂之后起功用的时刻也正如久。

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 Completed《代码大全》
The Pragmatic Programmer《程序员修炼之道》

宏观知识

高级篇

Structure and Interpretation of Computer
Programs《总计机程序的结构和表达》
Working Effectively with Legacy Code《修改代码的措施》

意识、思维、软技能

  • 《搞定:无压工作的情势》:第二次阅读
  • 《高功效人士的7个习惯》:第二次阅读
  • 《单核工作法》
  • 《番茄工作法》
  • 《刻意磨炼》
  • 《Clean Coder》

Architecture & Design | 架构与计划

读书经验

有关英文阅读,最近读clean
architecture的时候确实有点困难,然而坚定不移了一周后大多就找回感觉了。我要好的经验是:

  1. 正如专业的词汇就随时查阅;
  2. 相比较常用且非技术的词汇不需要各类单词都认识,可以由此上下文语境猜出大约意思就能够;
  3. 万一发现某段话不可能知道,我有个相比较实用的主意:尝试用口语将这段话表明出来,假装你是在给一个伙伴在讲这段话的意味。

希望2019年可以做更多的精读和总括,利用XMIND做多少个领域的知识架构,并在实践中尝试推行下书中的观点。

基础篇

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(Fast) and Slow《思考快与慢》