TranslateProject/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md

99 lines
7.8 KiB
Markdown
Raw Normal View History

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