天天看點

如何選擇第一個開源項目如何選擇第一個開源項目

如何選擇第一個開源項目

本文是github首頁推薦的一篇入門文章.作為一名大齡C++程式員,譯者最近才開始下決心融入github社群.起因是跳槽找工作時,發現很多職位對于有開源貢獻的開發者都會加分甚至優先錄用.在初步了解了github社群之後發現這裡彙聚了來自全球的開發者以及他們的好點子好項目,有種相見恨晚的情緒.我決定将自己對以github為代表的開源社群的一步一步的了解過程記錄下來,也将有用的文章翻譯成中文,供廣大中文網友參考學習.

原文作者:Katrina Owen

點選原文連結

名詞解釋:

* 問題(issue):在文中指的是開源軟體的使用者或測試者在github上送出的bug報告或改進意見.

* 推送請求(pull request):在文中指的是開源軟體貢獻者送出合入項目的代碼,文檔等内容.

前言

第一次送出代碼可能會另新手感到畏懼.這種感覺同走進一個滿是陌生人且其中大多數互相不認識的房間一樣:你不了解話裡話外的段子,也不會聽說他們談到的流行文化元素.你不知道當你走進人群時時否會有人為了讓你加入他們的談話而稍稍靠邊站一些.或許他們會給你一個鄙視的眼神.他們會告訴你你不該穿牛仔褲,你的眼球的顔色不同,你的發音不準.

這中感覺不僅發生在你第一次送出代碼的時候,甚至在開啟一個問題都會感到害怕.你會想:我遇到的這個問題真的存在嗎?也許他們會因為你實作沒有搞清楚問題而說你蠢.

我作為Exercism項目的維護者,見證過數以千計的人開始學會新的程式設計語言,為代碼提意見或者答複回報,開始為開源項目做貢獻.第一次貢獻可能令你害怕,但是隻要在正确的指引下,我确信你會和我一樣愛上成為開源社群一員的感覺.

這裡是一些我挑選出來的資源,它們可以幫助你選擇對的項目,幫你為之做出具有深刻影響的貢獻,同時也幫助你提高技能水準.

從你使用的項目開始

為開源做貢獻的最佳方式是從你使用的項目開始.

這種方式有幾點好處:

* 熟悉項目做什麼和怎麼做

* 更加願意投入到項目的改進和成果産出中去

* 和項目之間持續存在的關系使你能持續參與其中

想想你最喜歡的庫,子產品,插件或者工具.審查你工作或業餘項目的依賴清單.找到項目庫,并浏覽其中的代碼,文檔和開啟的問題,以對項目有直覺的感受.

你大可不必選你能想到的規模最大,最具影響力的開源項目.更小的項目通常更容易上手,維護者也會感激你做出的貢獻,因為他們接受到的貢獻本身就不多.

你無法預知項目是否會接受你提的貢獻,但有兩件事可以增加你擁有美好第一次的機會.一是,尋找到項目歡迎貢獻者的迹象,二是,搞清楚他們需要什麼樣的貢獻方式.

評估項目

通過觀察兩樣東西你可以得到是否想加入項目的自覺感受:活躍度和溝通風格.

看看送出commit清單:有無近期送出?送出的頻率如何?送出主要來自一個人還是有多人參與?

看看開啟的問題:有多少?有新問題嗎?有非常舊的問題嗎?問題是否得到維護者的回應?有正在進行的讨論嗎?再看看關閉的問題:有最近關閉的問題嗎?

類似的可以再看看推送請求.

觀察這些不會特别準确,你并不是在尋找準确的數字.如果項目不是特别活躍它仍有可能是一個值得貢獻的項目,因為它已經是一個成熟穩定的項目,不會有太多變化.但是如果項目有許多存在很長時間的問題和推送請求沒有得到維護者的應答,那麼你可以亮出你的小紅旗了.

下一步,檢視開啟或關閉的問題與推送請求中的聊天對話,按照最多評論排序,以此了解别人如何交流:這些對話是否友好?對待不同意見是否尊重?維護者對于貢獻是否表現出感激?

