美国著名图书频道Book Pool集结最权威的62位作者评选出了最近10年计算机专业图书中的50强[原文]
光这62位作者阵营就非常强大,我们熟悉的就有:
Francesco Balena (Microsoft.NET框架程序设计,Visual Basic.NET语言描述作者)
Bert Bates (Head First Design Patterns作者)
Joshua Bloch (Effective Java作者)
Kalen Delaney (Microsoft SQL Server 2000技术内幕作者)
Stephen C. Dewhurst (C++ Gotchas作者)
Bill Evjen (Visual Basic.NET宝典作者)
Dino Esposito (构建Web解决方案—应用ASP.NET和ADO.NET、Microsoft .NET XML程序设计作者)
Andy Hunt (Pragmatic Programmer系列图书作者)
Gary McGraw (Exploiting Software: How to Break Code作者)
Steve McConnell (Code Complete作者)
Christian Nagel (Enterprise Services with the .NET Framework作者)
Arnold Robbins (Linux程序设计作者)
Tim O'Reilly (O'Reilly媒体集团创始人)
Chris Sells (Windows Forms程序设计、.NET本质论作者)
Stephen Walther (设计模式--可复用面向对象软件的基础作者)
John Vlissides (ASP.NET揭秘作者)
由此可见,这次评选的权威性,还是让我们来看看这50本书的分布吧:
软件工程类
按照现代计算机技术的发展,人月神话应该称得骨灰级图书了,计算机图书能够流行30年,Frederick Brooks确实让人刮目相看。这种现象往往出现在软件工程类和算法类的图书上,这些理论和技术往往经久不衰。比如:
设计模式:可复用面向对象软件的基础 -- 1994年出版(多位大师创作)
人件 -- 1987年出版(Tom DeMarco、Timothy Lister)
Martin Fowler和Kent Beck是软件工程领域最有名的技术作家,剩下的4本上榜图书全部是他们所写:
企业应用架构模式(Martin Fowler)
重构--改善既有代码的设计(Martin Fowler)
解析极限编程(Kent Beck)
UML精粹:标准对象建模语言简明教程(Martin Fowler)
看看这个领域还漏掉哪些经典:
Robert C. Martin的敏捷软件开发:原则、模式与实践或者是其他?
C/C++类
C语言的设计者Brian W.Kernighan的C程序设计语言确实经典,超过C++之父Bjarne Stroustrup的C++程序设计语言进入名单榜中。
此外,Scott Meyers的Effective C++众望所归,作者的More Effective C++、Effective STL也同样精彩。
Stan Lippman的C++ Primer不在榜单,有点可惜。
Java类
不知道什么原因,Java类图书的排名比较靠后,Head First Java是一本不错的教材,不过国内好像还未引进,Java 2核心技术 卷I:基础知识已经出第7版了,可见受欢迎的程度。Sun的Joshua Bloch在Effective Java采用Scott Meyers的风格,使本书成为真正的Effective Java Book。
不过Java编程思想、J2EE核心模式、Contributing to Eclipse、 Expert One-on-One J2EE Development without EJB落榜有点意外。
Windows/.NET类
Charles Petzold的Windows程序设计是尽人皆知的Win32 API编程经典,也称为“Petzold Book”。由Anders Hejlsberg来写C#编程语言详解 ,谁说不是经典?不过ADO.NET实用指南上榜有点出乎我的意料,为什么不是Jeffrey Richter的Microsoft .NET框架程序设计?
Linux/Unix类
这类只有一本UNIX环境高级编程,漏掉了UNIX 编程艺术是否可惜?
Web开发类
有3本书上榜,Perl之父Larry Wall的Perl语言编程 是经典的教程,网站重构上榜在情理之中,Jeffrey Zeldman一直走在Web标准制定的最前沿。
ASP.NET Page Framework负责人Nikhil Kothari的ASP.NET服务器空间与组件开发讲解ASP.NET模式非常清晰,不过,如果是ASP.NET入门的话,我倒是推荐另外一本--ASP.NET揭秘。
还有没有漏掉什么啦?JavaScript权威指南是不是也很好?
网络通讯类
这类图书上榜比较多,TCP/IP如此的重要,TCP/IP详解卷1:协议和 TCP/IP路由技术(第一卷)同时上榜。其他的还有Internet路由结构、计算机网络(第四版)、DNS与BIND
数据库类
数据库类评选结果不太好评点,Transact-sql权威指南是一本标准的T-SQL教材,进一步实践,还是建议看邹建最新出版的中文版 SQL Server 2000 开发与管理应用实例。
其他上榜的都没有中文版:A First Look at SQL Server 2005 for Developers (FirstLook系列过时太快,基本上没有引进)、Expert Oracle, Signature Edition (One-on-One)(2005年的新书,作者Thomas Kyte是Oracle的VP)、Joe Celko's SQL for Smarties : Advanced SQL Programming(作者Joe Celko是ANSI SQL标准委员会成员)
安全类
网络社会没有比安全更重要的了,这类图书上榜就有5本,分别是: 编写安全的代码、 黑客大曝光、 信息安全工程、 网络信息安全的真相、 应用密码学。 后2本都是国际公认密码和信息安全专家Bruce Schneier的大作。
算法和代码类
提到算法,没有人不想到Donald E.Knuth的计算机程序设计艺术,据说Bill Gates曾放言,做对该书所有习题就能到微软来报到上班,可见此书探讨算法的深度。相比Donald的巨著,算法导论更适合做为算法教材。
代码大全上榜在预料之中,这本书曾经有过中文版,不过现在已经绝版了,有点可惜。
综合类
不好归类的都叫综合类吧,程序员修炼之道书名翻译不太恰当,Pragmatic Programmer代表注重实效的程序员,程序员如何注重实效?全书就围绕这个话题在谈。不过,因为这本书出版时间较早(1999年),我更愿意看Joel说软件,这种Blog的写作风格更加通俗易懂。
编程珠玑和程序设计实践是2本讲解编程技巧的图书,如果说软件是工艺的话,你对这门手艺掌握的如何了?
Merrill R. Chapman作为老资格的程序员、销售主管,在IT大败局中以事件亲历的方式来剖析Ashton-Tate等公司的失败案例的时候显得特别具有说服力。前车之鉴、后车之师,何必自己花钱买教训呢?
综合类还有很多好书,比如,Gerald M.Weinberg的你的灯亮着吗?、David Kushner的DOOM启世录都值得一读。国内的读者还不应该放过李维的Borland传奇、蔡学镛的爪哇夜未眠
其他一些上榜图书没有中文版,不太好点评,分别是:
Microsoft SharePoint: Building Office 2003 Solutions
Group Policy, Profiles, and IntelliMirror for Windows 2003, Windows XP, and Windows 2000
Don't Make Me Think
The Design of Everyday Things
The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography
Mac OS X: The Missing Manual, Panther Edition
The Elements of Style, 4th Edition
Godel, Escher, Bach: An Eternal Golden Braid