溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

每個(gè)程序員書柜必有的編程書籍

發(fā)布時(shí)間:2020-05-27 19:23:25 來源:網(wǎng)絡(luò) 閱讀:1143 作者:+lzy 欄目:系統(tǒng)運(yùn)維

本人首發(fā):http://www.infoq.com/cn/articles/each-programmer-must-have-programming-books-bookcase


原文參考了Dan Luu的博客,經(jīng)作者授權(quán),由InfoQ編譯、整理并分享。

一提到有關(guān)編程方面的書籍,你就會(huì)想起江湖中傳說的“每個(gè)程序員必讀的12本計(jì)算機(jī)科學(xué)書籍”,然而,這份清單并沒有什么實(shí)用性。因?yàn)?,?jì)算機(jī)科學(xué)領(lǐng)域非常寬泛,幾乎所有程序員都可以閱讀任何主題,就算某個(gè)主題很重要,但由于讀者的學(xué)習(xí)偏好天懸地隔,因此對(duì)所有讀者而言,某個(gè)主題并不存在所謂“最好的”書籍。

本文是我已經(jīng)閱讀過的主題和書籍的清單。這些都是我很熟悉的主題,也許你可以在此文中,了解關(guān)于該主題更多的情況,并閱讀其他相關(guān)書籍。換而言之,就是說你為什么需要閱讀另一本書。

算法、數(shù)據(jù)結(jié)構(gòu)、復(fù)雜性

Algorithms / Data Structures / Complexity

為什么要關(guān)心算法、數(shù)據(jù)結(jié)構(gòu)和復(fù)雜性? 好吧,有一個(gè)實(shí)用的結(jié)論:在工作中,即使你從來沒有用到這些東西,但是,大多數(shù)一流的支付公司在面試中會(huì)測(cè)試這些內(nèi)容。我決不瞎扯,算法真的很有用,就像我發(fā)現(xiàn)數(shù)學(xué)很有用一樣。任何特定算法適用于任何特定問題的概率很低,但從總體上說明什么類型的問題如何解決,什么樣的問題難以處理,通常當(dāng)近似有效時(shí)就有用了。

《Cracking the Coding Interview》
作者:McDowell
出版社:CareerCup; 6th edition (July 1, 2015)
中文版:《程序員面試金典》
譯者:李琳驍、漆犇
出版社:人民郵電出版社,第五版

《程序員面試金典》的作者M(jìn)cDowell,是原Google資深面試官的經(jīng)驗(yàn)之作,層層緊扣了程序員面試的每一個(gè)環(huán)節(jié),全面詳盡介紹了程序員應(yīng)當(dāng)如何應(yīng)對(duì)面試才能脫穎而出。該書涉及到面試流程解析、面試官的幕后決策及可能提出的問題、面試前的準(zhǔn)備工作、對(duì)面試結(jié)果的處理等內(nèi)容,還涵蓋了數(shù)據(jù)結(jié)構(gòu)、概念與算法、知識(shí)類問題和附加面試題四個(gè)方面,為讀者提供了來自Google、Facebook、Microsoft等多家知名公司的編程面試題,并為每一道面試題分別給出了詳細(xì)的解決方案。我會(huì)向那些并沒有真正掌握算法、但又想通過面試的程序員推薦這本書。這本書讀起來尚可,不過并不能真正教會(huì)你知識(shí),如果想真正掌握算法和數(shù)據(jù)結(jié)構(gòu),那么繼續(xù)往下看。

《Algorithms》
作者:Dasgupta、Papadimitriou、Vazirani
出版社:McGraw-Hill Education
中文版:《算法概論》
譯者: 王沛、唐揚(yáng)斌、劉齊軍
出版社:清華大學(xué)出版社

《算法概論》是一本適合入門的讀物,但卻不失深度以及廣度,讀來讓人興趣盎然。我認(rèn)為,認(rèn)真讀完這本書,并且思考每章后面的習(xí)題,會(huì)對(duì)算法有一個(gè)很好的大局觀。當(dāng)然要掌握算法,只靠這一本書是不夠的,不過算作最佳入門是當(dāng)之無愧的。該書全面介紹了算法的基本知識(shí),將算法分成類(例如分治法、,或貪婪算法),在表達(dá)每一種技術(shù)時(shí),強(qiáng)調(diào)每個(gè)算法背后的數(shù)學(xué)思想,讓你掌握如何判斷應(yīng)該使用什么樣的算法來解決特定的問題。

該書合理挑選主題,厘清了一條算法這門學(xué)問的線索,對(duì)結(jié)構(gòu)的精心安排,對(duì)問題的數(shù)學(xué)結(jié)構(gòu)的剖析,從而推出一個(gè)算法的過程的講解。長(zhǎng)度適宜,僅有三百多頁,可以利用幾個(gè)周末進(jìn)行閱讀。

不過,我知道有些讀者不會(huì)喜歡這本書,因?yàn)樗颂嗟臄?shù)學(xué)思想。如果是你,我猜你可能喜歡Skiena著的那本書。

《The Algorithm Design Manual》
作者:Skiena
出版社:Springer; 2nd edition (July 26, 2008)

《The Algorithm Design Manual》要比Dasgupta所著的那本《Algorithms》更長(zhǎng),更全面,也更實(shí)用,而且涉及到的數(shù)學(xué)也更少。它差不多就是試圖教你如何識(shí)別問題并使用正確的算法來解決問題、以及給出一個(gè)清晰的算法解釋的那本書。該書內(nèi)容豐富,各個(gè)主題幾乎無不涉及,從常見的各種數(shù)據(jù)結(jié)構(gòu)到算法策略、可計(jì)算性。如果想當(dāng)做教科書,該書每章結(jié)尾都有很多練習(xí),值得推薦。這本書充滿了激情的“戰(zhàn)爭(zhēng)故事”,顯示了算法在現(xiàn)實(shí)世界編程的影響。

《Introduction to Algorithms》
作者:Cormen、Leiserson、Rivest、Stein(CLRS)
出版社:The MIT Press; 3rd edition (July 31, 2009)
中文版:《算法導(dǎo)論》
譯者:殷建平、徐云、王剛、劉曉光、蘇明、鄒恒明、王宏志
出版社:機(jī)械工業(yè)出版社; 第1版 (2013年1月1日)

