[#]: subject: "What you actually need to know about open source to get started"
[#]: via: "https://opensource.com/article/22/11/get-started-open-source"
[#]: author: "Katie Edwards https://opensource.com/users/kaedward"
[#]: collector: "lkxed"
[#]: translator: "yzuowei"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15492-1.html"
关于开源,你需要知道些什么
======
![][0]
> 一份用简单直白的语句来解释开源的新手指南。
要是你想要(或需要)知道 [开源][1] 的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词,因为这个词总是被人不断的提起。
我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2]、数据科学、软件的来龙去脉……直到一年后的今天,我依然感到难以消化。
但这正是为什么我要写这篇文章。我想要让开源变得不那么令人生畏。毕竟,开源的中心是一个支持型的学习社区 —— 这个社区对所有人开放,无论你是否有技术经验。
我会从基础中的基础开始。
### 什么是开源?
在此声明,业界对开源的定义可以在 [开放源代码促进会][3] 的网站找到。
然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者用它做任何你想做的事。
这里面有些是真的,而有些则属于常见的误解,其中之一就是关于花费。
#### 开源只要 0 元
这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目营利的公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利?
拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以从产品的管理,数据的储存,以及对客户的支持中获利。
很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户解决软件问题并为客户解答疑惑。数据储存也并非免费,这也是能为公司带来收入的另一领域。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。
- **开源代码是公开访问的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改和重新发布。
- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整该项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和其他所有人对其修改。
- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有 [合适技能][4] 的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。
比如说,你对一个目标是对地球上所有的鸟类进行分类的项目感兴趣。你恰好很喜欢恐龙,特别是那些最终进化成如今的鸟类的恐龙。于是,你为所有最像鸟类的恐龙提交了条目。项目所有者在看到这些后可能会想:“不错,这都是些很棒的史前鸟类。”但他们也可能会认为:“嗯……这些恐龙看起来像鸟,但他们还不是鸟,因此他们不属于鸟类百科。”
幸运的是,项目里的工作通常有法可依。开源项目通常有着贡献指南和行为准则,所以你不用担心你会加入什么使得项目脱轨的东西。
### 为什么选择开源呢?
那么,在众多贡献之后(如果这些贡献完成的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价?
这个问题有很多回答。我在这里给出了一些:
- 创业是艰难的,如果你开发的项目展现不出赚钱的潜力则尤其如此。召集一群志同道合的人,没有承诺也没有对薪水的期望,相对而言要简单得多。
- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目、极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。
- 围绕各种规模的开源项目形成的团体促进了支持型社区的成形,在这里贡献者与旁观者都可以练习他们的技能,改进他们常用的软件,互教互学,并为发声被听到而感到振奋。很多开源社区本质上就是高度集中的线上爱好者俱乐部。
### 我该如何参与呢?
现在你可能会问你自己:“我知道了这些信息又可以做些什么呢?我能贡献开源项目吗?如果我不够优秀的话该怎么办?”
不要害怕 —— 即便是 [新手][5] 也欢迎为开源项目做贡献。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被“鸟类百科”所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里愉快地共存)。
你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目“需要举全村之力”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。
简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎可以保证会被张开双臂欢迎。
### 现在就加入开源吧
还是不确定应该从哪开始?这里有些能帮助你的想法和资源:
- [Up For Grabs][7] 是一份“专门为新贡献者策划任务的开源项目清单。”这里很适合新贡献者们来寻找简单的初次 PR 机会,这次机会也能让你探寻你更喜欢哪种贡献。
- 来看看 GitHub 上的这份 [新手友好项目][8] 列表吧。
- 如果你还是缺乏灵感,考虑一下[贡献][9](或一起“飞”) 红帽的开放设计系统 [PatternFly][10]。
- LCTT 夹带私货:你还可以通过参与 LCTT 的翻译工作来首次体验如何参与开源,这几乎简单到你只需要懂一点点英文和一些热情,本文就是由开源贡献者翻译贡献而成的。入口在此: https://linux.cn/lctt/
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/11/get-started-open-source
作者:[Katie Edwards][a]
选题:[lkxed][b]
译者:[yzuowei](https://github.com/yzuowei)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/kaedward
[b]: https://github.com/lkxed
[1]: https://opensource.com/resources/what-open-source
[2]: https://opensource.com/resources/what-is-git
[3]: https://opensource.org/osd
[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code
[5]: https://opensource.com/article/18/4/get-started-open-source-project
[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source
[7]: https://up-for-grabs.net/?ref=hackernoon.com#/
[8]: https://github.com/MunGell/awesome-for-beginners
[9]: https://github.com/patternfly
[10]: https://www.patternfly.org/v4/get-started/design
[11]: https://img.linux.net.cn/data/attachment/album/202301/30/110936lhhk216wajijdh22.jpg