1. 與別的程序員交流。讀別人的代碼。這比任何書籍或培訓課程都更重要。
2. 動手寫程序!最好的學習方法就是邊做邊學。
3. 在本科或研究生的課程中學習編程課程。
4. 找一些項目來做,並且需要與其他程序員形成團隊來合作。在項目的進行過程中,學會辨別最出色的程序員以及最糟糕的程序員。
5. 在項目中跟隨別的程序員一起工作,瞭解如何維護那些不是你寫的代碼,並且學習如何寫出利於他人維護的代碼。
6. 學習多種不同的編程語言,特別是那些與你現在所熟悉的語言有着不同的世界觀和編程模型的。
7. 瞭解硬件對軟件的影響。知道你的電腦執行一條指令需要多少時間,從內存中取出一個字(在有緩存或沒緩存的情況下)需要多少時間,在以太網(或者因特網)上傳輸數據需要多少時間,從磁盤中讀取連續的數據或者在磁盤上跳轉到另一個位置需要多少時間,等等。
你還可以從Dave Thomas的21種實用的編碼套路中獲取靈感(CodeKata.com),或者你更願意加入一個你家當地的“編程武館”(CodingDojo.org)。
對於“努力的學習”,我無法像Steve,Peter或者Dave那樣提供一個長長的建議列表。我遠不如他們有耐心。實際上,在我看來,“編程套路”只需兩個招式:
1. 寫博客。我在2004年初創辦了CodingHorror.com博客,作爲我自己努力學習的一種形式。它在一開始很不起眼,到後來成爲我職業生涯中做過的最重要的一件事。所以,你也應該寫博客。最後“聞達於天下”的人,往往就是那些能夠有效書寫和溝通的人。他們的聲音最響亮,是他們在制定遊戲規則,並且引領世界的潮流。
2. 積極參與著名的開源項目。所有的高談闊論聽起來都很好,但是,你是一個大話王還是一名實幹家呢?別光說不練,這個非常重要,因爲人們會用你的行動來衡量你,而不是你的言論。努力在公衆面前留下些實實在在有用的東西吧,到時候你就可以說,“我在那個項目中出過力。”
當你能編寫精彩的代碼、並且能用精彩的言辭向世人解釋那些代碼時,到那時候,我會覺得你已經掌握了最牛的編碼套路!
--Peter Norvig