开源新手指南

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

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

在本文中,我将介绍下面这三个话题:

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

什么是开源

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

开源软件(OSS)是指源代码可供他人查看、复制、学习、修改或分享的软件。

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

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

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

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

贡献于开源的好处

向开源项目或软件做贡献意味着“免费”让该项目变得更好。你应该会问自己,为什么我要关心或向自己强调“免费”呢?

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

  • 它能够帮助你提高现有的技能,特别是对于新手而言,因为它允许你边做边学。
  • 无论身在何处,你都可以与世界各地的优秀科技人士协作或共事。
  • 你可以公开自己的想法,从而改善软件、项目或社区,让世界变得更美好。
  • 你可以通过贡献开源来得到大家的认可,或者成为独特或伟大事物的一部分(获得自豪感)。
  • 它让你有机会成为一个人才济济、活力四射的社区的一分子,你可以从中汲取灵感,并结识志同道合的人。
  • 你可以因为贡献开源而获得报酬(OoO)!比如你可以参与一些实习,包括 谷歌编程之夏、Outreachy、谷歌文档季,以及 Open Collective 的 赏金计划等。

如何开始贡献

我相信你会对上面提到的最后一点感兴趣吧(o),那么,你该如何开始为开源软件做贡献呢?

是时候介绍一下 GitHub 了!

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

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

我不建议你在 GitHub 上搜索项目来开始贡献,这将是相当令人沮丧的。尽管你可以限定项目使用的编程语言来简化搜索过程,但仍然会有一大堆东西出现在你眼前。

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

  • First-timers only:一个很好的资源网站,你可以在上面找到新手友好的开源项目来开始贡献。
  • 你可以创建你自己的开源项目,把你美妙的想法变成现实,并允许其他人的合作和贡献。
  • 加入一个社区:你可以成为某个社区的成员,这也是传播开源思想的一种方式。你可以在谷歌上搜索当地的开源社区,并积极加入其中。

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

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

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

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

责任编辑:赵宁宁 来源: Linux中国
相关推荐

2010-06-07 16:10:53

HadoopOnDem

2022-04-08 12:56:52

Linux终端命令

2023-03-01 08:00:00

机器学习数据集

2010-06-21 12:39:56

OSPF路由协议

2009-11-16 08:58:43

PHP语言

2010-05-27 10:42:38

SVN配置文档

2021-12-30 10:26:37

Bash Shell脚本文件命令

2011-08-23 10:11:10

LinuxTop命令

2010-08-04 09:06:21

Flex安装

2023-03-15 09:46:07

R Markdown代码语法

2022-01-20 16:43:38

Bash 脚本ShellLinux

2022-02-28 11:02:53

函数Bash Shell语句

2010-09-01 16:56:11

无线局域网

2011-03-30 14:07:56

Ubuntu的安装

2010-08-02 09:36:22

Flex

2010-07-01 12:35:46

UML用例图

2021-08-28 17:30:51

LinuxSSH

2009-10-10 16:50:33

2010-05-24 16:36:14

2010-05-17 11:24:33

点赞
收藏

51CTO技术栈公众号