人们普遍误解认为,为开源做贡献是困难的。您可能会想,“有时我甚至无法理解自己的代码;我怎么能理解别人的代码呢?”
放轻松。直到去年,我也是这么想的。阅读和理解别人的代码,并在其基础上编写自己的代码可能是一项艰巨的任务,但有了正确的资源,它并没有您想象的那么难。
第一步是选择一个项目。这个决定可能有助于将一个新手程序员变成一个经验丰富的开源贡献者。
许多对开源感兴趣的业余程序员被建议去查看 Git,但这并不是最好的入门方式。Git 由拥有多年软件开发经验的超级极客维护。它是一个寻找开源项目来贡献的好地方,但它对初学者并不友好。大多数为 Git 贡献的开发人员都有足够的经验,他们不需要资源或详细的文档。在本文中,我将提供一个初学者友好功能的清单和一些技巧,使您的首次开源贡献变得容易。
了解产品
在为一个项目做贡献之前,您应该了解它的工作原理。为了理解它,您需要亲自尝试一下。如果您发现该产品有趣且有用,那么就值得为其做出贡献。
初学者经常在没有首先使用软件的情况下尝试为一个项目做贡献。然后他们会感到沮丧并放弃。如果您不使用该软件,您就无法理解它的工作原理。如果您不知道它的工作原理,您如何修复错误或编写新功能?
记住:先试用,再改进。
检查项目的状态
项目有多活跃?
如果您向一个无人维护或休眠的项目发送拉取请求,您的拉取请求(或 PR)可能永远不会被审查或合并。寻找活动量大的项目;这样您将立即获得关于您的代码的反馈,并且您的贡献不会被浪费。
以下是如何判断一个项目是否活跃
- 贡献者数量: 不断增长的贡献者数量表明开发者社区对接受新的贡献者感兴趣并愿意接受。
- 提交频率: 检查最近的提交日期。如果是在上周,甚至最近一两个月内,则该项目正在被维护。
- 维护者数量: 维护者数量越多,意味着有更多的潜在导师来指导您。
- 聊天室/IRC 中的活跃程度: 繁忙的聊天室意味着对您的查询的快速回复。
初学者资源
Coala 就是一个开源项目的例子,它有自己的教程和文档资源,您也可以访问它的 API(每个类和方法)。该网站还具有吸引人的 UI,让您想阅读更多内容。
文档: 所有级别的开发人员都需要可靠、维护良好的文档来理解项目的细节。寻找在 GitHub(或任何托管它的地方)和像 Read the Docs 这样的独立网站上提供可靠文档的项目,其中包含大量示例,可以帮助您深入了解代码。

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

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

其他因素

-
维护者对新贡献者的态度: 以我的经验,大多数开源贡献者都渴望帮助新手加入他们的项目。但是,您也可能会遇到一些不太热情(甚至有点粗鲁)的人,当您寻求帮助时。不要让他们让您气馁。仅仅因为某人有更多的经验并不意味着他们有权粗鲁。还有很多人愿意提供帮助。
-
审查流程/结构: 您的 PR 将经过经验丰富的开发人员和您的同行的多次审查和更改——这就是您学习软件开发最多知识的方式。具有严格审查流程的项目使您能够通过编写生产级代码来成长为一名开发人员。
-
强大的 CI 管道: 开源项目将初学者引入持续集成和部署服务。强大的 CI 管道将帮助您学习如何阅读和理解 CI 日志。它还将使您获得处理失败的测试用例和代码覆盖率问题的经验。
-
参与代码项目(例如 Google Summer Of Code): 参与组织表明愿意致力于项目的长期发展。它们还为新手提供了获得真实世界开发经验并获得报酬的机会。大多数参与此类项目的组织都欢迎新手。
14 条评论