参与开源项目[关闭]


19

我即将进入计算机工程专业的高年级,并在今年夏天和秋天获得了实习。由于我不会做作业,所以我很想借此机会参与某种开源项目。我精通C,C ++,Java和Python。我也相当熟悉Linux,目前在笔记本电脑上使用Linux,本学期的所有课程都将重点放在Linux上。

我当时正在考虑看一下Android或Ubuntu,但过去我感到有些不知所措。有人有建议吗?对将要开展的一个好项目,从哪里开始以及我是否真的能够做出很多贡献感兴趣。

最后,人们接受变更的频率是多少?我会多久编写一次被拒绝的代码?

tl:dr通过为一个开源项目做贡献寻求更多的编程经验。新手到现场需要咨询。


我说在这里登陆当然是值得的!
squillman 2011年

6
听起来像是个好主意,但请务必在您实习的公司检查“月光下”规则。某些地方,特别是如果它们是软件商店,将对您只能在自己的时间和您自己的PC上执行的操作施加严格的限制。
史蒂夫

1
也许考虑学习一种比您提到的语言更具说明性的新编程语言。像haskell或scala。然后进行一个开源项目。
mrsteve 2011年

Answers:


15

+1提到史蒂夫·海格(Steve Haigh)提到月光。

如果您在软件商店工作,您可能会发现自己的雇主要求您在自己的时间内拥有所使用软件的所有权。开始之前,请咨询您的雇主以澄清您公司的月光照明政策。

OpenHatch是一个入门的好地方。他们是一个致力于帮助人们参与开源项目的网站。他们将为您提供“一口大小”的错误列表,以便您开始与他们签约的任何项目,并可以帮助您与愿意指导您的其他贡献者保持联系。您选择的项目和/或语言。

补丁的上游接受几乎和总是会取决于补丁的质量以及是否随附测试用例。实际上,许多项目除非接受包含验证补丁的测试,否则不会接受补丁。
由于您的代码质量将由主观判断,因此请准备好与上游维护人员的建设性批评合作,以改进您的代码。


1
我什至没有考虑过他们的月光照明政策。OpenHatch.org看起来也很酷。立即注册以签出。
塔蒙2011年

2
关于月光的另一个说明,如果确实要问您的雇主,您可能希望通过电子邮件进行书面记录。否则,是什么阻止他们以后改变主意并说他们从未放弃对您项目的主张?只是一个想法。
杰夫·威灵

我不敢相信这个问题是封闭的,特别是因为它有很多很棒的“答案”,无论是否基于观点!
Dave Kanter 2014年

7

作为开放源代码项目(FireBreath)的经理,我建议您只是找到您使用或感兴趣的项目,并寻找可以提供帮助的方法。您甚至不需要编写任何代码就可以做很多事情。在我们的项目中,我们需要人们的帮助:

  • 测试并报告错误
  • 更新网站上的文档
  • 帮助编写辅助工具
  • 在IRC室中闲逛并帮助新用户
  • 使用FireBreath创建示例插件,供新用户查看

当然,这些都是我的项目所特有的(我们欢迎您提供帮助!我对另一个项目的最新贡献是添加了一个工具,用于更好地管理gitolite上的通配符存储库权限。坚持使用您认为有趣或可以使用的项目!

祝好运!


我什至都没有想到这样的事情。感谢您的建议。我将进行一些搜索来寻找需要这些类型的东西的新项目。
安德鲁

+1以获取文档。作为SharePoint SUSHI的协调员,最繁琐和最难编写的内容之一就是文档,但对于新用户来说,它们也是最重要的。帮助那里也将使您熟悉项目的功能及其工作方式。
Ryan Hayes

3

我无法告诉您应该选择哪个项目-实际上取决于您。不过,我可以告诉您如何参与其中:如果您对某个项目充满热情,即使用了一段时间的应用程序(对于OS来说可能并不那么容易),则可以随时提交带有建议更改的补丁(增强功能,错误修复),并要求项目所有者进行审核/集成。
对于GitHub上的项目,这相当容易-只需创建您的补丁并提交请求即可。
无论如何,您提交的补丁越有价值,他们越有可能欢迎您加入核心团队。


2

如果您不是特定语言的专家,那么您仍然会非常重视许多活动。它们包括测试,编写教程,编写API文档,为项目建立网站等。如果您有特殊兴趣,请在该领域中找到一个项目并贡献领域知识。(例如,我们有一个活跃的化学OS项目社区)。


2

要进入开源项目,请对OpenHatch有所了解 -这是他们的全部任务:

一个开放源代码项目,其目标是降低获取开放源代码贡献的障碍并增加多样性。我们通过一系列举措实现了这些目标...


2
您介意进一步解释它的功能吗,为什么在回答所提问题时推荐它?在Stack Exchange上不太欢迎“仅链接的答案”
gnat 2013年

1

例如,Mozilla一直在寻找C ++程序员来开发和测试他们的项目。对于新手来说,下载大量的代码库并花费大量时间来构建它实在是不堪重负。然后大约需要六个月的时间,您每周平均要花10多个小时来熟悉它,并了解错误或缺陷或类似的东西。然后,您很快就应该能够理解如何重现,隔离,修复,测试,回归测试,应用补丁。当您执行更多操作时,您可能会获得对代码库的直接写访问权限,监督功能等。我相信,对于每个都有很多人在进行的成熟项目,这都是正确的。

另一方面,由于没有人开发这些项目,因此许多项目濒临死亡。可能很难找到可以帮助您的人或提供此类文件的人。

为了在这些极端情况之间取得平衡,您可以找到需要经常或每天使用的程序。继续使用它,以使您尽快发挥其功能。也许在使用它而不是其他选择上有某种亲和力。然后,您可以提交功能请求,也可以自己承担,因为您可能是最了解所建议功能的人。从表面上看,此选项使您觉得自己永远不会最大化程序的功能。如果您使用它的时间足够长,那么您将需要该程序执行比其实际功能更多的工作。它可能是安全/隐私修复程序,或者是微妙的事情或对可用性的改进。

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.