本文做者 GeekPlux,原文连接:geekplux.com/2018/01/07/…,注明做者和地址便可转载。html
Google Summer of Code (简称 GSoC)中文我叫它「谷歌编程夏令营」,是一年一度谷歌组织的相似暑期实习的编程活动。2018 年的申请立刻就要开始了,在此我分享一下我参加 2017 年 GSoC 的体验。前端
这个问题能够参考Google 编程之夏(GSoC):海量优质项目,丰厚报酬,你居然还不知道?这篇文章,里面介绍的很是详细,还客观的论述了为何 GSoC 值得参加。不过在此我仍是简单科普一下:git
简言之,GSoC 是一年一度谷歌组织的、全球性的学生编程活动。学生利用暑假时间给开源社区贡献代码,谷歌支付报酬给学生。github
将 GSoC 的特色提炼一下就是:面试
我相信这些点已经足够吸引一个在校学生了。编程
这个问题参考Google Summer of Code 学生申请指南。其实很简单,就是一篇 proposal,经过就能够参加当年的 GSoC 了。其余的参考资料能够看 gsoc-cn。json
我是在 2017 年的 2 月份开始关注当年的 GSoC 申请。虽然每一年各组织是在 2 月末公布本身的项目,但它们组织内部会在 1 月份甚至更早就开始谋划今年 GSoC 的项目计划,并且通常会公布在组织的主页上。我当时搜索到一些已经公布的项目,筛选了 3 个和我技能相匹配而且本身也想参加的项目,直接发了邮件过去。自我介绍了一番,并把本身针对这个项目的简单想法阐述了一下,其中有一个项目的 mentor(导师)很是热情,来回几番交流也十分愉快,算是理清了这个组织在作什么,他们这个项目想达到的效果。另外两个只是回复了我邮件便直接索要个人 proposal 了。说实话在不了解项目需求的状况下很难写一篇使人满意的 proposal,因此我也对这两个项目没怎么上心。markdown
GSoC 的流程是 2 月末公布项目 idea,3 月末学生申请,因此有 1 个月的时间准备。可是早起的鸟儿有虫吃,有的人是 1 月份或上一年的 12 月就开始给项目贡献 PR(pull request) 了,因此他们申请的优点至关大。个人建议是越早准备越好,由于邮件的沟通没有 IM 频繁,再加上时区问题,交流的时间跨度会拉的很长。架构
我当时因为本身在参与一个科研投稿项目,分身乏术,几乎对申请上 GSoC 不抱什么但愿了。可是在申请 deadline 前的几天,那个以前和我频繁交流的导师来询问个人 proposal,他督促我赶忙提交一份,即便不完美,提交了总比放弃好。我被他鼓励以后,立马连夜赶了一份出来提交了,虽然写的简单草率,但也是达到了一份合格 proposal 的要求:把需求、本身的解决办法、时间规划都写清楚了。deadline 前一天导师还对我进行了视频面试,幸运的是最后经过了审核,在学生生涯的最后一年遇上了 GSoC 的末班车。ide
虽然 GSoC 是针对学生的,但咱们不能以学生的心态面对这件事,而应该抱以雇员的态度。申请经过后,5 月整个月是暖身期,你能够熟悉组织里代码的提交流程,和组织里其余人聊聊天吹吹水搞搞关系,和导师多沟通一下以后暑假里的时间安排。好比你暑假有两周想去旅游,能够把这两周的工做提早完成。因此参加 GSoC 很自由,但要负责。
主要的工做流程全在 GitHub 上完成,从提 issue,到最后的 Pull Request 和 Code Review,平常交流是用 IRC 和 Gitter,文档管理用 Google doc。个人导师是意大利人,除了带我,还要带 4 我的,分别来自印度、牙买加、瑞士和俄罗斯。你们时区不一样,天天 IRC 里的 Good morning 出如今各个时段。聊天都用英语,都是书面交流,因此口语差也不要紧。
6 月正式开工,当时我是要用 WebGL 去重写一个大概 2 万节点,10 万条边的图结构可视化项目,前期工做不算一马平川,但也算走的妥当。到了中期,如何在 WebGL 中作交互成了一大难题,到了后期则是性能的优化。最终到 9 月份的时候我在 proposal 中提到的差很少有 90% 完成了,除了性能问题还有待提升。
3 个月中,我除了参加 GSoC 还须要水一篇论文,因此时间特别紧张,几乎是两班倒。导师问我进度的时候就各类解释,而后加班加点赶进度。每月底会有一次评估,导师会针对你这个月的表现来决定你能不能继续参加,我每次都是低空飘过。最后项目结束我以为我可能没达到导师的预期,但也算完成了工做。虽然整体上我以为不是很出色,不过导师在 final evaluation 仍是写了不错的评价。全部的工做总结在我以前的博文netjsongraph.js — Google Summer of Code (GSoC) 2017 summary中。
人生艰难,做为象牙塔里的学生都能感到压力。若是你想利用暑假的大好时光来增长一点人生的经验,GSoC 多是你不可多得的机会。享受一线互联网公司实习的待遇还能在 GitHub 上刷经验值,何乐不为?最重要的是,这多是你开启另外一种生活方式的一个机会,也多是改变你编程生涯的机会(有的人成了大型开源组织的 core team member),更是一个跳出你温馨区的机会。
我时常担忧本身变成温水里的青蛙,因此很是期待人生中的各类际遇,也想要体验各类各样的生活,在此共勉,加油朋友!
本做品采用知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议进行许可。