十一年后,重读 Pragmatic Programmer
19年时就听闻 the Pragmatic Programmer(接下来简称TPP)这本经典要出第二版,不过工作后业务比较多看书也没之前勤,前些天无意中发现这本书已经有第二版还是我很佩服的云风翻译,果断在Amazon 上买下 Kindle 阅读。 因为我之前读过这本书的前一版(第一版书评:https://book.douban.com/review/3030002/),所以这本书看的很快,一个下午就读完了。这里简单聊下感受: 1.十一年过去了,我的看法没有变化,TPP 仍然是自我提升阶段的首选书籍 2.确切的说,TPP 最适合刚工作一两年的开发者阅读: 1.入门开发者刚出校门,正在经历从校园到职业的转变 2.校园里的计算机科学书籍(例如算法导论,深入理解计算机系统)并不适用职业开发者 3.TPP覆盖职业开发者的所有 Topic(如何更专业(my cat ate the code),如何推动项目(stone soup),持续学习(定投知识),编码习惯(DRY,命名,正交),快速构建(曳光弹,原型),项目管理(估算)等等),尽管每个 topic 不够深入,但实操性很强,读者也可以从每个topic的引用学到更多信息 4.作为一个工作八年的老油条,TPP 大部分内容已经成为常识,所以我一个下午读完,并没有学到什么新的东西,这本书对我的作用:只是整理了我的知识结构 3.相对于第一版(1999年),第二版(2019年)更新了近一半的内容(70个tips增加到99个,topic也从46个增加到53个),并把代码示例从 C++/Java 换成了更现代表达性更强的 JavaScript/Ruby/Elixir 4.这本书依然是我读过覆盖面最广的开发书籍,但博而不专,每个话题都是点到即止,但这本书并不是要提供 all answers——它的作用是让读者知道自己的 unknown unknowns 1. 这本书没有提到软件架构,但入门开发者也没必要看软件架构 5.相对于第一版的一些莫名翻译(咕噜和曼特拉),第二版的翻译更加严谨,而且译者提供了很多注释,以便读者理解一些英文特有的幽默(嫌翻译差可以直读原版) 6.适合反复阅读:第一次读快速的从头读到尾,之后选择性的读相关 topic 即可 7.极度务实:比如敏捷开发吹的很厉害的 TDD(测试驱动开发),这本书并没有无脑吹,相反还提供了一个Ron Jeffries 用 TDD 写 Soduku 写了几周都写不出来的反例(TDD 只 是 practice,不是 solution) 8.末尾提供的实用三件套——版本控制,回归测试,完全自动化很朴实,但这正是所有大公司遵循的实践——持续集成/交付 9. (附)这本书原版有 audiobook,值得一听
依然 5 星,如果你刚工作没多久,或是工作一段时间感觉在原地打转,这本书必读。
(吐槽下豆瓣书评居然没有 bulleted list 和 numbered list,难受的一比)