色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

對(duì)九個(gè)超級(jí)程序員的采訪(fǎng)

  原文:《Q&A With Nine Great Programmers》時(shí)間有限,我只能粗譯,難免錯(cuò)誤。

  這篇訪(fǎng)談源自 2006 年,最先發(fā)布在波蘭程序員 Jaroslaw “sztywny” Rzeszótko (AKA “Stiff”) 的博客上。但是這篇博文現(xiàn)在找不到了。非常感謝他能授權(quán)我重新發(fā)布這個(gè)博文。

在一個(gè)炎熱無(wú)聊的下午,我突發(fā)奇想。我想通過(guò)電子郵件的方式對(duì)那些我非常感興趣和非常敬重的程序員問(wèn) 10 個(gè)問(wèn)題。準(zhǔn)備這 10 個(gè)問(wèn)題我只花了 5 分鐘,這些都是我個(gè)人想問(wèn)他們的問(wèn)題,所以,我基本上沒(méi)想太多要問(wèn)他們什么。最后兩個(gè)問(wèn)題和編程沒(méi)有什么關(guān)系,我就是想問(wèn)題這些人的一些興趣愛(ài)好。另外,不是每一個(gè)人都想回答我的,這是我第一次做“訪(fǎng)談”,所以,我犯了一些錯(cuò)誤,讓一些問(wèn)題沒(méi)有回答。不管怎么樣,我得到了很多很有意思的內(nèi)容,所以,這對(duì)我絕對(duì)是一次很有意義的經(jīng)歷。

并不是第一個(gè)人都回了我的郵件,也并不是每一個(gè)人都同意回答我的這些問(wèn)題,也許在我發(fā)布這篇文章后我會(huì)得到那些回答,但是我已經(jīng)迫不及待想把這些東西發(fā)布了,所以,我可能會(huì)更新這篇文章(更新:2006年 3 月 8 日,我收到了 Bjarne Stroustrup 的回信)

