所以你想(或需要)弄清楚 “开源” 到底是什么意思。 我将介绍开源的基础知识,无论你是否有兴趣为一个项目做出贡献,还是想在一个新工作中了解这个不断被提及的术语。
完全公开:我是一个技术经验很少的人,在一个非常技术化的开源环境中从事内容设计的边缘工作。 鉴于我从事营销和沟通的背景,当我进行这种职业转换时,我感觉就像一条离开了水的鱼。 Git、数据科学、软件的来龙去脉......一年后的今天,它仍然有很多东西需要理解。
但我写这篇文章就是为了这个。 我想帮助大家减少对开源的恐惧。 毕竟,开源的核心是一个支持性的学习社区——为每个人而建,无论是否有技术经验。
我将从最基本的开始。
什么是开源?
郑重声明,行业对开源的定义可以在 开源促进会 网站上找到。
然而,人们普遍认为的“开源”软件通常是指它不花钱,源代码可以访问,任何人都可以为其做出贡献,你可以重新分发它或用它做任何你想做的事情。
其中一些是真的,而另一些则涉及到一些常见的误解,其中之一就是成本。
开源花费 0 美元
这是真的吗? 通常,但并非总是如此。 由于其代码是公开可用的,因此可以免费获得开源软件。 但是,以营利为目的的公司确实围绕开源项目存在。 但是,如果该软件可以免费获得,那么开源公司如何生存? 他们如何赚钱?
拥有“免费产品”的概念违反直觉。 但事实就是这样:公司不必出售软件才能从产品管理、数据存储和客户支持中获利。
许多公司都采用订阅模式,提供客户支持以防出现错误或一般性困惑。 数据存储不是免费的,因此这些公司可以在这方面带来收入。 在这方面,“产品”不是软件,而是订阅的好处。
- 源代码是可访问的:这是真的吗? 是的,永远都是。 这种可访问性是采用“开源”一词的先决条件。 源代码必须可以查看、使用、修改和重新分发。
- 你可以用代码做任何你想做的事情:这是真的吗? 视情况而定。 受许可条款的约束,对如何使用代码有一些限制,但通常你可以随心所欲地使用它。 无论是调整项目以满足特定需求,还是将其用作其他项目的基础,开源软件都属于你,也属于其他人,可以对其进行修改。
- 任何人都可以为开源项目做出贡献:这是真的吗? 是的 - 在限制范围内。 任何拥有 正确技能 的人都可以为开源做出贡献。 但是,这并不意味着所有贡献都会被接受和实施。
例如,假设你对一个项目的感兴趣,该项目的最终目标是创建一个包含世界上所有鸟类类型的目录。 你非常喜欢恐龙,尤其是那些最终可能进化成现代鸟类的恐龙。 因此,你为所有最像鸟类的恐龙贡献了条目。 项目所有者可能会看到这一点并认为,“太好了,这些是一些很棒的史前鸟类。” 但是,他们也被允许说:“嗯,这些恐龙很像鸟类,但从技术上讲它们还不是鸟类。 它们可能不应该出现在 Birdpedia 上。”
幸运的是,项目通常不会在无法无天的条件下工作。 开源项目通常附带贡献指南和行为准则,因此你不必担心你的添加会脱轨。
为什么选择开源?
那么,在做出所有贡献之后(如果它真的完成了),为什么人们会免费赠送他们的软件? 如果这么多人投入时间和精力来创造一些东西,为什么他们不团结起来并标上价签呢?
这个问题有很多答案。 这里有一些
- 创业很难,尤其是如果你正在从事的项目没有为赚钱机器奠定坚实的基础。 在没有承诺或期望获得报酬的情况下,团结一群志同道合的人可能会更容易。
- 大多数开源社区由有兴趣改进软件或将其变为现实的人组成,但他们没有时间或兴趣致力于全职从事项目。 有时,开源代表激情项目、极客团体和针对恼人问题的众包解决方案。
- 围绕各种规模的开源项目形成的团体培养了支持性社区,贡献者和旁观者都可以在其中练习技能,改进他们经常使用的软件,互相教导和学习,并感到有权发表自己的声音。 许多开源社区本质上都是高度集中的在线爱好俱乐部。
我在哪里参与?
现在你可能会问自己,“但是我该如何处理这些信息? 我可以为开源项目做出贡献吗? 如果我还不够好怎么办?”
永远不要害怕——即使是 初学者 也欢迎为开源项目做出贡献。 这是在与社区朝着更大的目标努力的同时磨练你的技能的好方法。 而且,正如我之前所说,最糟糕的情况是你的更改没有合并到 Birdpedia 中(那是因为那些产品所有者只是看不到你对 Birdpedia 的愿景,在那个愿景里鸟类及其祖先兴高采烈地共存于一个与鸟类相关知识的在线世界中)。
[ 相关阅读 我们为什么要为开源软件做贡献? ]
你必须知道如何编码才能为项目做出贡献吗? 与普遍的看法相反,不,你不必。 项目的蓬勃发展需要“一个村庄”,这意味着它们需要来自不同背景的人的投入。 视觉设计师、作家、营销人员、审阅者、翻译人员、主题专家,甚至只是最终产品的用户都是有价值的贡献者。 他们不仅有助于构建和改进产品,而且还可以识别错误、提出改进建议、传播有关该项目的信息并总体上加强社区。
简而言之,无论你的背景或经验如何,如果你对开源或特定项目感兴趣,你几乎肯定会受到热烈欢迎。
立即开始使用开源
仍然不确定从哪里开始? 这里有一些想法和资源可以帮助你入门
- Up For Grabs 是一个“开源项目列表,其中包含专门为新贡献者策划的任务。” 这是找到一个简单的第一个 PR 机会的好地方,这也是找到你喜欢的贡献类型的好方法。
- 查看 GitHub 上这个 对初学者友好的项目 列表。
- 如果你仍然没有受到启发,请考虑 贡献 (或使用) PatternFly,Red Hat 的开放设计系统。
2 条评论