close

大家好,今天和各位談談“吳軍硅谷來信”專欄裡的一篇文章心得。

今天要介紹電腦領域的大人物是高德納(Donald Knuth)。吳軍老師認為他是繼馮諾依曼之後,電腦科學領域的第一人。因為從影響力的長、寬和深度來看,他的影響力都不遜於任何電腦科學家。

高德納是他正式的中文名字,一般的音譯軟體的翻譯,通常都不正確。因為在1977年,高德納是最早獲邀到中國講學的專家。出發前,他希望取一個中文名字,圖靈獎得獎主姚期智的夫人,為他取了這個名字。高德納的夫人也順便取了高精蘭(Jill)的中文名字。

許多理工科天才都很有音樂天賦,例如:

一、明斯基,圖靈獎得獎主。他是MIT電腦教授,1956年提出人工智慧概念的10位科學家之一。據MIT的人表示,在他生前,鋼琴能彈得比他好的人,全世界不超過10位。他還寫了一本書,介紹科學和藝術之間的關係。

二、麥克科恩,Nuance語音辨識公司的共同創始人。他是吳軍老師在Google的同事,也是Google語音辨識的第一任負責人。後來離開Google,專職從事音樂工作。

三、高德曼(Alan Goldman),提出高德曼定理。他是美國科學院院士,吳軍老師的論文委員會主席。他年輕時是鋼琴天才,後來因為車禍無法再彈琴,只好研究數學。

高德納以前也是音樂天才,而且曾經從事音樂創作,他還用資訊理論分析音樂的複雜度。他在大學時是籃球隊員,他寫了一個程式,分析大學籃球聯賽每位球員每場的得分、助攻、阻攻、籃板等資料。教練依據這個程式挑選球員,讓他所屬的凱斯理工學院,贏得當年的全美大學籃球聯賽冠軍。這應該是最早把大數據,運用在體育上成功的案例。CBS電視台還為此做了專題報導。高德納和他用的電腦IBM650合影的照片,還被IBM印在產品DM上。

高德納一生貢獻非常多,以至於有人懷疑是不是同名同姓的人做的。他一生以五件事聞名於世。

一、他是電腦演算法的鼻祖,提出衡量電腦演算法的標準,就是之前分享的量級的概念。

二、他編寫電腦科學領域的聖經《電腦程式設計藝術》這本書。出版社在他獲得博士學位前向他邀稿,但是過了4年還沒寫好,出版社向他詢問進度,他說剛寫完3,000頁,主題還沒講完。後來出版社只好分卷發行。

其中第1卷《基本演算法》,比爾·蓋茲花了很大的功夫學習這一卷,並且一輩子推薦這套書。蓋茲說:如果你想成為一位優秀的程式工程師,那就一定要讀《基本演算法》。高德納本人的說法更銳利:要是這一卷都看不懂,就別當程式設計師了。

三、高得納是到目前為止,最年輕的圖靈獎得獎主。1973年,他完成《電腦程式設計藝術》的第3卷,圖靈獎評審委員會依據他在演算法上的貢獻,直接頒圖靈獎給他。那年他才36歲。最後,這套書出了4卷(原本打算寫7卷),每卷都是6700頁,全套書賣幾百美元。出版後幾年內,賣了上百萬套。

四、高德納在寫書時,因為編輯排版軟體很難用,因此,自己寫了一個排版軟體Tex(後來有人修正成更方便使用的LaTex)。這個軟體後來引發一場出版界的革新,直到今天仍是全球學術界排版的標準規範。

Tex被稱為全世界bug最少的軟體。高德納出錢懸賞找到bug的人,賞金呈指數增加(2.565.1210.24…)。他給到第3筆賞金之後,再也沒有人找到錯誤了。如果這個軟體有10個以上的錯誤,高德納就要破產了。因此,他可以說是集優秀電腦科學家和軟體工程師於一身的人。

五、高德納是矽谷地區最會程式設計的人。矽谷地區有一段時間,每年都進行程式設計比賽。參加的人除了高德納之外,還有視窗的真正發明者凱(賈伯斯是受到他的啟發,才發明蘋果的視窗作業系統)、提出人工智慧理論的紐維爾等人,高德納總是用一台最慢的電腦,獲得第1名。

高德納說:在他學習程式設計時,因為電腦太慢、記憶體太小,來回修改很花時間。因此,他總是力求一次全對,讓演算法在設計時就達到最佳。這有點像攝影比賽時,有人拿著老式徠卡相機,照樣拍出最佳照片;也有很多人拿著最新的單眼相機,只能記錄影像。

今天許多知名的電腦大師,和高德納相比,都只能算是小朋友等級。這也讓我們必須相信,真的是有天才存在的。高德納成功的原因和過程,吳軍老師歸納以下4點:

一、利用了藝術和科學的相通性。許多駭客級的電腦專家都是藝術天才。今天很多人目光短淺,只盯著眼前的小技能、小成果,豈知缺乏靈性,是連個好工匠都當不了的。很多人問吳軍老師如何突破天花板,吳軍老師表示:如果一個人從大學開始,格局就很低,一輩子就只能低水準地重覆工作。

二、高德納並非名校出身,因此,起跑線一說,不用太在意。但是,他做每一件事,都有追求完美的精神。高德納小時候,有家棒棒糖公司為了行銷產品,舉辦一場拼字比賽,獎品是一台電視,獎品價值大概相當於今天的一台休旅車。高德納為了得到第1名,在家拼了一個禮拜,拼出4,500個符合條件的單詞。當時主辦方掌握的答案只有2,500個單詞。因此,他如願以償地得到第1名。他無論做什麼事,都很少得到第2名。

三、高德納抽象思維能力超越常人,但是他同時能自己寫程式,而且寫得非常好。每當他有想法時,都能動手實現。MIT的校訓是“腦與手”,就是要培養高德納這樣的人。

四、遇到問題,積極解決的態度。很多人遇到問題不是抱怨,就是等別人的答案;高德納面對問題,總是積極處理。他在寫書時,遇到排版軟體的問題,他就自己發明一個。在編輯軟體中,經常用到字串查找演算法,過去的演算法效率不高,高德納為此發明了KMP演算法(KMPKnuthMorrisPratt這三個人名字的代表,後面兩位是他的學生)。這個演算法也成為今天經典的演算法。

對比馮諾依曼發明電腦系統結構的過程,高德納發明KMP演算法也都算是偶然發生的。但是他們偶然為之的工作,比許多二流人才努力一輩子的發現更有影響力。為何如此呢?除了能力的差異之外,他們還有遇到問題,積極處理的態度。

任何人在生活過程中,都會遇到問題,但是對待問題的態度,決定了命運。希望高德納做事的方法,能夠對你有所啟發。

本日思考題:談談你對頭頂青天、腳踏實地的體會。

歡迎你的留言,和我一起分享、一起討論,我們下次見。

arrow
arrow

    Jay Yeh 發表在 痞客邦 留言(0) 人氣()