十年學會程序設計[2]
十年學會程序設計
研究者Hayes,Bloom的研究表明,在幾乎所有的各種領(lǐng)域,大約要十年才能培養(yǎng)出專業(yè)技能。這些領(lǐng)域包括下西洋棋、音樂作曲、繪畫、鋼琴、游泳、網(wǎng)球,及神經(jīng)心理學和數(shù)學拓撲學。似乎沒有真正的捷徑--即便是莫扎特在四歲就展露出音樂天才,在他寫出世界級的音樂之前仍然用了超過十三年的時間。
再看另一種類型的領(lǐng)域。披頭士樂團似乎是在1964年的Ed Sullivan劇場表演突然地火起來并成為第一樂隊的。但其實他們從1957年開始,就在利物浦、漢堡等地的小型俱樂部表演。雖然他們很早就顯現(xiàn)強大的吸引力,但他們決定性的成功作品Sgt Pepper也到1967年才發(fā)行。Samuel Johnson則認為或許還不止十年才行,他說:任何領(lǐng)域的卓越成就都必須用一生的努力才能取得;稍微低一點的代價都是換不到的。Chaucer則感嘆道:“生命如此短促,學習技藝卻要這么地長”。
以下是我在編程上成功的秘訣:
對編程產(chǎn)生感興趣并因為樂趣而寫程序。確信你自始至終都能樂在其中,這樣你才愿意將十年光陰投入編程事業(yè)。與其他程序員交流;閱讀別人的代碼。這比任何書任何培訓都重要。
不斷地編寫。最好的學習方法是在實踐中學習。從技術(shù)角度說,“在特定領(lǐng)域的個人最高效率并不因為經(jīng)驗夠多就會自動獲得;但若有意識的`通過努力去提升經(jīng)驗,個人效率會變高”而“高效的學習一般需要明確的任務和因人而異的適當難度,以及及時的反饋和重復或者修正錯誤的機會”。
如果你愿意,你可以去讀四年大學(或再讀研究生)。這可以讓你滿足一些工作的學歷要求,同時也可讓你對這個領(lǐng)域有更深的認識。但如你不喜歡上學,你也能(得有犧牲)通過工作獲得類似的經(jīng)驗。無論如何,只讀書是不夠的!禢ew Hacker's Dictionary》的作者Eric Raymond 曾經(jīng)說過:“計算機的教育無法讓人成為編程的專家,正如研究畫筆與顏料不能讓人成為專業(yè)畫家一樣。”一個在我所有招聘過的人中屬于最優(yōu)秀之一的程序員只有高中畢業(yè),但他寫出很多很棒的程序,他甚至有自己的新聞組。他獲得的股票期權(quán)使得他可以擁有自己的午夜酒吧。
跟其他程序員一起完成項目。在一些項目中成為最好的程序員;在一些中則充當最差的一個。當你是最佳的,你要測試自己領(lǐng)導項目的能力,并以你的能力鼓勵他人。當你是最差的,要看看高手做些什么,他們不喜歡做什么(因為他們會叫你去幫他們做)。
接手別的程序員完成項目。全心投入并理解別人的程序。當原作者不在的時候,看看在理解與修改時有什么要注意的。想想如何設計你的程序使得后來維護的人容易上手。
至少學會六門編程語言。一種要支持類/對象(class abstractions)的語言,如Java或C++;一種函數(shù)式(functional abstraction)語言,如LISP或ML;一種支持語法抽象(syntactic abstraction)的語言如LISP;一種聲明式語言,如Prolog或 C++模版;一種支持協(xié)同式(coroutines)編程,如Icon或Scheme; 還有一種支持并行(parallelism)的語言,如Sisal。
【十年學會程序設計[2]】相關(guān)文章:
windowsnt環(huán)境下fddi網(wǎng)卡驅(qū)動程序設計(2)10-06
javascript程序設計11-10
jQuery程序設計11-12
Windows 中斷程序設計11-11
程序設計求職簡歷封面08-22
網(wǎng)頁程序設計就業(yè)方向09-21
C語言程序設計考試大綱08-21
數(shù)據(jù)庫程序設計介紹08-14