开源新手指南
什么是开源；贡献于开源的好处；如何开始贡献
开源
什么是开源；贡献于开源的好处；如何开始贡献
![](/data/attachment/album/202205/16/144822bal5z8ij44s4jcom.jpg)



*开源朗读者 | 六开箱*


作为一名技术人员，你应该时不时会看到“<ruby> 开源 <rt>  Open Source </rt></ruby>”这个词。你有可能在浏览推文、博文时看到过它，也有可能是在学习某一门编程语言或使用某个工具时，看到它的部分介绍写着：这个工具/语言是“开源”的。总之，开源无处不在。


在本文中，我将介绍下面这三个话题：


* 什么是开源
* 贡献于开源的好处
* 如何开始贡献


### 什么是开源


开源指的是这样一些软件、项目或社区：它们允许人们修改和分享，因为它们的设计目的就是为了让所有人都能访问。举一个关于菜谱的例子：你可以做你从未发明过的菜，因为发明这个菜谱的人公开了它。大多数时候，你也可以根据自己的口味烹饪，而不会呛到喉咙（开个玩笑）。



> 
> <ruby> 开源软件 <rt>  Open Source Software </rt></ruby>（OSS）是指源代码可供他人查看、复制、学习、修改或分享的软件。
> 
> 
> 


下面是开源软件和语言的一些例子：


* Linux 操作系统
* Google 的 Android 操作系统
* Firefox 浏览器
* VLC 媒体播放器
* Python 语言、PHP 语言、MySQL 数据库


与开源软件相反的是<ruby> 专有软件 <rt>  proprietary software </rt></ruby> / <ruby> 闭源软件 <rt>  closed source software </rt></ruby>，只有软件的创造者才能自由使用，其他人若想使用，就得先获得法律许可才行。例如 Adobe Photoshop、微软 Office 等。



> 
> 开源不仅限于软件或代码，技术领域的任何人都可以为开源做出贡献（各个角色）。有了开源，就有了透明度、可靠性、灵活性，并允许开放合作。
> 
> 
> 


### 贡献于开源的好处


