不同領域的圣經級書籍有哪些?
看懂了這套書,你就看懂了程序的靈魂。
在程序設計領域,有一部氣勢恢弘的史詩級作品,計劃出版七卷,那美國老頭寫了很多年也沒有寫完,這作品影響力非凡,你......知道是哪部嗎?
這就是那套無數程序員在書架上珍藏好久,數次翻開又合上,最后一年過去了,才看完 100 多頁的那套書——《計算機程序設計藝術》!
神書講究的是精神的力量,就算暫時沒有讀完,只是擺在書架上,也會覺得安心。沒錯!是信仰!
洋洋數百萬言的多卷本《計算機程序設計藝術》始于 1960 年代。其地位可以與數學史上歐幾里得的《幾何原本》相比,堪稱計算機科學理論與技術的經典巨著。
計算機科學界的大牛們隨時隨地都能從這套書中得到啟發和靈感:
在上大學時,有那么幾個月我連房租都沒交,就是為了買他的書。我讀過這些書,從中得到了不少樂趣,比如在第一卷的索引有個關于拖車的笑話就很好玩。我到現在為止還沒能把書上的內容全部搞懂。Knuth對某些地方的研究要比我深入得多,但我還是喜歡這些書并把它們當做參考資料。——Douglas Crockford(JavaScript大宗師)事實上,我從來沒有讀完這一套書,沒有從頭到尾看過。但當我研究某個具體算法的時候,我就去看他會怎么說。往往可以得到我想要的東西,這套書太全面了。—— Joshua Bloch(Java集合框架創辦人)有段時間我拿它當我的顯示器底座,因為它是我最大部頭的成套書之一,而且高度恰好合適。我感覺這樣很舒服,因為它總在那兒陪著我,而且因為它就在我面前,所以我找參考書的時候就更容易去順手翻翻它。——Peter Norvig(計算機科學家)就連這套書的首席“教徒”比爾?蓋茨曾經都說過:“如果你自以為是一個很好的程序員,請去讀讀高德納的《計算機程序設計藝術》,要是你真把它讀下來了,毫無疑問你可以給我遞簡歷了。”
所以,讀完TAOCP的人,有給蓋茨發簡歷嗎?
就是這樣一套神書,如今已經出版了一百多萬冊了,無數程序員們為之神往。那它究竟出自何人之手呢?作者就是當代最偉大的程序員之一高德納。
他是當代的算法精神領袖。1974年圖靈獎獲得者;1979年美國總統卡特親自向他頒發了全國科學獎章;1995年獲得馮·諾伊曼獎和Harvey獎;1996年獲得日本 INAMORI 基金會設立的京都獎,這個獎是專門獎勵在高科技領域作出貢獻的科學家的。
你聽說過用圖靈獎獎杯來裝水果的嗎?高德納做到了。對于這些獎項,高德納一直都是以平常心對待,他也從不在意這些。他已經深深投入到了計算機科學的世界。
《計算機程序設計藝術》是高德納一生中最重要的事業。1992 年,為了能完成這部巨著,他退休回家專注寫作。他總共收了 28 個博士,此后沒再收過任何人。
他寫這套書的目的是“組織和總結所知道的計算機方法的相關知識,并打下堅實的數學、歷史基礎”。
有趣的是,他并不想讓這套書嚇到大家而被束之高閣,而是鼓勵大家發現書中的錯誤。
如果你能發現書里的錯誤,便可以給他發送郵件,如果是被確認的勘誤,你將會獲得神之支票,金額為 $2.56 美金。
為啥是 $2.56 美金呢?因為“ 256 美分剛好是十六進制的一美元”。大神的世界果然讓人琢磨不透。
除此之外,他還是個完美主義者。這款處女座的專屬排版軟件——Tex,你值得擁有。
在修訂第七卷的時候,因擔心印刷質量影響出版效果,于是在寫作期間,他用八年時間開發了這套排版軟件。
用他的話說:“我花了整整 15 年時間寫書,如果都這么難看,我就再也不寫了,我又怎么能以他們為豪呢?”
目前該軟件已經成了學術界必備的軟件之一,廣泛地應用于數學,物理以及計算機界,能優美地處理復雜的公式。
TEX功能強大,有著有趣的版本號碼。從TEX第三版開始,之后的升級是在小數點后加入一個新數位,使之越來越接近圓周率 π 的值。
Tex 目前的版本是 3.1415926。這顯示了 TEX 已經十分穩定,任何的升級都十分細微。高德納曾表示 :
“最后一次升級是(在我過世后)將版本數改為 π,那時任何余下的漏洞將被看作程序的功能。”當然,我們希望這一天永遠不要到來。這樣一個偉大的人,他好似我們身邊任何一個普通的人。但在對待程序這件事情上,他做到了淋漓盡致,這就是對計算機最偉大的敬意。
有人覺得這套書很難,至少大部分人都覺得這書不簡單。對此,高德納說過:“要是看不懂,你可以考慮一下自己是不是要繼續當程序員。”
程序員還是要做的,書也是要讀的。其實,閱讀此書就好比修煉內功,是一個長期的蓋樓過程,急不來的。只有你能了解到最底層的東西,才會更清楚計算機在想些什么。千萬不要被前人的經驗嚇倒,嘗試一下總會有新發現。
中文版自出版以來,深受讀者喜愛,豆瓣評分都在 9.0 以上。有人戲稱它為“只有促銷才敢下手的圖書”。這也是程序員間最拿得出手的送禮方式,高逼格,有心意。
從去年開始陸續有讀者詢問最新版本卷4A的中文版何時出版。經過漫長的等待,這套計算機史上的巨著離它的完整又近了一步。
新版本卷4A 講解的是組合算法。內容主要涉及到布爾函數、按位操作技巧、元組和排列、組合和分劃以及所有的樹。
之前在微博上,看到一個小伙伴立的 Flag ,他把讀完“計算機程序設計藝術”系列稱作自己的“十二五規劃”。
我注意到他的卷4A 還是英文版的,不得不佩服這位兄臺的勇氣。不過,為了加速他完成任務,我很想告訴他,中文版已經上市啦!
不知道是不是冥冥中,《計算機程序設計藝術卷 4A:組合算法(一)》的譯者之一,李伯民老師,曾就任于中科院高能物理所任計算機中心主任,今年已經 86 歲高齡了,比高德納教授還要大幾歲。
他是一位非常自律的人,平日里除了從事高強度的翻譯工作以外,他每周都會去爬山。
以八十多歲高齡,他僅在最近兩年就已經征服過大海陀、白石山、泰山、嶗山、五岳寨、嶂石巖、古北岳(大茂山)、七步溝馬武寨等華北地區高峰,讓我們年輕人欽佩不已。
李老師曾對我們說過:“希望你們年輕人能夠鍛煉好身體,才能把工作做好。”
這樣的身體素質不僅秒殺我們這些亞健康的年輕人,我們更是為李伯民老師身上的堅毅品格所感動。如此高齡,還從事著繁重的翻譯工作,是出于對這部作品發自內心的熱愛。
除了這本卷4,卷1李老師也有參與翻譯。另外,他還譯過《微積分的歷程》等書,是一位經驗很豐富的譯者老師。
(圖左:李伯民老師,圖右:本書責編,圖靈副總傅志紅老師)出版這樣一部巨作的過程是漫長的,期間要做的工作很多。為了給讀者最好的閱讀體驗,我們的書稿都要經過三審三校,后期出版、選紙、印刷也都傾注了很多心血。這里也要感謝每一位為這本書貢獻力量的老師們。還有我們的讀者們,感謝你們對這本書的期待,讓這一切變為可能。
最后,祝愿高德納教授、李伯民老師能夠健康長壽!為我們帶來更多的佳作。
《計算機程序設計藝術 卷4A:組合算法》
作者:高德納
譯者:李伯民,賈洪峰
《計算機程序設計藝術》系列被公認為計算機科學領域的權威之作,深入闡述了程序設計理論,對計算機領域的發展有著極為深遠的影響。本書是該系列的第4卷A,書中主要介紹了組合算法,內容涉及布爾函數、按位操作技巧、元組和排列、組合和分區以及所有的樹等。
內容來源:干貨狗 圖靈教育更多計算機好書可關注 @人民郵電出版社 頭條號,我們會持續推出優質的計算機知識和圖書資源!