作为业余爱好者加入开源项目是否很糟糕?


17

我已经考虑了大约六个月,我应该加入一个开放源代码的iPhone或iPad项目来磨练我在Objective-C中的技能,但是每次我这样做时,我都会看到我在大型项目中看到成千上万行代码最终说服我自己,我永远不会理解。我一直认为我的承诺最终只会给项目管理员和更多高级贡献者带来麻烦,因此我总是在最后一秒退缩。

我的问题本质上是,有中级经验的程序员加入开源项目时会很麻烦吗?


1
Macke的答案更为详尽,但是您胆大的问题的简洁答案是:不。
克里斯·布朗

1
@ChrisBrowne:好点。我已经编辑了答案以匹配。:)
Macke

Answers:


15

不,这不对。

如果您查看的项目代码库过于艰巨,请考虑:

  • 选择一个(甚至)较小的项目来处理。
  • 在项目中选择一个较小的任务:
    • 写一个例子/教程/演示
    • 更新和修复文档(所有项目,无论是否为OS,都需要更好的文档)
    • 修复许多低优先级但易于修复的错误(对代码的了解程度很高,开发人员通常很高兴,风险很小)
  • 有一些无需提交即可访问核心源的贡献的方法,例如:
    • 提交补丁,可以对其进行评论。
    • 派生和提交拉取请求(请参见上文)
    • 自己分叉并努力工作,只是看看它带您到哪里。如果您感到满意,请开发人员看一下您所做的一切,看是否有意义。

为了克服您的不接受提交的“恐惧”,首先要寻求安全点。这将使您和开发团队都对您的关系充满信心,并学习彼此的思维方式。随着您的进步(技能,经验,代码质量以及对OS项目团队的了解以及动态变化),您将能够解决更多的任务,同时减少麻烦。

它还可以帮助您寻找合适的起点,并查看团队可能适合您的条件。

例如,多年来,我为Buildbot做出了一些贡献。我刚开始修复一些小问题,然后通过修复一些明显的错误来提高Mercurial源代码步骤的质量。最后,我重写了大多数网页,并将html粘贴代码替换为基于模板的HTML生成解决方案。后者是几个月的辛苦工作中的几百次提交。

我也做了一些Mercurial的工作,但是那些家伙更挑剔,技术也更复杂,所以我还没有对内核进行任何修复。我做了一些错误报告,并写了一些小扩展,但是目前我还没有得到什么。

希望能帮助到你。


+1适用于buildbot-这是一个了不起的项目,拥有非常出色且乐于助人的维护人员。如果您想从一个好的项目开始,那绝对值得一看。
Nate

完整的业余爱好者呢?编程水平低,没有受过官方教育的人?
罗伊

1
@Roy在这种情况下,我将先调侃一下,然后修补源代码以从中学习。达到有效贡献的地步需要花费更多时间。您可能会更好地从自己(针对项目及其框架/库)遵循一些好的教程开始,并积累您的知识,以便知道在何处以及如何做出贡献。游戏模块(和插件)可以很好地发挥作用,既可以独自呆在沙盒中,又可以拥有核心开发人员的水平。
Macke 2015年

4

进入。监视开发列表一段时间,并在感到舒适时自我介绍。许多项目的bug修复或文档编制工作都比较简单,常规人员会很乐意向您指出。大多数项目对新手都非常友好,它们将使您足够快地从头开始,以便您可以成为该项目的真正资产。

一段时间后,您将熟悉代码库的结构和最重要的部分。学会理解这样的代码是编程中非常重要的部分,而开源是学习它的好方法。


2

去吧。有成千上万的初学者这样做。项目负责人可以帮助您找到您需要解决的事情。您逐渐成长为休息者。

哦,仅仅因为您不了解代码并不意味着它很好。我已经看到了一些严重的代码。其中有些很难理解,因为它编写得很差,并且比应有的要复杂得多。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.