當前位置:學問君>人在職場>就業指導>

十年學會程序設計[2]

學問君 人氣:7.61K

十年學會程序設計

十年學會程序設計[2]

研究者Hayes,Bloom的研究表明,在幾乎所有的各種領域,大約要十年才能培養出專業技能。這些領域包括下西洋棋、音樂作曲、繪畫、鋼琴、游泳、網球,及神經心理學和數學拓撲學。似乎沒有真正的捷徑--即便是莫扎特在四歲就展露出音樂天才,在他寫出世界級的音樂之前仍然用了超過十三年的時間。

再看另一種類型的領域。披頭士樂團似乎是在1964年的Ed Sullivan劇場表演突然地火起來併成爲第一樂隊的。但其實他們從1957年開始,就在利物浦、漢堡等地的小型俱樂部表演。雖然他們很早就顯現強大的吸引力,但他們決定性的成功作品Sgt Pepper也到1967年才發行。Samuel Johnson則認爲或許還不止十年才行,他說:任何領域的卓越成就都必須用一生的努力才能取得;稍微低一點的代價都是換不到的。Chaucer則感嘆道:“生命如此短促,學習技藝卻要這麼地長”。

以下是我在編程上成功的祕訣:

對編程產生感興趣並因爲樂趣而寫程序。確信你自始至終都能樂在其中,這樣你才願意將十年光陰投入編程事業。與其他程序員交流;閱讀別人的代碼。這比任何書任何培訓都重要。

不斷地編寫。最好的學習方法是在實踐中學習。從技術角度說,“在特定領域的個人最高效率並不因爲經驗夠多就會自動獲得;但若有意識的`透過努力去提升經驗,個人效率會變高”而“高效的學習一般需要明確的任務和因人而異的適當難度,以及及時的反饋和重複或者修正錯誤的機會”。

如果你願意,你可以去讀四年大學(或再讀研究生)。這可以讓你滿足一些工作的學歷要求,同時也可讓你對這個領域有更深的認識。但如你不喜歡上學,你也能(得有犧牲)透過工作獲得類似的經驗。無論如何,只讀書是不夠的。《New Hacker's Dictionary》的作者Eric Raymond 曾經說過:“計算機的教育無法讓人成爲編程的專家,正如研究畫筆與顏料不能讓人成爲專業畫家一樣。”一個在我所有招聘過的人中屬於最優秀之一的程序員只有高中畢業,但他寫出很多很棒的程序,他甚至有自己的新聞組。他獲得的股票期權使得他可以擁有自己的午夜酒吧。

跟其他程序員一起完成項目。在一些項目中成爲最好的程序員;在一些中則充當最差的一個。當你是最佳的,你要測試自己領導項目的能力,並以你的能力鼓勵他人。當你是最差的,要看看高手做些什麼,他們不喜歡做什麼(因爲他們會叫你去幫他們做)。

接手別的程序員完成項目。全心投入並理解別人的程序。當原作者不在的時候,看看在理解與修改時有什麼要注意的。想想如何設計你的程序使得後來維護的人容易上手。

至少學會六門編程語言。一種要支援類/對象(class abstractions)的語言,如Java或C++;一種函數式(functional abstraction)語言,如LISP或ML;一種支援語法抽象(syntactic abstraction)的語言如LISP;一種聲明式語言,如Prolog或 C++模版;一種支援協同式(coroutines)編程,如Icon或Scheme; 還有一種支援並行(parallelism)的語言,如Sisal。

 

TAGS:程序設計