书评 – 程序员经典读物(1)

简介: 早几天,笼统地就经典感慨了一番,接着来个逐一点评,算是有始有终了。经典是用来阅读而非膜拜的道理,自然是明白的,虽然我是属于比较推崇经典那一类的。阅读大致就是一个和作者交流的过程,有兴致时无妨感慨点评一番,算是对作者的一种致敬吧。

早几天,笼统地就经典感慨了一番,接着来个逐一点评,算是有始有终了。经典是用来阅读而非膜拜的道理,自然是明白的,虽然我是属于比较推崇经典那一类的。阅读大致就是一个和作者交流的过程,有兴致时无妨感慨点评一番,算是对作者的一种致敬吧。

1 Steve McConnell - Code Complete: A Practical Handbook of Software Construction 
  感言:二获Jolt Awards,算得上众望所归了,印象中,国内书商有炒作过第二版。作者主持过SWEBOK工作,所以写起书来也明显带有百科全书式的味道。我对SWEBOK一类百科全书式的东西,一般是不太感冒的,但这本书是个例外。作者学识渊博,却并无丝毫学究气,文笔洗练朴实,众多话题娓娓道来,处处透着一股举重若轻的味道。并不太关注各编程语言之趣向,直面编程之实质性内容。Coding之外,软件开发其它过程均有所涉及。有闲时,寻一寂静处,一边品茶,一边就着此书做些梳理功夫,慢慢地自然而然可收洗髓伐毛之功了。如此一来,也就不太适合初学者了。


2 Elisabeth Freeman, etc.  -  Head First Design Patterns
  感言:二名作者属于不怎么出名那一类的江湖高人,后来还整了一本HTML的书,影响就远远无法和这一本相比了。为这本书作序的一堆高人中,前二个就是GOF之二,GOF作为Design Pattern之父,当时有一位已仙游走了。我相信读过第一章后对Strategy Pattern以及OO Principle仍然觉得没有啥感觉的,应该是不太可能发生的事情。如果有人如此不幸,我估计有二种可能,第一可能是英文太糟糕了,第二可能是买错书了。此书并无甚原创性,属于阐释Design Pattern一类的著作,但是写的太精彩了,不仅绝顶高手好评如潮,更难得的是由初级向高级突破进阶时尤其给力。


3 Steve McConnell  - Rapid Development 
  感言:作者是排名第一那本作者同一人,的确是太有才了。如前面提到的,作者主持过SWEBOK工作,比较有意思的是,这本讲软件开发过程的著作有很浓的敏捷开发味道,我一直很好奇,一位软件工程权威组织的专家居然整了一本富有敏捷精神的书?而且好几年后,Agile Development这个词才出现。


4 Erich Gamma,etc.  - Design Patterns: Elements of Reusable Object-Oriented Software 
  感言:此书在编程语言之外为OOP开辟了一片独立的天空, 影响之深远,江湖上可谓无人不知。OO修炼过程中,知易行难的感慨向来颇多。如果把OO理念比作九阴真经,那Design Pattern就是降龙十八掌了。九阴真经太玄妙,降龙十八掌却是一招一式清清楚楚毫不含糊,一个个Design Pattern恰如降龙十八掌之各掌, 妙用各有不同,却处处体现同一个OO之理念。由此,Design Pattern打开了践行OO的方便之门。原著用的是C++,但一招一式无疑都是跨越语言的。另外,原著还采用了早期的UML,3年后,UML正式成为标准。


5 Bruce Schneier  - Applied Cryptography: Protocols, Algorithms, and Source Code (2nd Edition) 
  感言:未读过。


6 Robert C. Martin  - Agile Software Development: Principles, Patterns and Practices 
  感言:作者是OO领域的大师,敏捷开发先驱之一,XP鼓吹者。书名有一定误导,除了敏捷开发之外,精华其实是OO和TDD践行部分。实战性强,而且所举例子均是很常规的企业应用。此书先出的Java版,后出的C#版。印象中,作者并未讳言其早期对XP的疑惑,而附录中竟转载了一个不太出名的高人关于Coding就是Design的高论,对传统软件工程阵营的冲击无疑是颠覆性的,即使在敏捷社区内部,这个观点也是很激进的。一个早已名扬天下的大师,在根本立场上居然发生了180度的大逆转,令人感慨的已经不是大师个人的勇气,而是软件行业仍然是多么年轻。