在江湖中流傳的各種版本“所有程序員必讀之書”的清單中,《算法導(dǎo)論》就占據(jù)了半壁江山。這本書將嚴(yán)謹(jǐn)性和全面性融為一體,深入討論了各種算法。實(shí)際上,幾乎沒有讀者會(huì)讀完整本書。不過,全書各章自成體系,可以作為獨(dú)立的學(xué)習(xí)單元。它是全球讀者最多的算法圣經(jīng)。該書的特點(diǎn)是選材經(jīng)典、內(nèi)容翔實(shí)、結(jié)構(gòu)合理、邏輯清晰。每章前半部分介紹了講授和學(xué)習(xí)算法的有效方法,后半部分為更專業(yè)的讀者和求知欲強(qiáng)的學(xué)生提供了更引人入勝的資料來討論這個(gè)迷人領(lǐng)域的各種可能性和挑戰(zhàn),對(duì)本科生的數(shù)據(jù)結(jié)構(gòu)課程和研究生的算法課程而言是非常棒的教科書。

比如說,有整整一章是關(guān)于Van Emde Boas樹,寫得很工整,這有點(diǎn)奇怪,像的平衡樹結(jié)構(gòu)的插入、刪除、就像查找、繼承一樣好,也許以前的書籍可能如此,但它是第一個(gè)沒有包含Van Emde Boas樹的算法導(dǎo)論。

《Algorithm Design》
作者:Kleinberg、Tardos
出版社:PEARSON EDUCATION; 1 edition (2013)

《Algorithm Design》廣受好評(píng),堪比CLRS所著《Introduction to Algorithms》,被推薦為關(guān)于算法設(shè)計(jì)和分析的一本不可多得的優(yōu)秀入門書。我發(fā)現(xiàn),這本書與CLRS所著的書相比,該書將直觀性與嚴(yán)謹(jǐn)性完美結(jié)合起來。覆蓋面比較寬廣,凡屬串行算法的經(jīng)典論題,都有所涉獵。

《Advanced Data Structures》
作者:Demaine

《Advanced Data Structures》是一套講稿和筆記,而非一本書。如果你想要一套條理清楚但不難綜合的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)資料,在大多本科課程中,你不大可能看到,因此這套講課和筆記,功德無量。

這些筆記沒有出單行本的計(jì)劃,所以如果您尚未看過這些資料,就必須觀看教學(xué)視頻。

《Purely Functional Data Structures》
作者:Okasaki
Cambridge University Press (June 13, 1999)
出版社: Cambridge University Press

《Purely Functional Data Structures》讀起來很有趣,但不同于其他算法和數(shù)據(jù)結(jié)構(gòu)的讀物的是,我從這本書中,還沒能得到真正解決實(shí)際問題的重要能力。

在我讀完這本書后過了幾年,有人告訴我,推理出純函數(shù)冗余數(shù)據(jù)結(jié)構(gòu)的性能并不難。我就向他們請(qǐng)教這本書中把我難倒的證明部分,我并不是在討論那些晦澀難懂的超難習(xí)題,而是說這本書的主要內(nèi)容,作者有太多過于明顯的解釋性的東西。但是并沒有人解釋。這種東西的推理比大家說的還要難。

《Higher Order Perl》
作者:Dominus
出版社: Morgan Kaufmann Publishers
中文版:《華章程序員書庫:高階Perl》
譯者:滕家海
出版社:機(jī)械工業(yè)出版社

《高階Perl》在Perl領(lǐng)域深入探討了各種最新的主題,如遞歸、迭代器、過濾器、劃分、數(shù)值方法、高階函數(shù)、惰性求值等內(nèi)容,并將這些轉(zhuǎn)換成現(xiàn)實(shí)變成工作中強(qiáng)有力的實(shí)用工具:HTML處理、數(shù)據(jù)庫訪問、網(wǎng)頁抓取、家庭理財(cái)?shù)鹊取?/p>

該書恰當(dāng)?shù)亟榻B了使用Perl的函數(shù)式編程。通過這本書的學(xué)習(xí),你可能像Python或Ruby那樣很容易進(jìn)行工作。

不過,如果你跟得上潮流,你會(huì)發(fā)現(xiàn)這本書可能有點(diǎn)過時(shí),因?yàn)橹v解的是2005年的Perl 5,而現(xiàn)在是2015年12月25日發(fā)行的Perl 6。不過,這本書提到的思想,目前已成主流。

《Algorithms》
作者:Levitin
出版社:Pearson; 3 edition (October 9, 2011)

“強(qiáng)化學(xué)習(xí)的其他特點(diǎn),包括:章節(jié)摘要,習(xí)題提示。這是一本詳細(xì)的解決方案手冊(cè)。”、“學(xué)生通過習(xí)題提示和章節(jié)摘要進(jìn)一步支持學(xué)習(xí)?!逼渲幸粋€(gè)廣告甚至印在書上。當(dāng)我看到這兩個(gè)廣告后,就在亞馬遜下了訂單購買《Algorithms》。但在我拿到這本書后,我唯一的自學(xué)資源卻是在雅虎問答(Yahoo Answers)里的一些帖子,在那里你能找到提示或者解答。

最后,我拿起了Dasgupta的著作來取代了這本書,因?yàn)樗木W(wǎng)站資源可以免費(fèi)使用。

《Probability and Computing: Randomized Algorithms and Probabilistic Analysis》
作者:Mitzenmacher、Upfal
出版社: Cambridge University Press (January 31, 2005)

我獲得的算法知識(shí)可能比其他任何算法書籍講述的都多。許多隨機(jī)算法移植到其他應(yīng)用程序雖然很瑣碎,但卻可以簡(jiǎn)化很多事情。

《Probability and Computing: Randomized Algorithms and Probabilistic Analysis》有關(guān)概率學(xué)的介紹部分很翔實(shí),就算讀者不具備任何概率學(xué)的背景也能輕松入門。此外,的內(nèi)容(例如,)對(duì)許多計(jì)算機(jī)科學(xué)理論的證明很有用,這些在我所閱讀到的概率學(xué)介紹內(nèi)容中都沒有提到。

《Introduction to the Theory of Computation》
作者:Sipser
出版社:Cengage Learning; 3 edition (June 27, 2012)
中文版:《計(jì)算理論導(dǎo)引》
譯者:段磊、唐常杰
出版社:機(jī)械工業(yè)出版社,第一版

《計(jì)算理論導(dǎo)引》以獨(dú)特的視角,系統(tǒng)介紹了計(jì)算理論的三大板塊:自動(dòng)機(jī)與語言、可計(jì)算性理論、計(jì)算復(fù)雜性理論。講述了寬泛的數(shù)學(xué)原理,沒有拘泥于某些低層次的細(xì)節(jié)。在證明之前,都有直觀的“證明思路”,幫助讀者理解數(shù)學(xué)形式下蘊(yùn)涵的概念。很多重要的結(jié)果,如定理,都被作為練習(xí)題。所以你真的需要做這些關(guān)鍵練習(xí)題。但是,大多數(shù)關(guān)鍵練習(xí)題沒有提供答案,因此你也無法知道你解答是否正確。

