為什么計算機專業學生應該向開源項目貢獻代碼?
ACM(美國計算機協會)的旗艦雜志《Communications of the ACM(CACM)》最近刊發了一篇跟「開源」有關的文章,題目是“為什么計算機專業學生應該向開源項目貢獻代碼?”
此文的作者是一名軟件工程教授,他認為,在 21 世紀,編程能力本身既不能代表市場對計算機專業畢業生的技能要求,也不能提供像過去那樣被認可的職業資格。因此,他建議計算機專業的學生通過他們的課程活動為開源軟件項目貢獻代碼,并表示自己已經在軟件工程課程中實踐這種方法超過 15 年。
文章指出,軟件工程的最佳實踐與大型成功的開源項目所遵循的實踐已經趨同。企業已經吸收并貢獻了許多開源開發實踐。這使得相應的知識和技能在開源項目和企業項目之間具有可移植性。通過對開源項目的貢獻,學生在實踐中獲得了一系列有實際意義的技能、知識和經驗,使他們能夠成為現代全面發展的開發者,而不是像好萊塢所描繪的“獨狼式”程序員。最重要的是獲得傳統編程教育無法提供的社交和組織技能。
- 培養對項目的背景意識:了解開發工作如何嵌入到項目的范圍、任務、共同開發者者團隊和新的領導形式中
- 與項目的全球多元化社區互動
- 協商功能要求、需求和實現方案的選擇
- 處理溝通問題,例如無人響應,這在由志愿者運營的開源項目中很常見
- 通過分類 issue 和制定發布計劃等實踐將軟件視為產品
- 接收、討論和處理代碼審查意見
對于學生如何選擇要貢獻的開源項目,教授總結了如下的建議:
- 選擇有多個活躍貢獻者的項目,這樣就會有一個社區來指導并回答你的問題。
- 選擇一個相對流行的項目(如 GitHub 上 star 數較高的項目),確認它提供了有用的功能并且以相對合理的方式進行開發(避免上傳到 GitHub 的廢棄論文項目)。
- 避免選擇非常受歡迎的項目,這樣你的貢獻就不會被淹沒在競爭、噪音和官僚主義中(盡管如此,但還是會有特例,有的學生也在為非常流行的開源項目貢獻代碼,例如 Tensorflow 和 Visual Studio Code)
- 確認是否可以在自己的計算機上構建和運行該項目。
- 確保該項目定期接受來自外部的 PR,這樣你貢獻的代碼才有機會被合并。
- 嘗試提供一個微不足道的修復作為熱身練習,以作為測試遵循項目工作流程能力的一種方式。
- 查找標記為 "Good first issue" 的項目 issue,這表明該項目對新手貢獻者是開放的。
本文轉自OSCHINA
本文標題:為什么計算機專業學生應該向開源項目貢獻代碼?
本文地址:https://www.oschina.net/news/148962/why-computing-students-should-contribute-to-oss