原文:How to Contribute to Open-Source Projects – A Beginner's Guide,作者:Ankita Tripathi

如果你一直在考虑为一个开源项目做贡献,你可能正在权衡这样做的利弊。

你可能会听到这样的话:开源项目不会帮助你成长,或者它们不能改变你的职业轨迹,还有,你的贡献肯定不会为你的简历增添光彩。

如果你曾经听到过这样的话,这些人可能对为开源项目做贡献的好处了解不多,而实际上好处是很多的。

在这篇文章中,我将分享贡献机会和以及如何开始贡献。

许多人认为,开发人员总是在孤岛上工作,与外界没有任何联系。

但现在的开发者不一定是这样的,他们:

  • 在公开场合创造东西
  • 在社交媒体上很活跃,而且
  • 积极与世界各地的人联系

事实上,开源项目比其他任何东西都更能将开发者聚集在一起进行合作。

什么是开源?

你可能经常听到关于开源项目和在公开场合构建项目的说法,但这些术语是什么意思?

最简单的是,它意味着你所创造的东西是免费的,开放给任何人使用。它还意味着,随着合作的进行,你的项目会不断变得更好。

开放的博客平台

使用开源,你可以让其他人自由地学习或参与构建你现有的项目。

现在有很多平台可以让开发者有机会公开写作。有 Hashnode、Dev.to、谷歌的 Dev Library,还有更多。我们甚至可以称这些开发者为 “Developer-as-a-blogger”(DaaB),因为他们的博客贡献。:)

我已经在 Dev Library 工作了一年多。我现在已经看到了来自 80 多个国家的近 2000 多份稿件,相当不错!

如何开始编写技术教程

但是,作为一个开发者,你怎么知道你的博客创作之旅从哪里开始呢?

让我们关注以下提示:

  • 不要被冒名顶替综合症打败。无论你在技术职业中处于什么位置,冒名顶替综合症可能会不时地出现。即使有 7-8 年的经验,我有时也会流汗,认为自己是否足够好。

所以,不要担心。开始写作的最好方法是在你建立一个项目时尝试写作。解释给自己听,就像你在和朋友说话一样,帮助他们理解它。这样一来,任何读到你的教程的人都会知道如何建立这个项目。

  • 同一主题存在许多文章。这就是典型的情况。在世界上 70 亿人中,很可能有其他人正在写你写过的主题。

但你描述、定义和展示功能的方式将是不同的,专注于此。

  • 我甚至如何开始?。空白页的焦虑是存在的。为了克服这个问题,开始创建具有高级主题的部分。如果你愿意的话,可以制定一个大纲。然后开始在其中添加内容。确保添加更多的步骤、要点和视觉效果。

为了更好地组织和编辑你的内容,你可以参考谷歌的技术写作课程和风格指南,如 freeCodeCamp 的MailChimp 的

  • 如何进行首次贡献。第一次贡献是特别的,但也是令人不知所措的。为了确定合适的 GitHub repo,寻找你专业领域的开源项目。与那些在你的技术栈中做出贡献的人建立联系。了解流程并开始贡献。

现在我们已经了解了这些要点,你已经准备好启动你的开源之旅了。

我的开源之旅

为了帮助你开始为你的专业领域的项目做贡献,我将在一分钟内分享一些提示和指南。但首先,再介绍一下我的情况。

直到 2019 年,我都不知道开源这个词。是的。我在社交媒体上并不活跃,除了 LinkedIn,那里没有人谈论开源。

总而言之,我的视野相当狭窄。

但由于我是一名科技作家,我是一个名为 Write the Docs 的全球科技作家社区的活跃成员。我在浏览他们的 Slack 频道时,发现了 Google Season of Docs。

我浏览了参与组织的名单,发现了一个有趣的组织。然后,我通过他们的 Slack 频道联系了他们,并提出担任志愿者。

The Good Docs Project 做了一年的志愿者,我得到了很多机会。我们为各种使用情况创建了开源模板,例如:

  • 用于全球开放空间组织的词汇表模板
  • 一个入职模板
  • 一个 API 模板
  • 文档模板

一年后,在建立人脉并积累经验后,我申请成为参与者。 Metanorma 组织看到了我的志愿服务经验,并选择了我参加 GSoD'21。正是这样,我成为了不断发展的开源社区的一员

如何开始为开源项目做贡献

当你开始做贡献时,不要只关注结果——要关注过程。

以下是一些帮助你开始贡献的要点:

学习 Git 和 GitHub

在寻找可供贡献的仓库之前,先对 Git 命令和 GitHub 平台 进行实践了解。:) 获得对以下内容的基本了解:

  • 如何复刻(fork) repo
  • 如何进行提交(commit)
  • 如何合并(merge)提交的内容
  • 如何提出拉取请求(pull request,简称 PR)

在许多其他的 Git/GitHub 概念中,这些是最重要的一些。

如果你想了解更多,这里有一些有用的资源:

浏览一些项目

现在你已经很熟悉这些工具和软件了,你如何决定从哪个项目开始?