如果想選擇更為現(xiàn)代的主題,也許可以閱讀Aurora和Barak的著作。

《Computation》
作者:Bernhardt

《Computation》這部教學(xué)影片涵蓋了一些計(jì)算機(jī)理論的重點(diǎn)部分。影片講解令人愉悅,為了觀看Bernhardt講解的內(nèi)容,這個(gè)影片我已經(jīng)觀看不止一次了。該影片的受眾是那些沒有計(jì)算機(jī)科學(xué)背景的一般程序員。

《An Introduction to Computational Learning Theory》
作者:Kearns & Vazirani
出版社:The MIT Press (August 15, 1994)

《An Introduction to Computational Learning Theory》是一本非常經(jīng)典的讀物。但是這本書已經(jīng)過時(shí)(InfoQ注:該書1994年出版,距今已經(jīng)22年了),而且漏洞百出,沒有勘誤。我最終從幾門課程拼湊了一些筆記,一個(gè)是Klivans的著作,另一個(gè)是Blum的著作。

操作系統(tǒng)

Operating Systems

為什么要關(guān)心操作系統(tǒng)?因?yàn)?,掌握一些關(guān)于操作系統(tǒng)的知識(shí),可以讓你節(jié)省幾天或一周的調(diào)試時(shí)間。 這是Julia Evans博客上經(jīng)常提到的話題,我發(fā)現(xiàn),就我個(gè)人經(jīng)驗(yàn)來說,確實(shí)如此。

那些建立可行的系統(tǒng)并了解一些操作系統(tǒng)知識(shí)的人,卻沒有發(fā)覺如果有操作系統(tǒng)知識(shí)的話會(huì)很節(jié)省時(shí)間,這點(diǎn)我很難想象。

可是,讀過操作系統(tǒng)書籍的人往往有偏見——正是做這方面的相關(guān)人士,如果你是骨灰級(jí)玩家,除非閱讀這些,你可能得不到同樣的結(jié)果。

《Operating System Concepts》
作者:Silberchatz、Galvin、Gagne
出版社:Wiley; 9 edition (December 17, 2012)
中文版:《操作系統(tǒng)概念》(第七版)(翻譯版)
譯者:鄭扣根
出版社:高等教育出版社; 第1版 (2010年1月1日)

好吧,這是Comet Book成為標(biāo)準(zhǔn)之前,我們?cè)赪isconsin就用過的一本書。

《操作系統(tǒng)概念》涵蓋了高階概念并擊中要點(diǎn),但是在技術(shù)層次的深度稍顯不足,沒有詳細(xì)闡述事情是如何工作的,也沒有清晰列出更高級(jí)的主題。

順便說一下,我聽說了關(guān)于Comet書籍的好消息,但是我不敢妄言,畢竟我還沒有閱讀過。

《xv6》
作者:Cox、Kasshoek、Morris

這本《xv6》真的太棒了!它解釋了你如何能夠在真實(shí)系統(tǒng)上有效運(yùn)作,你可以設(shè)想自己實(shí)現(xiàn)一個(gè)可執(zhí)行的操作系統(tǒng)。按照本書寫作的設(shè)計(jì),作者傾向于簡(jiǎn)單的實(shí)現(xiàn)而非優(yōu)化的實(shí)現(xiàn),因此,書中使用的算法、數(shù)據(jù)結(jié)構(gòu)和平常的生產(chǎn)系統(tǒng)完全不同。

這本書與介紹現(xiàn)代操作系統(tǒng)如何工作的書籍配合閱讀,比如Love著的《Linux Kernel Development》或者Russinovich著的《Windows Internals》,學(xué)習(xí)效果會(huì)更好。

《Linux Kernel Development》
作者:Love
出版社:Addison-Wesley Professional; 3 edition (July 2, 2010)

《Linux Kernel Development》的書名可能有誤導(dǎo)之嫌,這不是關(guān)于Linux內(nèi)核開發(fā)的讀物,基本上是一本闡述Linux內(nèi)核如何工作的書籍:事物是如何契合的,使用了什么算法和數(shù)據(jù)結(jié)構(gòu)等等。我閱讀的是第二版,現(xiàn)在已經(jīng)完全過時(shí)了。

第三版內(nèi)容有所更新,但是也引進(jìn)了一些錯(cuò)誤和矛盾之處。而且,這一版本仍然過時(shí),這本書2010年出版,講的是內(nèi)核2.6.34。雖然如此,該書仍然不啻一本優(yōu)秀的介紹現(xiàn)代操作系統(tǒng)原理的讀物。

該書還有一個(gè)缺點(diǎn),在作者拿Linux和Windows進(jìn)行比較時(shí),有失客觀,基本上就是每次比較的時(shí)候,就宣揚(yáng)Linux是明確無疑的正確選擇,Windows總是干蠢事??傮w來說,Linux和Windows我都喜歡,在有些領(lǐng)域,Windows做得更好。而且在有些地區(qū),Windows已經(jīng)領(lǐng)先很多年了。但在這本書中,你甭想看到類似這些評(píng)價(jià)。

《Windows Internals》
作者:Russinovich、Solomon、Ionescu
出版社:Microsoft Press; 6 edition (March 25, 2012)
中文版:《深入解析Windows操作系統(tǒng):第6版(上冊(cè))》
譯者:潘愛民、范德成
出版社:出版社: 電子工業(yè)出版社; 第1版 (2014年4月1日)

《深入解析Windows操作系統(tǒng)》是闡述現(xiàn)代操作系統(tǒng)如何工作最全面的一本書,只不過碰巧這本書是關(guān)于微軟Windows。作為從*nix走過來的人,看到Windows和*nix不同的差異,這樣的閱讀非常有趣。

然而,該書并非簡(jiǎn)單的入門書,在閱讀本書之前你必須掌握一些操作系統(tǒng)知識(shí)。

如果想買這本書,你要等到2017年初發(fā)行的第七版。

《The Little Book of Semaphores》
作者:Downey

《The Little Book of Semaphores》是一本這樣的讀物:列出一個(gè)主題,通常從操作系統(tǒng)的教科書中抽取一兩個(gè)章節(jié),然后拼湊成為自己長(zhǎng)達(dá)300頁的書。

