寫給年輕程式設計師的一封信

html5tricks發表於2014-07-01

  很多年輕的程式設計師發emails給我,說希望能夠得到一些如何儘快躋身優秀程式設計師行列的建議和方法。關於這個問題,我已經有提到過很多次,現在已經沒什麼可以補充的了。不過 為了滿足大家的要求,在這裡我再詳細地歸納總結一下:

  ——和其他開發人員協作。程式設計已經進入了“地球村”的輝煌時代,無論我們身在哪裡,無論我們為誰工作,只要擁有可愛的網際網路,我們就可以和世界上任何一個角落的程式設計師一起攻克程式碼難題、合作開發各種軟體。並且,現在有越來越多的開發人員,在網上把他們豐富的經驗教訓總結出來,提供給大家共享。我的朋友Evan Light利用開放的辦公時間,正在致力於開發一個幫助Ruby使用者們匹配合作的網站。我也在這專案上做過。有沒有興趣做開源軟體?如果有的話請發郵件給我。讓我們一起協作吧!

  ——閱讀經典書籍刊物。像《程式碼大全》、《程式設計師修煉之道》、《程式設計師設計實踐》、《設計模式》等等,都挺不錯的。

  ——好好利用網路資源。這一條必須特別強調。因為幾乎所有的程式設計知識我們都可以在網上找到。老實說,有時候我會覺得,所有我需要的程式設計技能都是在網上學會的。

  ——研究別人的程式碼。GitHub萬歲!如果你想學習Ruby語言,並且希望能在最快的時間掌握它,那麼可以按《Best of Ruby Quiz》所說的,先鑽研下他人的程式碼。

  ——進入本地程式設計師群。如果沒有這樣類似的群,那麼建立一個。接下來需要做的是組織會話。不要坐井觀天的以為“老子天下第一”,多多與大家交流,知道自己的不足之處,然後謙虛學習。

  ——寫部落格。不要擔心不知道該寫什麼。那些非常有名的部落格牛人他們寫的就是:他們自己的程式設計經歷和程式錯誤,以及他們是如何克服這些問題的。反思,對於我們學習程式設計的幫助不可估量,而寫部落格就是用於反思的手段。而且寫在部落格上你還可以得到其他人對你的評價和建議。

  ——為開源專案製作補丁。這一點已經眾所周知,我就不再贅述了。

  ——拋個硬幣,花代表Vim,字代表 Emacs,選擇了之後就開始認真學習吧。編輯器是你程式設計生涯中的左膀右臂,所以,一個強大又靈活的編輯器絕對能讓你的程式設計水平更上一層樓。

  ——熟稔一種程式語言是遠遠不夠的。但是首先你得學好一種,這樣你某一天遇到緊急情況,就能迅速應對、快速程式設計,而不必絞盡腦汁、漫無目的、費時費力地想(就因為你已經忘記得差不多了)。不過,我想說的是,要是你已經掌握了一門,那麼是時候學習第二門了,一方面可以驗證第一門程式語言,另一方面通過這種方法還可以溫故而知新。而且最好選擇的是風格大相徑庭的。我讀過的一篇博文《Seven Languages in Seven Weeks》就給出了關於此點內容超棒的程式設計範例,有興趣可以看看。

  ——做一個程式語言和平臺的郵件列表。有時候,我們會找不到正在關注的部落格、黑客新聞、Twitter中的激烈爭辯以及各種發人深思的討論。這個時候郵件列表就大顯威武了,相對於其他手段,它既方便禮貌又實用多多。

  ——StackOverflow絕對是你的良師益友。

  ——不要浪費時間去研究所謂的最好的工具。我曾經用了幾周時間,想為我準備開工的專案找個“不鳴而已,一鳴驚人”的最好框架,但是後來卻發現這個框架嚴重限制了我的工作效率。所以,千萬別被“最好”這兩個字的表象所迷惑,掉進坑裡。如果你覺得你作為程式設計師還不算經驗豐富,那麼最好先從有很多使用者使用的語言和框架開始。最最重要的一點是,當你遇到障礙物而你越不過去的時候,你得知道去哪裡,才能尋求幫助、拿到更有利的工具。

  ——不要錯過實習機會。

  ——不斷練習、練習、再練習,因為辛勤的汗水才能澆灌出成功的花朵。在工作中寫程式碼,在家裡寫程式碼。好好修煉程式碼招式。程式設計其實和別的技術沒什麼不同:最後的成功,都歸結於不斷的練習和辛勤的努力。

  英文原文:Letter to a Young Developer 翻譯:html5tricks

相關文章