Bard's Gallery

GSoC 2008申请总结

Bergwolf 我的大学

这几天项目要中期验收,实验室抓的真紧。。。。今晚终于找到时间静下心来好好总结一下。

先简单介绍下,这次google summer of code我申请的是由colyli指导的enable ext4 file system as boot partition,我的申请主页在 http://bergwolf.googlepages.com/grub4ext4 ,项目主页(待建)在 http://code.google.com/p/grub4ext4/ 。这么设置是因为google给了一个proposal的例子就是这样的——用一个blog存放开发过程,用公开的repository保存项目代码。

整个申请过程主要分为三个阶段:前期准备,写proposal阶段和ranking阶段。

1. 前期准备

因为上学期就打算做这个grub4ext4的项目,我在寒假期间看了一些grub legacy的代码,主要集中在stage2目录下,同时看了一些前人对grub源码的分析文档。这学期开学后我在mailling list上发过一篇总结。这篇总结也实际上成为我的proposal中grub部分的雏形,当时也不知道这个项目会申请成为SoC项目。

或许我这只是特例,因为很早就开始接触相关的东西。但是想想mentor和organization都肯定更愿意把项目交给熟悉项目背景的人,所以多参与开源项目,多接触开源社区还是有好处的^_^

2. 写proposal阶段

这阶段我最大的两个感悟是:多和mentor接触,多和一起申请的人接触。

这期间我完成proposal初稿后发给colyli看过,colyli给了很多很有价值的意见,十分感谢。这些意见和建议让我对项目的思路有了很多新的认识,这些都体现在了最后的成稿中。proposal中不能有抄袭这点也是coly告诉我的。那天我正在实验室干活,接到coly电话后赶紧修改。这可是救火啊。。。感激之心难以言寓~~~

freenode上有个gsoc的channel,这上面不仅有正在申请的学生,还有不少mentor和google工作人员,是个很好的交流的地方。我写proposal的那几天几乎成天挂在上面,即使不发言,偶尔看看别人的对话也能学到很多东西。例如有的mentor明确指出不接受proposal里面使用一些网络上常用的聊天用语(you=u之类)的人,所以写申请还是formal一些的好。

另外要注意proposal的字数限制,这点是在申请的最后一天我在IRC上问的。回答的人是google人员,所以也应该算官方的说法。proposal有7500 character的限制,这里的字数是byte而不是word,而且包括空格。千万不要超过这个限制,因为超过限制的proposal会被truncate,即最后只有前7500 byte会被打分的mentor们看到,而超出部分直接丢弃。

proposal的主要目的是说服mentor和google,让他们觉得你的项目值得做而且具有可行性。有人这么说,when you propose a project, the most important thing is how it will benefit to the community instead of how cool it is.虽然有些极端但也不无道理。至于如何说服,那就是八仙过海,各显神通的事了。

proposal一定要包含的几点:自己对项目的理解和描述(多和mentor沟通是正确理解项目需求的重要方法);提出可行的实现方案(在有初步构思后和mentor的交流由询问变为讨论,而讨论的结果往往就是可行的方案);具体的开发计划(包含重要时间点和事件,让mentor们看了之后觉得这个方案确实可行)。

我有位本科同学今年也在申请GSoC,他给了我几个他找到的前人的proposal。这些proposal也都包含了以上几个要点。在这里也要感谢这位同学对我的帮助,有空一定bg你。

3. ranking阶段

在过了application deadline之后就进入ranking in progress阶段。到了这一阶段实际上工作已经大部分做完了,就只是等待结果。不过按照google的说法,mentor还是可以在application page上提问,所以这段时间还是需要经常上去看看。

当applicatin status由ranking in progress变为reviewer assigned的时候,你的proposal就已经由某个具体的mentor(很可能就是最后带你的mentor)审阅了。这说明这个organization已经在考虑要不要把你的申请提交给google了。

当application status变为application accepted的时候,恭喜你,you are in!


说一下我的申请感受:

  1. mentor是申请的关键。多和mentor交流不但有助于自己对项目的理解,也有助于mentor对你的了解。相信很少有mentor把项目交给一个交了一份proposal后就再也不出现的人。
  2. 多和申请人交流。不同的人有不同的思考问题的方法,或许别人所想的就正是你欠缺的,讨论才能加深自己对项目和对自己的方案的理解。不要害怕竞争,google给每个项目计划了至少两个slot。如果你和竞争者都足够优秀,不要担心google会刷掉你们任何一个。
  3. 注重细节。申请中有很多需要注意的细节,google的FAQ建议都看一遍。不要怕浪费时间,在每个细节上比别人多做一点,最后累积起来就是进步。不但申请GSoC,做人亦是如此。

最后我要感谢Colyli,他在我的申请过程中给了我莫大的帮助,万分感谢,这之后肯定还有许多需要麻烦他的地方. GSoC申请成功对我而言不是一个终点而是一个起点,我面前还有一个充实且疯狂(coly语^_^)的夏天。我得好好prepare myself, and enjoy summer of code.

Bergwolf
Everyday citizen, A gear