Answers:
我的第一个开源贡献是为我以前在以前的付费项目上使用过(如果没有它的话,将会遭受很大的损失)的图书馆。在我的初次使用中,我发现了代码中的错误,因此我创建了一个补丁,加入了该项目,并将其提交进行审查。
大约8个月后,当我有空闲时间时,我决定通过为项目做出更多的贡献来回馈(并致力于我的开发技能)。因此,我克隆了存储库并开始熟悉代码库。在向代码库提交次要补丁修复并监视功能请求几周后,我收到了一个功能请求,为该项目添加了一个相当重要的模块。
由于生成许多单独的补丁程序对于任何重要的开发都是非常繁琐的工作,因此我将存储库克隆到git hub上的一个分支,并开始删除代码。几周又几千行代码之后,项目负责人和我一起以与其他代码库一致的方式,将修复程序集成和测试到库中。
我从中学到了很多宝贵的经验:
该特定项目基于在所有级别的网络协议上生成和解码网络数据包。我对低级网络很有兴趣,因此很高兴与另一位对此领域有共同兴趣和知识的开发人员进行讨论。
如果您只想弄湿自己:找到一个已经使用的项目;克隆存储库;并开始查看您是否可以修复一些错误和/或添加一些单元测试。用新鲜的眼光看别人的代码库似乎很吓人,但这是学习中非常有价值的技能。提交一些补丁。您可以期望您的代码在开始时会受到严格审查。不必担心,这是获得项目管理员信任的正常过程。
在与项目建立绩效基础后,管理员开始寻求更多职责,例如提出新功能或要求分配以实施功能请求。
如果您在一个主要的开放源代码存储库网络(github,sourceforge,google代码)上找不到一个已经存在的项目,请考虑一个您真正想要使用的应用程序,该应用程序尚不存在,然后启动您自己的应用程序。
做好谦卑的准备,并期望工作被拒绝,以便进行进一步的修订。任何人都可以向开放源代码项目中添加代码的神话是完全错误的。您和推送访问之间始终有一个网守。您的代码越好,从长远来看,随着您对项目管理员的信任,对代码的审查就会越少。如果这是您的项目,那么您将成为该网守。
更新:
我只是考虑了一下,就意识到我没有理会提到很多答案都引用了哪个项目。对于那些想知道的人,它是SharpPcap。首席开发人员Chris Morgan非常专业,而且观点明确。他为项目管理工作做得很艰辛,并教会了我很多有关OSS项目成熟的知识。
由于个人时间的限制,一年多来我一直无法提供代码,但我仍然尝试通过潜入Stack Overflow并偶尔回答有关SharpPcap的问题来回馈他人。
我建议您在这里找到最合适的衣服:
如果您有一个已经使用,了解和关心的开源项目,那么它应该是您尝试的第一个候选人。否则,想想你什么会像一般做的和搜索这方面的项目。
找到潜在项目后,请不要着急。尝试自己使用它。从描述和评论看来,它的作用是否令人满意?如果不是的话,那还不是一个完整的表演终结者。也许这是您进入并真正有所作为的机会。毕竟,没有人需要其他开发人员来提供完美的产品。但是,当您在感兴趣的领域获得新技术的第一手经验时,它将为您提供重要的见解,使其成为该项目的一部分。
同样在开始在项目上投入太多时间并了解其来龙去脉之前,请考虑在项目邮件列表,论坛甚至是错误跟踪系统中闲逛几周。如果您将开始定期为该项目做贡献,那么您将在那里花费很多时间。
弄清楚:您喜欢在附近闲逛,还是对您有拖累?感觉这个项目有一个良好而充满活力的社区,还是快要死了?那里的核心人员似乎在鼓励和指导新移民,还是您将自己生活?
对可能在不同领域的几个项目执行这些步骤,并且当您加入错误的团队时,您不太可能感到失望。这样的经历可能会阻止您将来再次这样做。
还有一些想法:
如果您真正感兴趣的项目是一个知名度很高的项目,并且周围有很多开发人员和活动,那么您可能会很难在这里建立足够的声誉,例如获得权利或在社区中扮演有趣的角色。在这种情况下,请考虑加入具有较低可见性的相关衍生项目。例如,与其尝试开始为jQuery做贡献,不如寻找适合您的jQuery插件。稍后,您可以考虑“向上移动”。
如果您喜欢一个项目,但对它的大小,复杂性或代码质量要求感到恐惧,请考虑从支持角色开始,例如测试,文档维护或错误报告验证。如果您在项目邮件列表中询问,他们目前最需要哪种帮助,他们将非常乐意为您提供指导。:)
这样,您将可以在项目中学习并建立声誉,同时为项目做出更多贡献,这比开始提交次标准补丁之前要提交的次标准补丁要好得多。
最后也是最重要的一点:如果您在一个地方被烧毁,请继续前进;不要放弃。
希望能有所帮助。
我强烈建议您找到一个真诚的兴趣并积极使用的开源项目。
原因很简单:它使琐事和业余爱好有所不同。
看一下你的电脑。您使用了什么开源软件?猜测可能是Chrome或Firefox,或者可能是Open Office或Instant Messenger客户端。它们是完美的,还是有一些您想改变的小东西?
如果有的话,现在是时候做点什么了。
我建议像人们已经从事多年一样,寻找(或开始)一个项目,开始使用开放源代码软件来做事。这对您来说似乎微不足道,甚至可能过于简化。但是,很难描述使用某种东西,找到一个错误,获取源代码并进行修复的满意度。或者,也许对其进行更改,使其以您希望的方式工作。
另外,不要只是为了“参与”而黑客。我95%的Linux内核补丁都将一去不复返,我可以肯定的是,除了我之外,没有人会想要它们。如果有其他能干的内核黑客曾经看到我,我可能会被迫接受精神病评估。但是我仍然很喜欢我的实现,piglatin_printk()
它的实现始于几年前的4月1日:)
是的,让您的代码和思维过程在许多其他有能力的人士面前是无价的,因此学习如何进行沟通和协作也是如此。一个单独的项目是向您展示不该做的好方法。提示,不仅仅使用版本控制软件,邮件列表和错误跟踪器,它还有其他更多功能。
首先,我建议您深入研究Ohloh来查找可能对使用感兴趣的软件。下载,构建,玩游戏。然后去抢别的东西。最终,您会想要改进某些东西,或者意识到您有实现与发现完全不同的东西的冲动。
另一有帮助的是为一家开放友好的公司工作。我的公司广泛使用Xen,因此我发现有趣的错误并加以修复没有问题,因为无论如何我们都需要这样做。他们也不介意参加RFC和规范草案之类的员工,因为我们最终将使用结果。
OpenHatch是专门为此创建的。
报价:
OpenHatch是一个非营利性组织,致力于使潜在的免费软件贡献者与社区,工具和教育相匹配。
您可以按类型,技术,所需的技能水平等浏览项目,并找到与您的水平相匹配的项目。
这里有一个专门用于此代码的新网站,称为Code 52,它通过每周启动一个新的OSS项目来鼓励新开发人员参与开源。
这个想法是,对于以前从未参与过开源的人们来说,这似乎并不那么令人畏惧,并且希望他们也会更倾向于参与其他OSS项目。
我建议阅读:http : //open-advice.org/。
它的目的是帮助那些创建和维护社区的人,以及对自己想加入哪个社区或如何加入社区不自信的人们。
如果失败,请找到一个任务与您产生共鸣的项目,或者分叉并为已经对您有用的项目做出贡献。
祝好运。
当我开始时,我在网上搜索选项,事实证明,找到适合初学者的东西很有挑战性。
有些项目之所以难以做出贡献,不是因为它们太先进,而是因为社区不受欢迎。因此,撞墙时不要灰心。
在搜索过程中,我决定整理一个清单,列出10个开源项目,初学者可以在无需太多压力的情况下开始支持。这是要使用的链接:
希望对您有所帮助,如果发现不错的产品,您可以随时添加更多!
我建议您根据自己感兴趣的主题开始一个项目。
通常,通过从事一个项目可以学到很多东西。无需查看其他人如何编码即可学习如何更好地编码。有时候,您实际上会看到不该做的事,因为其他人通常没有比您经验丰富的经验。
通常,这有助于查看其他人的代码,但是您会通过使用的库和组件在自己的项目中遇到其他人的代码。
经验会教你什么是好事和坏事。
我是Google代码的项目所有者,我正在寻找贡献者。(不过,我不会将此答案误用于广告。)因此,我的观点可能对您很有趣。
您首先必须找出您感兴趣的内容。然后在与您的兴趣相关的某些领域中发展一些专业知识。然后找到需要和需要您的专业知识的项目。
项目越小,已经存在的贡献者越少,寻求贡献者的机会就越大,您可以直接联系作者/项目所有者。告诉他们a)您的专长是什么b)您认为可以在项目中应用的专业知识c)您认为可以实现的目标。
切记:仅了解一种或两种主流编程语言并不是专业知识。