這本書是一系列的習(xí)題,有點(diǎn)像小型提綱,但更多的是闡述。它首先解釋了什么是信號(hào)量,然后給出構(gòu)建高并發(fā)原語知識(shí)的一系列習(xí)題。

在我開始編寫并發(fā)線程代碼時(shí),這本書提供了很大的幫助。我訂閱了Butler Lampson學(xué)院關(guān)于并發(fā)的資料,我喜歡把并發(fā)相關(guān)代碼塞到別人寫的黑盒。但是有時(shí)候你堅(jiān)持自己寫黑盒的話,如果是這樣,這本書有很好的導(dǎo)論,要求思考方式才可能寫出不是完全錯(cuò)誤的并發(fā)代碼。

我希望有朝一日,能有這樣的一本書問世:既照顧低水平的讀者,又兼顧高水平讀者,我很喜歡這樣的寫作設(shè)計(jì)。從幾個(gè)指令集原語不同的內(nèi)存模型的體系結(jié)構(gòu)(如x86和Alpha),而不是從信號(hào)量開始講起。如果今天我寫低劣的低級(jí)線程代碼,我會(huì)更喜歡用C++ 11的線程原語,所以我想用這些東西而非信號(hào)量。如果由我來寫線程代碼的話,我可能會(huì)用Win32 API來編寫。但到目前為止,還不存在這樣的一本書。以后如果有這樣一本書問世,那將是最好不過的了。

我聽說Doug Lee的Java并發(fā)編程非常不錯(cuò),但我只泛泛而讀沒有深入研讀。

計(jì)算機(jī)體系架構(gòu)

Computer architecture

為什么要關(guān)心計(jì)算機(jī)體系架構(gòu)?當(dāng)你進(jìn)行底層性能優(yōu)化的時(shí)候,你所學(xué)到的具體事實(shí)和細(xì)節(jié),將會(huì)非常有用。但是,真正的價(jià)值就是學(xué)習(xí)如何在性能和其他因素進(jìn)行權(quán)衡,無論是功耗、成本、體積、重量,亦或者其他因素。

從理論上講,這種推理應(yīng)該不分專業(yè)進(jìn)行教授,但我的經(jīng)驗(yàn)是,那些學(xué)習(xí)計(jì)算機(jī)體系結(jié)構(gòu)的人更可能會(huì)“得出”那種推理和粗略的計(jì)算:才能讓他們拋開一個(gè)沒有理由在性能上2倍或10倍(或100倍)的因素。聽上去很顯然,但是我想到大公司的多個(gè)生產(chǎn)系統(tǒng)放棄10到100倍的性能,而以一個(gè)標(biāo)準(zhǔn)來運(yùn)行,甚至2倍的性能差異,都足以支付VP的薪水。全是因?yàn)槿藗儧]有意識(shí)到他們的設(shè)計(jì)帶來的性能影響。

《Computer Architecture: A Quantitative Approach》
作者:Hennessy、Patterson

《Computer Architecture: A Quantitative Approach》教你如何用多約束(如性能、TCO(總開銷)、功率等)進(jìn)行系統(tǒng)設(shè)計(jì),以及如何推論權(quán)衡。它主要以微處理器和超級(jí)計(jì)算機(jī)為例。

該書的新版增加了實(shí)質(zhì)性的補(bǔ)充,這個(gè)版本才是你真正想要的讀物。比如,新版增加了一個(gè)關(guān)于數(shù)據(jù)中心設(shè)計(jì)的章節(jié),回答了以下問題:用于電力、功率分布、制冷的運(yùn)營開支OPEX/資本支出CAPEX,以及支持團(tuán)隊(duì)和機(jī)器的支付費(fèi)用,使用低功耗機(jī)器對(duì)tail larency的結(jié)果質(zhì)量及影響(以必應(yīng)搜索的結(jié)果為例),在設(shè)計(jì)數(shù)據(jù)中心時(shí)應(yīng)該考慮哪些其他因素。

假設(shè)讀者具備一些背景,但背景已在附錄中提供,并且可免費(fèi)在線獲取。

《Modern Processor Design》
作者:Shen、Lipasti
出版社:Waveland Press, Inc.; 1 edition (July 30, 2013)

《Modern Processor Design》展示了設(shè)計(jì)Pentium Pro(1995年)時(shí)代高性能微處理器所需要了解的大部分內(nèi)容。因?yàn)檫@種處理器的復(fù)雜性,闡述清楚絕非易事。另外,還介紹了一些更為先進(jìn)的想法和從各種工作負(fù)荷可以運(yùn)行的平行計(jì)算的范圍(以及你可能會(huì)如何進(jìn)行如此計(jì)算)。該書有一個(gè)很長(zhǎng)的章節(jié),是關(guān)于值預(yù)測(cè),因?yàn)樽髡甙l(fā)明了這個(gè)概念,當(dāng)?shù)谝话姘l(fā)行的時(shí)候,還很熱門。

對(duì)于純CPU架構(gòu),這本可得到的讀物大概是最好的。

《Readings in Computer Architecture》
作者:Hill、Jouppi、Sohi
出版社:Morgan Kaufmann; 1 edition (September 23, 1999)

因?yàn)闅v史原因而閱讀,看看我們所理解的解釋有多好。比如,比較Amdal關(guān)于定律的論文(沒有公式,只有一幅并非顯而易見的圖表的兩張紙),相對(duì)與現(xiàn)代教科書的表述(一個(gè)段落,一個(gè)公式,或者一幅圖表來闡明,雖然通常來說足夠清晰,不需要額外的圖表)。

糟糕的是,《Readings in Computer Architecture]》看上去讓你后退得更遠(yuǎn)。因?yàn)橛?jì)算機(jī)架構(gòu)真的是很年輕的領(lǐng)域,這里沒有什么真正難以理解的東西。如果你想看到一個(gè)動(dòng)人心魄的例子,例如我們?cè)鯓痈媒忉屵@一些,像比較Maxwell在方程組的最初論文與現(xiàn)代對(duì)同一事物的解釋。如果你喜歡歷史的話,這本書很有趣。但是如果你只是想學(xué)習(xí)的話,它勉為其難。

博弈算法理論、拍賣理論、機(jī)制設(shè)計(jì)

Algorithmic game theory、Auction Theory、Mechanism Design

為什么要關(guān)注這些知識(shí)(博弈算法理論、拍賣理論、機(jī)制設(shè)計(jì))?因?yàn)檫@些知識(shí)介紹了世界上最大的科技公司在廣告收入的運(yùn)作方式,而這些廣告是通過拍賣來銷售的。該領(lǐng)域介紹了它們運(yùn)作的方法和理由。另外,當(dāng)你嘗試弄明白如何設(shè)計(jì)有效分配資源的系統(tǒng),這些知識(shí)就派上用場(chǎng)了。此外,如果你玩桌游,拍賣理論解釋了為什么通過拍賣機(jī)制來固化博弈失衡是重要的,往往使游戲更糟。