嗯,首先,从你感兴趣的主题开始。浏览 github topics,搜索你想做的事情。例如,如果你想浏览有关 Python 的项目,那么你可以用 这个

除非是非常小众的东西,否则你应该找到大量有关你所选主题的项目来开始你的贡献。

一旦你找到了一个项目,就去找那个 repo 的初学者友好问题。为此,输入 github.com/[所有者]/[仓库]/contribute。选择一个问题来开始贡献。你可以在 “适合初学者的第一个问题(good first issue for beginners)”标签下找到这些问题。

如果你在 GitHub 上一直很活跃,你的探索页面(explore page)会显示一些基于你过去的贡献、收藏或复刻的精心推荐。

参与开源计划

参加主要组织举办的开源项目。如果不是作为贡献者,那就作为志愿者来学习、构思、贡献,然后参加。

例如:

大量探索

开源贡献的最大盲点是没有进一步观察或没有探索。

开源项目并不局限于代码贡献。其他各种贡献的方式有:

更新文献

对于任何项目来说,拥有一个详尽的 README 是很重要的。因此,潜心改进你最喜欢的项目的 README,使之更容易为他人所用。

那么,你是如何做到这一点的呢?

嗯,对于 Metanorma 项目:

  • 在下载本地版本后,我执行了文档中提到的操作。这有助于我找出遗漏的步骤、错误或任何变动。
  • 接下来,我对现有的文档进行了定性和定量的分析。这帮助我找出缺失的 URL,以及难以理解的部分。
  • 找到这些部分后,我建立了一个适当的信息结构。然后,文档的信息结构将帮助你专注于内容。

帮助进行设计

组织确实需要他们的项目设计师。因此,如果您是设计师,请为开源组织创建海报、视觉效果或轮播。

成为社区建设者

开源是关于社区的一切。人们走到一起,一起编码,一起贡献,并一起改进项目。

成为这些开源项目的社区人员。把贡献者聚集在一起。与他们一起履行各种职能:

  • 分配任务
  • 解决问题
  • 组织聚会
  • 建立大使计划
  • 举办研讨会
  • 创建时事通讯

本地化的帮助

帮忙把项目翻译成你熟悉的语言。假设你是一个以西班牙语为母语的人。在你的社区寻找一些项目。把主要的项目从英语翻译成西班牙语,这样项目就能被全世界更多的人使用。

要了解一些其他的贡献方式,请参考 freeCodeCamp 的这个仓库

需要贡献的开源项目

这是一个各种开源项目的列表,这些项目有一个活跃的社区,等待人们的贡献。他们有从初级到专家级的问题。

  • Supertokens。Supertokens 是一个开源的 auth0 替代品,它允许你在 30 分钟内设置认证。该项目提供企业内部部署,给予你对用户数据库的所有权。要做出贡献,请关注他们的 GitHub repo
  • Nimble Edge。Nimble edge 是一个去中心化的平台,它正在把世界从传统的云计算带向边缘计算。从云计算到边缘计算的转变将允许设备之间进行智能通信,共享工作负载,并相应地使用云。要做出贡献,请关注他们的 GitHub repo,留意问题,并开始贡献。
  • Dev library。Dev Library 是谷歌新的开源平台,显示由外部开发者使用任何谷歌技术(Android、Angular、Flutter、Firebase、谷歌云、机器学习)创建的内容。该平台被划分为产品领域,显示可以贡献的优质项目。要做出贡献,请关注任何开源项目并挖掘贡献。
  • Codetriage:通过从这个金矿中找到任何开源 repo 开始贡献。
  • The Good Docs 项目。The Good Docs 是一个创建模板的开源社区,以消除空白页的焦虑感。该社区希望为任何事物创建模板。如果你觉得你也有一个模板的想法,请加入他们的 slack 频道。要做出贡献,请关注他们的 GitHub repo,加入他们的 slack 频道,并开始贡献。

我们在 Dev Library 上也看到了一些开发者使用谷歌技术的令人难以置信的工作。有些人建立了使用 Angular 的 Spotify 的克隆应用,有些人建立了一个项目,使用皮肤病变图像检测黑色素瘤(一种皮肤癌),而有人创建了一个 Whatsapp 图像采集器副本

当然 freeCodeCamp 本身也是一个开源项目。freeCodeCamp 可以成为你学习和贡献于开源的首选平台。

结束语

那么你怎么看--是时候开始为开源做贡献了?

看看 Angular 领域的开源专家、GitHub 明星人物 Santhosh Yadav 是如何分享的:

“对开源的贡献以我从未想象过的方式帮助了我。我开始时是把它作为回馈社区的一种方式,并得到了社区的认可。然后我成为了 Angular GDE,也是印度的第一个 GitHub 明星。

OSS 帮助我深入学习技术,并帮助我找到了一份好工作。我甚至做了 1 年半的顾问,我的开源工作帮助我轻松地获得了客户。

我能够给我的家人一个好的生活。在开始开源之前,我有 10 年的时间是靠定期领工资生活的,而它改变了我的生活”。

这些故事告诉我们,开源贡献可以改变你的职业轨迹。不管你的工作情况如何——开始为开源项目做贡献吧。