谷歌编程之夏(GSoC)的含金量高吗?

今天看到13编程之夏已经接受报名了,有这样几个疑问: 1. 报名者需要有什么样的基础才可以被选拔上? 2. 想取得好的成绩难度有多大? 3. 有什么好的经验可以分享。 谢谢。 ------------ 报酬方面是不是也可以提一提?我听说有一个中国的做一个项目是5000刀,这个对于还没毕业的中国学生来说还是不错的。
关注者
1,276
被浏览
78,539

12 个回答

先说说含金量的问题。其实从各方面来说,这个含金量都是很高的,远远超过一份互联网公司的暑期实习。我参加过两次GSoC,也参加过两次暑期实习,这个对比还是很明显的。实习其实基本是打杂,但是在GSoC里是真正地负责一个项目,一个社区期待已久的feature。能学到的东西、以及最后的成就感是完全不一样的。
Ps. 如果所谓含金量还包括了对找工作的帮助的话,那么实际上谷歌里负责GSoC项目的Ms. Carol说过,凡是参加过GSoC的学生,随时可以找她内推去Google。我正好今年找工作,就正在等待时机使用这个重量级内推 :)

1. 报名者需要有什么样的基础才可以被选拔上?
如果你有语言偏好,那么当然最好找对口的,例如一些偏php的web项目,一些Java写的应用,一些C/C++写的游戏等。至于编程的实力,其实并没有那么高的要求,足够cover住你的工作就行。上面@罗聪翼 哥哥也提到了,我11年给Blender做国际化的时候,完全没用过这个软件,也基本不懂3D建模,但是我所要做的东西跟这些没关系,我就根本不需要知道。
所以当你看到有些来头很大的项目,例如Python,GNU,Unix,不要望而生畏,点开看一看,很有可能会发现一些idea完全在你的能力范围之内。接下来需要做的就是去和社区里的人“套磁”,让他们相信你能够胜任这个项目。
我的室友是大三暑假参加的GSoC,我大四、研一各参加了一次,去年中国貌似有一个大二的成功参加,而国外甚至不乏大一大二的成功参加。所以我觉得计算机大三,或者基本达到这一水平,付出一点心思,付出一点劳动,就完全可以成功参加。

2. 想取得好的成绩难度有多大?
我觉得在写proposal的时候就应该考虑到工作量有多大,基本按照3个月的全职实习工作量(每周5天,每天6小时)来考虑是比较合适的。在这个时间内,尽量把该有的feature做完,代码稳定,文档充分,最终能顺利进入主代码库,应该就算是很不错的成绩了。
如果是一个较大的项目,你可以拆成几大块,在GSoC时间范围内完成其中一块。后续再接着做其他的,毕竟GSoC本身的意义就是为开源软件找到更多志愿者。也可以在第二年的GSoC再继续完成,这相当于做了个大蛋糕慢慢吃。
也有很多项目没有做得尽善尽美,例如不稳定,BUG多,缺文档,其实mentor也都会给pass。我2012年做的项目其实就是在别人2011年的项目上继续做,重构一下,修修bug,增强点功能,写些wiki,最终使它并入主代码库。工作难度不大,又比较有意义——要不然2011年的工作就白白浪费了。
所以说,多付出一点,总会取得好成绩的。比如你每天干8个小时,或者每周干6天,结果肯定完全不一样——前提是你干的时候要感到快乐,这是GSoC和实习的区别之一。

3. 有什么好的经验可以分享。
貌似上面说得挺多了……
大概还需要补充一点——多说话。多跟社区的人、自己的mentor,甚至跟你自己的项目不相干的人交流,甚至去帮助别的GSoC学生。积极交流和反馈至少可以将你的申请成功率提高一倍。

以上,祝成功!
收录于 编辑推荐 ·
有关这个项目的申请和简介可以参考去年我为Blender的GSoC项目翻译的申请说明:wiki.blender.org/index.

接着结合之前的2年寻找中国项目申请学生的经历聊聊:

1,我接触到的大部分学生都在问我一个问题,我会不会不够资格啊?而其中很多人连试一试的勇气都没有,还没开始就已经打了退堂鼓,我总结出这些学生自己认为申请的难度有以下几个:
  • 自己的英文不够好,能看懂能和老外交流吗?(难道学会说话一定专八吗?)
  • 我没什么公司的实习经验,他们会要我吗?(不要把GSoC和实习划等号)
  • 我编程能力好像不够强啊,要是做不下来怎么办?(其实外国的申请学生也不一定个个牛逼,每年都有做不出来的学生,还有学生因为无法完成干脆直接消失掉,害得导师和社区到处找人。所以为了避免学生担心难度,每个项目都配备了在选定课题上最权威的开发者作为导师,其中很多不乏国外大学中的猛禽级教授)
  • 我好像对这个软件都不熟悉,或者还不算精通,我担心我不能开发好这个功能(不是申请下来就立马开始编码,你有充足的时间去学习,而有些课题根本不需要太多的整体使用经验,例如Blender2011年由中国学生完成的课题是软件国际化模块开发)
  • 进这些项目相关网站还要翻墙啊?还要学iRC啊?还要学写邮件啊?(翻墙都不会,你学编程是靠百*的啊?)
所以综上所述,申请者最需要具备的基础就是对自己的自信和对项目的热情,如果你刚好有和项目相关的类似开发经验,那么这肯定会加分。至于语言什么的,没人要求你一定得到精通C++和Python才能申请这个项目,但是会的多也不代表你能加分,只能说你可选择项目的机会多点。

2,好成绩的难度和你的付出成绝对的正比,如果你不会项目相关的软件,可以求助开源社区,社区对待开发者是200%的欢迎;如果你在开发上遇到瓶颈,可以求助邮件列表,学会参与国际化的各种讨论方式,论坛,iRC,邮件,但是请务必在先Google之后再去求助,别人愿意帮助你不代表可以偷懒,请先知之而后问,不要把这些求助方式完全当成获得快捷答案的通道。

末了,项目评审通过即表示完成,但是社区和导师一定会对你期望更多。开源社区中很多优秀开发者都是以GSoC作为入门,从而成长为更成熟的开源项目专家。现在Blender基金会雇佣的全职开发者中就有当年的GSoC学生,他为Blender部署了十分优秀的摄像机反向追踪技术。

3, 经验请参考我最上面发的链接,我想这应该写的比较实在了。

最后,希望能看到更多的中国学生参与GSoC,其实很多人都十分优秀,但是面对这些优秀的校外实践项目时,不够自信成为了最主要的瓶颈。想想这几千美金的奖金(不用交税),想想自己在校期间这项独一无二的镀金经历(我相信这比任何证书任何校内外实践项目都更有价值,而且一年全国能有几个人有这份阅历?),想想你所学到的不仅仅是如何去编程,还有如何去学习如何去接触全球更多顶级的开发者。

不要等到你毕业之后再后悔,那就来不及了!

2016年2月16日更新:
2016年Blender的GSoC开发提案列表出炉了,有兴趣的同学可以关注一下,链接如下:
Dev:Ref/GoogleSummerOfCode/2016/Ideas