黑客書架上出現頻率最高的9部半書籍

jian436發表於2009-09-15

每一位黑客都需要一個堅實的圖書館來尋找靈感以及查詢參考資料。這兒的列表能給你一些你想要的東西,裡面既有電腦科學的頂級大學教材,也有對業界的真知灼見,還有你不可或缺的參考書籍。它囊括了黑客的經典著作。

人月神話:軟體工程評述-週年版

Fredrick P. Brooks著

這本論述軟體工程中人的因素的經典著作出版於1975年。這些年來,技術已經發生了很大的變化,但是人的因素還是和原來一樣讓人頭痛。這是一本有深刻洞察力的書籍,也是一本在業界非常著名,常常被引用的書籍。《人月神話》概括了許多在大中型專案中經常遇到的,也是非常致命的問題。它提出了2條著名的準則:

?人月神話:向一個已經延後的專案中投入更多的人力資源只會讓它更延後
?沒有銀彈:沒有一種策略,技術或者技巧可以極大地提高程式設計師的生產力
我不僅向程式設計師推薦這本書,也想任何一個專案管理人員推薦這本書。專案經理和程式設計師都會喜歡布魯克斯清楚而明晰的觀點。

C 程式設計語言(第二版)


這是一本權威的C語言參考書籍,人們通常叫它K&R。它無比精煉,同時也能恰到好處地給初學者提供足夠的資訊。K&R提供的資訊剛好是你需要的,不多也不少。274頁的篇幅是你說能發現的參考書中最緊湊的。我敢說Java的作者是很難寫出如此簡明扼要的著作。

這本書適合任意一個學習C語言或者想尋找C語言參考書的人。K&R也是任何一位想撰寫語言參考或者技術著作的人必讀的書目。

如果你沒有任何的程式設計經驗,K&R不太適合做為起點。但是如果你足夠有衝勁的話,它還是能讓你學到不少東西。初學者需要去買一本答案,它提供了所有練習的詳細解釋。

計算機程式設計與解釋 (第二版)

Harlod Abelson和Gerald Jay Sussman著

SICP是一本被很多頂級高校,諸如加州大學伯克利分校,麻省理工學院等,使用的入門書籍。它用Scheme語言介紹了許多強大的範例,比如遞迴,lamda表示式,抽象以及解釋性語言。

我發現這本書做為入門教材是難以想象的厚重。我工作了幾年並且對這些東西有了更深的瞭解以後,再來重新讀這本書,仍然學到了很多東西。

如果你在課堂上沒用到這本書,我推薦你把它找來仔細看看自己遺漏了什麼,特別是你沒用使用過LISP這樣的語言的話。

程式碼大全2:軟體架構的實用手冊

Steve McConnell著

《程式碼大全2》是一本在軟體架構方面得到高度評價的書。McConnell在書中定義了主要的程式設計和除錯的架構,也闡述了一些架構設計,詳細設計,單元測試,整合和整合測試的內容。

這本書的主要目的是讓你寫出更好的程式碼。McConnell涉及了包括管理軟體複雜度,重構,程式碼風格和寫出優美的註釋等方方面面的內容。

這本書推薦給任何一個想寫出健壯的程式碼的人。當你學習到了良好的程式碼實踐,那麼你就會節約很多起步的時間;同時,它對於有多年經驗的程式設計師也能幫助他們改變自己不好的開發習慣。

演算法簡介

Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest 和 Clifford Stein著

這是另外一本教材。《演算法簡介》也許是大學中使用的最多的演算法教材。它同時也是一本非常好的參考書。

儘管在實際情況中大部分程式設計師在生產環境中都不會自己去寫諸如快速排序這樣的演算法實現,但是演算法知識是瞭解你所應用的庫以及你自己程式碼實際效率的基礎。

《演算法簡介》被推薦給任何一個想完善自己演算法技巧的開發人員,它也被推薦給那些對NP完備性,隨機演算法,快速傅立葉變換等課題感興趣的人。閱讀這本書也需要良好的數學知識。

設計模式:可複用的物件導向軟體的原則

Erich Gamma,Richard Helm,Ralph Johnson和John M. Vlissides著

