近10年最強的50本計算機圖書,您讀過幾本?
美國著名圖書頻道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