Brad Feld的一篇文章The Rise of Developeronomics中提到了“10倍效率的開發(fā)者(10x developer)”的概念(偉大的開發(fā)者的效率往往比一般的開發(fā)者高很多,而不只是一點點),Adam Loving在讀了之后受到啟發(fā),并向多位大牛(Ben Sharpe、Collin Watson和Jonathan Locke)詢問如何成為“10倍效率的開發(fā)者”,后得到了以下的答案。

1、只做需要做的工作

◆  使用敏捷方法;

◆ 全心全意做UX設計;

◆ 溝通第一;

◆ 編碼也許不是解決問題的辦法;

◆ 過早的優(yōu)化是一切罪惡的根源;

◆ 選擇簡單的解決方案。

2、站在巨人的肩膀上

◆ 使用開源框架;

◆ 使用簡潔語言(如HAML、Jade、Coffeescript);

◆ 不要做重復的事情(不要重新發(fā)明輪子);

◆ 利用包管理器來進行公共和私有代碼分配;

◆ 不要任憑巨頭(如微軟)的擺布而修復庫中的一個Bug;

◆ 不要讓你的雇主逼你學習;

◆ 自主學習并為自己設定新的目標。

3、了解數據結構和算法

如果你不知道什么時候應該使用快速排序、不懂辨認O(n2)程序、不會寫遞歸函數,你將無法成為10倍效率的開發(fā)者。使用多種語言你才能清楚不同的框架是如何解決相同問題的。盡可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web框架是怎么存儲session狀態(tài)的?Cookie到底是什么?)。

4、不要怕買工具,它可以節(jié)省你的時間

Ben說:“昨天我花50美元買了一個位圖字體工具,它幫我節(jié)省的時間成本超過200元。”

5、集中注意力

不要整天開著你的電子郵件、Twitter、Facebook等,在工作時將它們小化或關掉它們,戴上耳機。Tiny hack說:“即使不聽音樂我也戴著耳機工作,這樣便不會有人打擾到我!

6、盡早并且經常性地進行代碼重構

有時,你不得不放棄漂亮的代碼轉而去尋找真正對項目有用的代碼,但沒關系,如果你的現有項目中有這樣的代碼,好的方式便是不要看它,并重構。

7、只管去做

將你的業(yè)余項目分享到Startup Weekend中。在我開始轉到Unix和Ruby on Rails上之前,我買了一臺Mac,使用Windows虛擬機花了一年時間做.NET項目。

8、挑選一個編輯器,并掌握它

高效開發(fā)者喜歡用文本編輯器勝過IDE編輯器,因為這樣可以學到更多東西。無論什么情況,盡量使用鍵盤快捷鍵,因為熟練使用一件工具的前提是熟悉它。

在選擇編輯器時,認真考慮并挑選好的(Emacs或Vim),因為它們是通用的。其次,挑選你的平臺支持的。使用宏,不斷地寫代碼;使用Mac上的TextExpander為整個段落創(chuàng)建快捷方式;使用Visual Studio或SublimeText的自動補齊功能;使用支持按行/列分割窗口的編輯器,這樣你便能同時看到單元測試和代碼(或模型、視圖)。

一定要想清楚后再寫代碼。Adam說,“我有朋友在一個大項目組里工作,他們組里高效的程序員是一個高位截癱用嘴叼著棍子敲代碼的人,他總是在寫代碼之前想得很仔細且很少出錯!

9、整潔的代碼勝過巧妙的代碼

要想讓其他人能夠讀懂你的代碼,盡量使用少的代碼來完成任務。遵循DRY(Don‘t repeat yourself)的原則,使用明確定義的對象和庫,將任務分解成小而簡單的代碼段。

10、潛意識是強大的工具

離開10分鐘往往可以解決一個問題。控制編程時間,給自己一個多姿多彩的生活,勞逸結合能讓你在工作時更高效、更愉悅。當然,即便是上了年紀的程序員也知道,以少的時間完成高效的工作是成為10倍效率開發(fā)者的必要條件。

作為一個程序員,我覺得在職業(yè)生涯中好的一件事兒是從電腦前站起來,去拜訪那些在某一領域有所建樹的人們。

11、推動自身和團隊進步

重視批評,以包容的態(tài)度接受批評并提升自己是非常重要的事情。沒有這個基礎,你不可能成為一個高效的開發(fā)者。一位智者曾經說過:“聰明的人善于從自己的錯誤中學習,而智慧的人善于從別人的錯誤中學習!