1. 只做需要做的工作 Only do the work that needs to be done
- 使用敏捷方法;
- 溝通第一;
- 編碼也許不是解決問題的辦法;
- 過早的優化是一切罪惡的根源;
- 選擇最簡單的解決方案。
2. 站在巨人的肩膀上 Build on the shoulders of giants
- 使用開源框架;
- 使用簡潔語言(如 HAML、Jade、Coffeescript);
- 不要做重複的事情(不要重新發明輪子);
- 利用包管理器來進行公共和私有代碼分配;
- 不要任憑巨頭(如微軟)的擺佈而修復庫中的一個 Bug;
- 不要讓你的僱主逼你學習;
- 自主學習併爲自己設定新的目標。
3. 瞭解數據結構和算法 Know your data structures and algorithm
如果你不知道什麼時候應該使用快速排序、不懂辨認O(n2)程序、不會寫遞歸函數,你將無法成爲 10 倍效率的開發者。使用多種語言你才能清楚不同的框架是如何解決相同問題的。儘可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web 框架是怎麼存儲 session 狀態的?Cookie 到底是什麼?)。
4. 不要怕買工具,它可以節省你的時間 Don’t be afraid of buying tools that save you time
Ben 說:“昨天我花 50 美元買了一個位圖字體工具,它幫我節省的時間成本絕對超過 200 元。”
5. 集中注意力 Find focus
不要整天開着你的電子郵件、Twitter、Facebook 等,在工作時將它們最小化或關掉它們,戴上耳機。Tiny hack 說:“即使不聽音樂我也戴着耳機工作,這樣便不會有人打擾到我。”
6. 儘早並且經常性地進行代碼重構 Refactor early and often
有時,你不得不放棄漂亮的代碼轉而去尋找真正對項目有用的代碼,但沒關係,如果你的現有項目中有這樣的代碼,最好的方式便是不要看它,並重構。
7. 只管去做 Just do it
將你的業餘項目分享到 Startup Weekend 中。在我開始轉到 Unix 和 Ruby on Rails 上之前,我買了一臺 Mac,使用 Windows 虛擬機花了一年時間做 .NET 項目。
8. 挑選一個編輯器,並掌握它 Pick an editor and PWN it
高效開發者喜歡用文本編輯器勝過 IDE 編輯器,因爲這樣可以學到更多東西。無論什麼情況,儘量使用鍵盤快捷鍵,因爲熟練使用一件工具的前提是熟悉它。
在選擇編輯器時,認真考慮並挑選最好的(Emacs 或 Vim),因爲它們是通用的。其次,挑選你的首選平臺最支持的。使用宏,不斷地寫代碼;使用 Mac 上的 TextExpander 爲整個段落創建快捷方式;使用 Visual Studio 或 SublimeText 的自動補齊功能;使用支持按行/列分割窗口的編輯器,這樣你便能同時看到單元測試和代碼(或模型、視圖)。
一定要想清楚後再寫代碼。Adam 說,“我有朋友在一個大項目組裏工作,他們組裏最高效的程序員是一個高位截癱用嘴叼着棍子敲代碼的人,他總是在寫代碼之前想得很仔細且很少出錯。”
9. 整潔的代碼勝過巧妙的代碼 Clearness beats Cleverness
要想讓其他人能夠讀懂你的代碼,儘量使用最少的代碼來完成任務。遵循 DRY(Don't repeat yourself)的原則,使用明確定義的對象和庫,將任務分解成小而簡單的代碼段。
10. 潛意識是強大的工具 Your sub-conscience is a powerful tool
離開 10 分鐘往往就可以解決一個問題。控制編程時間,給自己一個多姿多彩的生活,勞逸結合能讓你在工作時更高效、更愉悅。當然,即便是上了年紀的程序員也知道,以最少的時間完成最高效的工作是成爲 10 倍效率開發者的必要條件。
作爲一個程序員,我覺得在職業生涯中最好的一件事兒就是從電腦前站起來,去拜訪那些在某一領域有所建樹的人們。