編程是一種創造過程,業餘項目允許程序員在沒有截止日期或各種限制的條件下,以探索形式編程。業餘項目之所以重要,有以下幾個原因。
探索新技術
每天都會不斷有新技術出現,而業餘項目則是最佳的試驗場。作爲業餘項目,你不必爲bug或者性能問題擔心,即使網站崩潰也沒有問題,因爲你不靠它來領薪水。
從頭創造
我所從事的大多數都是爲現有的產品做一些維護,增加一些新特性,修復bug,解決性能問題,重構現有代碼。雖然我也從頭編寫過一些軟件,但這些基礎工作只需要一兩個月,接下來我又進入維護模式了。
業餘項目經常需要從頭構建。我喜歡這個步驟,因爲我不但複習了已經掌握的所有東西而且把它們應用到創建一個新的(更好的)項目中。
易於啓動
進行業餘項目也是一項避免分析癱瘓(analysis paralysis)的練習。如果你從頭開始會有各種各樣的可能性。避免的方法是給出一個短列表上面列出所有必須具有特性,接下來啓動一個beta版本實現那些特性,即所謂的最小可行性產品。
編注1:分析癱瘓:對某個問題由於過度分析或過度思考某種情況,以至於沒有作出決定或者採取行動。在不同的領域,分析癱瘓有具體的解釋,詳見維基百科Analysis paralysis詞條。
編注2:最小可行性產品:指發佈所必須的最小功能集合,通常作爲產品原型發佈給樂於嘗試並提供反饋的客戶。
避免精疲力盡
爲你的熱情工作,爲樂趣而工作。如果你是一個開發人員,但由於不喜歡現在所從事的工作而感到精疲力盡,試着去做一個屬於自己的業餘項目吧。它會讓你回味爲什麼編程是如此的有趣。
保持你的技能不會落伍
也許你日常工作使用的是過時的技術。也許你對自己目前掌握的技能感到厭倦,想要去學一些新技術。業餘項目是跟蹤軟件最新潮流的最佳辦法。沒有嘗試過node.js?太好了,用它去做一個小的項目。突然之間,你會發現你有新學會的技術可以炫耀了。
完成你的業餘項目
對於業餘項目,一個問題是它們可能始終沒有完成。剛開始的時候你充滿熱情,但是2個月之後你甚至不記得上一次做項目是什麼時候了。儘管如此,還是應當將項目向前推進並完成它。寫完這些,我要去完成自己業餘項目了。