开源新手指南
开源
![](/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/) 荣誉推出


OK
As a techie, you should have come across the term *Open Source*, maybe in some random tweet, blog post, or even when learning a programming language or tool and part of the definition says: this tool or language is open source. It's actually everywhere.

In this article, I will be writing about:

What Open Source is?

Benefits of contributing to Open Source

How to start contributing


Open Source refers to software, project, or community where people can modify and share ideas because it's designed to be publicly accessible. A relatable example will be your favorite recipe, you are able to cook that dish you never invented because that recipe was made open by the owner. Most times, you can also cook it your style just to suit your taste without getting choked in the neck (*just joking*).

Open Source Software (OSS) is software that the source code is available to others who would like to view that code, copy it, learn from it, alter it, or share it.


Some examples of Open Source Softwares and Languages:

Linux Operating system

Android by Google

Firefox browser

VLC Media player

Python, PHP, MySQL


In contrast to OSS, we have proprietary or closed source software where it is only accessible to creators of the software and for others to use it, there would be legal permission. Eg Adobe Photoshop, Microsoft office.

Open Source is not just about software or code, absolutely anyone in the tech space can contribute to open source (every role). With open-source, there is transparency, reliability, flexibility, and allows for open collaboration.


Contributing to Open Source projects or software means making that project better for free. You should be asking yourself, *why should I even care or stress myself for free*. For starters, you can take a look at how [Edidiong Asikpo](https://hashnode.com/@didicodes) narrates how Open source was a catalyst for growth for her, [here](https://edidiongasikpo.com/open-source-contributions-a-catalyst-for-growth-b823fc5752b1).

Amongst the many benefits, here are some:

Open Source helps you improve on your existing skills, especially if you're a beginner as it permits you to learn while doing.

You get to collaborate and work with amazing tech personalities all over the world despite your location.

You are making the world a better place by making open your ideas to improve the software, project, or community.

You get recognized for contributing or being part of the something unique or big (

*the feel of pride*)It gives you the opportunity to be part of a vibrant community of great minds you can draw inspiration from and meet like-minded people.

You can get paid to contribute to open source projects (

*Interesting!*). Internships like[Google Summer of Code](https://summerofcode.withgoogle.com/),[Outreachy](https://www.outreachy.org/),[Google Season of Docs](https://developers.google.com/season-of-docs),[bounty program](https://docs.opencollective.com/help/contributing/development/bounties)by Open Collective, etc.

I'm sure my last point was interesting to you, So **How do you start contributing to OSS?** Here's how:

Let's talk about **Github**

Github is the house of collaboration for OSS projects so it's a great place to start contributing to open source, but this shouldn't scare you as if you don't know how to use it, it is learnable (documentation and guides) noting that learning is a gradual process.

Github houses many open source projects in form of public repositories. So you see a project, you either submit an issue suggesting ways to fix the errors or problems you have noticed with the project (*ideas*) or create a pull request with your corrections and improvements.

It's going to be quite frustrating if I advise you use the explore area on Github to search for projects cause you would see a lot in your face, although you can streamline your search by languages.

To be more specific, here are some ways you can start:

[First-timers only](https://www.firsttimersonly.com/): A great resource site to find beginner-friendly open source projects, to begin with.

Designers I got you covered! You can check out

[Open Source Design]for beginner-friendly design projects too

You can create your own open-source project bringing your wonderful ideas to life and allowing others to collaborate and contribute. You can check

[here](https://github.com/Ruth-ikegah/opensource.guide)for a guide on how to start an open-source project.Joining a community: You can be part of a community as a way of promoting the open-source way. With a google search on local open-source communities and be actively part of them.


Finally, here are some useful tips when contributing to an open-source project:

Do some research on the project, community, or organization before joining, and when you do, ask questions where not clear.

When you join the community, try to be active by introducing yourself and stating areas where you can help the project

Don't think you can't offer anything to the project, kill that thought. You've got wonderful ideas to share.

Scout for issues on the repository(if any) to see where you can help, issues having labels like

*good first issue, help-wanted, first-timers only*is a great place to start.Before starting to contribute, be sure to go through the contributing guidelines so you won't have conflicts contributing.


Just using an open-source tool is contributing, attending an open-source event is contributing, as well as volunteering or donating to one.


I'd end with Open-Source Africa Festival Slogan: ** THE FUTURE IS OPEN**, so join the train.

Thanks for reading!

If you still have doubts or need help starting, send a message [here](https://twitter.com/IkegahRuth), I will be glad to talk to you about open source and help you make your first contribution.