– Jaroslaw

  介紹

  • Dave Thomas – “Pragmatic Programmer”(注:douban) 和 “Programming Ruby”(注:douban) 以及其它一些優(yōu)秀書(shū)籍的作者。 你可以在 這里 讀讀他對(duì)編程的一些想法。
  • Steve Yegge —— 他可能并不那么知名,但是他給了很多有意思的回答。他有一個(gè)很火的關(guān)于編程的 blog,他也是游戲 ”Wyvern” 的作者。(陳皓注:他最火的是去年在 Google+ 上對(duì) Google 和 Amazon 的吐槽,06年他應(yīng)該在 Google 了)

  Q1: 你是怎么學(xué)編程的?是從學(xué)校里學(xué)的嗎?或者你沒(méi)有上過(guò)學(xué):) ?

  Steve Yegge

  在我 17 歲的時(shí)候,我在 HP 的計(jì)算器中用他們的 RPN 棧語(yǔ)言自學(xué)編程的。在這之前,我嘗試過(guò)學(xué)習(xí)編程一兩次,但都沒(méi)有學(xué)成。HP 28c 和 48g 的科學(xué)計(jì)算器是一個(gè)很牛的東西,而且還有不錯(cuò)的文檔。我搞了一本 3D 圖形的書(shū),并很費(fèi)力地把其中的 Pascal 語(yǔ)言轉(zhuǎn)成 RPN 棧語(yǔ)言,并用 48g 畫(huà)了一個(gè) 3D 的線(xiàn)框架圖。運(yùn)行的還不錯(cuò),在我買(mǎi)了 PC 和 Turbo Pascal 之后,我開(kāi)始認(rèn)真地學(xué)習(xí)編程。在我進(jìn)入大學(xué)計(jì)算機(jī)科學(xué)專(zhuān)業(yè)之前,我已經(jīng)是一個(gè)不錯(cuò)的程序員了。

  我在華盛頓大學(xué)拿到了計(jì)算機(jī)科學(xué)學(xué)位,這絕對(duì)是有價(jià)值的,所以,我建議所有的程序員都應(yīng)該得到計(jì)算機(jī)科學(xué)專(zhuān)業(yè)的學(xué)位。

  Linus Torvalds

  我沒(méi)有在學(xué)校里學(xué)過(guò)編程,我主要是讀我自己想讀的書(shū),或是就直接去編程 (一開(kāi)始在 Commodore VIC-20 學(xué)編程, 然后是 Sinclair QL 上編程)。

  當(dāng)然,我覺(jué)得上大學(xué)非常有用。我沒(méi)有去一個(gè)工科大學(xué),我上了赫爾辛基大學(xué),這是一個(gè)比較偏理論的大學(xué),所以,那里的教育并沒(méi)有那么多的編程的東西(編程只是很少一部分),這里大多數(shù)的課程都傾向于教一些基礎(chǔ)概念的東西,如:復(fù)雜性分析。看上去很無(wú)聊,甚至有點(diǎn)浪費(fèi)時(shí)間,但是我還是覺(jué)得這些課有用,我對(duì)大多數(shù)課都還比較 enjoy。所以,我覺(jué)得我可能在這些方面是一個(gè)比較好的程序員。

  David Heinemeier Hansson

  我學(xué)編程是從用 HTML 做我的第一個(gè)網(wǎng)頁(yè)開(kāi)始的。那時(shí),我想當(dāng)我的網(wǎng)頁(yè)能動(dòng)態(tài)地顯示一些內(nèi)容,所以,我選擇了 ASPphp。在做完這個(gè)網(wǎng)頁(yè)后,我知道了怎么去編程,于是我開(kāi)始我的計(jì)算機(jī)科學(xué)和商業(yè)管理學(xué)位的學(xué)習(xí)。

  Peter Norvig

  我是從高中和大學(xué)課程中學(xué)編程的,但是我還是覺(jué)得我自己學(xué)得更多。

  Dave Thomas

  我是在高中學(xué)編程的。我完全地迷住了,我對(duì)編程愛(ài)得無(wú)法自拔,然后,我開(kāi)始挑選那些提供軟件開(kāi)發(fā)課程的大學(xué)。最終,我去了倫敦大學(xué)的帝國(guó)學(xué)院。第二年我就開(kāi)始學(xué)習(xí)軟件開(kāi)發(fā)的課程了,那絕對(duì)是非凡的,學(xué)生和教員在一起工作把教材做得更好,每一個(gè)人都可以從中學(xué)到很多。這些課程給了我難以置信和非常雄厚的軟件開(kāi)發(fā)背景。我在那里讀到了博士,最后去創(chuàng)業(yè)了。

  關(guān)于“我是怎么學(xué)編程的”這個(gè)問(wèn)題,我的回答是“我現(xiàn)在還在學(xué)編程”。我認(rèn)為好的程序員一生都在學(xué)編程。這并不是去學(xué)一門(mén)語(yǔ)言或是一個(gè)代碼庫(kù),好的程序員會(huì)對(duì)他們的編程技藝一年又一年地精益求精。

  Guido Van Rossum

  我去的那個(gè)大學(xué)有一個(gè)大型主機(jī)和很多不同的計(jì)算機(jī)課程。這對(duì)我很重要。

  James Gosling

  起初,我是自學(xué)的。在我去上大學(xué)之前,我就找到了一份程序員的工作。但是我很高興我去了大學(xué),在那里有很多樂(lè)趣,最終我學(xué)到了博士。

  Bjarne Stroustrup

  我先上的是 Aarhus 大學(xué), 然后是劍橋大學(xué)(Cambridge),這兩個(gè)大學(xué)教了我很多很有用的東西,這些東西為了以后的工作打下了基礎(chǔ)。另外,我對(duì)編程和錢(qián)的關(guān)系學(xué)得非常好 —— 知道了真實(shí)世界的問(wèn)題,正確性,維護(hù)性,準(zhǔn)時(shí)交付,等等,這些比教育可能更重要。

  Tim Bray

  我本來(lái)想去做一個(gè)數(shù)學(xué)老師的。但是,那個(gè)學(xué)數(shù)學(xué)的大學(xué)要我去學(xué)幾個(gè)計(jì)算機(jī)的課。

  Q2: 你們覺(jué)得對(duì)程序員最重要的事是什么?

  Steve Yegge

  溝通能力(寫(xiě)和說(shuō))。除非你可以讓你的想法更有效率地傳遞出去,否則你不可能做得比編程更多的事。程序員應(yīng)該瘋狂地閱讀,鍛煉寫(xiě)作能力,參加一些寫(xiě)作培訓(xùn)課程,甚至鍛煉在公開(kāi)場(chǎng)合演講的能力。

  Linus Torvalds

  It’s a thing I call “taste”. 有一件事,我把它叫做“品味”。

  我傾向于不從熟練程度來(lái)評(píng)判那些和我工作過(guò)的人。這些人能非常艱苦地寫(xiě)出很多代碼,但是我想從他們對(duì)別人的代碼的反應(yīng)做出評(píng)判,這樣我們就可以明白他們自己寫(xiě)的代碼怎么樣,知道他們使用的方法怎么樣。他們對(duì)別人的評(píng)判還告訴我,他們是不是有好的“品味”。是這樣的,如果一個(gè)人沒(méi)有“好的品味”,那么他一般不會(huì)很好的評(píng)判他人的代碼,他自己寫(xiě)的代碼通常也不會(huì)很好。

  哦,這并不只是唯一的事。還有一件事,尤其在開(kāi)源項(xiàng)目里,那是他是否有能力能和別人進(jìn)行簡(jiǎn)單的溝通,告訴別人他要干什么,怎么干。這個(gè)能力可以告訴別人為什么你干的事是非常重要的,并不是所有的人都有這個(gè)能力。

  也就是說(shuō),有一些人可以寫(xiě)出很不錯(cuò)的代碼,但他們并不一定能解釋這些代碼,他們也并不一定有好的品味,但是代碼可以運(yùn)行得不錯(cuò)。有時(shí),你需要另一個(gè)人(有那種不錯(cuò)的品味的人)把他的代碼轉(zhuǎn)成更好的形式。也就是說(shuō),任何一個(gè)程序員都需要那種可以用清晰的代碼來(lái)解決復(fù)雜問(wèn)題的基礎(chǔ)能力。

  David Heinemeier Hansson

  很強(qiáng)的對(duì)有價(jià)值的事的感覺(jué)。你可以問(wèn)問(wèn)自己這個(gè)問(wèn)題你有沒(méi)有這種能力:我現(xiàn)在做的這個(gè)事值不值得做?很多程序員浪費(fèi)了如大海一樣的時(shí)間去做一些無(wú)意義的事。

  Peter Norvig

  我不覺(jué)得只有一個(gè),如果要我說(shuō)一個(gè)的話(huà),我說(shuō)是“專(zhuān)注”。

  Dave Thomas

  熱情。

  Guido Van Rossum

  你的問(wèn)題很難回答啊:-) 我猜,如果程序員會(huì)在早晨煎個(gè)雞蛋做早餐,那真是無(wú)價(jià)的能力。

  James Gosling

  自我激發(fā)。你需要全身心地投入到你要做的事中。

  Bjarne Stroustrup

  把事想清楚的能力:程序必需要能清楚地理解問(wèn)題并能清楚地表述解決方案。

  Tim Bray

  能為自己的直覺(jué)提供證據(jù)的能力。

  Q3: 你是否認(rèn)為數(shù)學(xué)和/或物理是一種很重要的編程技能?為什么?

  Steve Yegge

  數(shù)學(xué)有很多的分支和程序員相關(guān),他們是“離散數(shù)學(xué)”和“具體數(shù)學(xué)”。這些分支包括的學(xué)科有,概率論,組合數(shù)學(xué),圖論,歸納證明,和其它有用的東西。我會(huì)鼓勵(lì)所有的程序員都去學(xué)習(xí)離散數(shù)學(xué),無(wú)論能學(xué)多少,因?yàn)檫@總比什么都不懂強(qiáng)。

  對(duì)于傳統(tǒng)的數(shù)學(xué),我也不經(jīng)常用,但是我需要的時(shí)候這些數(shù)據(jù)知識(shí)會(huì)很管用。例如,在我之前的工作中我就用到了微積分。我需要估計(jì)每個(gè)小時(shí)中某服務(wù)的高峰時(shí)間的流量負(fù)載,所以,他的負(fù)載是跟著太陽(yáng)走的就像一個(gè)正弦曲線(xiàn)一樣。最簡(jiǎn)單的方式就是把每個(gè)小時(shí)的負(fù)載曲線(xiàn)給整合起來(lái)。如果我不知道微積分,我就不知道怎么更為準(zhǔn)確地估計(jì)。

  當(dāng)年我在開(kāi)發(fā)我的 Wyvern 游戲的時(shí)候,我的平面幾何的知識(shí)對(duì)我非常有幫助。而且經(jīng)常使用代數(shù)和線(xiàn)性代數(shù)的知識(shí)。但我很少在工作中使用三角學(xué)或微分方程,微積分同樣也很少。

  我想說(shuō),簡(jiǎn)單的數(shù)學(xué)基礎(chǔ)讓我的技能比一般程序員好過(guò) 5% 到 10%。如果我了解更多的數(shù)學(xué),我確信我會(huì)比今天做得更好,所以,我每周都會(huì)花幾個(gè)小時(shí)學(xué)習(xí)數(shù)學(xué)。

  我喜歡物理,我還在學(xué)習(xí)物理,我會(huì)花我一生去理解量子力學(xué)。但是我卻沒(méi)有發(fā)現(xiàn)物理對(duì)我的程序員工作有多有用。當(dāng)然,如果我從事一些和物理相關(guān)的工作,可能會(huì)有用,例如:3D 游戲編程,或是某種物理特性仿真。

  Linus Torvalds

  我個(gè)人認(rèn)為有很強(qiáng)的數(shù)學(xué)背景是一件好事。但我不確信物理是不是這樣的,但是我深信懂?dāng)?shù)學(xué)的人會(huì)讓你成為一個(gè)更好的程序員。這些智力模型都是相通的。

  David Heinemeier Hansson

  根本沒(méi)用。至少對(duì)業(yè)務(wù)編程和 Web 應(yīng)用來(lái)說(shuō)沒(méi)用。但是數(shù)學(xué)可能對(duì)一個(gè)人的寫(xiě)作有很重要的幫助。

  Peter Norvig

  是的。很多相法都是從數(shù)學(xué)來(lái)的:歸納,遞歸,邏輯,等等。

  Dave Thomas

  也許吧。但老實(shí)說(shuō),我沒(méi)見(jiàn)到過(guò)懂這些學(xué)科和好的程序員有很大的相關(guān)性。

  然而,我見(jiàn)過(guò)有音樂(lè)背景和好的編程技能有很強(qiáng)的相關(guān)性。我不知道這為什么,但是我懷疑大腦中的某個(gè)區(qū)域可以讓人即可以寫(xiě)出好的音樂(lè),也可以寫(xiě)出好的代碼。(陳皓注:@Sir 阿怪 貌似就是這個(gè)例子)

  Guido Van Rossum

  數(shù)學(xué),當(dāng)然(對(duì)于一些學(xué)科是很重要的,我不關(guān)心微分方程,但是代數(shù)和邏輯學(xué)是很重要的),物理,我不覺(jué)得對(duì)編程技能有關(guān),當(dāng)然物理在其它很多地方很有意思。

  James Gosling

  當(dāng)然!數(shù)學(xué)教會(huì)了我邏輯和推導(dǎo)……讓我有了一雙懂分析的眼睛。當(dāng)我們分析算法的時(shí)候,數(shù)學(xué)是無(wú)法被取代的。

  Bjarne Stroustrup

  這要看程序員自己和項(xiàng)目性質(zhì)了。以前的數(shù)據(jù)很有用,物理一般,但是學(xué)好物理是是學(xué)習(xí)應(yīng)用數(shù)據(jù)最好的一條路。

  Tim Bray

  對(duì)我來(lái)說(shuō),在我的編程生涯中我從來(lái)都沒(méi)有用過(guò)大學(xué)里教的數(shù)學(xué)。

  Q4: 關(guān)于編程,你們認(rèn)為接下來(lái)的大事是什么?X-Oriented 編程,Y語(yǔ)言,量子電腦

  Steve Yegge

  我認(rèn)為 Web 編程會(huì)逐漸變成最最重要的客戶(hù)端編程。而對(duì)于原來(lái)傳統(tǒng)的客端端編程都會(huì)被廢棄,如: GTK, Java Swing/SWT, Qt, 當(dāng)然,所有的和平臺(tái)有關(guān)的東西,例如 Cocoa 和 Win32/MFC/等。

  當(dāng)然,這不會(huì)一晚上就發(fā)生了。這會(huì)在第一個(gè)十年內(nèi)緩慢地發(fā)生,而在第二個(gè)十年內(nèi),Web Apps 最終會(huì)勝利。工具,語(yǔ)言,協(xié)議,和瀏覽器技術(shù)都會(huì)進(jìn)步得非常快,并會(huì)完全超出你今天能干的事。每一年都會(huì)向前進(jìn)一步,而從今天開(kāi)始,我會(huì)最終決定把我所有的應(yīng)用開(kāi)發(fā)全部切換到基于瀏覽器的應(yīng)用。(陳皓注:我也是這么認(rèn)為的,參看《來(lái)信,創(chuàng)業(yè),移動(dòng)互聯(lián)網(wǎng)》)

  微軟和蘋(píng)果最終不愿意這個(gè)事發(fā)生,所以,觸發(fā)這個(gè)事的第一步會(huì)是一個(gè)開(kāi)源的瀏覽器(如:Firefox)開(kāi)始到了支配市場(chǎng)的地位,然后會(huì)出現(xiàn)某種 Firefox 的殺手級(jí)應(yīng)用(這種殺手級(jí)應(yīng)用可能會(huì)像 iTunes 一樣,所有的人都會(huì)用它,只需要下載 Firefox)

  Linus Torvalds

  我并不認(rèn)為我們會(huì)看到一個(gè)“大的跳躍”。我們只會(huì)看到很多的工作幫助我們把那些沉悶辛苦的工作變得更簡(jiǎn)單 —— 會(huì)有一個(gè)更高級(jí)別的語(yǔ)言,也許把簡(jiǎn)單的數(shù)據(jù)庫(kù)集成到語(yǔ)言中來(lái)會(huì)是其中最主要一個(gè)。

  例如,我個(gè)人相信“Visual Basic”在編程方面比“面向?qū)ο?rdquo;做得更多。當(dāng)然,人們都在取笑 VB 是一個(gè)很爛的編程語(yǔ)言,并且人們?cè)谡務(wù)?OO 語(yǔ)言都十多年了。但我還覺(jué)得不是這樣的,Visual Basic 不是一個(gè)好的語(yǔ)言,但是我覺(jué)得 VB 那簡(jiǎn)單的數(shù)據(jù)庫(kù)接口比 OO 更重要。

  所以,我認(rèn)為會(huì)語(yǔ)言有很多的改進(jìn),并且,硬件的改進(jìn)會(huì)讓編程更容易,但我并不期望會(huì)有巨大的生產(chǎn)力或是革命性的改進(jìn)。

  至少,你不會(huì)開(kāi)始搞真正的 AI 的東西,我也不認(rèn)為真的 AI 會(huì)變成某種你不需要編程的東西。

  David Heinemeier Hansson

  我從不試圖預(yù)測(cè)未來(lái)。我也不相信命運(yùn)一說(shuō)。最好預(yù)測(cè)未來(lái)的方式就是去實(shí)現(xiàn)未來(lái)。

  Peter Norvig

  大規(guī)模的分布式處理

  Dave Thomas

  下一個(gè)最牛的事會(huì)被再下一個(gè)最牛的事所掩蓋,然后再被再再下一個(gè)所掩蓋,再再再下一個(gè)所掩蓋……。這是一件沒(méi)完沒(méi)了的事,所以,我并不會(huì)試圖去找最牛的事,因?yàn)檫@會(huì)讓人們忘了那些最真實(shí)的問(wèn)題:把基本的東西做對(duì)。我們要讓用戶(hù)更滿(mǎn)意,專(zhuān)注于交付有價(jià)值的東西,自豪于我們做的事。一個(gè)程序員可以使用很多工具把這些事做得更好,而不是去追逐時(shí)尚和流行。

  Guido Van Rossum

  對(duì)不起,我沒(méi)有那么多水晶球。我 CGI 被發(fā)明了 5 年后預(yù)測(cè)過(guò)它 :-)

  James Gosling

  有兩個(gè)事是我現(xiàn)在最關(guān)心的,那就是要對(duì)付并行和復(fù)雜。

  Bjarne Stroustrup

  我不知道,我也不愿猜。

  Tim Bray

  不知道。

  Q5: 如果你有 3 個(gè)月學(xué)一個(gè)相對(duì)較新的技術(shù),你會(huì)學(xué)什么?

  Steve Yegge

  我的確有 3 個(gè)月的業(yè)余時(shí)間,我準(zhǔn)備學(xué)一下 Dojo (http://dojotoolkit.org) 和高級(jí) AJAX 及 DHTML。我會(huì)通過(guò)開(kāi)發(fā)一個(gè)相當(dāng)牛的 Web 應(yīng)用來(lái)學(xué)習(xí)他們。Dojo 真的酷,并且我確信它會(huì)越來(lái)越好。

  Linus Torvalds

  嗯,我真的很愛(ài)做 FPGA(可編程芯片),但我部是太忙了而不是坐來(lái)來(lái)開(kāi)始學(xué)習(xí)。我喜愛(ài)和硬件打交道:很明顯這個(gè)原因是因?yàn)槲易罱K在做操作系統(tǒng),因?yàn)椴僮飨到y(tǒng)(除了編譯器)基本上都是在和硬件打交道,但我沒(méi)有真正地自己去設(shè)計(jì)和做一個(gè)硬件。

  David Heinemeier Hansson

  Mac 的 Cocoa 編程

  Peter Norvig

  我想把 Javascript 學(xué)得更好,然也也想學(xué) Flash.

  Dave Thomas

  如果“新”是對(duì)于我來(lái)說(shuō),那么我會(huì)去學(xué)鋼琴課。

  如果“新”是說(shuō)技術(shù),我猜我會(huì)選擇學(xué)習(xí)某種和為殘疾人服務(wù)的有關(guān)的技術(shù)。

  Guido Van Rossum

  單板滑雪。

  James Gosling

  搞點(diǎn)有樂(lè)趣的東西,我會(huì)學(xué)習(xí)最新的 3D 渲染技術(shù)。我可能會(huì)寫(xiě)一個(gè)光子映射渲染器。

  Bjarne Stroustrup

  3個(gè)月只有很少的東西你可以學(xué),我覺(jué)得你只能參加某個(gè)成熟領(lǐng)域的培訓(xùn)。

  Tim Bray

  安全,加密,數(shù)字簽名,身份標(biāo)識(shí),等等。對(duì)我來(lái)說(shuō),從沒(méi)學(xué)過(guò)這些東西對(duì)我來(lái)說(shuō)是個(gè)很大的問(wèn)題。

  Q6: 你們覺(jué)得如何讓一些程序員可能有超過(guò)其它程序員 10 倍或 100 倍的生產(chǎn)力?

  Steve Yegge

  我想你應(yīng)該考慮一下為什么不是讓所有的程序員都一樣牛。托馬斯·愛(ài)迪生有一句關(guān)于天才的名言也許會(huì)給你一些啟示。

  Linus Torvalds

  我真的不知道,我想,一些人之所以更牛是因?yàn)樗麄兛梢詫?zhuān)注于那些重要的事,而更多的只不過(guò)是在應(yīng)付。那些我所知道的真的很牛的程序員從很年輕的時(shí)候就在做事了。

  David Heinemeier Hansson

  把難題變簡(jiǎn)單的能力。

  Peter Norvig

  把整體問(wèn)題一次性放入大腦的能力。

  Dave Thomas

  他們關(guān)心他們做的事。

  Guido Van Rossum

  大腦結(jié)構(gòu)基因不同。

  James Gosling

  他們知道他們要做什么,他們不并不急于倉(cāng)促行事。他們有他們要做的事的整個(gè)藍(lán)圖。

  Bjarne Stroustrup

  首先,缺少足夠的職業(yè)培訓(xùn),或基礎(chǔ)不夠。其次,這些人要即聰明(那種可以把事情想清楚,直達(dá)核心的能力),又有經(jīng)驗(yàn),并有使用工具的知識(shí)。編程需要把理論和實(shí)踐結(jié)合起來(lái) – 并不是使用沒(méi)有實(shí)際業(yè)務(wù)的知識(shí)。

  Tim Bray

  令人驚訝的思維改變。

  Q7: 什么工具是你的最?lèi)?ài)(操作系統(tǒng),編程/腳本語(yǔ)言,文本編輯器,版本管理,shell,數(shù)據(jù)庫(kù),或其它沒(méi)它你活不了的工具),為什么不是別的?

  Steve Yegge

  操作系統(tǒng): Unix! 我用 Linux,cygwin,和 darwin。你無(wú)法打敗那些高效的工具。每一個(gè)程序員都應(yīng)該學(xué)習(xí)使用 /bin 和 /usr/bin 下的所有命令。

  腳本語(yǔ)言:Ruby。我?guī)缀鯇?duì)所有的重要的腳本語(yǔ)言都很熟悉: Perl, Python, Tcl, Lua, Awk, Bash, 和一些我忘了的。但是我太懶了,而 Ruby 是目前所有腳本語(yǔ)言中最簡(jiǎn)單的,它應(yīng)該是天堂制造的。

  編程語(yǔ)言:沒(méi)有一個(gè)我喜歡的,我覺(jué)得所有的編程語(yǔ)言都很扯。我傾向于 Java,因?yàn)樗軓?qiáng),可跨平臺(tái),有多不錯(cuò)的工具和類(lèi)庫(kù)。但是 Java 未來(lái)會(huì)進(jìn)化或是滅亡,Java 還沒(méi)有好到可以永遠(yuǎn)保持其領(lǐng)先地位。

  文本編輯器:Emacs,因?yàn)檫@是迄今最好的編輯器。

  版本管理:SVN,Perforce 更好一些,但是也很貴。

  Shell 腳本: Bash, 因?yàn)槲姨珣辛巳W(xué)一個(gè)更好的。

  數(shù)據(jù)庫(kù): 當(dāng)然是 MySQL,沒(méi)有之一。

  其它:我發(fā)現(xiàn) GIMP 是無(wú)價(jià)的,但也是令人惱炎的。我用這個(gè)東西好幾年了,但什么也沒(méi)干,但是我沒(méi)它活不了。很諷刺吧。Firefox 越來(lái)越是我最重要的工具。如果讓我去用 IE 和 Safari,我會(huì)有嚴(yán)重的窒息感。

  注:所有的這些工具 (Unix, Emacs, Firefox, GIMP, MySQL, Bash, SVN, Perforce) 都有一個(gè)共同點(diǎn):他們是可擴(kuò)展的。例如:他們都有可編程的 API。偉大的程序員知道怎么編寫(xiě)他們的工具,而不只是去使用。

  Linus Torvalds

  實(shí)際上,我最終也沒(méi)有用過(guò)幾個(gè)工具,而我卻花了一些時(shí)間讓這些工具為我工作。最大的事是我自己寫(xiě)了個(gè)操作系統(tǒng),我也自己寫(xiě)了個(gè)版本管理系統(tǒng)(git),我用的文本編輯器是 micro-emacs – 最終我也定制和擴(kuò)展了它。

  除了上面三個(gè),其它的東西,我深度關(guān)心我的郵件閱讀軟件,我使用“pine”,并不是因?yàn)樗鞘飞献詈玫泥]件閱讀軟件,因?yàn)槲伊?xí)慣了,用它我會(huì)有最低限度的大驚小怪。

  David Heinemeier Hansson

  OS X, TextMate, Ruby, Subversion, MySQL. 這些組合讓我很快樂(lè)。我希望那些有好的品味的專(zhuān)注于重要的事的工具。

  Peter Norvig

  我不喜歡那三大操作系統(tǒng) – Windows, Mac, Linux。我喜歡 Python 和 Lisp, Emacs.

  Dave Thomas

  在使用 Linux 10 年后我轉(zhuǎn)到 Mac 平臺(tái)有兩年多了。Mac 并不見(jiàn)得有多好,但是它不需要很牛的技術(shù),也不需要經(jīng)常維護(hù),這讓我可以讓我更專(zhuān)心得使用它。

  我并不是一個(gè)單一工具的信仰者,我喜歡換來(lái)?yè)Q去的,這樣可以讓我有更多的經(jīng)驪。現(xiàn)在,我使用 OSX, Emacs, TextMate, Rails, Ruby, SVN, CVS, Rake, make, xsltproc, TeX, MySQL, Postgres, 還有一堆高效的小工具。沒(méi)人知道我明年會(huì)用什么。

  Guido Van Rossum

  Unix/Linux, Python, vi+emacs, Firefox.

  James Gosling

  這些天,我在用 NETBeans. 用它可以干我想干的所有的事,清潔,簡(jiǎn)單和高效。這是最好的我永遠(yuǎn)要生活在其中的環(huán)境了。

  Bjarne Stroustrup

  Unix, sam (一個(gè)非常簡(jiǎn)單的文本編輯器), 當(dāng)然,一個(gè)好的 C++ 編譯器。

  Tim Bray

  我喜歡 Unix-like 的操作系統(tǒng),像 Python 和 Ruby 的動(dòng)態(tài)語(yǔ)言,像 Java 的靜態(tài)語(yǔ)言(具體說(shuō)來(lái)是 Java API) Emacs, 還有, bash, whatever, NETBeans.

  Q8: 你最喜歡的編程書(shū)是什么?

  Steve Yegge

  大哥,這個(gè)問(wèn)題太難了。也許是”Gödel, Escher, Bach: an Eternal Golden Braid” (作者 Hofstadter)?雖然這不是嚴(yán)格意義上的編程的書(shū),如果你要明確意義上的編程書(shū),那么可能是 SICP (mitpress.mit.edu).

  Linus Torvalds

  嗨。這兩天我在讀一些小說(shuō),或是非計(jì)算機(jī)讀物(老的但是有用的 “The Selfish Gene” 作者 Richard Dawkins)。

  如果要問(wèn)我編程的書(shū),我腦子里只出現(xiàn)了唯一一本真正的經(jīng)典的編程的書(shū) Kernighan & Ritchie 的 “The C Programming Language”,因?yàn)檫@本書(shū)太牛了,可讀性強(qiáng)并且很短。考虛一下你想學(xué)到這世上一門(mén)最重要編程語(yǔ)言,并且它很薄,而且還有可讀性,這真是一個(gè)奇跡。

  也就是說(shuō),其它我很喜歡的書(shū)并不是編程的,而是關(guān)于計(jì)算機(jī)結(jié)構(gòu)和硬件的。那顯然是 Patterson & Hennessy 的計(jì)算機(jī)結(jié)構(gòu)的書(shū),但是我個(gè)人也許更喜歡 Crawford & Gelsinger 的 “Programming the 80386?,這是我在開(kāi)始寫(xiě) Linux 時(shí)用的書(shū)。

  相似的原因,我還喜歡 Andrew Tanenbaum 的 “Operating Systems: Design and Implementation”.

  David Heinemeier Hansson

  我喜歡 Extreme Programming Explained 其摒棄了一般的編程實(shí)踐,我還喜歡 Patterns of Enterprise Application Architecture 其出眾地說(shuō)明了抽象和具現(xiàn)的平衡。

  Peter Norvig

  Structure and Interpretation of Computer Programs

  Dave Thomas

  這關(guān)系到你所謂的“喜歡”,也許我最喜歡的是 IBM 的 “IBM/360 Principles of Operation.”

  Guido Van Rossum

  Neil Stephenson 的 Quicksilver.

  James Gosling

  Programming Pearls 作者 Jon Bentley.

  Bjarne Stroustrup

  K&R.

  Tim Bray

  Bentley 的 Programming Pearls

  Q9: 你最喜歡的和編程無(wú)關(guān)的一本書(shū)是什么?

  Steve Yegge

  只能是一本嗎?這不可能。有太多太多我喜歡的書(shū)了。

  我這個(gè)月讀過(guò)最喜歡的書(shū)是 “Stardust” (Neil Gaiman) 和 “The Mind’s I” (Hofstadter/DenNET).

  我最喜歡的作者是 Kurt Vonnegut, Jr. 和 Jack Vance.

  Linus Torvalds

  我在前面說(shuō)過(guò) Dawkins 的 Selfish Gene。在小說(shuō)方面,有很多很多我 enjoy 的,但是幾乎沒(méi)有我特別喜歡的一本。我一般不會(huì)重讀一本書(shū),我的選擇總是會(huì)變。我可能更喜歡科幻小說(shuō),如:”Stranger in a Strange Land” 作者 Heinlein,這是我青少年時(shí)期最喜歡的書(shū),但現(xiàn)在并不是我喜歡的了。

  David Heinemeier Hansson

  1984, George Orwell.

  Guido Van Rossum

  Neil Stephenson 的 Quicksilver.

  James Gosling

  Guns, Germs & Steel 作者 Jared Diamond

  Bjarne Stroustrup

  我沒(méi)有固定喜歡的書(shū)。目前是 O’Brian 的 Aubrey/Maturin 系列。

  Tim Bray

  One Day in the Life of Ivan Denisovich

  Q10: 你最喜歡的樂(lè)隊(duì)/演奏家/作曲家?

  Steve Yegge

  喜歡的風(fēng)格:古典音樂(lè),動(dòng)漫原聲音樂(lè),電腦游戲音樂(lè)

  喜歡的作曲家:Rachmaninoff, Chopin, Bach

  喜歡的演奏者:David Russell (古典吉它), Sviatoslav Richter (鋼琴)

  喜歡的動(dòng)漫音樂(lè): Last Exile, Haibane Renmei

  Linus Torvalds

  實(shí)際上我并不太喜歡音樂(lè),但是當(dāng)我聽(tīng)音樂(lè)的時(shí)候,我一般聽(tīng)經(jīng)典搖滾樂(lè),如: Pink Floyd ,Beatles ,Queen 和 The Who 樂(lè)隊(duì)。

  David Heinemeier Hansson

  我喜歡很多風(fēng)格。 Beth Orton, Aimee Mann, Jewel, Lauryn Hill. Actually, 所有的這些都可以歸到 Girls with Guitars ;).

  Guido Van Rossum

  Philip Glass.

  James Gosling

  我喜歡聽(tīng)民歌: Christine Lavin, Woody Guthrie, Pete Seeger…

  Bjarne Stroustrup

  樂(lè)隊(duì): The Dixie Chicks. 作曲家: Beethoven.

  Tim Bray

  看我的博客吧。

  . . . . . . . . . . . . . . . . . . . . . . . . . . .

  補(bǔ)充說(shuō)明

  我之所以發(fā)現(xiàn)這篇文章,是因?yàn)槲易x到了 Jeff Atwood 的這篇名為 “Linus Torvalds, Visual Basic Fan” 的文章,這篇文章指向了 “STIFF ASKS, GREAT PROGRAMMERS ANSWER” 這篇文章,但是鏈接已壞了,然后,我搜了一下也沒(méi)有搜到這篇文章。然后我去了 archive.org 搜了一下,并找到了這篇由 Jaroslaw Rzeszótko 寫(xiě)的博客。

  因?yàn)檫@篇博文現(xiàn)在找不到了,所以,我想我應(yīng)該重新把它貼出來(lái),這樣其它人可以讀一下這篇有意思的文章。所以,我向原作者取得了授權(quán),再次感謝 Jaroslaw!

it知識(shí)庫(kù)對(duì)九個(gè)超級(jí)程序員的采訪(fǎng),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 马边| 安国市| 白山市| 泽普县| 方正县| 昔阳县| 昆山市| 商丘市| 南陵县| 徐水县| 天镇县| 延津县| 宜兰市| 米易县| 甘谷县| 遵化市| 保康县| 广南县| 小金县| 平江县| 左权县| 巨鹿县| 瑞安市| 和静县| 二连浩特市| 阿拉尔市| 恩施市| 扬州市| 正定县| 湟源县| 两当县| 扎赉特旗| 铜鼓县| 新巴尔虎左旗| 峡江县| 澄江县| 城市| 旌德县| 内丘县| 运城市| 同江市|