尤其對(duì)設(shè)計(jì)公司內(nèi)部激勵(lì)相容制度(粗略的說,就是如何創(chuàng)建能提供人們出于私心而追求最佳利益的全局最優(yōu)結(jié)果的系統(tǒng))的人員而言,這些書應(yīng)為必讀書籍。如果你曾在兩家大公司供職過,其中一家建立了有效的內(nèi)部激勵(lì)相容制度,而另一家沒有建立相應(yīng)制度。你就會(huì)發(fā)現(xiàn),沒有建立內(nèi)部激勵(lì)相容制度的那家大公司燒了大把大把的錢,因?yàn)檫@些人建立了超級(jí)沒用的激勵(lì)系統(tǒng)。

這個(gè)領(lǐng)域展現(xiàn)了這么一幅畫卷,讓你了解什么樣的機(jī)制會(huì)帶來什么樣的結(jié)果。通過閱讀案例研究,你會(huì)得到一個(gè)耗資數(shù)百萬甚至數(shù)十億美元的錯(cuò)誤列表,洋洋灑灑,也很有趣。

《Auction Theory》
作者:Krishna
出版社:Academic Press; 2 edition (August 26, 2009)
中文版:《拍賣理論》
譯者:羅德明、奚錫燦
出版社:中國人民大學(xué)出版社

上一次我閱讀《拍賣理論》的時(shí)候,它是當(dāng)時(shí)唯一對(duì)拍賣理論進(jìn)行全面且最近介紹的一本書。在第一章中,涵蓋了經(jīng)典的第二價(jià)格拍賣的結(jié)論,然后涵蓋了風(fēng)險(xiǎn)規(guī)避、競(jìng)標(biāo)操縱、多個(gè)拍賣、非對(duì)稱信息和其他現(xiàn)實(shí)世界的問題。該書涵蓋了拍賣的大部分理論,對(duì)深入理解拍賣理論的主要脈絡(luò)非常必要。但這本書相當(dāng)枯燥無趣,不大可能激起閱讀欲望。除非你對(duì)這個(gè)主題感興趣。需要了解基本的概率學(xué)和微積分學(xué)的知識(shí)。該書對(duì)致力拍賣研究的研究生是不可或缺的讀物。

《Snipers, Shills, and Sharks: eBay and Human Behavior》
作者:Steighlitz
出版社: Princeton University Press (April 1, 2007)

《Snipers, Shills, and Sharks: eBay and Human Behavior》看上去似乎是專門為外行介紹拍賣理論、帶有娛樂性質(zhì)的書籍。該書解釋了eBuy的工作方式及理由,正如書名的副標(biāo)題所言,作者還探討了人類在eBuy和其他地方拍賣中的怪癖行為。這本書妙趣橫生,無需讀者具備數(shù)學(xué)背景,可能包含了Krishna所著《Auction Theory》的少量?jī)?nèi)容,能讓讀者對(duì)拍賣理論產(chǎn)生興趣。

《Combinatorial Auctions》
作者:Crampton、Shoham、Steinberg
出版社: The MIT Press

《Combinatorial Auctions》所討論的是,是像美國通信委員會(huì)(FCC)那次頻段拍賣,由于拍賣機(jī)制設(shè)計(jì)中的“漏洞”引起數(shù)億甚至數(shù)十億美元的價(jià)差被擺上臺(tái)面的案例(InfoQ注:有興趣的讀者可以通過google檢索“美國拍賣600MHz頻段”來了解這個(gè)事件)。該書雖然是由不同作者共同撰寫的讀物,但讀起來仍然行云流水一氣呵成,讓我樂意閱讀。這本書在組合拍賣領(lǐng)域有著深度和廣度,于細(xì)微處見功夫,它還羅列了詳細(xì)的作者和主題索引,排版質(zhì)量非常棒,以至于可以跳過開頭提到的Krishna的著作進(jìn)行閱讀,但我不會(huì)推薦它。這本書對(duì)于想了解組合拍賣的研究人員和從業(yè)者,都是必不可少的讀物。

《Multiagent Systems:Algorithmic,Game-Theoretic,and Logical Foundations》
作者:Shoham、Leyton-Brown
出版社:Cambridge University Press; 1 edition (December 15, 2008)

《Multiagent Systems:Algorithmic,Game-Theoretic,and Logical Foundations》最槽的就是書名了。然而,它是Multiagent System方面最值得閱讀的讀物之一。該書涵蓋了基本的博弈論、拍賣理論,以及在計(jì)算機(jī)科學(xué)中讀者可能不知道的其他經(jīng)典主題,囊括了很多新穎的前沿理論,還有計(jì)算機(jī)科學(xué)和這些主題的交集內(nèi)容,比如博弈學(xué)習(xí)模型等,甚至還有邏輯學(xué)的內(nèi)容(這也是Shoham最關(guān)注的方向,將博弈理論上升到哲學(xué)層次)。這本書非常有特色,前面幾章有很多例子,計(jì)算機(jī)科學(xué)學(xué)術(shù)味很濃。該書假定讀者對(duì)主題沒有特定的背景。

《Algorithmic Game Theory》
作者:Nisan、Roughgarden、Tardos、Vazirani
出版社:Cambridge University Press; 1 edition (September 24, 2007)

《Algorithmic Game Theory》包含了博弈算法理論的各種調(diào)查結(jié)果。要求讀者具有相當(dāng)數(shù)量的背景(首先要閱讀過Shoham和Leyton-Brown的著作),例如第五章基本上是Devanur、Papadimitriou、Saberi和Vazirani的JACM論文:《Market Equilibrium via a Primal-Dual Algorithm for a Convex Program》(《通過用于Convex程序的原始對(duì)偶算法的市場(chǎng)均衡》),并引出一些相關(guān)問題,讓讀者有更上一層樓的動(dòng)機(jī)。如果你深入了這本書的話,會(huì)發(fā)現(xiàn)該書闡述很棒,而且很有趣。但如果你想通過閱讀一本書來窺探一個(gè)領(lǐng)域的話,它未必是你想要的那種書。

雜項(xiàng)

《Site Reliability Engineering》
作者:Beyer、Jones、Petoff、Murphy
出版社:O'Reilly Media; 1 edition (April 16, 2016)
中文版:《SRE:Google運(yùn)維解密》
譯者:孫宇聰
出版社:電子工業(yè)出版社; 第1版 (2016年10月1日)

