來源:譯文原文由 flynetcn 翻譯昆雀,伯樂在線補(bǔ)上了 Bjarne Stroustrup 的對(duì)應(yīng)譯文。
http://blog.jobbole.com/27072/
前言:2006 年虐急,波蘭程序員Jaroslaw “sztywny” Rzeszótko (亦稱 Stiff)寫了一篇文章《Stiff asks, great programmers answer》箱残,不過原英文鏈接已掛。Dodgy Coder 的博主近期從 Stiff 那得到允許止吁,把文章轉(zhuǎn)發(fā)布在他的博客中《Q&A With Nine Great Programmers》被辑。以下為全文:
在一個(gè)炎熱無聊的下午, 我突發(fā)奇想敬惦。 我通過公眾可以取得的電子郵件地址列表盼理, 向一干牛人們提了 10 個(gè)問題, 他們都是我認(rèn)為很有趣俄删, 而且很佩服的人宏怔, 都干了很多大事奏路。 我只用了 5 分鐘來準(zhǔn)備這些問題 — 這些問題是我打算私底下如果有機(jī)會(huì)和牛人們說話, 就說談個(gè) 10 分鐘吧臊诊, 就會(huì)問到的鸽粉, 那時(shí)候我也不會(huì)有時(shí)間去想那么多。 最后的兩個(gè)問題其實(shí)跟編程無關(guān)妨猩, 只是我碰到誰(shuí)都會(huì)問他的潜叛, 算是我個(gè)人的愛好好了。 不是人人都想回答這些問題壶硅, 沒有關(guān)系威兜。 這是我第一次”采訪”別人, 難免犯了一些小錯(cuò)庐椒, 當(dāng)別人開始回答問題時(shí)椒舵, 我自己卻跑開了…… 但先別管這個(gè), 我從這些東東里學(xué)到很多東西约谈, 這絕對(duì)是一次價(jià)值非凡的體驗(yàn)笔宿。
不是每個(gè)人都答復(fù)了我的郵件, 也不是所有的人都想回答這些問題的棱诱, 可能以后我還會(huì)收到泼橘, 但我實(shí)在等不及了, 現(xiàn)在發(fā)表的這些可能隨時(shí)都會(huì)更新的哦迈勋。(更新:Bjarne Stroustrup 的回復(fù)內(nèi)容于 03.08.2006 補(bǔ)上 —— Jaroslaw)
明星陣容:
●Linus Torvalds :Linux kernel作者炬灭。
Linus Torvalds
●Dave Thomas:《Pragmatic Programmer | 程序員修煉之道》和《Programming Ruby》和其他優(yōu)秀書籍的作者。 你可以到這里來了解他的編程思想靡菇。
Dave Thomas
●David Heinemeier Hansson:寫了 Rails Framework- 新鮮熱辣的 web 開發(fā)框架重归。他的博客在這里。
David Heinemeier Hansson
●Steve Yegge:可能是最不為人所知的厦凤, 但也是回答得最有趣的一個(gè)鼻吮, 他的博客很有名, 也是關(guān)于編程的较鼓。 他也是游戲 “Wyvern” 的作者椎木。
Steve Yegge
●Peter Norvig:Google 的研究部主管, 著名的 Lisper博烂, 寫過很著名的 (至少在某些圈子里) AI 方面的書拓哺。 他的博客。(伯樂在線注:他的《Teach Yourself Programming in Ten Years》這篇文章非常有名脖母,對(duì)應(yīng)中文譯文我們有翻譯《Peter Norvig:自學(xué)編程士鸥,十年磨一劍》
peter norvig
●Guido Van Rossum:Python發(fā)明者。
Guido Van Rossum
●Bjarne Stroustrup:C++ 之父谆级,個(gè)人主頁(yè)烤礁。
Bjarne Stroustrup
●James Gosling:Java 之父讼积。(個(gè)人博客)
james gosling
●Tim Bray:XML 與 Atom 規(guī)范締造者之一,他的博客脚仔。
Tim Bray
現(xiàn)在上主菜了:
1 您如何學(xué)的編程? 上過什么學(xué)校? 有用嗎? 還是您根本就不鳥學(xué)校的事 :) ?
Steve Yegge:
我自己在一臺(tái) HP 計(jì)算器上開始編程的勤众, 用他們的 RPN 堆棧語(yǔ)言, 當(dāng)時(shí) 17 歲鲤脏。 之前也學(xué)過幾次編程们颜, 但都沒有真正去學(xué)。 HP 的 28c 和 48g 科學(xué)計(jì)算器性能強(qiáng)勁猎醇, 文檔也齊全窥突。 我在 48g 上寫了一個(gè) 3D 線框查看器 — 我有一本 3D 圖形編程的書, Pascal 的硫嘶, 花了好大力氣把書里的例程轉(zhuǎn)成 RPN 堆棧語(yǔ)言阻问。 最后它成功運(yùn)行了, 真是甜蜜的回憶沦疾。 之后我就買了一臺(tái) PC 還有 Turbo Pascal称近, 努力地學(xué)習(xí)編程。 當(dāng)我去大學(xué)讀 CS 時(shí)我已經(jīng)是個(gè)象模象樣的程序員了哮塞。 (注意: CS 不是 Counter-Strike)
后來我去了 University of Washington 并在那里得到 CS 學(xué)位刨秆。 這是絕對(duì)值得努力的, 我建議所有的程序員在條件允許的情況下都要盡力攻讀 CS 學(xué)位忆畅。
Linus Torvalds:
我沒在學(xué)校里學(xué)編程衡未, 大部分是我自己看書然后就動(dòng)手干了起來(一開始在 Commodore VIC-20 上, 后來在 Sinclair QL 上)邻眷。
這么說吧眠屎, 我尤其認(rèn)為大學(xué)是非常有用的剔交。 我沒有選擇上技工學(xué)校肆饶, 而是上了 Helsinki University, 那里偏重理論岖常, 所以那里的教學(xué)并不集中在編程上面(編程只是一小部份驯镊, 總之我算是很”不務(wù)正業(yè)”的), 大部分課程集中在基本概念和諸如復(fù)雜度分析上面竭鞍。
那些東西看起來很悶甚至是在浪費(fèi)精神板惑, 但我認(rèn)為很有用, 我非常喜歡它們偎快。 我認(rèn)為我可能是那方面會(huì)做的更好冯乘。
David Heinemeier Hansson:
我從建立自己的個(gè)人主頁(yè)開始學(xué)習(xí)編程。 后來我又想增加一些動(dòng)態(tài)的內(nèi)容晒夹, 就先學(xué)了 ASP 再后來學(xué)了 PHP裆馒。 當(dāng)我知道怎樣編程以后姊氓, 我就去攻讀一個(gè)計(jì)算機(jī)科學(xué)與工商管理的交叉學(xué)位。
Peter Norvig:
我在高中和大學(xué)里都學(xué)過編程喷好, 但總覺得自己是自學(xué)的多翔横。
Dave Thomas:
讀中學(xué)時(shí)我在當(dāng)?shù)匾婚g專科學(xué)院上過電腦課梗搅。 我整個(gè)兒被迷住了: 我愛上了編程禾唁, 并四處找開設(shè)有軟件課程的學(xué)校。 后來我上了 Imperial College无切, London University 的分部荡短。 當(dāng)時(shí)他們才剛開設(shè)軟件課程第二年, 說起來很難相信: 教職員工和和學(xué)生們一起工作订雾, 把那些東西弄好肢预, 大家從中都獲益匪淺。 在那里讀的本科課程給我打下了強(qiáng)大的軟件開發(fā)基礎(chǔ)洼哎。 我本想呆到博士畢業(yè)烫映, 但還沒等到開始讀博士就被人挖走了。
但是問題的重點(diǎn)是”你怎樣學(xué)的編程?” 真正的答案是”我還在學(xué)編程噩峦《Ч担” 我想優(yōu)秀的開發(fā)者整個(gè)生涯都不斷在學(xué)習(xí)。 這可不僅是學(xué)習(xí)新語(yǔ)言和新庫(kù)的問題: 優(yōu)秀的開發(fā)者經(jīng)年不斷的磨練自己的技術(shù)识补, 提升自己的體驗(yàn)族淮。
Guido Van Rossum:
我上了大學(xué), 那里有一臺(tái)大型主機(jī)凭涂, 很多計(jì)算機(jī)課程祝辣。 這(上學(xué)校)很重要。
James Gosling:
最初我是自學(xué)的切油。 上大學(xué)之前我就得到第一份編程工作了蝙斜。 但我很高興我上了(大學(xué))。 其樂無窮澎胡。 我一直讀到拿到了博士學(xué)位孕荠。
Bjarne Stroustrup
現(xiàn)在?Aarhus ,后去了劍橋大學(xué)攻谁。學(xué)校教給我很多實(shí)用的東西稚伍,包括我未來工作中用到的基礎(chǔ)。此外戚宦,我也從為錢而編程中學(xué)到東東个曙,理解了現(xiàn)實(shí)世界中的問題,正確性受楼、可維護(hù)性垦搬、實(shí)時(shí)交付等等祠挫。
Tim Bray:
我原來想當(dāng)數(shù)學(xué)教師來著。 數(shù)學(xué)教學(xué)大綱里要求學(xué)生研修幾門計(jì)算機(jī)課程悼沿。 (結(jié)果就糊里糊涂成了計(jì)算機(jī)科學(xué)家?)
2 您認(rèn)為程序員最應(yīng)該擁有什么樣的技能?
Steve Yegge:
筆頭和口頭溝通的技能等舔。 除非你事先把自己的意見清楚地傳達(dá)給每一個(gè)人, 否則當(dāng)程序員們開始工作時(shí)糟趾, 你說什么他們都聽不見慌植。 程序員應(yīng)該不倦閱讀, 賦諸文字义郑, 上寫作課蝶柿, 甚至學(xué)會(huì)公開演講。
Linus Torvalds:
是那種我稱之為”品味”的東西非驮。
我向來不以”有多專業(yè)”為標(biāo)準(zhǔn)來評(píng)價(jià)與我共事的人: 有的人很會(huì)寫代碼交汤, 一下就能弄出一大坨, 但他們給別人代碼造成的影響則還要大坨劫笙, 而這顯然是由他們自己的代碼風(fēng)格芙扎, 和他們選擇的解決方法所造成的。 這就能告訴我他們有沒有”品味”填大, 而真相就是戒洼, 沒”品味”的人通常也不太好讓他去判斷別人代碼的好壞, 而他自己的代碼到最后也不會(huì)是十分的好允华。
但是圈浇, 還有。 有一件事非常重要靴寂, 特別是在開源的項(xiàng)目里磷蜀, 那就是溝通好你想干什么, 怎么干的能力百炬。 向別人解釋清楚你為什么非要用某種方式干某些事情的能力十分重要褐隆, 并非人人有這個(gè)能力。
這么說吧收壕, 到最后也會(huì)有人搞出好的代碼來妓灌。 他們可能解釋能力不行轨蛤, 也沒什么品味蜜宪, 但是代碼是可以正常工作的。 這是你往往會(huì)需要另一個(gè)人(一個(gè)”品味”特殊的人)去整理那些代碼祥山, 使它的適用范圍更廣圃验, 而僅僅是寫出干凈的代碼, 解決難題不過是作為程序員必需有的最基本的能力而已缝呕。
David Heinemeier Hansson:
強(qiáng)烈的價(jià)值觀澳窑。 有能力問自己: 我做的事情有價(jià)值嗎? 太多太多的程序員把太多太多的精力浪費(fèi)在無關(guān)痛癢的事情上面斧散。 卻忽略了那些真正重要的事情。
Peter Norvig:
我覺得沒有摊聋, 專注算是吧鸡捐。
Dave Thomas:
激情。
Guido Van Rossum:
你的問題問得太泛麻裁, 無法回答箍镜。 :-) 我想有能力煮個(gè)雞蛋當(dāng)早餐就是無價(jià)。
James Gosling:
會(huì)自我鞭策煎源。 想真正做得好色迂, 你得熱愛你所做的東西。
Bjarne Stroustrup
清晰思考的能力:一個(gè)程序員必須理解問題并表述解決方案手销。
Tim Bray:
以事實(shí)為依據(jù)歇僧, 不跟著感覺走。
3 您覺得數(shù)學(xué)和物理對(duì)程序員重要嗎? 為什么?
Steve Yegge:
數(shù)學(xué)上有一個(gè)分支對(duì)程序員非常重要锋拖, 它叫”離散數(shù)學(xué)”或”具體數(shù)學(xué)”诈悍。 包括概率學(xué), 組合學(xué)兽埃, 圖論写隶, 歸納證明和其它有用的東西。 我會(huì)鼓勵(lì)所有程序員去學(xué)離散數(shù)學(xué)讲仰, 無論他們能學(xué)多少慕趴。 即使一點(diǎn)點(diǎn)也比完全不會(huì)強(qiáng)。
至于傳統(tǒng)數(shù)學(xué)鄙陡, 我倒不常用到冕房, 但當(dāng)我需要用到它就會(huì)很方便。 舉例來說趁矾, 之前我只在工作中用到過一次微積分耙册。 我必需為某個(gè)服務(wù)從象正弦波那樣的曲線圖中計(jì)算出每日交通高峰期負(fù)載。 最簡(jiǎn)單的方法就是求出特定時(shí)間內(nèi) 1/24 曲線的積分毫捣。 如果我不懂微積分详拙, 我就做不出合理正確的估算。
在我寫 Wyvern 游戲的時(shí)候蔓同, 我扎實(shí)的平面幾何知識(shí)作用極大饶辙。 日常基本工作中用得更多的是代數(shù)和線性代數(shù)斑粱。 但是很少用到三角學(xué)和微分方程弃揽, 微積分也很少用。
我會(huì)說我的數(shù)學(xué)基礎(chǔ)帶給我 5% 至 10% 的進(jìn)步。 如果我懂的更多矿微, 毫無疑問我會(huì)變得更好痕慢, 所以每個(gè)星期我都抽出幾個(gè)鐘頭來學(xué)習(xí)數(shù)學(xué)。
我喜歡物理涌矢, 畢生都在探索嘗試掌握量子力學(xué)的基本結(jié)構(gòu)掖举。 但我沒覺得物理對(duì)我作為一個(gè)程序員的工作有任何幫助。 當(dāng)然了娜庇, 如果我在物理領(lǐng)域工作拇泛, 象 3D 游戲編程, 或某種類型的模擬思灌, 那就不同了俺叭。
Linus Torvalds:
我個(gè)人認(rèn)為扎實(shí)的數(shù)學(xué)基礎(chǔ)是好事情。 我不大清楚物理會(huì)如何泰偿, 但我深信懂?dāng)?shù)學(xué)熄守, 有良好的數(shù)學(xué)基礎(chǔ)有助于使你成為更好的程序員。 如果只是因?yàn)樗鼈兊乃季S模式相近似 — 你可以建立起自己想要的法則耗跛, 但它必須和自我一致裕照。
David Heinemeier Hansson:
一點(diǎn)用都沒有。 至少在商業(yè)目的的 web 編程上调塌。 我考慮一個(gè)人的筆頭功夫好會(huì)比這重要的多晋南。
Peter Norvig:
是的, 電腦的很多方面來自數(shù)學(xué): 歸納羔砾, 遞歸负间, 邏輯等。
Dave Thomas:
也許吧姜凄。 但是老實(shí)說政溃, 我沒見到他們之間有多大的關(guān)聯(lián)。
然而态秧, 我的的確確發(fā)現(xiàn)一個(gè)人的音樂才華與他的編程技能有很大的關(guān)聯(lián)董虱。 我也不知道為什么, 我懷疑大腦的某個(gè)區(qū)域在提升你音樂才能的同時(shí)也會(huì)提升你的軟件開發(fā)技巧申鱼。
Guido Van Rossum:
數(shù)學(xué)愤诱, 是的(是一部分; 我不管微分方程, 但是代數(shù)和邏輯就很重要)捐友。 物理嘛淫半, 我認(rèn)為沒有, 但保持對(duì)不同事物的興趣是一件好事楚殿。
James Gosling:
是的! 它們教會(huì)你邏輯和推理撮慨。。脆粥。 砌溺。 擁有火眼金睛。 在分析算法時(shí)數(shù)學(xué)無物可替变隔。
Bjarne Stroustrup
這取決于程序員和編程工作规伐。某些形式的數(shù)學(xué)分類還是非常有用,物理用的少匣缘,但學(xué)習(xí)物理是學(xué)習(xí)實(shí)用數(shù)學(xué)的最佳方法之一猖闪。
Tim Bray:
就我個(gè)人來說, 我?guī)缀鯊臎]用過我大學(xué)學(xué)到的數(shù)學(xué)知識(shí)肌厨。
4 您認(rèn)為計(jì)算機(jī)編程的下一個(gè)熱點(diǎn)是什么? 面向 X 編程培慌, y 語(yǔ)言, 量子計(jì)算機(jī)柑爸, 還是?
Steve Yegge:
我認(rèn)為 web 應(yīng)用正逐漸在變成最重要的客戶端形式吵护。 它將會(huì)逐步淘汰其它的客戶端技術(shù): GTK, Java Swing/SWT表鳍, Qt馅而, 當(dāng)然還有 Cocoa 和 Win32/MFC/等那些依賴平臺(tái)的技術(shù)。
這不會(huì)在一夜之間發(fā)生譬圣。 它會(huì)在今后十年里慢慢地朝那個(gè)方向前進(jìn)瓮恭, 可能到 web 應(yīng)用完全”取得勝利”之前還需要另一個(gè)十年。 工具厘熟, 語(yǔ)言屯蹦, API, 協(xié)議绳姨, 瀏覽器技術(shù)的發(fā)展會(huì)遠(yuǎn)遠(yuǎn)超過今天你所用到的颇玷。 這個(gè)差距每年都在縮小, 而我則決定從現(xiàn)在起把我所有的開發(fā)工作轉(zhuǎn)移到瀏覽器上來就缆。
Microsoft 和 Apple 當(dāng)然不愿意看到這些了帖渠, 所以至關(guān)重要的第一步就是要使一個(gè)象 Firefox 那樣的開源瀏覽器取得統(tǒng)治性的市場(chǎng)份額, 然后還需要一些 Firefox-only 的殺手級(jí)應(yīng)用竭宰。 (殺手級(jí)應(yīng)用會(huì)象 iTunes空郊, 人人都想用它, 會(huì)為了它去下載 Firefox切揭。)
Linus Torvalds:
我不認(rèn)為會(huì)有什么”巨大的飛躍”狞甚。 我們已經(jīng)看到很多可以幫助我們減輕日常工作壓力的工具 — 高階語(yǔ)言或者把簡(jiǎn)單數(shù)據(jù)庫(kù)集成到語(yǔ)言里面可能會(huì)是主要的一個(gè)。 但大部分喋喋不休基本上沒起什么作用廓旬。
舉例來說哼审, 我個(gè)人相信 “Visual Basic” 比”面向?qū)ο笳Z(yǔ)言”作用更大。 雖然人們嘲笑 VB, 說它是爛語(yǔ)言涩盾, 而他們談?wù)?OO 語(yǔ)言談了幾十年十气。
是的, VB 不是很好的語(yǔ)言春霍, 但是我認(rèn)為象 VB 集成的簡(jiǎn)單 DB 接口基本上比面向?qū)ο笾匾枚唷?/p>
所以我想會(huì)有很多逐步的改進(jìn)砸西, 硬件性能的提升也會(huì)有助于編程, 但我不指望有什么東西會(huì)使生產(chǎn)力大幅度提升或者出現(xiàn)什么革命址儒。
至少當(dāng)真正的 AI 出現(xiàn)時(shí)芹枷, 我不認(rèn)為真正的 AI 還需要你去搞什么編程。
David Heinemeier Hansson:
我盡量不去預(yù)言未來莲趣。 也不怎么相信運(yùn)氣鸳慈。 預(yù)見未來的最好方法就是實(shí)現(xiàn)它。
Peter Norvig:
大規(guī)模分布式計(jì)算喧伞。
Dave Thomas:
電腦編程的下一個(gè)熱點(diǎn)會(huì)被下下一個(gè)熱點(diǎn)吞掉蝶涩, 周而復(fù)始。 我對(duì)不停地尋找熱點(diǎn)有點(diǎn)反感絮识, 因?yàn)楫?dāng)這樣會(huì)使人們忘記真正的重點(diǎn): 打好基礎(chǔ)绿聘。 我們必需更好地和我們的客戶交流, 關(guān)注所提供的價(jià)值次舌, 并為此而自豪熄攘。 做到了這些那開發(fā)者就能提供更好的軟件更好的工具, 而不需要去擔(dān)心自己是否跟得上潮流彼念。
Guido Van Rossum:
Sorry挪圾, 我對(duì)水晶球不敏感。 我曾經(jīng)在 CGI 發(fā)明的 5 年后預(yù)言了它逐沙。 :-)
James Gosling:
我最關(guān)心的兩件事是并行復(fù)制和復(fù)雜度哲思。
Bjarne Stroustrup
我不知道,我不喜歡猜測(cè)吩案。
Tim Bray:
不知道棚赔。
5 如果您有三個(gè)月去學(xué)一門新技術(shù), 您會(huì)選什么?
Steve Yegge:
我剛好有 3 個(gè)月時(shí)間(作兼職)徘郭, 我正在學(xué) Dojo (http://dojotoolkit靠益。org ) 和高級(jí) AJAX 和DHTML。 我在做一個(gè)巨 NB 的 web 應(yīng)用残揉, 邊做邊學(xué)胧后。 Dojo 真的很酷, 它也一定會(huì)與時(shí)俱進(jìn)抱环。
Linus Torvalds:
唔壳快,我真的很喜歡 FPGA 的纸巷, 就是一直沒有時(shí)間坐下來好好地學(xué)。 我喜歡直接和硬件對(duì)話的感覺: 這說明我為什么最后選擇了做 OS眶痰, 因?yàn)槟菢?和編譯器呆在一起)和硬件的距離最近瘤旨, 就差你不能親自去設(shè)計(jì)和制造它了。
David Heinemeier Hansson:
Mac 上的 Cocoa 編程凛驮。
Peter Norvig:
我想多學(xué)一點(diǎn) Javascript裆站。 還有 Flash条辟。
Dave Thomas:
如果”新”指的是 Dave Thomas 的新黔夭, 我想去上高強(qiáng)度的鋼琴課。
如果”新”指那些技術(shù)玩意羽嫡, 我會(huì)選擇可幫助殘疾人的相關(guān)技術(shù)本姥。
Guido Van Rossum:
滑雪。
James Gosling:
為了樂趣, 我想學(xué)最新的 3D 渲染技術(shù)。 我可能會(huì)寫一個(gè)照片-地圖渲染器剂买。
Bjarne Stroustrup
在三個(gè)月之內(nèi)爹脾,很重要值得學(xué)習(xí)的東西不多。我認(rèn)為應(yīng)當(dāng)考慮好好完善某個(gè)領(lǐng)域的訓(xùn)練司恳。
Tim Bray:
安全, 加密, 數(shù)字簽名蒋川, 身份驗(yàn)證等。 麻煩的是這些東東我從來沒學(xué)過撩笆。
6 您認(rèn)為是什么使得有的程序員比別人高效 10 倍甚至 100 倍?
Steve Yegge:
我想如果你停下來想一下為什么運(yùn)動(dòng)員不是都一樣好的話捺球, 你就會(huì)知道答案的。 愛迪生關(guān)于天才的那段話也會(huì)給你啟示夕冲。
Linus Torvalds:
我真的不知道氮兵。 我想有些人就是能夠更好地把精力集中在那些有用的事情上, 我想他們天生就是會(huì)這樣歹鱼。 我認(rèn)識(shí)的很多程序員從小就這樣泣栈。
David Heinemeier Hansson:
把難題轉(zhuǎn)化成”易”題的能力。
Peter Norvig:
調(diào)整頭腦去適應(yīng)問題的能力弥姻。
Dave Thomas:
他們關(guān)心自己所做的秩霍。
Guido Van Rossum:
遺傳性頭腦結(jié)構(gòu)差異。
James Gosling:
他們深思熟慮蚁阳。 他們不會(huì)倉(cāng)促行事铃绒, 七拼八湊。 他們對(duì)結(jié)果胸有成竹螺捐。
Bjarne Stroustrup
首先颠悬,缺乏專業(yè)且足夠的訓(xùn)練矮燎,導(dǎo)致基礎(chǔ)太差。第二赔癌,有些人有“智慧”(清晰思考和直達(dá)事物本質(zhì)的能力)诞外、經(jīng)驗(yàn)和工具知識(shí)。編程在這些方面有很大空間灾票,因?yàn)榫幊淌抢碚摵蛯?shí)踐的結(jié)合峡谊,二者都離不開領(lǐng)域知識(shí)。
Tim Bray:
人類思維的多樣性令人驚異刊苍。
7 您最喜愛的工具(操作系統(tǒng)既们, 編程/腳本語(yǔ)言, 編輯器正什, 版本控制系統(tǒng)啥纸, shell, 數(shù)據(jù)庫(kù)引擎婴氮, 其它您賴以生存的工具)以及您喜歡它們的理由?
Steve Yegge:
操作系統(tǒng): Unix! 我用 Linux斯棒, cygwin, 現(xiàn)在也用經(jīng)常用 darwin主经。 它是無法代替的生產(chǎn)工具荣暮。 每個(gè)程序員必須學(xué)會(huì)用 /bin 和 /usr/bin 目錄里的所有工具。
腳本語(yǔ)言: Ruby罩驻。 我精通所有主流腳本語(yǔ)言: Perl穗酥, Python, Tcl鉴腻, Lua迷扇, Awk, Bash爽哎, 還有一些已經(jīng)忘了蜓席。 但我是個(gè)懶人, 而 Ruby 是目前為止最輕松的课锌, 這是天堂里才有的比賽厨内。
編程語(yǔ)言: 沒有我最喜愛的; 它們都不好。 我會(huì)選擇 Java渺贤, 因?yàn)樗鼜?qiáng)壯雏胃, 可移植, 有好工具和庫(kù)志鞍。 但 Java 不進(jìn)化就得死; 照現(xiàn)在的樣子它不足以長(zhǎng)期掌握領(lǐng)導(dǎo)地位瞭亮。
編輯器: Emacs, 因?yàn)楫?dāng)前沒用比它更好的固棚。
版本控制: SVN统翩。 Perforce 更好仙蚜, 但很貴。
Shell: Bash厂汗, 因?yàn)槲覍?shí)在懶得去學(xué)其它的委粉。
數(shù)據(jù)庫(kù)引擎: 當(dāng)然是 MySQL, 沒有更合適的了娶桦。
其它: 我發(fā)現(xiàn) GIMP 無法評(píng)價(jià)贾节, 它的不直觀也令人抓狂。 我用它多年卻總是干不成什么衷畦。 但我又離不開它栗涂, 真是諷刺。
Firefox 是我工具庫(kù)陣容中日益重要的一員霎匈。 當(dāng)不得已去用 IE 或 Safari 時(shí)我會(huì)覺得自己就快死了戴差。
注意這些工具(Unix送爸, Emacs铛嘱, Firefox, GIMP袭厂, MySQL墨吓, Bash, SVN纹磺, Perforce)都有一個(gè)共同點(diǎn): 它們可以擴(kuò)展; 也就是帖烘, 它們都有 API 可以編程。 優(yōu)秀的程序員懂得如何給它們的工具編程橄杨, 而不僅是用它們秘症。
Linus Torvalds:
實(shí)際上我沒用那么多工具, 我花了些時(shí)間寫了我自己的工具式矫。 操作系統(tǒng)這塊最大乡摹, 還有我自己的版本控制系統(tǒng)(Git), 我用的編輯器(micro-emacs)也是經(jīng)過我定制和擴(kuò)展的采转。
除了那三塊聪廉, 我最關(guān)心的是郵件閱讀器。 我一直用 Pine — 不是因?yàn)樗詈茫?而是因?yàn)槲伊?xí)慣了故慈, 它也提供了我所需要的一切而且沒什么毛病板熊。
David Heinemeier Hansson:
OS X, TextMate察绷, Ruby干签, Subversion, MySQL拆撼。 這就是我當(dāng)前的組合容劳。 我喜歡那些漂亮而且專注于自己職責(zé)的那些工具丹泉。
Peter Norvig:
不喜歡全部主流的 OS – Windows, Mac鸭蛙, Linux摹恨。 喜歡 Python, Lisp 和 Emacs娶视。
Dave Thomas:
用了 Linux 10 年晒哄, 幾年前改用 Macs 了。 工具不需要好到特別好肪获, 但不能是需要經(jīng)常去維護(hù)的寝凌, 而必須是能讓人用的。
我不會(huì)永遠(yuǎn)只用一種工具: 我經(jīng)常盡可能地切換不同的工具以獲得更好的體驗(yàn)孝赫。 目前我用的是 OSX较木, Emacs, TextMate青柄, Rails伐债, Ruby, SVN致开, CVS峰锁, Rake, make双戳, xsltproc虹蒋, TeX, MySQL飒货, Postgres魄衅, 還有一大堆小工具。 誰(shuí)知道明年我會(huì)用什么塘辅。
Guido Van Rossum:
Unix/Linux晃虫, Python, vi+emacs莫辨, Firefox傲茄。
James Gosling:
這些天來我住在 NetBeans 里面。 他幫我做了我想要的一切沮榜, 非常清晰直接和有效盘榨。 這是我住過的最舒服的環(huán)境。
Bjarne Stroustrup
Unix蟆融、sam(一個(gè)極簡(jiǎn)的文本編輯器)草巡,當(dāng)然還得有一個(gè)出色的 C++ 編譯器。
Tim Bray:
我喜歡類 Unix 操作系統(tǒng)型酥, 象 Python 和 Ruby 那樣的動(dòng)態(tài)語(yǔ)言跟象 Java 那種靜態(tài)類型語(yǔ)言(特別是 Java 的 API)山憨, Emacs查乒, 隨便, bash郁竟, 隨便玛迄, NetBeans。
8 您最喜愛的電腦編程方面的書是哪一本?
Steve Yegge:
老兄棚亩, 這問題真要命蓖议。 也許是 GEB(《哥德爾、艾舍爾讥蟆、巴赫書:集異璧之大成》) 吧勒虾, 雖然這本書不是嚴(yán)格的編程類書籍。 如果你特指”最喜愛的編程書”瘸彤, 那也許就是 SICP (mitpress修然。mit。edu/* sicp*/) 了质况。
Linus Torvalds:
呃愕宋。 我最近喜歡讀幻想小說, 或非電腦類的書(舊書一本: Richard Dawkins 的 “The Selfish Gene”)
說到編程方面拯杠, 躍然腦海的唯一真正編程書就是 Kernighan 和 Ritchie 經(jīng)典的 “The C Programming Language”掏婶, 因?yàn)樗鼘?shí)在是太有用了啃奴, 而且又薄又耐讀潭陪。 想想你基本能從這本書中學(xué)會(huì)我們這個(gè)時(shí)代最重要的編程語(yǔ)言之一, 而它又是那么薄那么耐讀最蕾, 這不能不說是一個(gè)奇跡依溯。
還有很多我喜愛的書是跟編程本身無關(guān)的, 而是關(guān)于計(jì)算機(jī)結(jié)構(gòu)和硬件方面的瘟则。 這里面當(dāng)然有 Patterson 和 Hennessy 關(guān)于計(jì)算機(jī)結(jié)構(gòu)的書黎炉, 對(duì)我個(gè)人而言可能還應(yīng)該包括 Crawford 和 Gelsinger 的 “Programming the 80386″, 它是我剛開始 Linux 時(shí)的工具書醋拧。
基于相同的原因慷嗜, 我還喜歡 Andrew Tanenbaum 的 “Operating Systems: Design and Implementation”。
David Heinemeier Hansson:
我喜歡 《Extreme Programming Explained | 解析極限編程》丹壕, 因?yàn)樗磦鹘y(tǒng)的思想庆械; 《Patterns of Enterprise Application Architecture》, 因?yàn)樗蚱瞥橄笈c具體之間的平衡菌赖。
Peter Norvig:
《Structure and Interpretation of Computer Programs | 計(jì)算機(jī)程序的構(gòu)造和解釋》
Dave Thomas:
這取決于你如何定義”最喜愛”缭乘。 可能這方面我讀過的最好的書是 IBM 的 “IBM/360 Principles of Operation”。
Guido Van Rossum:
Neil Stephenson 的 “Quicksilver”琉用。
James Gosling:
Jon Bentley 寫的《編程珠璣》堕绩。
Bjarne Stroustrup
K&R 的《C程序設(shè)計(jì)語(yǔ)言》
Tim Bray:
Bentley 的《編程珠璣》
9 您最喜愛的非電腦編程類書籍?
Steve Yegge:
只有一本? 這不可能策幼。 太多了, 太難選奴紧。
這個(gè)月我讀過的好書有 “Stardust” (Neil Gaiman) 和 “The Mind’s I” (Hofstadter/Dennet)特姐。
我最喜愛的作家是 Kurt Vonnegut, Jr黍氮。 和 Jack Vance到逊。
Linus Torvalds:
嗯, 我已經(jīng)提到過 Dawkins 的 “The Selfish Gene”滤钱。 在幻想小說方面觉壶, 我讀過很多, 都很好件缸, 但是很少有稱得上”最喜愛的”铜靶。 我很少再去讀讀過的書, 選擇也會(huì)隨時(shí)間改變他炊。 多數(shù)是科幻類的争剿, 象 Heinlein 的 “Stranger in a Strange Land” 就是我少年時(shí)期最喜愛的, 但現(xiàn)在也漸漸淡忘了……
David Heinemeier Hansson:
“1984″痊末, George Orwell蚕苇。
Guido Van Rossum:
Neil Stephenson 的 “Quicksilver”。
James Gosling:
“Guns凿叠, Germs & Steel”涩笤, Jared Diamond
Bjarne Stroustrup
一直在變化。目前喜歡?O’Brian’s Aubrey/Maturin 系列書
Tim Bray:
Ivan Denisovich 的 “One Day in the Life”
10 您最喜愛的樂隊(duì)/歌手/組合?
Steve Yegge:
最喜愛種類: 古典盒件, 動(dòng)漫音樂蹬碧, 游戲音樂
最喜愛作曲家: Rachmaninoff, Chopin炒刁, Bach
最喜愛歌手/演奏家: David Russell (classical guitar)恩沽, Sviatoslav Richter(piano)
最喜愛動(dòng)漫音樂: Last Exile, Haibane Renmei
Linus Torvalds:
我不常聽音樂翔始, 要是聽的話罗心, 我會(huì)聽老搖滾歌曲, 范圍從 Pink Floyd 到 Beatles 到 Queen 到 The Who城瞎。
David Heinemeier Hansson:
種類很多渤闷。 Beth Orton, Aimee Mann全谤, Jewel肤晓, Lauryn Hill。 其實(shí), 你看看我舉的例子她們都是彈吉他的女孩 ;)补憾。
Guido Van Rossum:
Philip Glass漫萄。
James Gosling:
我比較喜歡民謠歌手: Christine Lavin, Woody Guthrie盈匾, Pete Seeger…
Bjarne Stroustrup
樂隊(duì): The Dixie Chicks腾务;作曲家:貝多芬
Tim Bray:
去看我的博客。
iReader iReader Logo