Richard Monson-Haefel
工作可能無法滿足你的抱負#
很有可能你目前的工作並非在開發你最嚮往的軟體。也許你在為一家大型保險公司開發軟體,但你其實更想在 Google、Apple、Microsoft 工作,或者自己創業開發下一個大產品。你永遠不會透過為你不在乎的系統開發軟體,而到達你想去的地方。
開源是你的答案#
幸運的是,有成千上萬的開源專案(open source projects),其中許多非常活躍,能提供你想要的任何類型的軟體開發經驗:
- 想開發作業系統?加入十幾個作業系統專案之一
- 想做音樂軟體、加密、機器人、PC 遊戲、大型線上遊戲、手機應用?幾乎都能找到對應的開源專案
參與開源的好處#
開源為有動力的程式設計師提供巨大的機會:
- 學習他人的解決方案:閱讀別人的原始碼來學習實作方式
- 貢獻自己的程式碼和想法:不是每個想法都會被接受,但你會從中學習
- 結交志同道合的朋友:開源友誼可以維持一生
- 累積實際經驗:在你真正感興趣的技術領域增加實戰履歷
如何開始#
入門相當容易,有大量關於工具(版本控制、編輯器、程式語言、建置系統等)的文件。具體步驟:
- 找到你想參與的專案,先學習該專案使用的工具
- 專案文件通常不多,但最好的學習方式是自己研究程式碼
- 想參與的話,可以先從撰寫測試程式碼開始
- 找 bug、提修復建議、交朋友、做你喜歡的軟體
當然,天下沒有白吃的午餐。你需要犧牲一些空閒時間,而且要注意你的僱傭合約——某些雇主可能限制你的貢獻,即使是在你的個人時間。此外,也要小心不要違反智慧財產權相關法律。
你在開源專案上越努力,就越快實現你作為程式設計師的真正抱負。