成為更優秀開發者的10條途徑

sohu發表於2013-06-07

  我讀過好多“成為更優秀開發者的方法”的文章,它們大部分似乎寫於10年前。但大部分仍然很明智,因此我在這篇文章中提取出我認為的最好的10條途徑。你可以隨時看看。

  我們開始吧。

  讀他人的程式碼 Scott Hanselmann

  讀他人的程式碼,並從中學習。你會適時得到提升,因為你容易學到其他開發者是如何處理問題的。結對程式設計是提升自我的最好途徑。你從另外一個開發者那裡讀程式碼,實時地看到他/她的思維過程。反之亦然。你們可以挑戰彼此的觀點,共同進步。

  找人讀你的程式碼

  在希臘神話裡,那喀索斯(Narcissus)愛上他自己在水中的倒影。他無法抗拒不去看它。作為程式設計師,我們也有這樣的症狀,在他之後有了個名字叫自戀(Narcissism)。

  當你寫的程式碼時,會很容易愛上你的“藝術品”。但是一段程式碼只有當別人能讀懂你乾的啥時才算接近完美。

  通過經常做程式碼評審來讓他人讀你的程式碼。你每次都能學到一兩件事情,尤其在你最後發現那個方法名意義不大時。 

  寫新的程式碼時先修bug Joel Spolsky

  我肯定你遇到過這種情況。你發現了一個bug,然後說:“我過會再修,我先把這些特性搞定。”或者你看到一個單元測試沒通過,但是你怕麻煩去找出沒通過的原因,所以你會把這條測試註釋掉抑或規避它。

  來幫自己一個忙,養成早期修bug的習慣。bug只會隨著時間的推移堆積成山,給你招致更多的技術債務。

  學習一門新技術 Ryan Farley

  你處於快節奏的世界。你的技術如同冰箱裡的米飯一樣容易變質。作為一個開發者,學習一門新技術有助於你立於刀鋒上,並受到歡迎。

  大量“市民”正在學習如何寫程式碼。這並不奇怪,因為你現在正擁有這個世界上最高薪的工作。做一個極客再酷不過了。

  如果你是iOS開發者,學一些Web框架,或者反過來。這樣你知道如何寫一個伺服器端的簡單例子。

  保持簡單

  在程式設計裡你總是可以找到一個更加精巧的方法去實現一個任務。有的人得意於他們的程式碼有多麼令人驚歎,那樣也還OK。但是保持簡單,你願意嗎?這關係到前面提到的一點,讓別人讀你的程式碼。

  如果他們幾分鐘之內無法理解,那麼你是在給自己添亂(坦白地說還有那個必須維護那塊程式碼的人)。

  把你的實現釋出到部落格裡 Bill Simser

  在任何事情上要提高的最好途徑就是教(jio)授。如果你能使別人理解一個概念,那意味著你掌握它了,而不只是說說。

  寫一篇部落格,解釋一下你解決手邊的問題的過程。

  順便說一下,這也是一份很好的簡歷。如果你要找工作,你可以給你潛在的僱主一系列你的部落格,這樣你便有了優勢。

  貢獻開源專案 Eran Kampf

  就是說要麼自己做一個開源專案,要麼為已有的專案做貢獻。這有助於你學會如何跟一群開發者協作。做很多獨立的專案會尤其有幫助。

  從志趣相投的開發者那裡學習可以加分,並且拜託,回報開源社群不是很酷的事情嗎?

  修復問題,不要逃避問題 Danny Barbol

  有一天我在和朋友談話。她是一個會計。她說當她還有0.69美分的賬合不上時會很沮喪。她花了數個小時做幾百萬美元的賬目,到最後僅僅是因為有人在某個地方把0.96美分換成了0.69美分,結果導致他們合不上賬。

  作為開發者,我們經常遇到同樣的事情。“一行”bug可以毀掉整個演示。有誘惑力的是不去真正的研究為什麼它不去做它應該做的,而是把它繞過去。你說:“在這裡添上a+5,然後就好了。”

  不,找出原因,然後修正,否則繞過去的將會回過給你招來麻煩。

  把程式碼覆蓋率提高1%

  有時候測試驅動開發顯得很枯燥。一定要在寫程式碼前先寫好一行行測試程式碼?是啊,我們要誠實地說確實不總那麼好玩。你想要馬上開始好玩的部分。

  我完全同意測試驅動開發思想,但是有時候你只是剛好有一大堆未測試的程式碼擺在面前。也許你從他人那裡繼承了一段糟糕的程式碼,或者你犯了錯誤,然後忘了加單元測試。

  不要難過,不要悔恨。不管你信不信,許多專案都有相同的問題,不論他們願不願意承不承認。你要做的就是把單元測試一個個地加上。

  像作家/作者的難產一樣,盯著一張白紙看。多產的大牛說克服它的最好辦法是在那張白紙(或者如今的電腦螢幕?)上開始動筆。

  不要去想那24,000行未測試的程式碼。把它們分解成塊,然後新增測試程式碼。今天覆蓋400行,明天再覆蓋400行。也許永遠不會覆蓋到所有的24,000行,但是一個月後未測試的程式碼就少了8000行。

  你的基礎程式碼變得更好了。

  每小時離開辦公桌休息一次

  這是本文章裡最重要的一條。儘管和程式設計沒有直接關係。至少每個小時站起來舒展身子,你的身體會為此感謝你。

  不要馬拉松式的程式設計,幾個小時地粘在椅子上直到最後。就算你有那種900美元的人體工程學的椅子也不要。(順便說一下,如果有第11條,那將會是“弄一把好椅子”)

  你應該不想程式設計掙的所有的錢,沒來得及花,就去花在看病上了,是吧?

  作者:@奇風餘谷 譯

相關文章