|
我收到了很多年輕開發人員寫給我的郵件,希望可以提升自己的編程能力。我肯定不是第一個討論這個話題的人,所以我不確定還可以說出什么新意。然而,這里我認為還是非常值得列出我認為很重要的幾點吧。
- 要跟其他開發者一起工作。我們正處在科技史上的黃金時期,這是第一次,身處何地,雇主是誰變得不那么重要。只要你的網絡帶寬足夠,你就可以與身處地球任何位置的另一位開發者搭檔共同編寫代碼。越來越多我認識的資深開發者都在貢獻自己的時間分享這樣的知識。我朋友Evan Light有開放辦公時間,而且還在開發一個網站幫助 Rubyists 搭檔。我也這樣做了好一陣了。想要研究FLOSS代碼?發郵件給我,我們會把事情安排好。
編注:Rubyist 是指那些對Ruby的關心程度超過常人的人。
編注:開放辦公室時間是美國大學的傳統,作法是學校每周開放辦公室數小時,學生不需事先預約就能和老師面談。
編注:Free/Libre/Open Source Software 免費/自由/開源軟件。
- 閱讀經典的書籍。如《代碼大全》、《程序員修煉之道》、《程序設計實踐》、《設計模式》等。
- 要讀 WikiWiki (有時又叫做 WardsWiki)。這一點非常重要。有時我覺得,在我的學習遇到瓶頸時,我就是通過瀏覽WikiWiki 而得以學到所有我真正需要的東西的。
- 要讀一讀別人編的代碼。為GitHub 喝彩!如果你想以編撰得更好的作品為開始而你又對 Ruby、有所了解,那么就試一試解決Ruby Quiz上的問題。(關于這個話題,Alan Skorkin 寫過一篇很全面的文章:《閱讀優秀代碼是提高開發人員修為的一種捷徑》。)
- 加入本地用戶組。如果沒有這樣的群,那就創建一個,然后開始交流。我不在意你是一個多么差勁的菜鳥。要想使你全面了解一個問題,再沒有比這更好的方法了。
- 開一個博客。不要擔心自己會成為異類。一些最有用的博客其實主要記錄了一個程序員的經驗和錯誤以及他們是如何克服困難。反思是學習的最重要的一部分,而寫作則會幫助你反思。并且,在你思考之前,你又會從其他程序員那得到反饋。
- 我相信你已經聽說過這一點了:為一個開源項目提交補丁。
- 用擲硬幣的方式來作決定。正面朝上就選擇 Vim,背面朝上就選Emacs。開始學習容易上手的編輯器。這兩種中的任何一種都會在你剩余的編程生涯中一直與你同在。強大、靈活的工具能使優秀程序員更加優秀。(編注:看來國外很多程序員都在用Vim或Emacs,Akash Manohar 在《寫給即將入行的程序員的一封信》這篇文章中,也是推薦這些工具。)
- 學習多種編程語言。但首先你得學好一種編程語言。你需要一種可以使你得到靈感并且快速掌握的在一天內迅速地寫出第一個版本的編程語言,從而不用花費大量的時間去學習你會很容易忘記的語言細節。然而,一旦你已經掌握了這門語言,你就要去學習新的語言,來挑戰所有你從之前所學習的語言中學到的假設。要選擇風格完全不同的編程語言。我所看過的一本書《七周掌握七門語言》 中就對編程思維模型進行了全面、廣泛的概括。
- 為你所使用的編程語言和平臺建立郵件列表。人們有時會忘記在博客、Hacker News和推特以外還有很多討論是非常有益的。跟其它場合比起來郵件列表通常是文明而有用的工具。
- StackOverflow 是你的良師益友。
- 不要花費太多的時間去為某物找尋最好的工具。我過去常常會花費好幾天或幾個星期,去試著為我即將開始的項目尋找最好的框架,以致我的工作進度停滯不前。不要掉進這個陷阱里。當你已經是個相對有經驗的開發人員時,選擇那些有很多人在用的語言和框架。在你遇到困難時,知道如何繼續下去比選擇完美的工具要重要。
- 尋找練習的機會。
- 當然,還有一點就是:練習、練習、練習。上班時寫代碼。在家寫代碼。練習 code katas 。編程與其它技能一樣:說到底,它的本質還是練習。
it知識庫:致年輕開發人員的一封信,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。