《SRE:Google運(yùn)維解密》可以讓讀者學(xué)習(xí)到Google工程師在提高系統(tǒng)部署規(guī)模、改進(jìn)可靠性和資源利用效率方面的指導(dǎo)思想與具體實(shí)踐——這些都是可以立即直接應(yīng)用的寶貴經(jīng)驗(yàn)。任何一個(gè)想要?jiǎng)?chuàng)建、擴(kuò)展大規(guī)模集成系統(tǒng)的人都應(yīng)該閱讀,該書針對(duì)如何構(gòu)建一個(gè)可長(zhǎng)期維護(hù)的系統(tǒng)提供了非常寶貴的實(shí)踐經(jīng)驗(yàn)。

要看更豐富的簡(jiǎn)要說明,請(qǐng)閱讀這本22頁的該書的筆記。

《Refactoring》
作者:Fowler、Beck、Brant、Opdyke、Roberts
出版社:Addison-Wesley Professional; 1 edition (July 8, 1999)
中文版:《重構(gòu):改善既有代碼的設(shè)計(jì)》
譯者:熊節(jié)
出版社:人民郵電出版社; 第2版 (2015年8月1日)

那時(shí)候當(dāng)我讀這本《重構(gòu):改善既有代碼的設(shè)計(jì)》時(shí),由于它在關(guān)于代碼異味的單獨(dú)章節(jié)所花的篇幅,使得這本書非常值這個(gè)價(jià)。該書非常成功,因?yàn)樗怪貥?gòu)和代碼異味的觀念成為主流。

Steve Yegge曾對(duì)這本書不吝贊譽(yù)之詞:

2003年10月,我第一次閱讀這本書,有一種不寒而粟的感覺。如果你意識(shí)到,當(dāng)你想離職時(shí),你已經(jīng)工作5年。轉(zhuǎn)天我就隨意問周圍:“嗯,你已經(jīng)讀過重構(gòu)方面的書,對(duì)吧?我只是隨便問問,因?yàn)槲液芫靡郧白x過,當(dāng)然不是現(xiàn)在?!痹谖宜{(diào)查的20個(gè)人中,只有一個(gè)人讀過。感謝上帝,所有的人都很尷尬,不只是我。
……
如果你是資深工程師,你會(huì)發(fā)現(xiàn)該書中至少80%,都是你所熟知的東西。但該書羅列了所有的名稱,并客觀地討論這些技術(shù)的利弊,這一點(diǎn)很有用。它戳穿了我剛成為程序員時(shí)所珍藏的若干個(gè)“秘籍”的真相。不注釋代碼?局部變量是萬惡之源?這瘋子是狂人嗎?要不要閱讀這本書,取決于你自己!

《Peopleware》
作者:Demarco、Lister
出版社:Addison-Wesley Professional; 3 edition (June 28, 2013)
中文版:《人件(原書第3版)(珍藏版)》
譯者:肖然、張逸、滕云
出版社:機(jī)械工業(yè)出版社; 第1版 (2014年9月1日)

在大學(xué)時(shí)我讀到這本《人件》,該書似乎很令人信服,甚至所有的研究結(jié)果都支持該書的觀點(diǎn):不設(shè)置截止日期就比設(shè)置截止日期要好;辦公室比隔間要好,等等。所有開發(fā)人員跟我討論的時(shí)候,基本都贊同這些觀點(diǎn)。

但實(shí)際上每家成功的公司都是以截然不同的方式運(yùn)作的。甚至微軟公司也從個(gè)人辦公室轉(zhuǎn)為開放式辦公室進(jìn)行了建筑改造。是不是這些觀點(diǎn)都無所謂?如果真的很重要的話,那些公司怎么會(huì)成為真正信徒,像Fog Creek公司不去踐踏競(jìng)爭(zhēng)對(duì)手?

因?yàn)樵摃衔业摹捌姟?,我就希望這本書是正確的。但是,薈萃分析(InfoQ注:Meta分析,指將多個(gè)研究結(jié)果整合在一起的統(tǒng)計(jì)方法)的理念讓我用鑒定的眼光重讀來查證主要來源。

《Renegades of the Empire》
作者:Drummond
出版社:Crown; 1 edition (November 16, 1999)

《Renegades of the Empire》講述了DirectX歷程的故事。它還揭示了今天的微軟狼性文化是怎么形成的。閱讀介紹:

微軟未必會(huì)雇傭像蓋茨的人(雖然企業(yè)園區(qū)有不少這樣的人),但會(huì)招聘那些有著更為顯著的蓋茨特征的人——傲慢、進(jìn)取心和高智商。
……
因?yàn)槌靶δ橙说南敕ㄊ恰坝薮赖摹?,或者更為槽糕的是,“胡說八道”——蓋茨因此臭名昭著——只是為了看他如何捍衛(wèi)一個(gè)位置。這種敵對(duì)的管理技術(shù)貫穿一系列的命令,創(chuàng)造了一種沖突的文化。
……
微軟建立了達(dá)爾文的秩序,資源經(jīng)常被掠奪,囤積力量、財(cái)富和威望。一名外出休假的經(jīng)理回來時(shí)可能會(huì)發(fā)現(xiàn)他的部門被競(jìng)爭(zhēng)對(duì)手襲擊,他的項(xiàng)目被勒令降級(jí)或者完全取締。

在微軟面試:

“你喜歡微軟什么呢?”
“比爾踢屁股?!盨t. John說,“我喜歡踢屁股。我喜歡那種扼殺競(jìng)爭(zhēng)對(duì)手和支配市場(chǎng)的感覺?!?/p>

結(jié)果St. John被雇傭了。多年來他沒有犯任何錯(cuò)誤。這本書就講述了他的故事,以及像他那樣的員工的故事。如果你想在微軟公司謀差,你就需要讀這本書。我希望我加入之前就讀過這本書而不是之后!

數(shù)學(xué)

Math

為什么要關(guān)注數(shù)學(xué)?從純ROI(InfoQ注:Return On Investment,投資回報(bào)率)觀點(diǎn)來看,我懷疑,對(duì)于99%的工作,學(xué)習(xí)數(shù)學(xué)是值得的。據(jù)我所知,我用數(shù)學(xué)比大多數(shù)程序員要多,但我并沒有那么經(jīng)常使用數(shù)學(xué)。不過,有正確的數(shù)學(xué)背景可能會(huì)派上用場(chǎng)。我很享受學(xué)習(xí)數(shù)學(xué)的樂趣。