這本書闡述了各種物件導向的設計模式。對於書中23種模式的每一種,作者都給出了深度分析,這些分析包括清晰的示例,常見的缺陷,相關的模式,用C++或者SmallTalk寫的示例程式碼。這些模式涵蓋了單件模式,觀察者模式,模板方法模式,迭代器模式和代理模式。

這本書對於使用面嚮物件語言的中級或者高階開發者是必讀書目。剛剛進入物件導向開發的開發人員最好在掌握了面嚮物件語言以及在非實驗性專案中深入實踐以後再來學習裡面的模式。否者你學到的東西不可能是很牢靠的。

程式設計珍珠 (第二版)

Jon Bentley著

這本書在學習解決問題的技巧方面非常突出。15章的每一個章節都對應著一個任務,例如排序電話號碼,建立迴文詞或者搜尋文字。Bentley先定義問題,然後再提出不同的解決方案,提供了討論和對每個解決方案清晰的分析,最後再給出了程式設計的基本原則。

《程式設計珍珠》包含了一些非常聰明的主意,它們可以用來做為解決一些小問題的時候做為參考。但是這本書更有用的地方是如何從工程師的角度解決問題。

我把這本書推薦給每一位享受程式設計工作的人。

編譯器:原則,技術和工具

Alfred V. Aho, Ravi Sethi 和Jeffrey D. Ullman著

《編譯器:原則,技術和工具》通常被叫做“龍書”(封面上有一條紅色的龍)。它是編譯原理課堂上的標準圖書。它涵蓋了你想知道的編譯器的各方面:文法,分析器,詞法分析,語法,中間語言的產生,執行時環境,優化等等。如果你對這些東西還沒有足夠的瞭解的話,那麼你就要準備去學習一些新的術語和概念,比如確定性有限自動機,有限狀態自動機,LR剖析器等等。

我很喜歡龍書的各部分並且對裡面的數學概念和理論很感興趣(它們貫穿了整本書)。如果你很喜歡正規表示式和狀態機,那麼你會很喜歡這本書。另外一方面,如果你想知道一些現代編譯器的實現原理,你可能無法在裡面找到你所需要的東西。龍書是1986年出版的,不能涵蓋這些現代的話題。

Unix強大工具 第三版

Shelley Powers,Jerry Peek,Tim O' Reilly和Mike Loukides著

這本書是O'Reilly出版社出版的很多偉大著作中的一本。《Unix強大工具》達到了1200頁,完全描述了Unix下面命令列工具,用法,指令碼語法示例。

《Unix強大工具》是一本組織的非常好的參考書。如果你依次讀下去,你會發現自己會變成讓人驚訝的計算機癮君子典型代表。

這本書裡面大部分內容都可以在Google上面搜尋到,但是有時候我們也需要這樣一本很好的參考書。

這本書是為數不多的適合於初學者和專家的書籍之一。不管是Unix新手還是有多年經驗的系統管理員都能從這本書獲益。

便車旅行者指南終極收藏版:5部完整的小說和一個故事

Douglas Adams著

這不是一本技術書籍。但是如果你沒讀過這部便車旅行者三部曲,你就不可能摘掉計算機癮君子的帽子。它其實包含了5本書,《銀河便車指南》,《宇宙盡頭的旅館》,《生活,宇宙和一切》,《再見,謝謝那些魚》,《大部無害》,再加上一篇短篇小說《小柴法德謹慎行事》

在發現對生活,宇宙和一切的答案中找到愉悅。學習如何製作Pan Galactic Gargle Blaster(這應該是一種飲料,但是不知道怎麼翻譯。出處在這兒:http://ywsl.com/bbs/bbsshow.aspx?id=42780

The Hitch Hiker's Guide to the Galaxy also mentions alcohol. It says that the best drink in existence is the Pan Galactic Gargle Blaster.It says that the effect of a Pan Galactic Gargle Blaster is like having your brains smashed out by a slice of lemon wrapped round a large gold brick.
),而這一切都是毫不痛苦的。

這個版本有漂亮的黑色皮革封面,還有絲帶書籤。閱讀的時候就好像在讀一本很好的聖經,而且還更可信。(我要在某些喜歡爭辯的人發現我之前收回我的話,這只是一個玩笑而已啦)

相關文章