Brad Feld 的一篇文章 The Rise of Developeronomics 中提到了「10倍效率的開發者(10x developer)」的概念(偉大的開發者的效率每每比通常的開發者高不少,而不僅是一點點),Adam Loving 在讀了以後受到啓發,並向多位大牛(Ben Sharpe、Collin Watson 和 Jonathan Locke)詢問如何成爲「10倍效率的開發者」,最後獲得瞭如下的答案。程序員
1. 只作須要作的工做算法
2. 站在巨人的肩膀上編程
3. 瞭解數據結構和算法session
若是你不知道何時應該使用快速排序、不懂辨認O(n2)程序、不會寫遞歸函數,你將沒法成爲 10 倍效率的開發者。使用多種語言你才能清楚不一樣的框架是如何解決相同問題的。儘量去了解底層命令(plumbing),以便可以做出明智的決定(Web 框架是怎麼存儲 session 狀態的?Cookie 究竟是什麼?)。數據結構
4. 不要怕買工具,它能夠節省你的時間框架
Ben 說:「昨天我花 50 美圓買了一個位圖字體工具,它幫我節省的時間成本絕對超過 200 元。」數據結構和算法
5. 集中注意力編輯器
不要成天開着你的電子郵件、Twitter、Facebook 等,在工做時將它們最小化或關掉它們,戴上耳機。Tiny hack 說:「即便不聽音樂我也戴着耳機工做,這樣便不會有人打擾到我。」函數
6. 儘早而且常常性地進行代碼重構工具
有時,你不得不放棄漂亮的代碼轉而去尋找真正對項目有用的代碼,但不要緊,若是你的現有項目中有這樣的代碼,最好的方式即是不要看它,並重構。
7. 只管去作
將你的業餘項目分享到 Startup Weekend 中。在我開始轉到 Unix 和 Ruby on Rails 上以前,我買了一臺 Mac,使用 Windows 虛擬機花了一年時間作 .NET 項目。
8. 挑選一個編輯器,並掌握它
高效開發者喜歡用文本編輯器賽過 IDE 編輯器,由於這樣能夠學到更多東西。不管什麼狀況,儘可能使用鍵盤快捷鍵,由於熟練使用一件工具的前提是熟悉它。
在選擇編輯器時,認真考慮並挑選最好的(Emacs 或 Vim),由於它們是通用的。其次,挑選你的首選平臺最支持的。使用宏,不斷地寫代碼;使用 Mac 上的 TextExpander 爲整個段落建立快捷方式;使用 Visual Studio 或 SublimeText 的自動補齊功能;使用支持按行/列分割窗口的編輯器,這樣你便能同時看到單元測試和代碼(或模型、視圖)。
必定要想清楚後再寫代碼。Adam 說,「我有朋友在一個大項目組裏工做,他們組裏最高效的程序員是一個高位截癱用嘴叼着棍子敲代碼的人,他老是在寫代碼以前想得很仔細且不多出錯。」
9. 整潔的代碼賽過巧妙的代碼
要想讓其餘人可以讀懂你的代碼,儘可能使用最少的代碼來完成任務。遵循 DRY(Don't repeat yourself)的原則,使用明肯定義的對象和庫,將任務分解成小而簡單的代碼段。
10. 潛意識是強大的工具
離開 10 分鐘每每就能夠解決一個問題。控制編程時間,給本身一個多姿多彩的生活,勞逸結合能讓你在工做時更高效、更愉悅。固然,即使是上了年紀的程序員也知道,以最少的時間完成最高效的工做是成爲 10 倍效率開發者的必要條件。
做爲一個程序員,我以爲在職業生涯中最好的一件事兒就是從電腦前站起來,去拜訪那些在某一領域有所建樹的人們。
11. 推進自身和團隊進步
重視批評,以包容的態度接受批評並提高本身是很是重要的事情。沒有這個基礎,你不可能成爲一個高效的開發者。一位智者曾經說過:「聰明的人善於從本身的錯誤中學習,而智慧的人善於從別人的錯誤中學習。」