[整理]程式設計師一生必讀的30本書

1. 《程式碼大全》(第二版)

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者:  [美]史蒂夫·邁克康奈爾

第2版的《程式碼大全》是著名IT暢銷書作者史蒂夫·邁克康奈爾11年前的經典著作的全新演繹:第2版不是第一版的簡單修訂增補,而是完全進行了重寫;增加了很多與時俱進的內容。這也是一本完整的軟體構建手冊,涵蓋了軟體構建過程中的所有細節。它從軟體質量和程式設計思想等方面論述了軟體構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程式示例。這本書中所論述的技術不僅填補了初級與高階程式設計技術之間的空白,而且也為程式設計師們提供了一個有關程式設計技巧的資訊來源。這本書對經驗豐富的程式設計師、技術帶頭人、自學的程式設計師及幾乎不懂太多程式設計技巧的學生們都是大有裨益的。可以說,無論是什麼背景的讀者,閱讀這本書都有助於在更短的時間內、更容易地寫出更好的程式。

 

2. 《程式設計師修煉之道》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: Andrew Hunt /David Thomas 

《程式設計師修煉之道》由一系列的獨立的部分組成,涵蓋的主題從個人責任、職業發展,直到用於使程式碼保持靈活、並且易於改編和複用的各種架構技術。利用許多富有娛樂性的奇聞軼事、有思想性的例子以及有趣的類比,全面闡釋了軟體開發的許多不同方面的最佳實踐和重大陷阱。無論你是初學者,是有經驗的程式設計師,還是軟體專案經理,本書都適合你閱讀。

 

3. 《計算機程式的構造和解釋》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Harold Abelson/ Gerald Jay Sussman / Julie Sussman 

《計算機程式的構造和解釋(原書第2版)》1984年出版,成型於美國麻省理工學院(MIT)多年使用的一本教材,1996年修訂為第2版。在過去的二十多年裡,《計算機程式的構造和解釋(原書第2版)》對於電腦科學的教育計劃產生了深刻的影響。第2版中大部分重要程式設計系統都重新修改並做過測試,包括各種直譯器和編譯器。作者根據其後十餘年的教學實踐,還對其他許多細節做了相應的修改。

 

4. 《C程式設計語言》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: (美)Brian W.Kernighan / (美)Dennis M. Ritchie 

在計算機發展的歷史上,沒有哪一種程式設計語言像C語言這樣應用廣泛。本書原著即為C語言的設計者之一DennisM.Ritchie和著名電腦科學家BrianW.Kernighan合著的一本介紹C語言的權威經典著作。我們現在見到的大量論述C語言程式設計的教材和專著均以此書為藍本。原著第1版中介紹的C語言成為後來廣泛使用的C語言版本——標準C的基礎。人們熟知的“hello,World”程式就是由本書首次引入的,現在,這一程式已經成為眾多程式設計語言入門的第一課。

原著第2版根據1987年制定的ANSIC標準做了適當的修訂.引入了最新的語言形式,並增加了新的示例,通過簡潔的描述、典型的示例,作者全面、系統、準確地講述了C語言的各個特性以及程式設計的基本方法。對於計算機從業人員來說,《C程式設計語言》是一本必讀的程式設計語言方面的參考書。

 

5. 《演算法導論》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美] ThomasH.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein 

這本書深入淺出,全面地介紹了計算機演算法。對每一個演算法的分析既易於理解又十分有趣,並保持了數學嚴謹性。本書的設計目標全面,適用於多種用途。涵蓋的內容有:演算法在計算中的作用,概率分析和隨機演算法的介紹。書中專門討論了線性規劃,介紹了動態規劃的兩個應用,隨機化和線性規劃技術的近似演算法等,還有有關遞迴求解、快速排序中用到的劃分方法與期望線性時間順序統計演算法,以及對貪心演算法元素的討論。此書還介紹了對強連通子圖演算法正確性的證明,對哈密頓迴路和子集求和問題的NP完全性的證明等內容。全書提供了900多個練習題和思考題以及敘述較為詳細的例項研究。

 