7 Joel Spolsky  - Joel on Software 
  感言:典型地美式实用主义文风,擅长铺垫,于平淡中自然演绎出自己的观点或感受。不是一本谈具体Coding的技术书,也不是系统谈Process的,类似于专栏文章的选集。印象中,作者本是技术高手,曾主持过早期MS Excel VBA项目。近几年比较火的技术社区stackoverflow.com,作者是主要策划人之一。


8 Tom DeMarco, Timothy Lister  - Peopleware: Productive Projects and Teams (2nd Edition) 
  感言: 就好像是推崇所谓人本主义管理那一套的专家,无意中发现了软件开发领域种种愚蠢+恶心的搞法,激愤之下忍不住出手相助,于是整出了这一类书。早些年读的时候,着实觉得很感动,现在我觉得这类书的作用主要就二个,一是为媒体提供了一些可以没完没了炒下去的话题,二是让聪明的管理者变得更虚伪或更开明,让自以为是的管理者变得更……。


9 Frederick P. Brooks  - The Mythical Man-Month, Anniversary Edition (2nd Edition) 
  感言:作者是Turing Award获得着,不过这绝不是这本经典长盛不衰的原因。Intel的摩尔定律都已经失效了,而这本经典里面那个著名的断言依然继续着它淡淡的叹息。所谓“朝闻道,夕死可矣”,如果一生只能读一本软件开发方面的书,我愿意选这一本。我个人认为应该排第一。


10 Martin Fowler  - Refactoring: Improving the Design of Existing Code 
  感言:Martin Fowler的书,相信很多人和我一样,每本必读。这一本是OO实践中从初级向高级突破的必读经典。早读早受益。


11 Mike Cohn  - Agile Estimating and Planning 
  感言:未读过。


12 Alistair Cockburn  - Writing Effective Use Cases 
  感言:作者是敏捷开发先驱之一,思想富有原创性,哲理性很强。不过这本书实在看不出来,我一直奇怪这本书为何如此出名?有意思的是,如今Use Case风头已经不如User Story了。


13 Bertrand Meyer  - Object-Oriented Software Construction (2nd Edition) 
  感言:作者是OO先驱之一,大师级学者。此书属于OO早期的经典,影响深远,学术性较强。由于和OO实战有一定距离,如果不是特别喜欢追溯思想源头,建议不要浪费时间,因为可以替代它的更贴近实战的经典不少。如这个清单里面Robert Martin和Martin Fowler的著作。


14 Steve McConnell  - Software Estimation: Demystifying the Black Art 
  感言:作者是排名第一那本作者同一人,的确是太有才了。未读过。


15 Mike Cohn  - User Stories Applied: For Agile Software Development 
  感言:未读过。


16 Donald E. Knuth  - The Art of Computer Programming, The, Volumes 1-3 Boxed Set (2nd Edition) 
  感言:被媒体反复炒过。作者是大师级计算机科学家,也是Turing Award获得者。尝试读过,实在读不下去,多少有点后悔年轻时没多下点功夫。


17 Martin Fowler  - Patterns of Enterprise Application Architecture 
  感言:我个人认为这是企业应用领域的圣经。如果是从事企业应用开发的,建议读至少3遍,如果是架构师,至少6遍。并不是暗示难懂,恰恰相反文笔朴实自然,犹如清澈小溪一般通透,主要是内容太丰富了。


18 Jeffrey Friedl  - Mastering Regular Expressions 
  感言:未读过。


