新聞中心
這件事仿佛發(fā)生在昨天一樣令我印象深刻。那是2000年,帕爾加斯博士站在我們的數(shù)據(jù)結(jié)構(gòu)課教室的前方,講解著一些y型數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,同時(shí)把一個(gè)SSH 的窗口投影在我們前面的墻上。有人提出了一個(gè)問題,隨后他用下面的話回答道:“如果你想成為一個(gè)真正的計(jì)算機(jī)科學(xué)家,你就得開始用 Vi 。”我感覺他在說這些話的時(shí)候還在微微笑著,而事后發(fā)現(xiàn)他說的這個(gè)觀點(diǎn)根本不對(duì)。 但是由于年輕并且易受影響,當(dāng)時(shí)的我回到宿舍后立刻了開始了自學(xué)如何使用 Vi 。我度過了很長(zhǎng)一段艱苦的時(shí)間,但是當(dāng)我開始變得對(duì)其熟悉的時(shí)候,我意識(shí)到我用 Vi 會(huì)干的非???。

專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)謝家集免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
(譯者注:SSH 為 Secure Shell的簡(jiǎn)稱;Vi 是 linux 環(huán)境下的文本編輯器。)
六年之后的我愛上了TextMate。我當(dāng)時(shí)的工作是Java開發(fā),而在那同時(shí)我也在閑暇時(shí)間學(xué)習(xí) Rails 并制作 Rails 項(xiàng)目。我感覺我看過的所有文章和視頻都在講述如何使用 TextMate 來完成文本編輯的苦行。其實(shí),每天使用Eclipse 使我像書呆子一樣脾氣暴躁。于是我買了臺(tái)Mac,并且十分鐘之內(nèi)就購買并安裝上了 TextMate.
(譯者注:TextMate是一款文本編輯軟件,Eclipse是一個(gè)著名的集成開發(fā)環(huán)境。)
老實(shí)說,我并沒有因哪款文本編輯器而成為一個(gè)更優(yōu)秀的程序員。
特別好用的工具并不能讓你變得突飛猛進(jìn)。你所使用的那些工具的確很重要,或者說,它們其實(shí)非常好用。然而老虎伍茲就算用一套爛球桿也會(huì)打敗我們所有人,梅 西就算不穿球鞋都能勝過我們,拉斐爾·納達(dá)爾也許用一把六十年代的老式木質(zhì)球拍就能在網(wǎng)球場(chǎng)上擊敗我們中的任何一個(gè)人。見鬼,估計(jì)他用一個(gè)乒乓球拍就能打敗我。你所積累的那些技術(shù),知識(shí)和經(jīng)驗(yàn)才是最重要的部分。
工具并不能使你變成一個(gè)程序員。那什么可以呢?我認(rèn)為,成為一個(gè)優(yōu)秀的程序員在很多方面取決于:你做什么工作,你和什么人一起工作。然而我發(fā)現(xiàn),在軟件開發(fā)領(lǐng)域取得很大成功的人身上都有些共有的特質(zhì),是值得我們分享的。我不確定這些是你需要去特地學(xué)習(xí)的技巧亦或是你與生俱來的能力,但我非常確定的是,我若在這些方面多花些心思,少花些功夫更換文本編輯器,那么我一定比現(xiàn)在的職位更高。
(補(bǔ)充:關(guān)于編程工具,羅布·沃林(Rob Walling)在《成為更優(yōu)秀的開發(fā)人員》中的觀點(diǎn)是:從長(zhǎng)遠(yuǎn)看,程序員必須使用可以最大地提高工作效率并且不會(huì)影響到其他的組員的工具。)
- [[58446]]
1. People First 以人為本
我所認(rèn)識(shí)的最好的程序員們會(huì)把人放在第一位。他們已經(jīng)意識(shí)到就算他們編寫的軟件,其實(shí)只是個(gè)復(fù)雜系統(tǒng)的后臺(tái)或是只有開發(fā)者會(huì)使用的協(xié)議,它還是給人們使用的。他們?yōu)檐浖帉懳臋n,因?yàn)檫@很重要,他們?yōu)閯e人重用他們的代碼伸出援手。他們?cè)敢馊プ鲱~外的工作,并且處理更復(fù)雜的問題,只為了給使用他們軟件的人們一 個(gè)最好的解決方案。
2. Appetite for Learning 求知若渴
那些出類拔萃的程序員們都對(duì)知識(shí)如饑似渴。他們總是告訴你一些前沿的或有趣的東西。他們讀著成百上千的書(既有在線讀物也有離線讀物),而且他們似乎總是樂于親手嘗試,也樂于在經(jīng)驗(yàn)中汲取知識(shí)。他們不懼怕嘗試新語言或者新平臺(tái)。
3. Skillful at Problem Pattern Matching 擅長(zhǎng)匹配問題
當(dāng)你寫了一陣軟件程序后,你開始發(fā)現(xiàn)問題的存在。那些問題和你曾解決過的問題看起來相似得讓人頭痛。認(rèn)識(shí)到這件事情并把原來的解決方案應(yīng)用到當(dāng)前狀況,這種能力是非常重要的。如果你能每次改進(jìn)你的解決方案那就更好了。
注意,就算如此,你也不應(yīng)該盲目的說什么“因?yàn)橛眠@個(gè)舊方案解決過老問題,所以它肯定可以用來解決新問題”。 這個(gè)部分才是應(yīng)用“問題模式匹配”的技巧所在。你必須擁有一雙可以甄別應(yīng)用舊方案是否可行的慧眼。
4. A Little Bit Insane 少許瘋狂
我的兄弟在高中四年級(jí)上了Python課程,當(dāng)我問起他喜不喜歡這個(gè)課的時(shí)候,他表示我想當(dāng)程序員這個(gè)主意真是瘋了,那個(gè)課是他上過的最無聊的課程之一。在某些程度上,我同意他的觀點(diǎn)。我和計(jì)算機(jī)交流的時(shí)間比和人交談的時(shí)間更多。我能把一行行基本上稱之為胡言亂語的東西變成可以運(yùn)行的軟件,這一事實(shí)令我大吃一驚。并不是所有的人都熱愛這些東西,但是那些我所認(rèn)識(shí)的最好的程序員們絕對(duì)是熱愛制作軟件的。
- [[58447]]
5. Persistentence 堅(jiān)持不懈
軟件開發(fā)總是比所有人想象的都要慢。它很花時(shí)間。有時(shí)候你只能足夠耐心的去做出你需要寫的代碼。有時(shí),作為開發(fā)者,我們想去寫一些很有趣的代碼,但是有時(shí)我們也會(huì)因?yàn)橐デ么蚰切┮呀?jīng)寫了上百遍的代碼而厭煩。我相信那些最棒的開發(fā)者們能堅(jiān)持下來,是因?yàn)樗麄兛梢钥吹揭环麄冋诟傻氖虑榈暮陥D,并且他們喜歡為最終結(jié)果而添磚加瓦的過程。
以上這些特點(diǎn)是我認(rèn)為一個(gè)真正優(yōu)秀的程序員所應(yīng)該具備的,這當(dāng)然不盡完善,所以我也樂于了解你們的意見。你覺得要怎樣才成為一個(gè)卓越的程序員呢?
英文:Alan Johnson
網(wǎng)頁題目:是什么成就了卓越的程序員?
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/djspeed.html


咨詢
建站咨詢