一些維護者會使用友好的消息和表情表達感激,確定新的貢獻者能感受到歡迎氛圍.

花些時間來通讀舊的問題或者郵件清單歸檔檔案,逛一下他們的Slack或者IRC頻道,如果他們使用的話,你會了解到項目如何推進.據此可以獲得對項目社群的感覺和你是否喜歡和這群人一起工作的判斷.

邁出腳尖試探

當你找到一個你願意為之奉獻的項目時,仔細看一下README.README中可能會有項目的貢獻指南,這個指南常常會出現在CONTRIBUTING.md中.如果README中沒有連接配接,你可以在目錄中直接尋找.

人們在這些檔案放置什麼内容沒有統一标準.然而項目還是很有可能會提到他們正在尋找什麼類型的貢獻.

另一個尋找項目需要哪方面的幫助的地方在問題标簽頁中,檢視那些标有”需要幫忙”,”優先處理”的問題.

不要急于開啟問題和請求推送

當你感覺是時候做出一些貢獻是,最好從小的開始.小的貢獻幫助項目維護者更好的了解你,并且相比主要特性變更或開發他們更有可能接受你的小貢獻.

幫助診斷問題是開始貢獻的一種行之有效的方式.當有新的bug上報時,看看自己能不能複現并送出你發現線索.

如果你足夠幸運,你會發現幾個重複開啟的問題,還有一些已經修複但是沒有關閉的問題.人們會詢問你已經有答案的問題,此時可以在文檔中指出問題的所在,或者如果還沒有歸檔的話,你可以送出一個更新文檔的建議.

文檔貢獻既簡單也困難.有的隻是簡單的輸入和文法錯誤.有些涉及改善章節清晰性和條理性,或者是為問題更新文檔.更具挑戰性的是重構或者建立一篇指導手冊.

從診斷問題和文檔貢獻開始你的貢獻之旅,你将開始發現一些小的力所能及的貢獻價值.

學習别人怎麼做

并非隻有你總是為期待的第一次做出貢獻而感到焦慮不安.即使是專業的軟體開發者也會被開放源代碼吓到,因為這涉及到與素未謀面的人一起合作.

閱讀别人的經驗可以減弱這種恐懼.從阮晔軟體開發者到新手,關于第一次貢獻,每個人都有一個故事:

  • 一個新手在開源世界中的崎岖之路
  • 我的第一次開源貢獻課
  • 開源聖經:9步搞定第一個特性級别的貢獻
  • 明白如何為開源做貢獻

尋找不熟悉但氛圍好的項目

盡管從你正在使用的項目開始是最簡單的方式.然而如果你在尋找你可能從來沒有想過的項目或點子,下面這些資源可以給你一些啟發:

  • 你的第一個推送請求
  • 入門到精通:一個有專門為新人準備任務的項目
  • 代碼診室:幫助你最喜歡的開源項目并在過程中成長為更優秀的開發者

如果你在尋找一些對待新人特别友好的項目,下面這些項目社群有非常棒的文檔和氛圍:

  • rust-lang / rust
  • HospitalRun / hospitalrun-frontend
  • hoodiehq / hoodie
  • pybee / batavia
  • Homebrew / brew

熟悉流程

當你不再因為流程而怯場時,你将獲得更多自信來應對你的第一次貢獻.下面是一些有用的資源:

  • 如何為開源項目做貢獻
  • 送出一個推送請求
  • 大雜燴:輕松,有導師的git和github新手研讨班

下面的一些組織也能幫助你掌握git,github,貢獻開放源碼的基礎:

  • freeCodeCamp
  • CodeBuddies Community
  • Your First PR
  • NodeSchool
  • OpenHatch

成為一種習慣

每一個人都有第一次,你可能可能需要一些時間來完成第一次開源貢獻,但是你可千萬别在那停下來.規律的貢獻對于你自己和社群來說都是有益的投資.下面這些項目能幫你保持熱情并使開發源碼程式設計一種習慣.

  • Open Source Friday
  • 24 Pull Requests