19 Andrew Hunt, David Thomas  - The Pragmatic Programmer: From Journeyman to Master 
  感言:二位作者均是敏捷先驱。典型的实用主义至上视角,文笔很好,基本上不提具体的代码,均是由实战中得来的真知灼见。年头久了点,但可读性仍然很好。The Pragmatic Programmer作为一个系列,也出了不少精品。


20 Karl E. Wiegers  - Software Requirements (2nd Edition) 
  感言:读过部分章节,坦白说,没有啥感觉。有一点可以肯定的是,很多需求模板,特别是Use Case模板,被广泛借用。

 

如果坚持读到这里,估计会有人和我一样对上面的排名有不同意见。这个排名并不是来自某个特权威的机构,而是来自一个名不见经传的博主http://www.noop.nl/2008/06/top-100-best-software-engineering-books-ever.html,我借用一下不是为了偷懒,而是觉得他的工作干得很漂亮,唯一的遗憾是没有找到最新的更新。

目录
相关文章
|
存储 机器学习/深度学习 自然语言处理
探索编程世界的宝藏:程序员必掌握的20大算法(下)
探索编程世界的宝藏:程序员必掌握的20大算法
143 0
|
搜索推荐 算法 程序员
探索编程世界的宝藏:程序员必掌握的20大算法(上)
探索编程世界的宝藏:程序员必掌握的20大算法
152 0
|
机器学习/深度学习 存储 运维
探索编程世界的宝藏:程序员必掌握的20大算法(中)
探索编程世界的宝藏:程序员必掌握的20大算法
160 0
|
机器学习/深度学习 存储 自然语言处理
不讲废话普通人了解 ChatGPT——基础篇第一课
不知道大家在第一次会使用 ChatGPT 并尝试和他对话时有没有感到震惊。当ChatGPT首次推出时,我立即被它的功能所吸引。
208 0
如果只读一本与游戏设计有关的书,那一定就是这本了
在开始之前,先看一下作者 Jesse Schell 在前言中的忠告: 不要以为读了这本书或者任何一本书就能把你变成游戏设计师,更别提想当优秀的游戏设计师了,游戏设计不是一套原理而是一种活动,光读书当不了歌手,飞行员,篮球选手,也不能变成游戏设计师。要成为游戏设计师,只有一条路,那就是设计游戏,更精确点是设计别人真正喜爱的游戏,也就是说随便把游戏创意写下来是不够的,你一定要造出游戏亲自来玩,并让别人也来玩儿,如果感觉不满意(不会满意的),就要修改,修改,再修改,修改十几次,直到创作出大家确实爱玩的游戏为止。
91 0
|
人工智能 图形学
9年3D建模师的感悟—写给还在迷茫中的朋友
不知不觉,从事3d行业已经9年了。今天想把这么久以来积攒的3D建模的学习经验彻底讲一下,希望能对你有所帮助 。
277 0
外行朋友值得一读的5本经典数学书
有很多人让我给外行朋友推荐一些优秀的数学书,他们之中有些是没在大学学过高等课程的,只对学习数学感兴趣的朋友,还有些对历史人物比对数学成果更感兴趣。具有讽刺意味的是,当你是滑铁卢大学数学专业的学生之后,你到第四年才有机会上一门讲述数学历史的课程,会向你解释一些隐藏在数学之后的心态和哲学,而非只是定理和证明。
260 0
外行朋友值得一读的5本经典数学书
|
人工智能 算法 JavaScript
零基础学计算机图形学太难?或许你缺的只是一本好书
对先修知识没有特别多的要求,代码和文本都很详细
806 0
|
机器学习/深度学习 设计模式 算法
哪些技术好书值得一读再读?阿里大牛列了一份经典书单
这些经典的技术好书,由阿里九位技术大牛为你倾情推荐,与你一起共同成长、探索未来。
3464 0
博士论文写作攻略:这才是效率
还记得上一期的小倔强吗,那个帖子详细分析了传统vs现代的毕业论文写作方式的优缺点。后面说了直播码字,就在今天开始! 九天学者编程直播间 关注九天学者微信公众号获取及时开播通知! 九天学者博士论文写作不定时直播 ...
1120 0