《Introduction to Probability》
作者:Bertsekas
出版社:Athena Scientific; 2nd edition (July 15, 2008)
中文版:《概率導(dǎo)論(第2版)》(修訂版)
譯者:鄭忠國、童行偉
出版社:人民郵電出版社; 第1版 (2016年1月1日)

《概率導(dǎo)論》是入門的大學(xué)課程,對(duì) 闡述定義比較嚴(yán)謹(jǐn)、直觀。對(duì)任何關(guān)心嚴(yán)密推導(dǎo)的讀者而言,該書后面有一些更為詳細(xì)的習(xí)題。有很多可用解決方案的練習(xí)題,使得本書更適宜作為自學(xué)用書。

《A First Course in Probability》
作者:Ross
出版社:Pearson Prentice Hall; 8th edition (January 7, 2009)
中文版:《華章教育·華章數(shù)學(xué)譯叢:概率論基礎(chǔ)教程(原書第9版) 》
譯者:童行偉、梁寶生
出版社:機(jī)械工業(yè)出版社; 第1版 (2014年1月1日)

為了使學(xué)生購買《概率論基礎(chǔ)教程》,該書經(jīng)常推出新版本,亞馬遜定價(jià)更是高達(dá)174美元,我曾跟作者請(qǐng)教過這個(gè)問題,他抱怨說,這幾年,二手書市場(chǎng)破壞了教科書的收入,而作者的版稅并不多,所以要有更多收入,就不得不保持每?jī)赡晖瞥鲂掳娴墓?jié)奏來保證版稅收入。新作者要編寫前人著過的經(jīng)典書籍,經(jīng)常大發(fā)牢騷,因?yàn)樽钤绲淖髡咄ǔ1群髞淼淖髡吣酶嗟陌娑悾词顾暮罄m(xù)版本并沒有什么更新。

我在Wisconsin學(xué)習(xí)概率學(xué)的時(shí)候,該書是一本標(biāo)準(zhǔn)的教科書。我真的想不起有誰發(fā)現(xiàn)這本書有所幫助。

《Introductory Combinatorics》
作者:Brualdi
出版社:Pearson; 5 edition (January 7, 2009)
中文版:《組合數(shù)學(xué)(原書第5版) 》
譯者:馮速
出版社:機(jī)械工業(yè)出版社; 第1版 (2012年5月1日)

Brualdi是一名大教授,是我大學(xué)生涯最好的教授之一。但是他著的《組合數(shù)學(xué)》充滿了錯(cuò)誤,而且也不特別清晰。自從我使用該書后,有兩個(gè)新版本,但從亞馬遜評(píng)論來看,這本書仍然有很多錯(cuò)誤。

至于另一本基礎(chǔ)入門型的教科書,我聽過關(guān)于Camina和Lewis合著的《An Introduction to Enumeration (Springer Undergraduate Mathematics Series)》好消息,但我自己沒有讀過。此外,Lovasz的《Combinatorial Problems and Exercises (AMS Chelsea Publishing)》是一本關(guān)于組合數(shù)學(xué)的名著,但它并未被廣為人知。

《Calculus》
作者:Apostol
出版社:Wiley; 2nd edition (January 16, 1991)

《Calculus》第一卷涵蓋了你所期望的微積分I和微積分II的內(nèi)容。第二卷涵蓋了線性代數(shù)和多元微積分。在多元微積分之前,講述線性代數(shù),這樣使得多元微積分更易理解。

從編程角度來看,微積分學(xué)也是很有意義的。因?yàn)槲以谖⒎e分得到的價(jià)值觀就是近似應(yīng)用等等。教授這一連串的概念,很清晰。

如果你沒有教授或助教幫你的話,該書可能是一本粗略的入門書。Spring SUMS系列叢書在各門功課上更易自學(xué),但我并沒有讀過它們的微積分書籍,因此,我不敢妄下結(jié)論來推薦。

《Calculus》
作者:Stewart
出版社:Cengage Learning; 7 edition (2012)
中文版:《微積分(第六版)》(雙語教材)
譯者:張乃岳
出版社:中國人民大學(xué)出版社; 第1版 (2014年10月1日)

《微積分》是那些作者通過無關(guān)緊要的變更推出新版來賺錢的眾多書籍中的一本。這是Wisconsin大學(xué)Non-Honor學(xué)位的標(biāo)準(zhǔn)教科書。結(jié)果是,我教了很多人用Apostol的那本書所教授的方法來計(jì)算復(fù)雜的微積分,對(duì)許多人而言,更直觀一些。

該書采用的方式是,對(duì)于某種類型的問題,你應(yīng)該將該模式匹配很多可能的公式,然后套用該公式。而Apostle更多的是教授你一些技巧和直覺,讓你足以應(yīng)付各種各樣的問題。我不知道你為什么會(huì)買這本書,除非你需要一些類。

硬件基礎(chǔ)

Hardware basics

為什么要關(guān)注硬件基礎(chǔ)?人們經(jīng)常宣稱,要成為優(yōu)秀程序員,你必須理解所用的每一個(gè)抽象概念。這是無稽之談,因?yàn)楝F(xiàn)代計(jì)算過于復(fù)雜,以至于任何人都不可能真正完全理解到底發(fā)生了什么事情。事實(shí)上,現(xiàn)代計(jì)算之所以能高效完成它所做的工作,是因?yàn)樗恍枰绦騿T深入了解底層的相關(guān)內(nèi)容,大部分也低于你的水平。

話雖如此,如果你對(duì)底層軟件充滿好奇,這里有一些適合你的入門書籍。

《nand2tetris》
作者:Nisan、Shocken

如果你只想讀一本單一內(nèi)容的書,那么非這本《nand2tetris》莫屬。它是一本關(guān)于邏輯門和布爾邏輯的“101級(jí)”入門書。正如書名所示,它帶你從與非門(NAND gate)到編一個(gè)可用的俄羅斯方塊游戲。

《Fundamentals of Logic Design》
作者:Roth
出版社:CL Engineering; 5 edition (June 11, 2003)

《Fundamentals of Logic Design》在關(guān)于邏輯門和邏輯設(shè)計(jì)的細(xì)節(jié)上比《nand2tetris》還要多。該書有大量習(xí)題,似乎是為自學(xué)而著。注意,上面的鏈接是第五版,目前有更貴的新版本,但似乎沒有什么改進(jìn),而且新版也有很多錯(cuò)誤,而且更昂貴。