6. 《重構:改善既有程式碼的設計》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Martin Fowler 

重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善程式碼。多年前,正是本書原版的出版,使重構終於從程式設計高手們的小圈子走出,成為眾多普通程式設計師日常開發工作中不可或缺的一部分。本書也因此成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等眾多語言,在世界範圍內暢銷不衰。

本書凝聚了軟體開發社群專家多年摸索而獲得的寶貴經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支援力度,都與本書最初出版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反覆咀嚼,而且往往能夠常讀常新。

 

7. 《設計模式》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美] ErichGamma / Richard Helm / Ralph Johnson / John Vlissides 

這本書結合設計實作例從物件導向的設計中精選出23個設計模式,總結了物件導向設計中最有價值的經驗,並且用簡潔可複用的形式表達出來。書中分類描述了一組設計良好、表達清楚的軟體設計模式,這些模式在實用環境下特別有用。此書適合大學計算機專業的學生、研究生及相關人員參考。

書中涉及的設計模式並不描述新的或未經證實的設計,只收錄了那些在不同系統中多次使用過的成功設計。

 

8. 《人月神話》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美] 弗雷德裡克·布魯克斯 

作者為人們管理複雜專案提供了頗具洞察力的見解,既有很多發人深省的觀點,也有大量的軟體工程實踐。書中的內容來自布魯克斯在IBM公司System360家族和OS360中的專案管理經驗。初版的20年後,布魯克斯重新審視了他原先的觀點,增加了一些新的想法和建議。新增加的章節包括:原著中一些核心觀點的精華;在經過了一個時代以後,Brooks博士對原先觀點新的認識;1986年的經典文章《沒有銀彈》;對1986年所下論斷(在10年內不會出現銀彈)現在的認識。

 

9.《計算機程式設計藝術》(共5冊)

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 作者: Donald E.Knuth 

《計算機程式設計藝術》重譯自DonaldE. Knuth的三卷著作:”The Art of Computer Programming: 1. Fundamental Algorithms;2. Seminumerical Algorithms; 3. Sorting andSearching”;三卷中文名為《基本演算法》、《半數值演算法》及《排序與查詢》。本書內容博大精深,作者因為三卷書獲得美國計算機協會1974年圖靈獎(該獎被國際公認為電腦科學領域的最高獎項)。

 

10. 《編譯原理》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Alfred V. Aho / Monica S.Lam / Ravi Sethi /Jeffrey D. Ullman 

《編譯原理》全面、深入地探討了編譯器設計方面的重要主題,包括詞法分析、語法分析、語法制導定義和語法制導翻譯、執行時刻環境、目的碼生成、程式碼優化技術、並行性檢測以及過程間分析技術,並在相關章節中給出大量的例項。與上一版相比,《編譯原理》進行了全面修訂,涵蓋了編譯器開發方面最新進展。每章中都提供了大量的例項及參考文獻。

 

11. 《深入淺出設計模式》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: 弗里曼 

《深入淺出設計模式》(影印版)的編寫運用許多最新的研究,包括神經生物學、認知科學以及學習理論,這使得《深入淺出設計模式》(影印版)能夠將這些設計模式深深地烙印在你的腦海中,不容易被遺忘。你將會更擅長於解決軟體設計中的問題,並能夠和你的團隊成員用模式的語言來更好地溝通。

 

12.《哥德爾、艾舍爾、巴赫書:集異璧之大成》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美] 侯世達 

集異璧-GEB,是數學家哥德爾、版畫家艾舍爾、音樂家巴赫三個名字的字首。《哥德爾、艾舍爾、巴赫書:集異璧之大成》是在英語世界中有極高評價的科普著作,曾獲得普利策文學獎。它通過對哥德爾的數理邏輯,艾舍爾的版畫和巴赫的音樂三者的綜合闡述,引人入勝地介紹了數理邏輯學、可計算理論、人工智慧學、語言學、遺傳學、音樂、繪畫的理論等方面,構思精巧、含義深刻、視野廣闊、富於哲學韻味。

中譯本前後費時十餘年,譯者都是數學和哲學的專家,還得到原作者的直接參與,譯文嚴謹通達,特別是在原作者的幫助下,把西方的文化典故和說法,儘可能轉換為中國文化的典故和說法,使這部譯本甚至可看作是一部新的創作,也是中外翻譯史上的一個創舉。

 

13. 《程式碼整潔之道》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美]Robert C.Martin 

軟體質量,不但依賴於架構及專案管理,而且與程式碼質量緊密相關。這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認。《程式碼整潔之道》提出一種觀念:程式碼質量與其整潔度成正比。乾淨的程式碼,既在質量上較為可靠,也為後期維護、升級奠定了良好基礎。作為程式設計領域的佼佼者,《程式碼整潔之道》作者給出了一系列行之有效的整潔程式碼操作實踐。這些實踐在《程式碼整潔之道》中體現為一條條規則(或稱“啟示”),並輔以來自現實專案的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的程式碼,從而有效提升程式碼質量。

《程式碼整潔之道》閱讀物件為一切有志於改善程式碼質量的程式設計師及技術經理。書中介紹的規則均來自作者多年的實踐經驗,涵蓋從命名到重構的多個程式設計方面,雖為一“家”之言,然誠有可資借鑑的價值。

 

14. 《EffectiveC 》和《More Effective C 》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美]ScottMeyers 

《EffectiveC :改善程式與設計的55個具體做法》(中文版)(第3版)一共組織55個準則,每一條準則描述一個編寫出更好的C 的方式。每一個條款的背後都有具體範例支撐。第三版有一半以上的篇幅是嶄新內容,包括討論資源管理和模板(templates)運用的兩個新章。為反映出現代設計考慮,對第二版論題做了廣泛的修訂,包括異常(exceptions)、設計模式(designpatterns)和多執行緒(multithreading)。

《EffectiveC 》的重要特徵包括:

·高效的classes、functions、templates 和inheritance hierarchies(繼承體系)方面的專家級指導。

·嶄新的 TR1標準程式庫功能應用,以及與既有標準程式庫元件的比較。

