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

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,我借用一下不是为了偷懒,而是觉得他的工作干得很漂亮,唯一的遗憾是没有找到最新的更新。

转载于:https://www.cnblogs.com/xumaojun/p/8541612.html

书评 – 程序员经典读物(1)相关推荐

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

    21 Craig Larman - Applying UML and Patterns (3rd Edition)   感言: RUP/UML如日中天那阵子,备受名家推崇的OOAD经典之一.UP/UM ...

  2. 世界读书日丨程序员经典语录值得读一读

    每年的4月23日,是"世界读书日".这一天,是为了提醒我们,无论生活多么的忙碌,都要记得多读书. 作为程序员的你,下面这些程序员经典语录请您认真来读一读,也许此时此刻会有不一样的心 ...

  3. 程序员经典电子书下载(超全)

    程序员常下载的电子书! 下载的兄弟注意了,点击下载后,可以在url中看到后缀名:),如果把后缀名改错了就看不了了,所有的资料都有人下载过了,应该都能看. Python相关的资料还可以看:http:// ...

  4. 程序员趣味读物:谈谈Unicode编码

    2019独角兽企业重金招聘Python工程师标准>>> 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级.整 ...

  5. [转]程序员趣味读物:谈谈Unicode编码

    from : http://pcedu.pconline.com.cn/empolder/gj/other/0505/616631_all.html#content_page_1 这是一篇程序员写给程 ...

  6. mysql会对同时读取加锁吗_程序员经典面试题,MySQL并发读写的时候,都是需要加锁的么?...

    这是一道经典的程序员面试题,在Mysql中,如果有多个事务同时访问同一行数据,那么需要加锁么?我们都知道,在Mysql中有行锁,如果有多个事务同时修改同一行数据,那么需要加锁来防止并发问题.那么,如果 ...

  7. gb2312编码表_程序员趣味读物:谈谈Unicode编码

    点击上方"智能与算法之路",选择"星标"公众号 资源干货,第一时间送达 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念, ...

  8. 这本书中的程序员经典语句我都给你找出来了,请查收

    "Rust是一种采用过去的知识解决将来的问题的技术."--Graydon Hoare "高效开发的关键在于不断制造一些新的有趣错误."--Tom Love &q ...

  9. 绝影疯狂的程序员经典语录(完结)

    这本书很实在,也有点幽默,很多东西都很经典,把它们记下来,相信以后都会受益. Page 4 但事情就是这样,你不会造车,但可以去卖车:你不会下蛋,但可以炒蛋炒饭卖.而且卖车的肯定比造车的更会卖车,炒蛋 ...

最新文章

  1. 网络工程师_想要记录下来的一些题_5
  2. vcenter6.0+EXSI6.0 部署虚拟机win10,安装vmtools后不能显示桌面
  3. HDU2016数据交换
  4. 2.标签CCLabelTTF,CCLabelAtlas,CCLabelBMFont
  5. Maven日常 —— 你应该知道的一二三
  6. 2017-2018-1 20155327 《信息安全系统设计基础》第7周学习总结
  7. 第9章 SportsStorePeta 完成购物车
  8. 第三方支付框架开发简要文档
  9. .NET报表控件TeeChart使用教程:构建图表
  10. php 发送curl跨域请求,php跨域传输(curl)
  11. python实现LU分解
  12. Java题 细胞分裂
  13. 人无信则不立,您了解自己的信用情况吗?
  14. android手游直播怎么推流,安卓手机直播,Total Control手游投屏教程
  15. 没想到华为P20的投屏功能,还可以这么强大!
  16. 苹果公司的 iCloud
  17. linux下lds链接脚本详解
  18. QT之model-delegat-model---QAbstractListModel QAbstractTableModel 与 QItemDelegate关系
  19. Particle Filter Tutorial 粒子滤波:从推导到应用
  20. #! 脚本解释器(如何不加node 直接执行js文件)

热门文章

  1. Educational Codeforces Round 25 C. Multi-judge Solving
  2. ZOJ3385 - Hanami Party (贪心)
  3. Java BigDecimal Rounding Mode
  4. Uediter的引用和取值
  5. ANTLR和StringTemplate
  6. [转]项目失败的经验
  7. Spring Cloud应用监控与管理Actuator
  8. 持续集成之Jenkins安装部署
  9. [转载]使用.net 2003中的ngen.exe编译.net程序
  10. 玩转ceph性能测试---对象存储(一)