【書籍推薦】每個程序員都應(yīng)該讀的十本最有影響力的書
前言
在 Stackoverflow 上有一個「歷史悠久」的問題 What is the single most influential book every programmer should read? (每個程序員都應(yīng)該讀哪些最有影響力的書?)。
這個問題被持續(xù)回答了 「12 年」,也早已 close 了,得出了大家最認(rèn)可的一些書。我大致看了一下「前 10 本」,也深感自己的不足,目前看過(并沒看完)的也只有其中之三,分別是《算法導(dǎo)論》、《編譯原理》、《設(shè)計模式》。
所以,今天這篇書籍推薦的文章權(quán)當(dāng)做「引子」,列出了回答中的「前 10 本書籍」,并且借鑒了「豆瓣」上的書籍介紹分享給大家。
1.《代碼大全》
《代碼大全》第 2 版(豆瓣 9.3),作者 Steve McConnell。這是一本完整的軟件構(gòu)建手冊,涵蓋了軟件構(gòu)建過程中的所有細(xì)節(jié)。它從軟件質(zhì)量和編程思想等方面論述了軟件構(gòu)建的各個問題,并詳細(xì)論述了緊跟潮流的新技術(shù)、高屋建瓴的觀點(diǎn)、通用的概念,以及還含有豐富而典型的程序示例。

2.《程序員修煉之道:從小工到專家》
《程序員修煉之道:從小工到專家》(豆瓣 8.6),作者 Andrew Hunt / David Thomas。這本書由一系列獨(dú)立的部分組成,涵蓋的主題從個人責(zé)任、職業(yè)發(fā)展,知道用于使代碼保持靈活、并且易于改編和復(fù)用的各種架構(gòu)技術(shù),利用許多富有娛樂性的奇聞軼事、有思想性的例子及有趣的類比,全面闡釋了軟件開發(fā)的許多不同方面的最佳實(shí)踐和重大陷阱。

3.《計算機(jī)程序的構(gòu)造和解釋》
《計算機(jī)程序的構(gòu)造和解釋》第 2 版(豆瓣 9.5),作者 Harold Abelson / Gerald Jay Sussman / Julie Sussman。這本書對于計算機(jī)科學(xué)的教育計劃產(chǎn)生了深刻的影響。第 2 版中大部分重要程序設(shè)計系統(tǒng)都重新修改并做過測試,包括各種解釋器和編譯器。作者根據(jù)其后十余年的教學(xué)實(shí)踐,還對其他許多細(xì)節(jié)做了相應(yīng)的修改。

4.《C 程序設(shè)計語言》
《C 程序設(shè)計語言》第 2 版本(豆瓣 9.4),作者 Kernighan / Ritchie。這本書原著即為 C 語言的設(shè)計者之一 Dennis M.Ritchie 和著名計算機(jī)科學(xué)家 Brian W.Kernighan 合著的一本介紹 C 語言的權(quán)威經(jīng)典著作。我們現(xiàn)在見到的大量論述C語言程序設(shè)計的教材和專著均以此書為藍(lán)本。

5.《算法導(dǎo)論》
《算法導(dǎo)論》第 2 版(豆瓣 9.3),作者 Cormen / Leiserson / Rivest / Stein。這本書深入淺出,全面地介紹了計算機(jī)算法。對每一個算法的分析既易于理解又十分有趣,并保持了數(shù)學(xué)嚴(yán)謹(jǐn)性。

6.《設(shè)計模式》
《設(shè)計模式》(豆瓣 9.1),作者 Erich Gamma 等 4 位(修誤)。這本書結(jié)合設(shè)計實(shí)作例從面向?qū)ο蟮脑O(shè)計中精選出 23 個設(shè)計模式,總結(jié)了面向?qū)ο笤O(shè)計中最有價值的經(jīng)驗,并且用簡潔可復(fù)用的形式表達(dá)出來。

7.《重構(gòu)》
《重構(gòu)》第 2 版(豆瓣 9.0),作者 Martin Fowler。這本書的核心是一份完整的重構(gòu)名錄(catalog of refactoring),其中每一項都介紹一種經(jīng)過實(shí)證的代碼變換手法(code transformation)的動機(jī)和技術(shù)。某些項目如Extract Method和Move Field看起來可能很淺顯,但不要掉以輕心,因為理解這類技術(shù)正是有條不紊地進(jìn)行重構(gòu)的關(guān)鍵。點(diǎn)擊進(jìn)入該書更多詳細(xì)信息。

8.《人月神話》
《人月神話》(豆瓣 8.4),作者 Frederick P. Brooks, Jr。這本書中的內(nèi)容來自布魯克斯在 IBM 公司 System 360 家族和 OS 360 中的項目管理經(jīng)驗。

9.《計算機(jī)程序設(shè)計藝術(shù)》
《計算機(jī)程序設(shè)計藝術(shù)》(豆瓣 9.4),第 1 卷,作者 Donald Knuth。這本書首先介紹編程的基本概念和技術(shù),然后詳細(xì)講解信息結(jié)構(gòu)方面的內(nèi)容,包括信息在計算機(jī)內(nèi)部的表示方法、數(shù)據(jù)元素之間的結(jié)構(gòu)關(guān)系,以及有效的信息處理方法。

10.《編譯原理》
《編譯原理》龍書三(豆瓣 9.1),作者 Alfred V. Aho / Monica S.Lam / Ravi Sethi / Jeffrey D. Ullman。這本書全面、深入地探討了編譯器設(shè)計方面的重要主題,包括詞法分析、語法分析、語法制導(dǎo)定義和語法制導(dǎo)翻譯、運(yùn)行時刻環(huán)境、目標(biāo)代碼生成、代碼優(yōu)化技術(shù)、并行性檢測以及過程間分析技術(shù),并在相關(guān)章節(jié)中給出大量的實(shí)例。

參考
豆瓣讀書
What is the single most influential book every programmer should read?
?? 愛心三連擊
寫作不易,可以的話麻煩點(diǎn)個贊,這會成為我堅持寫作的動力,奧力給!!!