《CMOS VLSI Design》
作者:Weste、Harris、Bannerjee
出版社:Pearson; 4 edition (March 11, 2010)
中文版:《CMOS超大規(guī)模集成電路設(shè)計(jì)(第4版) 》
譯者:周潤(rùn)德
出版社:電子工業(yè)出版社; 第1版 (2012年7月1日)

邏輯門下一級(jí)的就是VLSI(very large scale integration),即超大規(guī)模集成電路。然而,在今天真的沒有任何意義。

《CMOS超大規(guī)模集成電路設(shè)計(jì)》比其他書籍更有廣度和深度,并且闡述極為清晰。在探索設(shè)計(jì)空間,比如,加法器的章節(jié),不僅僅提及了幾種不同的類型,而且也提供了問題和解決方案,非常適合自學(xué)。

《CMOS Digital Integrated Circuits》
作者:Kang、Leblebici

《CMOS Digital Integrated Circuits》是Wisconsin當(dāng)前的教科書。但這本書很難跟上,助教基本上重新解釋了幾乎所有的必要項(xiàng)目和考試。我覺得它是參考書而不是用來學(xué)習(xí)的讀物。

與West等人相比,Weste 花費(fèi)了更多的精力討論設(shè)計(jì)中的折衷,如,創(chuàng)建并行前綴樹加法器時(shí),在設(shè)計(jì)空間的某個(gè)特定點(diǎn),它意味著什么?

《Semiconductor Device Fundamentals》
作者:Pierret
出版社:Addison Wesley; 2nd edition (April 12, 1996)

超大規(guī)模集成電路(VLSI)下一級(jí),也就是晶體管,你將了解晶體管實(shí)際上是如何工作的。

《Semiconductor Device Fundamentals》真正完美地解說了固態(tài)設(shè)備(SSD)。該書指出了你要真正理解諸如波段圖解的這些東西,需要知道什么。然后用這些基礎(chǔ)原理和清晰的解釋,給你建立一個(gè)良好的思想模型,理解不同類型的交匯點(diǎn)和設(shè)備的工作原理。

《Solid State Electronic Devices》
作者:Streetman、Bannerjee
出版社:Prentice Hall; 6 edition (August 5, 2005)

《Solid State Electronic Devices》講述的內(nèi)容,與Pierret的著作相同。但似乎用了數(shù)學(xué)公式來取代了Pierrot的意會(huì)。

《Engineering Electromagnetics》
作者:Ida
出版社:Springer; 3rd ed. 2015 edition (March 26, 2015)

比晶體管低一級(jí)的,是電磁學(xué)。

《Engineering Electromagnetics》比其他的入門教科書厚兩三倍,因?yàn)樗懈嗟墓ぷ魇疽鈭D和圖表。該書將事物分解成問題、子問題的類型,使得事情變得更容易。對(duì)于自學(xué)者而言,比Griffiths或者Purcell的入門書更溫和。

《Pentium Pro and Pentium II System Architecture》
作者:Shanley
出版社:Addison-Wesley Professional; 2 edition (January 10, 1998)

與本文提到的其他書不同,《Pentium Pro and Pentium II System Architecture》是關(guān)于實(shí)踐而非理論。它有點(diǎn)像Windows內(nèi)部,因?yàn)樗婕耙粋€(gè)真實(shí)的工作系統(tǒng)的細(xì)節(jié)。主題包括硬件總線協(xié)議、I/O實(shí)際上是如何工作的(如APIC,Advanced Programmable Interrupt Controller,即高級(jí)可編程終端控制器)等等。

實(shí)際介紹的問題,就是從8080的CPU以來,復(fù)雜性一直呈指數(shù)級(jí)的增長(zhǎng)。當(dāng)你學(xué)得越深,你就越容易理解系統(tǒng)重要的可移動(dòng)部分,而知識(shí)越不相關(guān)。因?yàn)榭偩€和I/O協(xié)議不得不操作多處理器,這本書似乎妥協(xié)了,這些系統(tǒng)包含了現(xiàn)代系統(tǒng)中的許多元素,只不過是以更簡(jiǎn)單的形式。

未盡事宜

在這些我喜歡的讀物中,我會(huì)說,這些圖書中,軟件讀物最多占據(jù)25%、硬件讀物占據(jù)5%。一般說來,未在清單中羅列出來的讀物更為專業(yè)。清單還缺少很多領(lǐng)域的主題,如PL,關(guān)于如何學(xué)習(xí)編程語言的實(shí)用書籍、網(wǎng)絡(luò)等等。

未涉及某些領(lǐng)域的原因有多種,比如我沒有列出任何PL相關(guān)書籍,因?yàn)槲也婚喿xPL方面的書籍。我沒有提到網(wǎng)絡(luò)是因?yàn)槲译m然讀過一些書,但我這方面的了解程度不足以提供有用書籍的建議。絕大部分硬件相關(guān)的書籍都沒有包含在內(nèi),因?yàn)樗鼈兩婕暗侥悴粫?huì)關(guān)心的內(nèi)容,除非你是專家(比如容錯(cuò)電路設(shè)計(jì)(《Skew-Tolerant Circuit Design (The Morgan Kaufmann Series in Computer Architecture and Design》,Harris著)或超快光學(xué)《Ultrafast Optics》,Weiner著))同樣也適用于數(shù)學(xué)和計(jì)算機(jī)科學(xué)理論。我遺落了相當(dāng)數(shù)量的一些我認(rèn)為是名著的讀物,因?yàn)樵谖胰粘>幊躺钪谢緵]有機(jī)會(huì)用到,比如極值組合論(Extremal Combinatorics)。我也沒有羅列那些我沒有讀完的書籍,除非我停下來,因?yàn)檫@些書籍極為晦澀難讀。因?yàn)槲覜]有讀完像SICP和The Little Schemer的書籍,這意味著我無法列出經(jīng)典的清單。那些書籍很好,只是我沒有完成閱讀的原因。

清單中還不包括歷史和文化相關(guān)的書籍,像《Inside Intel》或《Masters of Doom》。我可能會(huì)在未來某個(gè)時(shí)候,在清單中添加一個(gè)類別,就是我一直嘗試的實(shí)驗(yàn),像Julia Evans
(意識(shí)流,文字更少或者沒有草稿)那樣撰寫。我必須回去重讀十多年前曾經(jīng)閱讀過的書,然后寫出有意義的評(píng)論,但這不符合我這個(gè)實(shí)驗(yàn)。關(guān)于這一點(diǎn),因?yàn)檫@份清單是根據(jù)我記憶寫的,幾年前我就幾乎沒再讀過那些所有的書,而且可能有所遺忘很多書,我打算日后將補(bǔ)充。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI