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