·洞察C 和其他語言(例如Java、C#、C)之間的不同。此舉有助於那些來自其他語言陣營的開發人員消化吸收 C 式的各種解法。

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Scott Meyers 

MoreEffectiveC 的重點包括:

·經過驗證的一些用來改善程式效率的方法,包括尖銳而犀利地檢驗C 語言特性所帶來的時間和空間上的成本

·廣泛描述C 專家所使用的高階技術,包括placement new,virtualconstructors,smart pointers,reference counting,proxy classes,double-dispa

15. 《程式設計珠璣》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: JonBentley 

本書是電腦科學方面的經典名著。書的內容圍繞程式設計人員面對的一系列實際問題展開。作者JonBentley以其獨有的洞察力和創造力,引導讀者理解這些問題並學會解決方法,而這些正是程式設計師實際程式設計生涯中至關重要的。本書的特色是通過一些精心設計的有趣而又頗具指導意義的程式,對實用程式設計技巧及基本設計原則進行了透徹而睿智的描述,為複雜的程式設計問題提供了清晰而完備的解決思路。本書對各個層次的程式設計師都具有很高的閱讀價值。.

多年以來,當程式設計師們推選出最心愛的計算機圖書時,《程式設計珠璣》總是位列前列。正如自然界裡珍珠出自細沙對牡蠣的磨礪,電腦科學大師JonBentley以其獨有的洞察力和創造力,從磨礪程式設計師的實際問題中凝結出一篇篇不朽的程式設計“珠璣”,成為世界計算機界名刊《ACM通訊》歷史上最受歡迎的專欄,最終結集為兩部不朽的電腦科學經典名著,影響和激勵著一代又一代程式設計師和電腦科學工作者。本書為第一卷,主要討論電腦科學中最本質的問題:如何正確選擇和高效地實現演算法。..

在書中,作者選取許多具有典型意義的複雜程式設計和演算法問題,生動描繪了歷史上眾大師們在探索解決方案中發生的軼事、走過的彎路和不斷精益求精的歷程,引導讀者像真正的程式設計師和軟體工程師那樣富於創新性地思考,並透徹闡述和總結了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程式設計技巧。解決方案的程式碼均以C/C 語言編寫,不僅有趣,而且有很大的實戰示範意義。每章後所附習題極具挑戰性和啟發性,書末給出了簡潔的解答。

 

16. 《修改程式碼的藝術》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: MichaelFeathers 

我們都知道,即使是最訓練有素的開發團隊,也不能保證始終編寫出清晰高效的程式碼。如果不積極地修改、挽救,隨著時間流逝,所有軟體都會不可避免地漸漸變得複雜、難以理解,最終腐化、變質。因此,理解並修改已經編寫好的程式碼,是每一位程式設計師每天都要面對的工作,也是開發程式新特性的基礎。然而,與開發新程式碼相比,修改程式碼更加令人生畏,而且長期以來缺乏文獻和資料可供參考。

本書是繼《重構》和《重構與模式》之後探討修改程式碼技術的又一里程碑式的著作,而且從涵蓋面和深度上都超過了前兩部經典。書中不僅講述面嚮物件語言(Java、C#和C )程式碼,也有專章討論C這樣的過程式語言。作者將理解、測試和修改程式碼的原理、技術和最新工具(自動化重構工具、單元測試框架、仿物件、整合測試框架等),與解依賴技術和大量開發和設計優秀程式碼的原則、最佳實踐相結合,許多內容非常深入,而且常常發前人所未發。書中處處體現出作者獨到的洞察力,以及多年開發和指導軟體專案所積累的豐富經驗和深厚功力。通過這部集大成之作,你不僅能掌握最頂尖的修改程式碼技術,還可以大大提高對程式碼和軟體開發的領悟力。

 

17.《編碼:隱匿在計算機軟硬體背後的語言》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: [美] 佩措爾德(Charles Petzold) 

本書講述的是計算機工作原理。作者用豐富的想象和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。這種理解不是抽象層面上的,而是具有一定深度的。

 

18. 《禪與摩托車維修藝術 /Zen and the Art of Motorcycle  Maintenance》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: (美)羅伯特·M.波西格

在一個炎熱的夏天,父子兩人和約翰夫婦騎摩托車從明尼蘇達到加州,跨越美國大陸,旅行的過程與一個青年斐德洛研修科學技術與西方經典,尋求自我的解脫,以及探尋生命的意義的過程相互穿插。一路上父親以一場哲學肖陶擴的形式,將見到的自然景色,野外露營的經歷,夜晚旅店的談話,機車修護技術等等日常生活與西方從蘇格拉底以來的理性哲學的深入淺出的闡述與評論相結合,進行了對形而上學傳統的主客體二元論的反思,以及對科學與藝術,知識與價值,古典主義與浪漫主義,精神與物質,機械論與神祕主義,西方與東方等西方二分法劃分下的事物間的關係的思考。並潛入自己的過去,探尋在現代文明下自己精神的分裂的起源,完成了一次自我心靈與人類文明的探索。

 

19. 《Peopleware /人件集:人性化的軟體開發》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Larry L.Constantine

《人件集:人性化的軟體開發》是人件領域中的經典著作,以專題的形式探討了軟體開發中的人的因素。本書共分九個部分:第一部分介紹團隊如何開展工作以及如何為開發更好的軟體而更好地工作;第二部分涉及軟體開發人員的不同觀點;第三部分探討團隊組織和開發的問題;第四部分探討開發者與其使用的工具之間的關係;第五部分針對提高軟體質量提出了建議;第六部分著眼於軟體可用性和使用者介面設計問題;第七部分解釋在使用者介面設計和軟體可用性方面的相同之處;第八部分探討軟體在溝通中涉及的一些話題;第九部分論述軟體開發中的組織文化。

本書的許多內容收自作者在多本知名計算機雜誌的人件專欄文章。本書適合所有開發並使用軟體的設計人員、開發人員和管理人員閱讀。

 

20. 《Coders atWork / 程式設計人生》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: Peter Seibel

界頂尖的程式設計師是怎麼走上程式設計道路的?

他們的程式設計工作創造和改變了人類歷史,在這一過程中都有哪些經驗和教訓?

他們對計算機軟體行業的過去、現在和未來有什麼獨到的看法和見解?

他們對培養、發現、選拔、面試優秀的程式設計師有什麼建議?

放下手頭的工作,聽聽這些軟體先驅們的故事和建議,眼界可以更開闊,思路可以更清晰,方向可以更明確,人生可以更精彩。

作者PeterSeibel採訪了下面這15位世界級程式設計大師,本書是他在近80個小時的訪談錄音基礎上整理彙編而成的。

· JamieZawinski:Lisp程式設計師,XEmacs開發者,Netscape瀏覽器和Mozilla核心開發者。

· BradFitzpatrick:書中唯一的80後,LiveJournal和memcached開發者。現效力於Google。

· DouglasCrockford:JavaScript權威,JSON之父。現任Yahoo架構師。

· BrendanEich:JavaScript之父。Mozilla公司CTO。

· JoshuaBloch:如果說Gosling是Java之父,那Bloch就是使Java真正成熟的教父,Java 2到5的核心架構師。現為Google首席Java架構師。

· JoeArmstrong:Erlang和OTP(開放電信平臺)框架之父。

· Simon PeytonJones:Haskell先驅。ACM會士。現為微軟劍橋研究院研究員。

· PeterNorvig:Google研發總監。ACM會士。

· GuySteele:精通多門語言,Common Lisp和Scheme開發者之一,Java語言規範作者之一,CommonLisp、Fortran、C、ECMAScript和Scheme等語言標準化委員會成員。高效能科學計算的語言Fortress設計者。ACM會士,美國工程院院士。Sun公司院士。

· DanIngalls:與Alan Kay合作開發了Smalltalk,是該語言的真正實現者。現為Sun公司傑出工程師。

· L. PeterDeutsch:JIT(即時)編譯技術發明者之一,PostScript檔案瀏覽器GhostScript的作者。ACM會士。Sun公司院士。

· KenThompson:圖靈獎得主。Unix之父。UTF-8 Unicode編碼設計者。

· FranAllen:圖靈獎第一位女得主。編譯技術公認權威。IEEE院士,ACM會士,美國工程院院士。IBM院士。

· BernieCosell:Internet奠基人,ARPANET最早的路由計算機IMP設計者之一。

· DonaldKnuth:多卷本經典鉅著《計算機程式設計藝術》的作者,排版軟體TeX的作者,圖靈獎得主。

 

21. 《Surely You’reJoking, Mr. Feynman! / 別鬧了,費曼先生!》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: RichardFeynman

費曼得過諾貝爾獎,是現代最偉大的理論物理學家之一。但他同時也可能是歷史上唯一被按摩院請去畫裸體畫、偷偷開啟放著原子彈機密檔案的保險箱,在巴西桑巴樂團擔任鼓手的科學家。他曾跟愛因斯坦和波爾等大師討論物理問題,也曾在賭城跟職業賭徒研究輸贏機率。

 

22. 《EffectiveJava 中文版》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: (美)JoshuaBloch

本書介紹了在Java程式設計中57條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對Java平臺設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能產生清晰、健壯的高效的程式碼。

本書中的每條規則都以簡短、獨立的小文章形式出現,這些小文章包含了詳細而精確的建議,以及對語言中許多細微之處的深入分析,並通過例子程式碼加以進一步說明。貫穿全書的是通用的語言用法的設計模式,以及一些具有啟發意義的技巧的技術。

 

23. 《Patterns ofEnterprise Application Architecture / 企業應用架構模式》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: Martin Fowler

《企業應用架構模式》作者是當今物件導向軟體開發的權威,他在一組專家級合作者的幫助下,將40多種經常出現的解決方案轉化成模式,最終寫成這本能夠應用於任何一種企業應用平臺的、關於解決方案的、不可或缺的手冊。《企業應用架構模式》獲得了2003年度美國軟體開發雜誌圖書類的生產效率獎和讀者選擇獎。《企業應用架構模式》分為兩大部分。第一部分是關於如何開發企業應用的簡單介紹。第二部分是《企業應用架構模式》的主體,是關於模式的詳細參考手冊,每個模式都給出使用方法和實現資訊,並配以詳細的Java程式碼或C#程式碼示例。此外,整《企業應用架構模式》中還用了大量UML圖來進一步闡明有關概念。

《企業應用架構模式》是為致力於設計和構建企業應用的軟體架構師、設計人員和程式設計人員而寫的,同時也可作為高等院校計算機專業及軟體學院相關課程的參考教材。

 

24. 《The LittleSchemer》和《The Seasoned Schemer》nmiranda(尚無中文版)

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: Daniel P.Friedman / Matthias Felleisen

This delightfulbook leads you through the basic elements of programming in Scheme (a Lispdialect) via a series of dialogues with well-chosen questions and exercises.Besides teaching Scheme, The Little Schemer teaches the reader how to thinkabout
computation. The authors focus on ten essential concepts of thinkingabout how to compute and demonstrate how to apply these concepts in inventiveways. The Little Schemer is an excellent book both for the beginner and for theseasoned programmer.

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Daniel P.Friedman / Matthias Felleisen   

 drawings byDuane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that”thinking about computing is one of the most exciting things the humanmind can do” sets both The Little Schemer (formerly known as The LittleLISPer) and its new
companion volume, The Seasoned Schemer, apart from otherbooks on LISP. The authors’ enthusiasm for their subject is compelling as theypresent abstract concepts in a humorous and easy-to-grasp fashion. Together,these books will open new doors of thought to
anyone who wants to find out whatcomputing is really about. The Little Schemer introduces computing as anextension of arithmetic and algebra;things that everyone studies in gradeschool and high school. It introduces programs as recursive functions andbriefly
discusses the limits of what computers can do. The authors use theprogramming language Scheme, and interesting foods to illustrate these abstractideas. The Seasoned Schemer informs the reader about additional dimensions ofcomputing: functions as values, change
of state, and exceptional cases. TheLittle LISPer has been a popular introduction to LISP for many years. It hadappeared in French and Japanese. The Little Schemer and The SeasonedSchemer areworthy successors and will prove equally popular as textbooks for
Schemecourses as well as companion texts for any complete introductory course inComputer Science.

 

25. 《互動設計之路》(TheInmates Are Running The Asylum: Why  High Tech Products Drive Us Crazy andHow to Restore the Sanity》)

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者:Alan Cooper

本書是基於眾多商務案例,講述如何建立更好的、高客戶忠誠度的軟體產品和基於軟體的高科技產品的書。本書列舉了很多真實可信的實際例子,說明目前在軟體產品和基於軟體的高科技產品中,普遍存在著“難用”的問題。作者認為,“難用”問題是由這些產品中存在著的高度“認知摩擦”引起的,而產生這個問題的根源在於現今軟體開發過程中欠缺了一個為使用者利益著想的前期“互動設計”階段。“難用”的產品不僅損害了使用者的利益,最終也將導致企業的失敗。本書通過一些生動的例項,讓人信服地講述了由作者倡導的“目標導向”互動設計方法在解決“難用”問題方面的有效性,證實了只有改變現有觀念,才能有效地在開發過程中引入互動設計,將產品的設計引向成功。

本書雖然是一本面向商務人員而編寫的書,但也適合於所有參與軟體產品和基於軟體的高科技產品開發的專業人士,以及關心軟體行業和高科技行業現狀與發展的人士閱讀。

 

26. 《Why’s(Poignant) Guide to Ruby 》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者:why the lucky stiff 

The book isunusual among programming books in that it includes quite a lot of strangehumour and narrative side tracks which are sometimes completely unrelated tothe topic. Many motifs have become inside jokes in the Ruby community, such asreferences
to the words “chunky bacon”. The book includes manycharacters which have become popular as well, particularly the cartoon foxesand Trady Blix, a large black feline friend of why’s, who acts as a guide tothe foxes (and occasionally teaches them some Ruby).    

 

27.《Unix程式設計藝術》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Eric S.Raymond

本書主要介紹了Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗,由公認的Unix程式設計大師、開源運動領袖人物之一EricS.Raymond傾力多年寫作而成。包括Unix設計者在內的多位領域專家也為本書貢獻了寶貴的內容。本書內容涉及社群文化、軟體開發設計與實現,覆蓋面廣、內容深邃,完全展現了作者極其深厚的經驗積累和領域智慧。

 

28. 《Practices ofan Agile Developer / 高效程式設計師的45個習慣:敏捷開發修煉之道》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: VenkatSubramaniam / Andy Hunt  

“書中‘切身感受’的內容非常有價值——通過它我們可以做到學有所思,思有所悟,悟有所行。”

——Nathaniel T.Schutta,《Ajax基礎教程》作者

“此書通過常理和經驗,闡述了為什麼你應該在專案中使用敏捷方法。最難得的是,這些行之有效的實戰經驗,竟然從一本書中得到了。”

——MatthewJohnson,軟體工程師

十年來,軟體行業發生了翻天覆地的變化。敏捷方法大行其道,測試和測試驅動開發在很多開發人員的工作中扮演著重要的角色。作為一名程式設計師,你應該培養怎樣的素質,方能對多變的環境應對自如,始終立於不敗之地?

本書簡明實用、見解深刻,總結了高效程式設計師在開發過程中的45個個人習慣、思想觀念和方法,有助於開發人員在開發程序、編碼工作、開發者態度、專案和團隊管理,以及持續學習等5個方面積極修煉。通過學習這些內容,養成這些好的習慣,你可以極大地提升自己的程式設計實力,更快速、更可靠地交付更高質量的軟體,從而成為真正的高效程式設計師。

 

29. 《Test-DrivenDevelopment by Example. / 測試驅動開發》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

作者: Kent Beck

《測試驅動開發》(中文版)設想把程式設計看成是轉動曲柄從井裡提一桶水上來的過程。如果水桶比較小,那麼僅需一個能自由轉動的曲柄就可以了。如果水桶比較大而且裝滿水,那麼還沒等水桶全部被提上來你就會很累了。你需要一個防倒轉的裝置,以保證每轉一次可以休息一會兒。水桶越重,防倒轉的棘齒相距越近。測試驅動開發中的測試程式就是防倒轉裝置上的棘齒。一旦我們的某個測試程式能工作了,你就知道,它從現在開始並且以後永遠都可以工作了。相比於測試程式沒有通過,你距離讓所有的測試程式都工作又近了一步。現在我們的工作是讓下一個測試程式工作,然後再下一個,就這樣一直進行。分析表明,要程式設計解決的問題越難,每次測試所覆蓋的範圍就應該越小。

 

30. 《Don’t Make MeThink / 點石成金:訪客至上的網頁設計祕笈》

程式設計師一生必讀的30本書 - 遠行的風 - 風的驛站

 

作者: [美]史蒂夫·克魯克 

可用性設計是Web設計中最重要也是最困難的一項任務。《點石成金》的作者根據自己多年從業的經驗,剖析使用者的心理,在使用者使用的模式、為瀏覽進行設計、導航設計、主頁佈局、可用性測試等方面提出了許多獨特的觀點,並給出了大量簡單、易行的可用性設計的建議。這本書短小精悍,語言輕鬆詼諧,書中穿插大量色彩豐富的螢幕截圖、趣味叢生的卡通插圖以及包含大量資訊的圖表,使枯燥的設計原理變得平易近人。

此書適合從事Web設計和Web開發的技術人員閱讀,特別適合為如何留住訪問者而苦惱的網站/網頁設計人員閱讀。