向开源项目或软件做贡献意味着“免费”让该项目变得更好。你应该会问自己，为什么我要关心或向自己强调“免费”呢？如果你是新手，你可以阅读 [Edidiong Asikpo](https://hashnode.com/@didicodes) 的故事，她在 [这篇文章](https://edidiongasikpo.com/open-source-contributions-a-catalyst-for-growth-b823fc5752b1) 中说明了为什么开源是她成长的催化剂。


贡献开源的好处有很多，这里是其中一部分：


* 它能够帮助你提高现有的技能，特别是对于新手而言，因为它允许你边做边学。
* 无论身在何处，你都可以与世界各地的优秀科技人士协作或共事。
* 你可以公开自己的想法，从而改善软件、项目或社区，让世界变得更美好。
* 你可以通过贡献开源来得到大家的认可，或者成为独特或伟大事物的一部分（获得自豪感）。
* 它让你有机会成为一个人才济济、活力四射的社区的一分子，你可以从中汲取灵感，并结识志同道合的人。
* 你可以因为贡献开源而获得报酬（OoO）！比如你可以参与一些实习，包括 <ruby> <a href="https://summerofcode.withgoogle.com">  谷歌编程之夏 </a> <rt>  Google Summer of Code </rt></ruby>、[Outreachy](https://www.outreachy.org/)、<ruby> <a href="https://developers.google.com/season-of-docs">  谷歌文档季 </a> <rt>  Google Season of Docs </rt></ruby>，以及 Open Collective 的 <ruby> <a href="https://docs.opencollective.com/help/contributing/development/bounties">  赏金计划 </a> <rt>  bounty program </rt></ruby> 等。（LCTT 译注：国内也有类似的开源实习机会，如“开源之夏”。）


### 如何开始贡献


我相信你会对上面提到的最后一点感兴趣吧（<sup> o</sup>），那么，你该如何开始为开源软件做贡献呢？


是时候介绍一下 GitHub 了！


Github 是开源项目协作的大本营，因此它是一个开始贡献开源的好地方。没听说过 GitHub？没有关系！它提供了文档和指南，很容易就可以上手。不过我还是要提醒你，学习是一个循序渐进的过程，不要太心急喔。


Github 以公共<ruby> 存储库 <rt>  repositories </rt></ruby>的形式容纳了许多开源项目。对于某个项目，你可以提交一个<ruby> 议题 <rt>  issue </rt></ruby>，来说明你注意到的错误或问题（或进一步提出改进意见），也可以创建一个<ruby> 拉取请求 <rt>  pull request </rt></ruby>（PR），并说明你的更正和改进。


我不建议你在 GitHub 上搜索项目来开始贡献，这将是相当令人沮丧的。尽管你可以限定项目使用的编程语言来简化搜索过程，但仍然会有一大堆东西出现在你眼前。（LCCT 译注：对于可爱的小萌新来说，这实在是难以承受 >…<。）


为了更精准地找到适合自己的项目，这里有一些可供开始的途径：


* [First-timers only](https://www.firsttimersonly.com/)：一个很好的资源网站，你可以在上面找到新手友好的开源项目来开始贡献。（设计师朋友，我没有忘记你！你可以查看 [Open Source Design](https://opensourcedesign.net/) 这个网站，在上面也能找到新手友好的开源设计项目！）
* 你可以创建你自己的开源项目，把你美妙的想法变成现实，并允许其他人的合作和贡献。[这里](https://github.com/Ruth-ikegah/opensource.guide) 有关于如何创建开源项目的指南。
* 加入一个社区：你可以成为某个社区的成员，这也是传播开源思想的一种方式。你可以在谷歌上搜索当地的开源社区，并积极加入其中。


最后，我想给出几个有用的提示，供你在贡献开源项目时参考：


* 在加入之前，先对项目、社区或组织做一些研究；当你在做的时候，针对不清楚的地方提出问题。
* 当你加入社区时，尽量积极地介绍自己，并说明你能帮助项目的地方。
* **不要**认为自己无法为项目提供任何帮助，停止这种念头！你有很好的想法可以分享！
* 在存储库中看看别人提交的议题，（如果有的话）看看你能在哪些方面提供帮助，你可以关注带有“good first issue”、“help-wanted”、“first-timers only”等标签的议题。
* 在开始贡献之前，一定要先看一下贡献指南，这样你在贡献时就不会有冲突。



> 
> 哪怕只是使用一个开源工具也是一种贡献；参加一个开源活动也是一种贡献；做开源项目的志愿者，或者为开源项目提供赞助也是一种贡献。
> 
> 
> 


我想用非洲开源节的口号来结束：“未来是开放的”，所以快上车吧！


感谢阅读！


如果你还有疑问或需要帮助，请在 [这里](https://twitter.com/IkegahRuth) 联系我，我很乐意和你讨论开源，并帮助你做出首次贡献！


**LCTT 译注：读了这篇文章，你是不是想要马上投身于开源贡献呢？那么请考虑加入“Linux 中国翻译组（LCTT）”吧！我们有能帮助你快速上手翻译的 [维基](https://lctt.github.io/wiki/intro/lctt.html) ，有热心友爱的 QQ 群，你甚至还能够在我们的官网上获得属于自己的译者专页……心动了吗？那就立刻行动起来吧！阅读 [维基](https://lctt.github.io/wiki/intro/lctt.html) 以了解如何加入我们～**


（题图由 [Markus e](https://pixabay.com/zh/users/fotopirat-24835164/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=7170280) 在 [Pixabay](https://pixabay.com/zh/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=7170280) 上发布，经修改）




---


via: <https://ruthikegah.xyz/a-beginners-guide-to-open-source>


作者：[Ruth Ikegah](https://hashnode.com/@ikegah_ruth) 选题：[lkxed](https://github.com/lkxed) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

