發表文章 | 發起投票 |
(對文字無興趣不用入黎)對九個超級程式設計師的採訪
對九個超級程式設計師的採訪[/size=4][/b]
![](http://static.inside.com.tw/wp-content/uploads/2014/01/origin_240755676.jpg)
photo credit: Omer van Kloeten
本文轉自酷 壳 – CoolShell.cn,Inside (http://coolshell.cn/articles/8275.html)獲作者陳皓授權轉載。原文為 2006 年波蘭程式設計師 Jaroslaw "sztywny" Rzeszótko 透過電子郵件的方式訪談了九位名聲顯赫的程式設計師,包括 Python 發明者 Guido Van Rossum、37 Signal 共同創辦人 David Heinemeier Hansson 等等,相當值得一讀。
原文:《Q&A With Nine Great Programmers》http://www.dodgycoder.net/2012/09/q-with-nine-great-programmers.html時間有限,我只能粗譯,難免錯誤。
這篇訪談源自 2006 年,最先發佈在波蘭程式設計師 Jaroslaw "sztywny" Rzeszótko(AKA "Stiff")的部落格上。但是這篇文章現在找不到了。非常感謝他能授權我重新發表這篇文章。
在一個炎熱無聊的下午,我突發奇想。我想通過電子郵件的方式對那些我非常感興趣和非常敬重的程式設計師問 10 個問題。準備這 10 個問題我只花了 5 分鐘,這些都是我個人想問他們的問題,所以,我基本上沒想太多要問他們什麼。最後兩個問題和程式沒有什麼關係,我就是想問題這些人的一些興趣愛好。另外,不是每一個人都想回答我的,這是我第一次做「訪談」,所以,我犯了一些錯誤,一些問題沒有得到回答。不管怎麼樣,我得到了很多很有意思的內容,所以,這對我絕對是一次很有意義的經歷。
並不是每一個人都回了我的郵件,也並不是每一個人都同意回答我的這些問題,也許在我發表這篇文章後我會得到那些回答,但是我已經迫不及待想把這些東西發表了,所以,我可能會更新這篇文章(更新:2006 年 3 月 8 日,我收到了 Bjarne Stroustrup 的回信)
– Jaroslaw
介紹
Linus Torvalds - Linux kernel 作者。
Dave Thomas – 《Pragmatic Programmer》(注:douban )和《Programming Ruby》(注:douban)以及其它一些優秀書籍的作者。你可以在 這裡 讀讀他對程式設計的一些想法。
David Heinemeier Hansson – Rails Framework 作者,一個目前最新最熱的 Web 開發框架。他的 blog在 這裡 . (陳皓注:他也是 37signals 的領導人之一)
Steve Yegge –他可能並不那麼知名,但是他給了很多有意思的回答。他有一個很知名的關於程式的 blog,他也是遊戲「Wyvern」的作者。(陳皓注:他最廣為人知的是去年在 Google+上對 Google 和 Amazon 的吐槽,06 年他應該在 Google 了)
Peter Norvig – Research Director at Googl,知名的 Lisper,AI 書的著名作家,個人主頁。
Guido Van Rossum – Python 發明者。
Bjarne Stroustrup – C++發明者, 個人主頁。
James Gosling – Java 發明者。
Tim Bray – XML和Atom規格說明書作者之一 個人部落格 。
Q 1: 你是怎麼學寫程式的?是從學校裡學的嗎?或者你沒有上過學
?
Steve Yegge
在我 17 歲的時候,我在 HP 的運算器中用他們的 RPN 堆疊語言自學程式的。在這之前,我嘗試過學習程式一兩次,但都沒有學成。HP 28c 和 48g 的科學計算器是一個很棒的東西,而且還有不錯的文件。我搞了一本 3D 圖形的書,並很費力地把其中的 Pascal 語言轉成 RPN 堆疊語言,並用 48g 寫了一個 3D 的線框圖渲染圖。運行的還不錯,在我買了 PC 和 Turbo Pascal 之後,我開始認真地學習程式。在我進入大學電腦科學專業之前,我已經是一個不錯的程式設計師了。
我在華盛頓大學拿到了電腦科學學位,這絕對是有價值的,所以,我建議所有的程式設計師都應該得到電腦科學專業的學位。
Linus Torvalds
我沒有在學校裡學過程式,我在主要是讀我自己想讀的書,或是就直接去寫程式(一開始在 Commodore VIC-20 學程式,然後是Sinclair QL 上寫程式)。
當然,我覺得上大學非常有用。我沒有去一個工科大學,我上了赫爾辛基大學,這是一個比較偏理論的大學,所以,那裡的教育並沒有那麼多的程式的東西(程式只是很少一部分),這裡大多數的課程都傾向於教一些基礎概念的東西,如:複雜性分析。看上去很無聊,甚至有點浪費時間,但是我還是覺得這些課有用,我還是樂於上大多數課程。所以,我覺得我可能在這些方面是一個比較好的程式設計師。
David Heinemeier Hansson
我學程式是從用 HTML 做我的第一個網頁開始的。那時,我想當我的網頁能動態地顯示一些內容,所以,我選擇了 ASP 和 PHP。在做完這個網頁後,我知道了怎麼去寫程式,於是我開始我的電腦科學和商業管理學位的學習。
Peter Norvig
我是從高中和大學課程中學程式的,但是我還是覺得我自己學得更多。
Dave Thomas
我是在高中學程式的。我完全地迷住了,我對程式愛得無法自拔,然後,我開始挑選那些提供軟體開發課程的大學。最終,我去了倫敦大學的帝國學院。第二年我就開始學習軟體開發的課程了,那絕對是非凡的,學生和教員在一起工作把教材做得更好,每一個人都可以從中學到很多。這些課程給了我難以置信和非常雄厚的軟體開發背景。我在那裡讀到了博士,最後去創業了。
關於「我是怎麼學程式的」這個問題,我的回答是「我現在還在學程式」。我認為好的程式設計師一生都在學程式。這並不是去學一門語言或是一個程式庫,好的程式設計師會對他們的程式技藝一年又一年地精益求精。
Guido Van Rossum
我去的那個大學有一個大型主機和很多不同的電腦課程。這對我很重要。
James Gosling
起初,我是自學的。在我去上大學之前,我就找到了一份程式設計師的工作。但是我很高興我去了大學,在那裡有很多樂趣,最終我學到了博士。
Bjarne Stroustrup
我先上的是 Aarhus大學, 然後是劍橋大學(Cambridge),這兩個大學教了我很多很有用的東西,這些東西為了以後的工作打下了基礎。另外,我對程式和錢的關係學得非常好——知道了真實世界的問題,正確性,維護性,準時交付,等等,這些比教育可能更重要。
Tim Bray
我本來想去做一個數學老師的。但是,那個學數學的大學要我去學幾個電腦的課。
Q2: 你們覺得對程式設計師最重要的事是什麼?
Steve Yegge
溝通能力(寫和說)。除非你可以讓你的想法更有效率地傳遞出去,否則你不可能做得比程式更多的事。程式設計師應該瘋狂地閱讀,鍛煉寫作能力,參加一些寫作培訓課程,甚至鍛煉在公開場合演講的能力。
Linus Torvalds
It's a thing I call "taste". 有一件事,我把它叫做「品味」。
我傾向於不從熟練程度來評判那些和我工作過的人。這些人能非常艱苦地寫出很多程式,但是我想從他們對別人的程式的反應做出評判,這樣我們就可以明白他們自己寫的程式怎麼樣,知道他們使用的方法怎麼樣。他們對別人的評判還告訴我,他們是不是有好的「品味」。是這樣的,如果一個人沒有「好的品味」,那麼他一般不會很好的評判他人的程式,他自己寫的程式通常也不會很好。
哦,這並不只是唯一的事。還有一件事,尤其在開源專案裡,那是他是否有能力能和別人進行簡單的溝通,告訴別人他要幹什麼,怎麼幹。這個能力可以告訴別人為什麼你幹的事是非常重要的,並不是所有的人都有這個能力。
也就是說,有一些人可以寫出很不錯的程式,但他們並不一定能解釋這些程式,他們也並不一定有好的品味,但是程式可以運行得不錯。有時,你需要另一個人(有那種不錯的品味的人)把他的程式轉成更好的形式。也就是說,任何一個程式設計師都需要那種可以用清晰的程式來解決複雜問題的基礎能力。
David Heinemeier Hansson
很強的對有價值的事的感覺。你可以問問自己這個問題你有沒有這種能力:我現在做的這個事值不值得做?很多程式設計師浪費了如大海一樣的時間去做一些無意義的事。
Peter Norvig
我不覺得只有一個,如果要我說一個的話,我說是「專注」。
Dave Thomas
熱情。
Guido Van Rossum
你的問題很難回答啊:-) 我猜,如果程式設計師會在早晨煎個雞蛋做早餐,那真是無價的能力。
James Gosling
自我激發。你需要全身心地投入到你要做的事中。
Bjarne Stroustrup
把事想清楚的能力:程式必需要能清楚地理解問題並能清楚地表述解決方案。
Tim Bray
能為自己的直覺提供證據的能力。
Q 3: 你是否認為數學和/或物理是一種很重要的程式技能?為什麼?
Steve Yegge
數學有很多的分支和程式設計師相關,他們是「離散數學」和「具體數學」。這些分支包括的學科有,概率論,組合數學,圖論,歸納證明,和其它有用的東西。我會鼓勵所有的程式設計師都去學習離散數學,無論能學多少,因為這總比什麼都不懂強。
對於傳統的數學,我也不經常用,但是我需要的時候這些數學知識會很管用。例如,在我之前的工作中我就用到了微積分。我需要估計每個小時中某服務的高峰時間的流量負載,所以,他的負載是跟著太陽走的就像一個正弦曲線一樣。最簡單的方式就是把每個小時的負載曲線給整合起來。如果我不知道微積分,我就不知道怎麼更為準確地估計。
當年我在開發我的 Wyvern 遊戲的時候,我的平面幾何的知識對我非常有幫助。而且經常使用代數和線性代數的知識。但我很少在工作中使用三角學或微分方程,微積分同樣也很少。
我想說,簡單的數學基礎讓我的技能比一般程式設計師好過 5% 到 10%。如果我了解更多的數學,我確信我會比今天做得更好,所以,我每週都會花幾個小時學習數學。
我喜歡物理,我還在學習物理,我會花我一生去理解量子力學。但是我個卻沒有發現物理對我的程式設計師工作有多有用。當然,如果我從事一些和物理相關的工作,可能會有用,例如:3D 遊戲程式,或是某種物理特性仿真。
Linus Torvalds
我個人認為有很強的數學背景是一件好事。但我不確信物理是不是這樣的,但是我深信懂數學的人會讓你成為一個更好的程式設計師。這些智力模型都是相通的。
David Heinemeier Hansson
根本沒用。至少對業務程式和 Web 應用來說沒用。但是數學可能對一個人的寫作有很重要的幫助。
Peter Norvig
是的。很多相法都是從數學來的:歸納、遞歸、邏輯等等。
Dave Thomas
也許吧。但老實說,我沒見到過懂這些學科和好的程式設計師有很大的相關性。
然而,我見過有音樂背景和好的程式技能有很強的相關性。我不知道這為什麼,但是我懷疑大腦中的某個區域可以讓人即可以寫出好的音樂,也可以寫出好的程式。(陳皓注:@Sir阿怪貌似就是這個例子)
Guido Van Rossum
數學,當然(對於一些學科是很重要的,我不關心微分方程,但是代數和邏輯學是很重要的),物理,我不覺得對程式技能有關,當然物理在其它很多地方很有意思。
James Gosling
當然!數學教會了我邏輯和推導……讓我有了一雙懂分析的眼睛。當我們分析算法的時候,數學是無法被取代的。
Bjarne Stroustrup
這要看程式設計師自己和專案性質了。以前的數學很有用,物理一般,但是學好物理是是學習應用數學最好的一條路。
Tim Bray
對我來說,在我的程式生涯中我從來都沒有用過大學裡教的數學。
Q4: 關於程式,你們認為接下來的大事是什麼?X-Oriented程式、Y語言、量子電腦?
Steve Yegge
我認為 Web 程式會逐漸變成最最重要的客戶端程式。而對於原來傳統的客端端程式都會被廢棄,如: GTK、Java Swing/SWT、Qt,當然,所有的和平台有關的東西,例如 Cocoa 和 Win32/MFC/ 等。
當然,這不會一晚上就發生了。這會在第一個十年內緩慢地發生,而在第二個十年內,Web Apps 最終會勝利。工具、語言、協議,和瀏覽器技術都會進步得非常快,並會完全超出你今天能幹的事。每一年都會向前進一步,而從今天開始,我會最終決定把我所有的應用開發全部切換到基於瀏覽器的應用。(陳皓注:我也是這麼認為的,參看《來信,創業,移動互聯網》)
微軟和蘋果最終不願意這個事發生,所以,觸發這個事的第一步會是一個開源的瀏覽器(如:Firefox)開始到了支配市場的地位,然後會出現某種Firefox的殺手級應用(這種殺手級應用可能會像iTunes一樣,所有的人都會用它,只需要下載Firefox)
Linus Torvalds
我並不認為我們會看到一個「大的跳躍」。我們只會看到很多的工作幫助我們把那些沉悶辛苦的工作變得更簡單——會有一個更高級別的語言,也許把簡單的數據庫集成到語言中來會是其中最主要一個。
例如,我個人相信「Visual Basic」在程式方面比「物件導向」做得更多。當然,人們都在取笑 VB 是一個很爛的程式語言,並且人們在談論 OO 語言都十多年了。但我還覺得不是這樣的,Visual Basic 不是一個好的語言,但是我覺得 VB 那簡單的資料庫接口比 OO 更重要。
所以,我認為會語言有很多的改進,並且,硬體的改進會讓程式更容易,但我並不期望會有巨大的生產力或是革命性的改進。
至少,你不會開始搞真正的 AI 的東西,我也不認為真的 AI 會變成某種你不需要程式的東西。
David Heinemeier Hansson
我從不試圖預測未來。我也不相信命運一說。最好預測未來的方式就是去實現未來。
Peter Norvig
大規模的分佈式處理
Dave Thomas
下一個最強大的事會被再下一個最強大的事所掩蓋,然後再被再再下一個所掩蓋,再再再下一個所掩蓋……。這是一件沒完沒了的事,所以,我並不會試圖去找最強大的事,因為這會讓人們忘了那些最真實的問題:把基本的東西做對。我們要讓用戶更滿意,專注於交付有價值的東西,自豪於我們做的事。一個程式設計師可以使用很多工具把這些事做得更好,而不是去追逐時尚和流行。
Guido Van Rossum
對不起,我沒有那麼多水晶球。我CGI被發明了5年後預測過它:-)
James Gosling
有兩個事是我現在最關心的,那就是要對付並行和復雜。
Bjarne Stroustrup
我不知道,我也不願猜。
Tim Bray
不知道。
Q 5: 如果你有3個月學一個相對較新的技術,你會學什麼?
Steve Yegge
我的確有 3 個月的業餘時間,我準備學一下 Dojo和高級 AJAX 及 DHTML。我會開發一個相當厲害的 Web 應用來學習他們。Dojo 真的酷,並且我確信它會越來越好。
Linus Torvalds
嗯,我真的很愛做 FPGA(現場可程式邏輯門陣列),但我實在太忙了,沒辦法好好坐下來好好學習。我喜愛和硬體打交道:很明顯這是我最終做作業系統的其中一個原因,因為作業系統(除了編譯器)基本上都是在和硬體打交道,但我沒有真正地自己去設計和做硬體。
David Heinemeier Hansson
Mac 的 Cocoa 程式
Peter Norvig
我想把 Javascript 學得更好,然也當然也想學 Flash.
Dave Thomas
如果「新」是對於我來說,那麼我會去學鋼琴課。
如果「新」是說技術,我猜我會選擇學習某種和為身障者服務的有關的技術。
Guido Van Rossum
單板滑雪。
James Gosling
搞點有樂趣的東西,我會學習最新的 3D 渲染技術。我可能會寫一個光子映射渲染器。
Bjarne Stroustrup
3 個月只有很少的東西你可以學,我覺得你只能參加某個成熟領域的培訓。
Tim Bray
安全,加密,數位簽名,身份標識,等等。對我來說,從沒學過這些東西對我來說是個很大的問題。
Q 6: 你們覺得如何讓一些程式設計師可能有超過其它程式設計師 10 倍或 100 倍的生產力?
Steve Yegge
我想你應該考慮一下為什麼不是讓所有的程式設計師都一樣傑出。托馬斯愛迪生有一句關於天才的名言也許會給你一些啟示。
Linus Torvalds
我真的不知道,我想,一些人之所以更優異是因為他們可以專注於那些重要的事,而更多的只不過是在應付。那些我所知道的真的很牛的程式設計師從很年輕的時候就在做事了。
David Heinemeier Hansson
把難題變簡單的能力。
Peter Norvig
把整體問題一次性放入大腦的能力。
Dave Thomas
他們關心他們做的事。
Guido Van Rossum
大腦結構基因不同。
James Gosling
他們知道他們要做什麼,他們不並不急於倉促行事。他們有他們要做的事的整個藍圖。
Bjarne Stroustrup
首先,缺少足夠的職業培訓,或基礎不夠。其次,這些人要即聰明(那種可以把事情想清楚,直達核心的能力),又有經驗,並有使用工具的知識。程式需要把理論和實踐結合起來– 並不是使用沒有實際業務的知識。
Tim Bray
令人驚訝的思維改變。
Q 7: 什麼工具是你的最愛(作業系統、程式/腳本語言、程式編輯器、版本管理、shell、資料庫,或其它沒它你活不了的工具),為什麼不是別的?
Steve Yegge
作業系統: Unix! 我用 Linux、cygwin 和 darwin。你無法打敗那些高效的工具。每一個程式設計師都應該學習使用 /bin 和 /usr/bin 下的所有命令。
腳本語言:Ruby。我幾乎對所有的重要的腳本語言都很熟悉: Perl、Python、Tcl、Lua、Awk、Bash 和一些我忘了的。但是我太懶了,而 Ruby 是目前所有腳本語言中最簡單的,它應該是天堂製造的。
程式語言:沒有一個我喜歡的,我覺得所有的程式語言都很扯。我傾向於 Java,因為它很強,可跨平台,有多不錯的工具和類庫。但是 Java 未來會進化或是滅亡,Java 還沒有好到可以永遠保持其領先地位。
文本編輯器:Emacs,因為這是迄今最好的編輯器。
版本管理:SVN,Perforce 更好一些,但是也很貴。
Shell 腳本: Bash,因為我太懶了去學一個更好的。
數據庫: 當然是MySQL,沒有之一。
其它:我發現 GIMP 是無價的,但也是令人惱火的。我用這個東西好幾年了,但什麼也沒幹,但是我沒它活不了。很諷刺吧。Firefox 越來越是我最重要的工具。如果讓我去用 IE 和 Safari,我會有嚴重的窒息感。
注:所有的這些工具(Unix、Emacs、Firefox、GIMP、MySQL、Bash、SVN、Perforce) 都有一個共同點:他們是可擴充的。例如:他們都有可編纂程式的 API。偉大的程式設計師知道怎麼編寫他們的工具,而不只是去使用。
Linus Torvalds
實際上,我最終也沒有用過幾個工具,而我卻花了一些時間讓這些工具為我工作。最大的事是我自己寫了個作業系統,我也自己寫了個版本管理系統(git),我用的文本編輯器是 micro-emacs – 最終我也為自己量身定做並擴展了它。
除了上面三個,其它的東西,我深度關心我的郵件閱讀軟體,我使用「pine」,並不是因為它是史上最好的郵件閱讀軟體,因為我習慣了,用它我不會再大驚小怪。
David Heinemeier Hansson
OS X、TextMate、Ruby、Subversion、MySQL。這些組合讓我很快樂。我希望那些有好的品味的專注於重要的事的工具。
Peter Norvig
我不喜歡那三大作業系統——Windows, Mac, Linux。我喜歡 Python 和 Lisp、Emacs。
Dave Thomas
在使用 Linux 十年後我轉到 Mac 平台有兩年多了。Mac 並不見得有多好,但是它不需要很厲害的技術,也不需要經常維護,這讓我可以讓我更專心得使用它。
我並不是一個單一工具的信仰者,我喜歡換來換去的,這樣可以讓我有更多的經歷。現在,我使用OSX、Emacs、TextMate、Rails、Ruby、SVN、CVS、Rake、make、xsltproc、TeX、MySQL、Postgres,還有一堆高效能的小工具。沒人知道我明年會用什麼。
Guido Van Rossum
Unix/Linux、Python、vi+emacs、Firefox。
James Gosling
這些天,我在用 NetBeans. 用它可以幹我想幹的所有的事,清潔,簡單和高效。這是最好的我永遠要生活在其中的環境了。
Bjarne Stroustrup
Unix、sam (一個非常簡單的文本編輯器),當然,一個好的 C++ 編譯器。
Tim Bray
我喜歡 Unix-like 的作業系統,像 Python 和 Ruby 的動態語言,像 Java 的靜態語言(具體說來是 Java API) Emacs,還有 bash, whatever, NetBeans。
Q 8: 你最喜歡的程式書籍是什麼?
Steve Yegge
大哥,這個問題太難了。也許是《Gödel, Escher, Bach: an Eternal Golden Braid》(作者 Hofstadter)?雖然這不是嚴格意義上的程式書籍,如果你要明確意義上的程式書,那麼可能是 SICP (mitpress.mit.edu)。
Linus Torvalds
嗨。這兩天我在讀一些小說,或是非電腦讀物(老的但是有用的《The Selfish Gene》 作者 Richard Dawkins)。
如果要問我程式的書,我腦子裡只出現了唯一一本真正的經典的程式的書 Kernighan & Ritchie 的《The C Programming Language》,因為這本書太棒了,可讀性強並且很短。考慮一下你想學到這世上一門最重要程式語言,並且它很要很薄,而且還有可讀性,這真是一個奇蹟。
也就是說,其它我很喜歡的書並不是程式的,而是關於電腦結構和硬體的。那顯然是 Patterson & Hennessy 的電腦結構的書,但是我個人也許更喜歡 Crawford & Gelsinger 的《Programming the 80386》,這是我在開始寫 Linux 時用的書。
相似的原因,我還喜歡 Andrew Tanenbaum 的《Operating Systems: Design and Implementation》。
David Heinemeier Hansson
我喜歡 Extreme Programming Explained,摒棄了一般的程式實踐,我還喜歡 Patterns of Enterprise Application Architecture 出眾地說明了抽象和具現的平衡。
Peter Norvig
Structure and Interpretation of Computer Programs
Dave Thomas
這關係到你所謂的「最喜歡」,也許我最喜歡的是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
Q 9: 你最喜歡的和程式無關的一本書是什麼?
Steve Yegge
只能是一本嗎?這不可能。有太多太多我喜歡的書了。
我這個月讀過最喜歡的書是《Stardust》 (Neil Gaiman) 和《The Mind's I》 (Hofstadter/Dennet).
我最喜歡的作者是 Kurt Vonnegut, Jr. 和 Jack Vance.
Linus Torvalds
我在前面說過 Dawkins 的 Selfish Gene。在小說方面,有很多很多令我沉醉的的,但是幾乎沒有我特別喜歡的一本。我一般不會重讀一本書,我的選擇總是會變。我可能更喜歡科幻小說,如:《Stranger in a Strange Land》作者 Heinlein,這是我青少年時期最喜歡的書,但現在並不是我喜歡的了。
David Heinemeier Hansson
1984,George Orwell。
Guido Van Rossum
Neil Stephenson 的 Quicksilver。
James Gosling
Guns, Germs & Steel 作者 Jared Diamond。
Bjarne Stroustrup
我沒有固定喜歡的書。目前是 O'Brian 的 Aubrey/Maturin 系列。
Tim Bray
One Day in the Life of Ivan Denisovich
Q 10: 你最喜歡的樂隊/演奏家/作曲家?
Steve Yegge
喜歡的風格:古典音樂,動漫原聲音樂,電腦遊戲音樂
喜歡的作曲家:Rachmaninoff、Chopin、Bach
喜歡的演奏者:David Russell (古典吉它)、Sviatoslav Richter (鋼琴)
喜歡的動漫音樂: Last Exile, Haibane Renmei
Linus Torvalds
實際上我並不太喜歡音樂,但是當我聽音樂的時候,我一般聽經典搖滾樂,如: Pink Floyd、Beatles、Queen 和 The Who 樂隊。
David Heinemeier Hansson
我喜歡很多風格。Beth Orton、Aimee Mann、Jewel、Lauryn Hill。事實上這些可以歸到「彈著吉他的女孩」(Girls with Guitars);)。
Guido Van Rossum
Philip Glass。
James Gosling
我喜歡聽民歌:Christine Lavin、Woody Guthrie、Pete Seeger⋯⋯
Bjarne Stroustrup
樂隊:The Dixie Chicks,作曲家:Beethoven。
Tim Bray
看我的部落格吧。
補充說明
我之所以發現這篇文章,是因為我讀到了 Jeff Atwood 的這篇名為〈Linus Torvalds, Visual Basic Fan〉的文章,這篇文章指向了〈STIFF ASKS, GREAT PROGRAMMERS ANSWER〉這篇文章,但是連結已壞了,然後,我搜了一下也沒有搜到這篇文章。然後我去了 archive.org 搜了一下,並找到了這篇由 Jaroslaw Rzeszótko 寫的部落格。
因為這篇部落格文章現在找不到了,所以,我想我應該重新把它貼出來,這樣其它人可以讀一下這篇有意思的文章。所以,我向原作者取得了授權,再次感謝 Jaroslaw!
(全文完)
資料來源:http://www.inside.com.tw/2014/01/09/qa-with-nine-great-programmers
![](http://static.inside.com.tw/wp-content/uploads/2014/01/origin_240755676.jpg)
photo credit: Omer van Kloeten
本文轉自酷 壳 – CoolShell.cn,Inside (http://coolshell.cn/articles/8275.html)獲作者陳皓授權轉載。原文為 2006 年波蘭程式設計師 Jaroslaw "sztywny" Rzeszótko 透過電子郵件的方式訪談了九位名聲顯赫的程式設計師,包括 Python 發明者 Guido Van Rossum、37 Signal 共同創辦人 David Heinemeier Hansson 等等,相當值得一讀。
原文:《Q&A With Nine Great Programmers》http://www.dodgycoder.net/2012/09/q-with-nine-great-programmers.html時間有限,我只能粗譯,難免錯誤。
這篇訪談源自 2006 年,最先發佈在波蘭程式設計師 Jaroslaw "sztywny" Rzeszótko(AKA "Stiff")的部落格上。但是這篇文章現在找不到了。非常感謝他能授權我重新發表這篇文章。
在一個炎熱無聊的下午,我突發奇想。我想通過電子郵件的方式對那些我非常感興趣和非常敬重的程式設計師問 10 個問題。準備這 10 個問題我只花了 5 分鐘,這些都是我個人想問他們的問題,所以,我基本上沒想太多要問他們什麼。最後兩個問題和程式沒有什麼關係,我就是想問題這些人的一些興趣愛好。另外,不是每一個人都想回答我的,這是我第一次做「訪談」,所以,我犯了一些錯誤,一些問題沒有得到回答。不管怎麼樣,我得到了很多很有意思的內容,所以,這對我絕對是一次很有意義的經歷。
並不是每一個人都回了我的郵件,也並不是每一個人都同意回答我的這些問題,也許在我發表這篇文章後我會得到那些回答,但是我已經迫不及待想把這些東西發表了,所以,我可能會更新這篇文章(更新:2006 年 3 月 8 日,我收到了 Bjarne Stroustrup 的回信)
– Jaroslaw
介紹
Linus Torvalds - Linux kernel 作者。
Dave Thomas – 《Pragmatic Programmer》(注:douban )和《Programming Ruby》(注:douban)以及其它一些優秀書籍的作者。你可以在 這裡 讀讀他對程式設計的一些想法。
David Heinemeier Hansson – Rails Framework 作者,一個目前最新最熱的 Web 開發框架。他的 blog在 這裡 . (陳皓注:他也是 37signals 的領導人之一)
Steve Yegge –他可能並不那麼知名,但是他給了很多有意思的回答。他有一個很知名的關於程式的 blog,他也是遊戲「Wyvern」的作者。(陳皓注:他最廣為人知的是去年在 Google+上對 Google 和 Amazon 的吐槽,06 年他應該在 Google 了)
Peter Norvig – Research Director at Googl,知名的 Lisper,AI 書的著名作家,個人主頁。
Guido Van Rossum – Python 發明者。
Bjarne Stroustrup – C++發明者, 個人主頁。
James Gosling – Java 發明者。
Tim Bray – XML和Atom規格說明書作者之一 個人部落格 。
Q 1: 你是怎麼學寫程式的?是從學校裡學的嗎?或者你沒有上過學
![undefined](/assets/emoji/gif/hkg/smile.gif)
Steve Yegge
在我 17 歲的時候,我在 HP 的運算器中用他們的 RPN 堆疊語言自學程式的。在這之前,我嘗試過學習程式一兩次,但都沒有學成。HP 28c 和 48g 的科學計算器是一個很棒的東西,而且還有不錯的文件。我搞了一本 3D 圖形的書,並很費力地把其中的 Pascal 語言轉成 RPN 堆疊語言,並用 48g 寫了一個 3D 的線框圖渲染圖。運行的還不錯,在我買了 PC 和 Turbo Pascal 之後,我開始認真地學習程式。在我進入大學電腦科學專業之前,我已經是一個不錯的程式設計師了。
我在華盛頓大學拿到了電腦科學學位,這絕對是有價值的,所以,我建議所有的程式設計師都應該得到電腦科學專業的學位。
Linus Torvalds
我沒有在學校裡學過程式,我在主要是讀我自己想讀的書,或是就直接去寫程式(一開始在 Commodore VIC-20 學程式,然後是Sinclair QL 上寫程式)。
當然,我覺得上大學非常有用。我沒有去一個工科大學,我上了赫爾辛基大學,這是一個比較偏理論的大學,所以,那裡的教育並沒有那麼多的程式的東西(程式只是很少一部分),這裡大多數的課程都傾向於教一些基礎概念的東西,如:複雜性分析。看上去很無聊,甚至有點浪費時間,但是我還是覺得這些課有用,我還是樂於上大多數課程。所以,我覺得我可能在這些方面是一個比較好的程式設計師。
David Heinemeier Hansson
我學程式是從用 HTML 做我的第一個網頁開始的。那時,我想當我的網頁能動態地顯示一些內容,所以,我選擇了 ASP 和 PHP。在做完這個網頁後,我知道了怎麼去寫程式,於是我開始我的電腦科學和商業管理學位的學習。
Peter Norvig
我是從高中和大學課程中學程式的,但是我還是覺得我自己學得更多。
Dave Thomas
我是在高中學程式的。我完全地迷住了,我對程式愛得無法自拔,然後,我開始挑選那些提供軟體開發課程的大學。最終,我去了倫敦大學的帝國學院。第二年我就開始學習軟體開發的課程了,那絕對是非凡的,學生和教員在一起工作把教材做得更好,每一個人都可以從中學到很多。這些課程給了我難以置信和非常雄厚的軟體開發背景。我在那裡讀到了博士,最後去創業了。
關於「我是怎麼學程式的」這個問題,我的回答是「我現在還在學程式」。我認為好的程式設計師一生都在學程式。這並不是去學一門語言或是一個程式庫,好的程式設計師會對他們的程式技藝一年又一年地精益求精。
Guido Van Rossum
我去的那個大學有一個大型主機和很多不同的電腦課程。這對我很重要。
James Gosling
起初,我是自學的。在我去上大學之前,我就找到了一份程式設計師的工作。但是我很高興我去了大學,在那裡有很多樂趣,最終我學到了博士。
Bjarne Stroustrup
我先上的是 Aarhus大學, 然後是劍橋大學(Cambridge),這兩個大學教了我很多很有用的東西,這些東西為了以後的工作打下了基礎。另外,我對程式和錢的關係學得非常好——知道了真實世界的問題,正確性,維護性,準時交付,等等,這些比教育可能更重要。
Tim Bray
我本來想去做一個數學老師的。但是,那個學數學的大學要我去學幾個電腦的課。
Q2: 你們覺得對程式設計師最重要的事是什麼?
Steve Yegge
溝通能力(寫和說)。除非你可以讓你的想法更有效率地傳遞出去,否則你不可能做得比程式更多的事。程式設計師應該瘋狂地閱讀,鍛煉寫作能力,參加一些寫作培訓課程,甚至鍛煉在公開場合演講的能力。
Linus Torvalds
It's a thing I call "taste". 有一件事,我把它叫做「品味」。
我傾向於不從熟練程度來評判那些和我工作過的人。這些人能非常艱苦地寫出很多程式,但是我想從他們對別人的程式的反應做出評判,這樣我們就可以明白他們自己寫的程式怎麼樣,知道他們使用的方法怎麼樣。他們對別人的評判還告訴我,他們是不是有好的「品味」。是這樣的,如果一個人沒有「好的品味」,那麼他一般不會很好的評判他人的程式,他自己寫的程式通常也不會很好。
哦,這並不只是唯一的事。還有一件事,尤其在開源專案裡,那是他是否有能力能和別人進行簡單的溝通,告訴別人他要幹什麼,怎麼幹。這個能力可以告訴別人為什麼你幹的事是非常重要的,並不是所有的人都有這個能力。
也就是說,有一些人可以寫出很不錯的程式,但他們並不一定能解釋這些程式,他們也並不一定有好的品味,但是程式可以運行得不錯。有時,你需要另一個人(有那種不錯的品味的人)把他的程式轉成更好的形式。也就是說,任何一個程式設計師都需要那種可以用清晰的程式來解決複雜問題的基礎能力。
David Heinemeier Hansson
很強的對有價值的事的感覺。你可以問問自己這個問題你有沒有這種能力:我現在做的這個事值不值得做?很多程式設計師浪費了如大海一樣的時間去做一些無意義的事。
Peter Norvig
我不覺得只有一個,如果要我說一個的話,我說是「專注」。
Dave Thomas
熱情。
Guido Van Rossum
你的問題很難回答啊:-) 我猜,如果程式設計師會在早晨煎個雞蛋做早餐,那真是無價的能力。
James Gosling
自我激發。你需要全身心地投入到你要做的事中。
Bjarne Stroustrup
把事想清楚的能力:程式必需要能清楚地理解問題並能清楚地表述解決方案。
Tim Bray
能為自己的直覺提供證據的能力。
Q 3: 你是否認為數學和/或物理是一種很重要的程式技能?為什麼?
Steve Yegge
數學有很多的分支和程式設計師相關,他們是「離散數學」和「具體數學」。這些分支包括的學科有,概率論,組合數學,圖論,歸納證明,和其它有用的東西。我會鼓勵所有的程式設計師都去學習離散數學,無論能學多少,因為這總比什麼都不懂強。
對於傳統的數學,我也不經常用,但是我需要的時候這些數學知識會很管用。例如,在我之前的工作中我就用到了微積分。我需要估計每個小時中某服務的高峰時間的流量負載,所以,他的負載是跟著太陽走的就像一個正弦曲線一樣。最簡單的方式就是把每個小時的負載曲線給整合起來。如果我不知道微積分,我就不知道怎麼更為準確地估計。
當年我在開發我的 Wyvern 遊戲的時候,我的平面幾何的知識對我非常有幫助。而且經常使用代數和線性代數的知識。但我很少在工作中使用三角學或微分方程,微積分同樣也很少。
我想說,簡單的數學基礎讓我的技能比一般程式設計師好過 5% 到 10%。如果我了解更多的數學,我確信我會比今天做得更好,所以,我每週都會花幾個小時學習數學。
我喜歡物理,我還在學習物理,我會花我一生去理解量子力學。但是我個卻沒有發現物理對我的程式設計師工作有多有用。當然,如果我從事一些和物理相關的工作,可能會有用,例如:3D 遊戲程式,或是某種物理特性仿真。
Linus Torvalds
我個人認為有很強的數學背景是一件好事。但我不確信物理是不是這樣的,但是我深信懂數學的人會讓你成為一個更好的程式設計師。這些智力模型都是相通的。
David Heinemeier Hansson
根本沒用。至少對業務程式和 Web 應用來說沒用。但是數學可能對一個人的寫作有很重要的幫助。
Peter Norvig
是的。很多相法都是從數學來的:歸納、遞歸、邏輯等等。
Dave Thomas
也許吧。但老實說,我沒見到過懂這些學科和好的程式設計師有很大的相關性。
然而,我見過有音樂背景和好的程式技能有很強的相關性。我不知道這為什麼,但是我懷疑大腦中的某個區域可以讓人即可以寫出好的音樂,也可以寫出好的程式。(陳皓注:@Sir阿怪貌似就是這個例子)
Guido Van Rossum
數學,當然(對於一些學科是很重要的,我不關心微分方程,但是代數和邏輯學是很重要的),物理,我不覺得對程式技能有關,當然物理在其它很多地方很有意思。
James Gosling
當然!數學教會了我邏輯和推導……讓我有了一雙懂分析的眼睛。當我們分析算法的時候,數學是無法被取代的。
Bjarne Stroustrup
這要看程式設計師自己和專案性質了。以前的數學很有用,物理一般,但是學好物理是是學習應用數學最好的一條路。
Tim Bray
對我來說,在我的程式生涯中我從來都沒有用過大學裡教的數學。
Q4: 關於程式,你們認為接下來的大事是什麼?X-Oriented程式、Y語言、量子電腦?
Steve Yegge
我認為 Web 程式會逐漸變成最最重要的客戶端程式。而對於原來傳統的客端端程式都會被廢棄,如: GTK、Java Swing/SWT、Qt,當然,所有的和平台有關的東西,例如 Cocoa 和 Win32/MFC/ 等。
當然,這不會一晚上就發生了。這會在第一個十年內緩慢地發生,而在第二個十年內,Web Apps 最終會勝利。工具、語言、協議,和瀏覽器技術都會進步得非常快,並會完全超出你今天能幹的事。每一年都會向前進一步,而從今天開始,我會最終決定把我所有的應用開發全部切換到基於瀏覽器的應用。(陳皓注:我也是這麼認為的,參看《來信,創業,移動互聯網》)
微軟和蘋果最終不願意這個事發生,所以,觸發這個事的第一步會是一個開源的瀏覽器(如:Firefox)開始到了支配市場的地位,然後會出現某種Firefox的殺手級應用(這種殺手級應用可能會像iTunes一樣,所有的人都會用它,只需要下載Firefox)
Linus Torvalds
我並不認為我們會看到一個「大的跳躍」。我們只會看到很多的工作幫助我們把那些沉悶辛苦的工作變得更簡單——會有一個更高級別的語言,也許把簡單的數據庫集成到語言中來會是其中最主要一個。
例如,我個人相信「Visual Basic」在程式方面比「物件導向」做得更多。當然,人們都在取笑 VB 是一個很爛的程式語言,並且人們在談論 OO 語言都十多年了。但我還覺得不是這樣的,Visual Basic 不是一個好的語言,但是我覺得 VB 那簡單的資料庫接口比 OO 更重要。
所以,我認為會語言有很多的改進,並且,硬體的改進會讓程式更容易,但我並不期望會有巨大的生產力或是革命性的改進。
至少,你不會開始搞真正的 AI 的東西,我也不認為真的 AI 會變成某種你不需要程式的東西。
David Heinemeier Hansson
我從不試圖預測未來。我也不相信命運一說。最好預測未來的方式就是去實現未來。
Peter Norvig
大規模的分佈式處理
Dave Thomas
下一個最強大的事會被再下一個最強大的事所掩蓋,然後再被再再下一個所掩蓋,再再再下一個所掩蓋……。這是一件沒完沒了的事,所以,我並不會試圖去找最強大的事,因為這會讓人們忘了那些最真實的問題:把基本的東西做對。我們要讓用戶更滿意,專注於交付有價值的東西,自豪於我們做的事。一個程式設計師可以使用很多工具把這些事做得更好,而不是去追逐時尚和流行。
Guido Van Rossum
對不起,我沒有那麼多水晶球。我CGI被發明了5年後預測過它:-)
James Gosling
有兩個事是我現在最關心的,那就是要對付並行和復雜。
Bjarne Stroustrup
我不知道,我也不願猜。
Tim Bray
不知道。
Q 5: 如果你有3個月學一個相對較新的技術,你會學什麼?
Steve Yegge
我的確有 3 個月的業餘時間,我準備學一下 Dojo和高級 AJAX 及 DHTML。我會開發一個相當厲害的 Web 應用來學習他們。Dojo 真的酷,並且我確信它會越來越好。
Linus Torvalds
嗯,我真的很愛做 FPGA(現場可程式邏輯門陣列),但我實在太忙了,沒辦法好好坐下來好好學習。我喜愛和硬體打交道:很明顯這是我最終做作業系統的其中一個原因,因為作業系統(除了編譯器)基本上都是在和硬體打交道,但我沒有真正地自己去設計和做硬體。
David Heinemeier Hansson
Mac 的 Cocoa 程式
Peter Norvig
我想把 Javascript 學得更好,然也當然也想學 Flash.
Dave Thomas
如果「新」是對於我來說,那麼我會去學鋼琴課。
如果「新」是說技術,我猜我會選擇學習某種和為身障者服務的有關的技術。
Guido Van Rossum
單板滑雪。
James Gosling
搞點有樂趣的東西,我會學習最新的 3D 渲染技術。我可能會寫一個光子映射渲染器。
Bjarne Stroustrup
3 個月只有很少的東西你可以學,我覺得你只能參加某個成熟領域的培訓。
Tim Bray
安全,加密,數位簽名,身份標識,等等。對我來說,從沒學過這些東西對我來說是個很大的問題。
Q 6: 你們覺得如何讓一些程式設計師可能有超過其它程式設計師 10 倍或 100 倍的生產力?
Steve Yegge
我想你應該考慮一下為什麼不是讓所有的程式設計師都一樣傑出。托馬斯愛迪生有一句關於天才的名言也許會給你一些啟示。
Linus Torvalds
我真的不知道,我想,一些人之所以更優異是因為他們可以專注於那些重要的事,而更多的只不過是在應付。那些我所知道的真的很牛的程式設計師從很年輕的時候就在做事了。
David Heinemeier Hansson
把難題變簡單的能力。
Peter Norvig
把整體問題一次性放入大腦的能力。
Dave Thomas
他們關心他們做的事。
Guido Van Rossum
大腦結構基因不同。
James Gosling
他們知道他們要做什麼,他們不並不急於倉促行事。他們有他們要做的事的整個藍圖。
Bjarne Stroustrup
首先,缺少足夠的職業培訓,或基礎不夠。其次,這些人要即聰明(那種可以把事情想清楚,直達核心的能力),又有經驗,並有使用工具的知識。程式需要把理論和實踐結合起來– 並不是使用沒有實際業務的知識。
Tim Bray
令人驚訝的思維改變。
Q 7: 什麼工具是你的最愛(作業系統、程式/腳本語言、程式編輯器、版本管理、shell、資料庫,或其它沒它你活不了的工具),為什麼不是別的?
Steve Yegge
作業系統: Unix! 我用 Linux、cygwin 和 darwin。你無法打敗那些高效的工具。每一個程式設計師都應該學習使用 /bin 和 /usr/bin 下的所有命令。
腳本語言:Ruby。我幾乎對所有的重要的腳本語言都很熟悉: Perl、Python、Tcl、Lua、Awk、Bash 和一些我忘了的。但是我太懶了,而 Ruby 是目前所有腳本語言中最簡單的,它應該是天堂製造的。
程式語言:沒有一個我喜歡的,我覺得所有的程式語言都很扯。我傾向於 Java,因為它很強,可跨平台,有多不錯的工具和類庫。但是 Java 未來會進化或是滅亡,Java 還沒有好到可以永遠保持其領先地位。
文本編輯器:Emacs,因為這是迄今最好的編輯器。
版本管理:SVN,Perforce 更好一些,但是也很貴。
Shell 腳本: Bash,因為我太懶了去學一個更好的。
數據庫: 當然是MySQL,沒有之一。
其它:我發現 GIMP 是無價的,但也是令人惱火的。我用這個東西好幾年了,但什麼也沒幹,但是我沒它活不了。很諷刺吧。Firefox 越來越是我最重要的工具。如果讓我去用 IE 和 Safari,我會有嚴重的窒息感。
注:所有的這些工具(Unix、Emacs、Firefox、GIMP、MySQL、Bash、SVN、Perforce) 都有一個共同點:他們是可擴充的。例如:他們都有可編纂程式的 API。偉大的程式設計師知道怎麼編寫他們的工具,而不只是去使用。
Linus Torvalds
實際上,我最終也沒有用過幾個工具,而我卻花了一些時間讓這些工具為我工作。最大的事是我自己寫了個作業系統,我也自己寫了個版本管理系統(git),我用的文本編輯器是 micro-emacs – 最終我也為自己量身定做並擴展了它。
除了上面三個,其它的東西,我深度關心我的郵件閱讀軟體,我使用「pine」,並不是因為它是史上最好的郵件閱讀軟體,因為我習慣了,用它我不會再大驚小怪。
David Heinemeier Hansson
OS X、TextMate、Ruby、Subversion、MySQL。這些組合讓我很快樂。我希望那些有好的品味的專注於重要的事的工具。
Peter Norvig
我不喜歡那三大作業系統——Windows, Mac, Linux。我喜歡 Python 和 Lisp、Emacs。
Dave Thomas
在使用 Linux 十年後我轉到 Mac 平台有兩年多了。Mac 並不見得有多好,但是它不需要很厲害的技術,也不需要經常維護,這讓我可以讓我更專心得使用它。
我並不是一個單一工具的信仰者,我喜歡換來換去的,這樣可以讓我有更多的經歷。現在,我使用OSX、Emacs、TextMate、Rails、Ruby、SVN、CVS、Rake、make、xsltproc、TeX、MySQL、Postgres,還有一堆高效能的小工具。沒人知道我明年會用什麼。
Guido Van Rossum
Unix/Linux、Python、vi+emacs、Firefox。
James Gosling
這些天,我在用 NetBeans. 用它可以幹我想幹的所有的事,清潔,簡單和高效。這是最好的我永遠要生活在其中的環境了。
Bjarne Stroustrup
Unix、sam (一個非常簡單的文本編輯器),當然,一個好的 C++ 編譯器。
Tim Bray
我喜歡 Unix-like 的作業系統,像 Python 和 Ruby 的動態語言,像 Java 的靜態語言(具體說來是 Java API) Emacs,還有 bash, whatever, NetBeans。
Q 8: 你最喜歡的程式書籍是什麼?
Steve Yegge
大哥,這個問題太難了。也許是《Gödel, Escher, Bach: an Eternal Golden Braid》(作者 Hofstadter)?雖然這不是嚴格意義上的程式書籍,如果你要明確意義上的程式書,那麼可能是 SICP (mitpress.mit.edu)。
Linus Torvalds
嗨。這兩天我在讀一些小說,或是非電腦讀物(老的但是有用的《The Selfish Gene》 作者 Richard Dawkins)。
如果要問我程式的書,我腦子裡只出現了唯一一本真正的經典的程式的書 Kernighan & Ritchie 的《The C Programming Language》,因為這本書太棒了,可讀性強並且很短。考慮一下你想學到這世上一門最重要程式語言,並且它很要很薄,而且還有可讀性,這真是一個奇蹟。
也就是說,其它我很喜歡的書並不是程式的,而是關於電腦結構和硬體的。那顯然是 Patterson & Hennessy 的電腦結構的書,但是我個人也許更喜歡 Crawford & Gelsinger 的《Programming the 80386》,這是我在開始寫 Linux 時用的書。
相似的原因,我還喜歡 Andrew Tanenbaum 的《Operating Systems: Design and Implementation》。
David Heinemeier Hansson
我喜歡 Extreme Programming Explained,摒棄了一般的程式實踐,我還喜歡 Patterns of Enterprise Application Architecture 出眾地說明了抽象和具現的平衡。
Peter Norvig
Structure and Interpretation of Computer Programs
Dave Thomas
這關係到你所謂的「最喜歡」,也許我最喜歡的是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
Q 9: 你最喜歡的和程式無關的一本書是什麼?
Steve Yegge
只能是一本嗎?這不可能。有太多太多我喜歡的書了。
我這個月讀過最喜歡的書是《Stardust》 (Neil Gaiman) 和《The Mind's I》 (Hofstadter/Dennet).
我最喜歡的作者是 Kurt Vonnegut, Jr. 和 Jack Vance.
Linus Torvalds
我在前面說過 Dawkins 的 Selfish Gene。在小說方面,有很多很多令我沉醉的的,但是幾乎沒有我特別喜歡的一本。我一般不會重讀一本書,我的選擇總是會變。我可能更喜歡科幻小說,如:《Stranger in a Strange Land》作者 Heinlein,這是我青少年時期最喜歡的書,但現在並不是我喜歡的了。
David Heinemeier Hansson
1984,George Orwell。
Guido Van Rossum
Neil Stephenson 的 Quicksilver。
James Gosling
Guns, Germs & Steel 作者 Jared Diamond。
Bjarne Stroustrup
我沒有固定喜歡的書。目前是 O'Brian 的 Aubrey/Maturin 系列。
Tim Bray
One Day in the Life of Ivan Denisovich
Q 10: 你最喜歡的樂隊/演奏家/作曲家?
Steve Yegge
喜歡的風格:古典音樂,動漫原聲音樂,電腦遊戲音樂
喜歡的作曲家:Rachmaninoff、Chopin、Bach
喜歡的演奏者:David Russell (古典吉它)、Sviatoslav Richter (鋼琴)
喜歡的動漫音樂: Last Exile, Haibane Renmei
Linus Torvalds
實際上我並不太喜歡音樂,但是當我聽音樂的時候,我一般聽經典搖滾樂,如: Pink Floyd、Beatles、Queen 和 The Who 樂隊。
David Heinemeier Hansson
我喜歡很多風格。Beth Orton、Aimee Mann、Jewel、Lauryn Hill。事實上這些可以歸到「彈著吉他的女孩」(Girls with Guitars);)。
Guido Van Rossum
Philip Glass。
James Gosling
我喜歡聽民歌:Christine Lavin、Woody Guthrie、Pete Seeger⋯⋯
Bjarne Stroustrup
樂隊:The Dixie Chicks,作曲家:Beethoven。
Tim Bray
看我的部落格吧。
補充說明
我之所以發現這篇文章,是因為我讀到了 Jeff Atwood 的這篇名為〈Linus Torvalds, Visual Basic Fan〉的文章,這篇文章指向了〈STIFF ASKS, GREAT PROGRAMMERS ANSWER〉這篇文章,但是連結已壞了,然後,我搜了一下也沒有搜到這篇文章。然後我去了 archive.org 搜了一下,並找到了這篇由 Jaroslaw Rzeszótko 寫的部落格。
因為這篇部落格文章現在找不到了,所以,我想我應該重新把它貼出來,這樣其它人可以讀一下這篇有意思的文章。所以,我向原作者取得了授權,再次感謝 Jaroslaw!
(全文完)
資料來源:http://www.inside.com.tw/2014/01/09/qa-with-nine-great-programmers
本貼文共有 0 個回覆
此貼文已鎖,將不接受回覆
發表文章 | 發起投票 |