Richard Monson-Haefel

工作可能無法滿足你的抱負#

很有可能你目前的工作並非在開發你最嚮往的軟體。也許你在為一家大型保險公司開發軟體,但你其實更想在 Google、Apple、Microsoft 工作,或者自己創業開發下一個大產品。你永遠不會透過為你不在乎的系統開發軟體,而到達你想去的地方。

開源是你的答案#

幸運的是,有成千上萬的開源專案(open source projects),其中許多非常活躍,能提供你想要的任何類型的軟體開發經驗:

  • 想開發作業系統?加入十幾個作業系統專案之一
  • 想做音樂軟體、加密、機器人、PC 遊戲、大型線上遊戲、手機應用?幾乎都能找到對應的開源專案

參與開源的好處#

開源為有動力的程式設計師提供巨大的機會:

  1. 學習他人的解決方案:閱讀別人的原始碼來學習實作方式
  2. 貢獻自己的程式碼和想法:不是每個想法都會被接受,但你會從中學習
  3. 結交志同道合的朋友:開源友誼可以維持一生
  4. 累積實際經驗:在你真正感興趣的技術領域增加實戰履歷

如何開始#

入門相當容易,有大量關於工具(版本控制、編輯器、程式語言、建置系統等)的文件。具體步驟:

  • 找到你想參與的專案,先學習該專案使用的工具
  • 專案文件通常不多,但最好的學習方式是自己研究程式碼
  • 想參與的話,可以先從撰寫測試程式碼開始
  • 找 bug、提修復建議、交朋友、做你喜歡的軟體

當然,天下沒有白吃的午餐。你需要犧牲一些空閒時間,而且要注意你的僱傭合約——某些雇主可能限制你的貢獻,即使是在你的個人時間。此外,也要小心不要違反智慧財產權相關法律。

你在開源專案上越努力,就越快實現你作為程式設計師的真正抱負。