为开源项目做出您的首次贡献

万事开头难。
351 位读者喜欢这篇文章。
women programming

WOCinTech Chat。由 Opensource.com 修改。CC BY-SA 4.0 许可协议

人们普遍误解,认为为开源做贡献很难。您可能会想,“有时我甚至看不懂自己的代码;我怎么能理解别人的代码呢?”

放轻松。直到去年,我也是这么想的。阅读和理解别人的代码,并在其基础上编写自己的代码可能是一项艰巨的任务,但是有了正确的资源,它并没有您想象的那么难。

第一步是选择一个项目。这个决定对于将一位新手程序员转变为经验丰富的开源贡献者至关重要。

许多对开源感兴趣的业余程序员被建议查看 Git,但这并不是最好的入门方式。Git 由具有多年软件开发经验的超级极客维护。它是一个寻找可以贡献的开源项目的好地方,但对初学者并不友好。大多数为 Git 做贡献的开发人员都有足够的经验,他们不需要资源或详细的文档。在本文中,我将提供一份初学者友好功能的清单,以及一些使您的首次开源贡献变得容易的技巧。

了解产品

在为一个项目做贡献之前,您应该了解它是如何工作的。要理解它,您需要亲自尝试一下。如果您发现该产品有趣且有用,那么就值得为其做贡献。

通常,初学者在没有首先使用软件的情况下就尝试为一个项目做贡献。然后他们会感到沮丧并放弃。如果您不使用该软件,您就无法理解它是如何工作的。如果您不知道它是如何工作的,您如何修复错误或编写新功能呢?

记住:先试用,再破解。

检查项目状态

该项目有多活跃?

如果您向一个无人维护或休眠的项目发送拉取请求,您的拉取请求(或 PR)可能永远不会被审查或合并。寻找活动量大的项目;这样您将立即获得关于您的代码的反馈,并且您的贡献不会被浪费。

以下是如何判断一个项目是否活跃的方法

  • 贡献者数量: 越来越多的贡献者表明开发人员社区对此感兴趣,并且愿意接受新的贡献者。
  • 提交频率: 检查最近的提交日期。如果它在过去一周内,甚至一两个月内,则该项目正在被维护。
  • 维护者数量: 维护者数量越多意味着有更多的潜在导师来指导您。
  • 聊天室/IRC 中的活跃程度: 繁忙的聊天室意味着对您的查询的快速回复。

初学者资源

Coala 就是一个开源项目的例子,它有自己的教程和文档资源,您还可以在其中访问其 API(每个类和方法)。该网站还具有吸引人的 UI,让您想阅读更多内容。

文档: 所有级别的开发人员都需要可靠、维护良好的文档来理解项目的细节。寻找在 GitHub(或任何托管位置)和像 Read the Docs 这样的独立站点上提供可靠文档的项目,其中包含大量示例,可以帮助您深入研究代码。

Coala Newcomers' Guide screen

教程: 解释如何向项目添加功能的教程对初学者很有帮助(但是,您可能不会在所有项目中都找到它们)。例如,coala 提供了 编写 bears 的教程(用于执行代码分析的 linting 工具的 Python 封装器)。

Coala UI

标记的问题: 对于刚开始弄清楚如何选择他们的第一个项目的初学者来说,选择一个问题可能是一项更艰巨的任务。标记为“difficulty/low”、“difficulty/newcomer”、“good first issue”和“low-hanging fruit”的问题对于新手来说可能是完美的。

Coala labeled issues

 

其他因素

CI user pipeline log
  • 维护者对新贡献者的态度: 以我的经验来看,大多数开源贡献者都渴望帮助新手加入他们的项目。但是,您也可能会遇到一些不太欢迎(甚至有点粗鲁)的人,当您寻求帮助时。不要让他们让您气馁。仅仅因为某人拥有更多经验并不意味着他们有权粗鲁。外面有很多其他人想要提供帮助。

  • 审查流程/结构: 您的 PR 将经过经验丰富的开发人员和您的同行的多次审查和更改——这就是您学习软件开发最多知识的方式。一个具有严格审查流程的项目使您能够通过编写生产级代码来成长为一名开发人员。

  • 强大的 CI 管道: 开源项目向初学者介绍了持续集成和部署服务。强大的 CI 管道将帮助您学习如何阅读和理解 CI 日志。它还将使您获得处理失败的测试用例和代码覆盖率问题的经验。

  • 参与代码项目(例如,Google Summer Of Code): 参与组织表明愿意致力于项目的长期发展。它们还为新手提供了获得真实世界开发经验并获得报酬的机会。大多数参与此类项目的组织都欢迎新手。

7 个初学者友好的组织

标签
User profile image.
我是一名开源开发人员和编程语言爱好者。我喜欢编写 Go、Rust、Elixir、Clojure 等语言。

14 条评论

很棒的文章.....对像我这样的开源初学者真的很有帮助....?

感谢分享这类文章。

我读了您的帖子,我真的很喜欢它,感谢分享。有用的信息。

很棒的文章 bhaiya ... 非常有帮助..

非常感谢您分享这类信息。您的文章提供了很好的信息和知识。

如此激动人心的帖子。对开源初学者真的很有帮助,感谢您与我们分享这篇很棒的帖子。

好帖子!感谢您分享很棒的信息。

非常感谢您的博文。再次感谢。真正为开源做出了巨大贡献。

哇,很棒的博文。非常感谢您提供这些有用的信息。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可协议获得许可。
© . All rights reserved.