時間:2019-07-22 來源:互聯網 瀏覽量:
不讀書
是成為不了大佬的
不知道差友們聽沒聽過「用 0 和 1 重寫的聖經」。
比爾·蓋茨讀完這本書之後都認為,讀完的人應該給他遞簡曆;李開複則說,書裏的題目做對大部分就不錯了;
更多的人則一致同意這本書是墊桌子的好苗子......
新款顯示器增高支架現已到貨
說了這麼多,但是先別急去買書!在那之前,我們先看看這部算法巨著的難度......
嗯。。。好吧。即使以「地獄級」難度而著稱,這部巨著也隻能算是寫這本書的這位大佬人生中比較突出的一項成果。(大佬受到過總統接見,拿獎拿到手軟…)
要知道,算法(Algorithm)這個詞就是這位大佬使用五個維度重新定義的。(算法的概念就是人家提的,出本書怎麼了)
而寫這部書中間的插曲更是厲害的不得了:大佬寫到一半時覺得出版社的印刷效果太差,扭頭設計了一套新的排版係統和字體方案;這套排版係統至今依舊是撰寫學術文章的首選。
好吧,說到這兒可能已經有個別差友猜到了,差評君今天想和大家聊聊的就是那個被稱為「 算法上帝 」的男人:
高德納(Donald Ervin Knuth)
算法分析之父高德納生於 1938 年 1 月 10 日,在他 1977 年訪華前夕,清華大學教授儲楓為其取了一個中文名「 高德納 」,這三個漢字也被寫在了他斯坦福大學的個人主頁中。(所以坊間一些諸如高納德、唐納德的叫法是錯誤的…)
高德納對自己的中文名所作的解釋
能被視為「 重寫聖經 」的男人自然不簡單,高德納搞大新聞的經曆可以一路追溯回八年級:當地一家糖果廠舉辦了一場比賽,規則是使用其產品「 Ziegler's Giant Bar 」中出現的英文字母,重新組合成新的單詞。
當時這場比賽的裁判預先準備了一張單子,搜集了 2500 個可能出現的組合。
而高德納卻以 4500 個單詞組合輕鬆贏得了冠軍,比裁判搜集到的詞還多出了 2000 個!
這場比賽也讓高德納為他的學校贏得了一台電視機,以及每位同學一塊的 Ziegler 巧克力棒;也讓世人第一次窺見了算法分析之父的智商。
但你以為大佬都是天生的嗎?曾經數學一度是高德納的短板,老師都擔心他能否順利畢業。而高德納則是投入了大量的業餘時間惡補數學,這才為他之後研究算法打下了堅實基礎。
此後高德納一路高歌猛進,以平均分 97.5 的創紀錄高分從高中畢業,進入大學學習。
這個世界失去了一位音樂家高德納的父親多才多藝,周日在教堂演奏風琴,因此高德納在音樂方麵也有著不錯的造詣。青年高德納還一度為成為優秀的音樂家而努力,創作了不少作品。
報考大學時高德納一度躊躇於選擇深造音樂還是物理;經過一番抉擇,高德納最終進入了俄亥俄州的凱斯理工學院學習物理。
正是在此期間,高德納接觸到了當時最先進的 IBM 650 型計算機;在研究了說明手冊中的程序之後,高德納堅信自己能寫出比之更好程序。
IBM 650
算法之父自然不會食言;之後,高德納除了用 IBM 650 寫出了一些小遊戲和數學程序之外,還為校籃球隊寫了一個程序:
通過分析球員的得分、助攻、搶斷、籃板球、蓋帽等數據,幫助教練挑選合適的成員;他的大學校隊也因此獲得了全美大學生籃球聯賽的冠軍。
之後高德納由主修物理變為數學,由於在大學的表現太過突出,學校幹脆在畢業時一並給了他學士和碩士學位,省下了兩年學費!
從此,這個世界上少了一位音樂家、物理學家,多了一位算法分析之父。
拖稿,有理有據大學畢業後,高德納進入加州理工學院研究所攻讀數學博士學位;期間,業內著名的愛迪生韋斯利(Addison-Wesley)出版社找到了高德納,希望他寫一本有關程序編譯的書,他欣然接受。
(A-W 曾出版諸如《 費曼物理學講義 》、《 C++ 編程語言 》、《 人月神話 》等行業巨著)
然而數年過去了,高德納一點動靜都沒有;不得已,出版社代表找上了門,才得知高德納已經攢了大概 3000 頁的手寫稿。然而,高德納卻說:
「 我才剛寫了個序章啊 」…
在與出版社協商之後,《 計算機程序設計藝術 》(簡稱 TAOCP)按照總共七卷的設想開始逐卷出版。
這套書後來被《美國科學家》譽為 20 世紀最佳 12 部學術專著之一,要知道這 12 本裏另外的書都是 《 相對論 》、《 量子力學理論 》這類的巨著…
在 TAOCP 出版了三卷(1973 年)之後,高德納就已經拿到了有計算機界諾貝爾獎之稱的 ACM 圖靈獎(1974 年);此時的高德納才剛滿 36 歲,而他也成為了最年輕的圖靈獎得主!
36 歲乍一看不算大,但一年隻有一人的圖靈獎可不是大白菜。以往按照成就等身的原則,獲獎者怎麼也得是 50 歲以上的行業泰鬥。有成就者大有人在,為什麼就給了隻有 36 歲,連書都沒寫完的高德納?
沒辦法,人家太屌了:整卷還沒出完就賣了 100 多萬套,儼然被計算機界視為「神作」。
TAOCP 的中譯本(截至到 4A 卷)可以在國內買到
造車,順便重新發明輪子就在高德納聲望達到頂點之時,他卻宣布歇筆 10 年,這期間眾說紛紜:有說他才不配位見好就收的;也有說他寫不出比肩第三卷水準的新書幹脆封筆的…
十年之後,高德納憋出了一個大炸彈:TeX 排版係統;也順便終結了各種流言。
高德納是一個追求完美的人,從他寫第四章之前把前三章從頭到尾重新修訂了一遍就可以看出來。
然而當年的照相排版(在他眼中)太過粗糙,影響了最終的印刷質量。
照相排版印刷的公式,排版耗時耗力,且效果不佳
完美的書怎麼可以使用有瑕疵的印刷?所以高德納幹脆自己研究數字排版係統,最終的成果就是 TeX。至於排版的效果,時間可以作證:直到現在,撰寫學術論文的首選依舊是基於 TeX 的前端封裝。
沒用 LaTeX、MacTeX、MiKTeX 和各種 TeX 寫過論文的理科生是不完整的
這就好比是大佬本來想造車,結果發現別人的輪子都不好使,就重新發明了一遍輪子。
這還沒完,高納德研究程序的時候順便研究出來了一種新的編程思想(文學編程思想)、新的編程語言(WEB/CWEB)和新的字體方案(METAFONT 字體)。
差評君琢磨了一下大佬當時的心理活動:很簡單嘛,我寫程序,得有思想啊;有了思想幹脆變成語言吧;這個語言不錯,程序就拿這個寫吧;排版軟件寫好了,沒有字體不能打字啊……
追求完美高德納對軟件版本號的選取很有意思,不似平常所見的 0.1 或者 v001,而是從 1 開始,到達 3 後轉而增加小數點後的位數,使之逐漸接近於圓周率的 π,代表這是一個完美的版本。(目前 TeX 的版本號是 3.14159265)
高德納還給 TeX 設立了獨特的捉蟲機製:發現第一個軟件錯誤的給 2.56 美元,第二個 5.12 美元,第三個 10.24 美元… 以此類推。敢用這種倍數獎金的方案進行獎勵,足以見得高德納對代碼的自信。(雖然大部分人拿到了有大佬簽名的支票後都直接珍藏了,根本不舍得兌…)
高德納自己設計的獎勵支票
針對 TAOCP,高德納同樣設立了「 每發現一處錯誤,獎勵 2.56 美元 」的捉蟲機製。
為什麼是 2.56 美元?因為「 256 美分剛好是十六進製的 1 美元 」,這是程序員的數字浪漫 ~
2008 年,在 TAOCP 第三卷出版時隔 30 多年之後,TAOCP 的第四卷上半卷出版。
高德納如今已將精力完全投入到撰寫 TAOCP 中,如果一切順利,第五卷將會於 2025 年出版;按照他的預計,寫完第五卷之後,他會再重新將前五卷修訂一遍;若有餘力才會繼續撰寫 TAOCP 的第六卷與第七卷。
TAOCP 從 1968 年出版至今,已經走過了 51 年;而它的作者高德納如今也已 81 歲高齡了,而我們都期待在未來的某一日,能看到 TAOCP 第七卷出版的消息。
還記得開頭比爾·蓋茨說過的那句話嗎,其實它的後麵還有一句:
“ 我花了幾個月的時間,靠著極高的自製力看了這本書;我每研讀 20 頁需要花一周時間來消化。如果有誰牛得不得了,自認為秒天秒地;那高德納就會幫他們重新認識這個世界的深奧與複雜。”
“ 大佬眼中如果工具用著不趁手,那一定是工具太爛了 ”