1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        新手如何參與 GitHub 開源項(xiàng)目

        共 3849字,需瀏覽 8分鐘

         ·

        2022-05-30 02:28



        很多人都知道?GitHub?上面有非常多優(yōu)秀的開源項(xiàng)目, 如果能夠參與到一些開源項(xiàng)目中, 對(duì)自己的技術(shù)提升和職業(yè)發(fā)展都是非常有幫助的. 對(duì)于項(xiàng)目經(jīng)驗(yàn)不足的應(yīng)屆生來說, 也可以豐富一下自己的簡(jiǎn)歷的~

        有些同學(xué)說, 我還是個(gè)技術(shù)小白, 怎么參與開源項(xiàng)目呢? 應(yīng)該怎么找到自己適合的項(xiàng)目呢? 下面就來詳細(xì)展開說說.

        參與開源項(xiàng)目的好處

        參與開源項(xiàng)目最有趣的地方就是可以開闊自己的眼界, 鏈接到世界各地的人, 讓自己加入到某個(gè)圈子里.

        深入到感興趣的圈子

        比如你對(duì)某種小眾的語言感興趣, 你可以在這些項(xiàng)目中找到非常多志同道合的朋友. 有時(shí)候開源項(xiàng)目組的人會(huì)組織一些線下的?meetup, 你有機(jī)會(huì)接觸更多的人, 甚至是一些技術(shù)大牛.

        幫你找到工作

        當(dāng)你對(duì)某個(gè)開源項(xiàng)目非常熟悉, 對(duì)它的源碼和整個(gè)項(xiàng)目的歷史變動(dòng)以及未來規(guī)劃設(shè)計(jì)都非常清楚, 你就很可能被邀請(qǐng)到做類似產(chǎn)品的公司團(tuán)隊(duì)中工作. 也有非常多小初創(chuàng)公司在社區(qū)里面尋找合適的兼職/全職/遠(yuǎn)程程序員. 你會(huì)發(fā)現(xiàn)有很多獲得額外收入的途徑, 甚至是開拓自己的副業(yè), 又或者成為一個(gè)自由職業(yè)者. 總之有可能收獲一些意外的機(jī)會(huì).

        提升自己的影響力

        在開源項(xiàng)目中貢獻(xiàn)代碼, 可以得到來自其他人的 Code Review, 提升自己的代碼能力, 文檔, 溝通和組織能力等. 當(dāng)你貢獻(xiàn)的足夠多, 還有可能成為項(xiàng)目的核心人員, 領(lǐng)導(dǎo)項(xiàng)目的發(fā)展等機(jī)會(huì), 建立自己的技術(shù)影響力.

        既然參與開源項(xiàng)目的建設(shè)有這么多的好處, 作為一個(gè)小白或者對(duì)自己不太自信的同學(xué), 應(yīng)該怎么著手開始呢? 有沒有比較簡(jiǎn)單和容易上手的路線呢?

        到底怎么參與開源項(xiàng)目

        很多同學(xué)一上來很著急, 覺得自己水平還不夠, 源碼看不懂, 不知道怎么做開源貢獻(xiàn), 所以這個(gè)計(jì)劃就一直擱置著, 干著急.

        其實(shí)開源項(xiàng)目不僅僅是代碼, 各種水平或者階段的程序員都可以找到自己能夠做貢獻(xiàn)的地方. 比如:

        • 當(dāng)你發(fā)現(xiàn)項(xiàng)目的介紹中有錯(cuò)別字, 或者URL鏈接已經(jīng)失效, 你就可以提交一個(gè)?Pull Requests?來修改這些錯(cuò)誤.
        • 一個(gè)你經(jīng)常調(diào)用的包 (package), 如果發(fā)現(xiàn)它的測(cè)試用例不是很全面, 你可以專門為這個(gè)項(xiàng)目添加幾個(gè)測(cè)試.
        • 最近學(xué)習(xí)/工作中高頻使用的一個(gè)開源框架, 你覺得它的例子寫的不夠好, 對(duì)新手不夠友好, 這時(shí)候你就可以在文檔中添加一些易讀易理解的例子.
        • 當(dāng)你看到?Stack Overflow 或者一些開發(fā)者論壇上有人問某個(gè)開源項(xiàng)目怎么用的問題的時(shí)候, 你如果知道并回答了, 這也是貢獻(xiàn)的過程.

        上面舉的一些例子都比較容易上手, 不管你是一個(gè)在校生還是一個(gè)編程小白, 只要你會(huì)寫東西, 喜歡幫助別人, 樂于分享, 能夠細(xì)心和站在用戶使用的角度, 去優(yōu)化這個(gè)開源項(xiàng)目, 總有很多地方你可以參與進(jìn)來.

        開源項(xiàng)目不只是代碼, 你可以想像它其實(shí)是一個(gè)來自世界各地的志愿者組成的組織, 大家的共同目標(biāo)是打造一個(gè)產(chǎn)品(比如一款桌面游戲, 一個(gè)數(shù)據(jù)可視化的項(xiàng)目等), 產(chǎn)品提供給任何有需要的個(gè)人或者公司使用.

        在組織中需要有分工合作, 比如有人負(fù)責(zé)寫文檔, 規(guī)范的文檔提供給外界使用, 就像一個(gè)說明書. 有人負(fù)責(zé)組織一些線下的 meetup, 有人負(fù)責(zé)整理郵件列表, 有人負(fù)責(zé)規(guī)劃未來的工作要點(diǎn), 有人負(fù)責(zé)寫更多的使用 example, 讓用戶能夠更快的獲得他們想要的東西. 有的人負(fù)責(zé)寫核心的代碼等等.

        所以一上來不要太著急去寫代碼, 先讓自己沉到社區(qū)里面去, 看看大家討論什么問題, github 的 issues 板塊有大家提出來的一些bug或者存在的問題. 你可以先從一些邊邊角角的地方開始, 整理文檔也是一種貢獻(xiàn), 時(shí)間慢慢積累, 熟悉項(xiàng)目后才有可能提供核心代碼的貢獻(xiàn).

        說了這么多, 讓我們來看看開源項(xiàng)目的一些共同特點(diǎn).

        開源項(xiàng)目的通用結(jié)構(gòu)

        每個(gè)開源項(xiàng)目的人員組成和項(xiàng)目結(jié)構(gòu)都是不一樣的, 但是每個(gè)開源項(xiàng)目都會(huì)遵循一些通用的結(jié)構(gòu). 了解這些通用的結(jié)構(gòu)可以讓你在不同的開源項(xiàng)目中切換的更加游刃有余. 一個(gè)開源項(xiàng)目一般都會(huì)有以下的文件:

        • README: README.md 是一個(gè)項(xiàng)目總的介紹入口, 會(huì)在github的主頁中展示, 一般會(huì)介紹項(xiàng)目是做什么的, 有什么功能, 如何啟動(dòng)和參與項(xiàng)目等.
        • LICENSE: 每個(gè)開源項(xiàng)目都必須有一個(gè)開源協(xié)議 open source license. 想了解更多可以看阮一峰老師的 如何選擇開源許可證.
        • CONTRIBUTING: 對(duì)于想要參與開源項(xiàng)目的同學(xué)來說, 這個(gè)文檔非常重要, 如何參與開源項(xiàng)目, 方式和途徑有哪些這里會(huì)找到答案.
        • 其他文件: 較為優(yōu)秀和成熟的開源項(xiàng)目, 都會(huì)有tutorials, 使用示例, 詳盡的文檔等等, 來幫助新人更快的熟悉項(xiàng)目.

        除了以上的文件, GitHub還提供一些板塊方便用戶跟蹤項(xiàng)目的 Issues(問題/提升), Pull Requests(代碼合并請(qǐng)求), Roadmap(藍(lán)圖), Wiki(百科) 等. 這些板塊均可自行瀏覽和學(xué)習(xí), 較為大型的項(xiàng)目還會(huì)提供mailing lists(郵件列表), 比如 python 社區(qū)就有很多不同的郵件列表, 有的專門是開發(fā)專用的郵箱訂閱, 有些專門用來討論一般性的問題.


        國(guó)外的項(xiàng)目還會(huì)配有 Slack?(即時(shí)通訊工具) 方便大家討論, 國(guó)內(nèi)的開源項(xiàng)目可以在 README.md 文件上找到聯(lián)系人的微信進(jìn)入群聊或者是釘釘.

        以上的各種文檔和工具都是為了讓大家更快速了解項(xiàng)目, 更方便討論問題, 提供更高效的交流合作.

        怎么找到你想看的項(xiàng)目

        GitHub 上面的項(xiàng)目琳瑯滿目, 怎么找到適合自己入手的項(xiàng)目呢?

        1. 選擇一種語言

        首先從選擇你熟悉的語言開始, 比如Python, Java, JavaScript等. 再去找該語言下的項(xiàng)目. 最好是選擇受眾比較多的項(xiàng)目, 這樣社區(qū)比較活躍, 你提的問題一兩天內(nèi)就有人回復(fù). 怎么看社區(qū)的活躍度呢? 一方面可以看這個(gè)項(xiàng)目的Watch, Star, Fork數(shù)量.


        其次可以點(diǎn)擊項(xiàng)目主頁的Insights這個(gè)tab查看過去一周, 過去一個(gè)月的代碼合并次數(shù)以及參與的人數(shù)來看看活不活躍(社區(qū)還活著嗎)?


        2. 找到合適且感興趣的項(xiàng)目



        • 可以到?GitHub Explore?隨便逛逛, 看不同的?GitHub Topics,?GitHub Trending等.
        • HelloGitHub(https://github.com/521xueweihan/HelloGitHub)?這個(gè)項(xiàng)目每個(gè)月出一刊, 有點(diǎn)類似一個(gè)雜志, 在這里也許能夠找到你感興趣的內(nèi)容
        • Follow 一些 GitHub 上面的大神. 看看他們關(guān)注什么, 他們做了什么. 可以先從一個(gè)頂尖的項(xiàng)目切入, 找到項(xiàng)目貢獻(xiàn)最頻繁的人, 關(guān)注他們.
        • 找到感興趣的項(xiàng)目記得 star 和 watch(訂閱) 這個(gè)項(xiàng)目, 定時(shí)收到郵件通知, 就是開始關(guān)注和了解.

        3. 篩選適合新手解決的issue

        GitHub 有標(biāo)簽的功能, 可以對(duì)issues進(jìn)行分類, 你可以通過篩選, 找到適合新手, 簡(jiǎn)單的問題, 看看自己能不能理解并解決這類問題. 具體如何篩選可以看下面這張圖. 找到 good first issue?,?beginner?,?easy 這些標(biāo)簽, 適合新手上路的就對(duì)啦!??


        好啦艾瑞巴蒂, 講了這么多, 小豆作為過來人, 最后還有一些小技巧可以分享給大家~


        不要走馬觀花

        如果一直只是浮在表面的看, 不去關(guān)注, 不去行動(dòng), 就會(huì)發(fā)現(xiàn)自己很難鉆進(jìn)一個(gè)項(xiàng)目里. 不要對(duì)自己要求很高, 也不要追求完美, 先找到一個(gè)自己覺得還可以的項(xiàng)目, 未來幾個(gè)月就啃這么一個(gè)項(xiàng)目. 如果你能夠把一個(gè)啃下來, 后續(xù)切換到其他項(xiàng)目是非??焖俚?

        長(zhǎng)期堅(jiān)持

        也許短期內(nèi)不會(huì)看到什么進(jìn)步, 也許很長(zhǎng)一段時(shí)間內(nèi)自己在項(xiàng)目中仍然是個(gè)小透明. 給自己個(gè)半年時(shí)間, 長(zhǎng)期去做. 不要因?yàn)橐粫r(shí)半會(huì)兒沒有進(jìn)步, 項(xiàng)目也無法寫到自己的簡(jiǎn)歷里就灰心喪氣, 要有延遲滿足的能力.

        放下焦慮, 平常心看待

        一路上你會(huì)發(fā)現(xiàn)很多大牛, 也許你會(huì)發(fā)現(xiàn)自己差的東西太多了, 沒有關(guān)系, 從今天開始撿起來, 今天開始行動(dòng)起來. 種一棵樹最好的時(shí)間是十年前, 其次就是今天啦.

        文章中提及很多鏈接,?沒有辦法通過超鏈接的形式放到文章中,?我把相關(guān)鏈接都一一列在參考資料中, 感興趣可以深入探索~

        參考資料:

        • https://opensource.guide/how-to-contribute/
        • GitHub: https://github.com/
        • Meetup: https://www.meetup.com/home/
        • Pull Requests:?http://www.ruanyifeng.com/blog/2017/07/pull_request.html
        • Stack Overflow:?https://www.zhihu.com/question/20824615
        • Code Review:?https://juejin.cn/post/6844904009065578510
        • Slack:?https://slack.com/
        • GitHub Explore: https://github.com/explore

        • GitHub Topics: https://github.com/topics

        • GitHub Trending: https://github.com/trending

        瀏覽 119
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久久这里只有精品999 | 国产乱子伦-区二区三区 | 亚洲图片欧美综合 | 总裁受高h奶水双性吃奶男男 | 国产婷婷成人久久Av免费 | 玉莲的性荡生活 | 性视频网| 一级a一级a爰片免费免免在线 | 亚洲又粗又长 | 美女被 到爽 视频 |