为开源项目贡献你的第一个代码

任何事情都有第一次。
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 ... 非常有帮助..

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

如此令人兴奋的帖子。对开源初学者真的很有帮助,感谢与我们分享这篇很棒的文章。

好帖!感谢你分享精彩的信息。

非常感谢这篇博文。再次感谢。真的是对开源的巨大贡献。

哇,很棒的博客文章。非常感谢这些有用的信息。

© . All rights reserved.