惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

GeekPlux

一代人的博客,一代人的青春注脚 那些年我打过的日结工 来美国的两年后 2023 一蓑烟雨 在美国拥有一辆 Tesla 的成本 我的 Workspaces 十年进化史 How to Sync Logseq Plugins, Themes and Settings Across Multiple Devices Setting Up Umami as Your Google Analytics Alternative: A Step-by-Step Guide 迁移豆瓣读书记录到 goodreads Enhance Your Internet Privacy in 2023 Refactor your blog comments system with Webmention.io 来美国之后,如何快速安顿下来 Three Levels of Information Perception 疫情三年 与人聊天的美好 我获取信息的方法 2022 版 我是如何学会编程的 Legacy code best practice: how to take over an existing project smoothly 2020 恍如隔世 接外包的一些坑和小技巧 论交友 往返香港隔离指南 即将失明,还能继续做程序员吗 小谈我对新技术的态度 How to use tailwindcss with AMP in a Next.js project 远程工作如何提高效率 复式记账、财报、量化与图论 我为什么从阿里巴巴离职 2019 柳暗花明 YouTube 观看历史数据分析 投资被动型指数基金正在造成下一次金融泡沫? 三种主流的网赚套利,躺着赚钱? 色盲的世界 我是如何管理 21 张信用卡的 薅羊毛的最大意义:保持对规则的敏感度 来香港的两个月 数据可视化技术实现的关键点 不需要扫描仪,数字化归档自己的文件 如何找到时薪 80 美元的远程工作(二) 如何找到时薪 80 美元的远程工作(一) 如何打造真正的简历 浅思图数据可视化 舍本逐末的学习方式 给想转行作程序员的人泼一盆冷水 算法优化人生之 —— 调度算法 杭州最适合闲来溜达的几条路线 2018 平淡无奇 突闻金庸先生逝世有感 十年博客折腾历史 数据可视化之 Sankey 桑基图的实现 研究生生涯总结 如何在不规则多边形内均匀撒点的算法 Web 前端中的增强现实(AR)开发技术 netjsongraph.js – Google Summer of Code (GSoC) 2017 summary 如何在 GitHub 上获得数百 stars Markvis - 在 markdown 中生成可视化图表 D3 force layout and WebGL integration 文本数据可视化(下)——一图胜千言 文本数据可视化(上)——从 Wordle 谈起 我获取信息的渠道 数据可视化基础——视觉编码 数据可视化基础——数据模型 数据可视化基础——可视化流程 为什么要用 Emacs Vega-Lite: A Grammar of Interactive Graphics 如何搭建一个私人网盘 如何阅读一篇学术论文 超过十个人的微信群根本没有价值 毕业后的两年 建立索引式的学习方法 为什么我喜欢写代码 写文章的小技巧 为什么文章写得好的人都很厉害 人总要有点盲目的自信 如何管理好自己的密码 Backbone View 之间通信的三种方式 Vim - 适合自己的,才是最好的 轻松玩转 Ukulele 告别社交网络有多难 双拼学习记 CoffeeScript 编码风格指南(译) CoffeeScript 笔记 CSS 最核心的几个概念 响应式设计简易指南(译) 初识 TDD Collapsing margins——合并的外边距 菜鸟级 Mac 配置(二) 菜鸟级 Mac 配置(一) CSS 编写原则 Goodbye,我的大学 如何新建一个 Cocos2d-x 项目 Windows8.1 下 Cocos2d-x 环境搭建 Android 开发如何入门 如何绑定独立域名 写博客就用 FarBox 尝试改变微信公众账号消息的推送方式 情似流水 操作系统总结——存储器管理 操作系统总结——处理机管理 操作系统总结——引论
参加 Google Summer of Code 的体验
GeekPlux · 2018-01-07 · via GeekPlux

原文地址:https://geekplux.com/2018/01/07/experience-of-gsoc-google-summer-of-code

Google Summer of Code (简称 GSoC)中文我叫它「谷歌编程夏令营」,是一年一度谷歌组织的类似暑期实习的编程活动。2018 年的申请马上就要开始了,在此我分享一下我参加 2017 年 GSoC 的体验。

什么是 Google Summer of Code?它值得参加么?

这个问题可以参考Google 编程之夏(GSoC):海量优质项目,丰厚报酬,你竟然还不知道?这篇文章,里面介绍的非常详细,还客观的论述了为什么 GSoC 值得参加。不过在此我还是简单科普一下:

简言之,GSoC 是一年一度谷歌组织的、全球性的学生编程活动。学生利用暑假时间给开源社区贡献代码,谷歌支付报酬给学生

将 GSoC 的特点提炼一下就是:

  • 针对学生。只有学生身份才能申请参加(包括本科、硕士、博士)
  • 一年一度。每年都能申请,3 月末开始(建议早点开始套磁)
  • 全球性。你可能会和世界各地的学生一起工作
  • 开源社区。你是为开源社区贡献代码,大部分组织在 GitHub 上,所以你的贡献都是开源的,谁都能看到
  • 暑假期间。6 月正式开始工作,到 9 月
  • 报酬。谷歌支付报酬,中国区为 3600 刀,比大厂实习工资都高
  • 远程工作。这点在刚才的概念介绍中没提到,你可以在你想呆的任何地方写代码,不用去办公室
  • 导师指导。每个项目会给你配一个导师,有的导师非常负责且是大牛,你可以跟他学到很多

我相信这些点已经足够吸引一个在校学生了。

GSoC 怎么申请?

这个问题参考Google Summer of Code 学生申请指南。其实很简单,就是一篇 proposal,通过就可以参加当年的 GSoC 了。其他的参考资料可以看 gsoc-cn

正文 - 参加 GSoC 的体验

申请

我是在 2017 年的 2 月份开始关注当年的 GSoC 申请。虽然每年各组织是在 2 月末公布自己的项目,但它们组织内部会在 1 月份甚至更早就开始谋划今年 GSoC 的项目计划,而且一般会公布在组织的主页上。我当时搜索到一些已经公布的项目,筛选了 3 个和我技能相匹配并且自己也想参加的项目,直接发了邮件过去。自我介绍了一番,并把自己针对这个项目的简单想法阐述了一下,其中有一个项目的 mentor(导师)非常热情,来回几番交流也十分愉快,算是理清了这个组织在做什么,他们这个项目想达到的效果。另外两个只是回复了我邮件便直接索要我的 proposal 了。说实话在不了解项目需求的情况下很难写一篇令人满意的 proposal,所以我也对这两个项目没怎么上心。

GSoC 的流程是 2 月末公布项目 idea,3 月末学生申请,所以有 1 个月的时间准备。但是早起的鸟儿有虫吃,有的人是 1 月份或上一年的 12 月就开始给项目贡献 PR(pull request) 了,所以他们申请的优势相当大。我的建议是越早准备越好,因为邮件的沟通没有 IM 频繁,再加上时区问题,交流的时间跨度会拉的很长。

我当时由于自己在参与一个科研投稿项目,分身乏术,几乎对申请上 GSoC 不抱什么希望了。但是在申请 deadline 前的几天,那个之前和我频繁交流的导师来询问我的 proposal,他督促我赶紧提交一份,即使不完美,提交了总比放弃好。我被他鼓励之后,立马连夜赶了一份出来提交了,虽然写的简单草率,但也是达到了一份合格 proposal 的要求:把需求、自己的解决办法、时间规划都写清楚了。deadline 前一天导师还对我进行了视频面试,幸运的是最后通过了审核,在学生生涯的最后一年赶上了 GSoC 的末班车。

工作

虽然 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中。

体验

  • 代码水平有所提高。我参加的项目当时我导师他对前端可能没我熟,不过对代码风格、commit message 规范的要求还是很高的,在邮件中曾不止一次强调。另外他还推荐书单让我们阅读,他认为编程有很多是非常核心的、稳定的和通用的,学这部分才是关键。
  • 对开源有了全新认识。之前可能觉得开源只是一些个人开发者或组织把自认为不错的代码公布出来供大家交流。参加 GSoC 之后才发现很多开源组织非常庞大,组织架构都很多层,有自己的一套工作流程和方式、俨然一家公司模样,有自己的盈利方式,甚至有自己的基金。它们的目标不止是开发者,还可能是国家的基础设施建设等。再从个人开发者的角度来说,你可能由于参加 GSoC 而更加热爱开源,因为你发现开源社区的人都非常的热心和认真。
  • 和不同国家人工作的沟通成本很高。一方面是因为时区问题,大部分沟通,延迟回复都没什么问题,但一旦你提的 issue 是个紧急的 bug,而他这时候却在睡觉时间就很尴尬。另一方面是语言问题,尽管大家都用英语,但水平参差不齐,习惯不一,很多时候得多说两三次互相才能彻底理解对方的意思。不过认识新朋友看他们的 Twitter 和 Instagram 还是很有意思的。
  • 学会包装自己。这方面我们隔壁的印度朋友简直是典范,纵观他们的 proposal 和最后的总结都写的非常「浮夸」,平时的交流,他们也是非常频繁,活跃在各个平台。他们不是语言上浮夸,是内心上认为自己确实做到了他们叙述的效果。总之其他国家的同学比我们都高调一点,也很抱团,所以我们还是要学习一个。

最后

人生艰难,作为象牙塔里的学生都能感到压力。如果你想利用暑假的大好时光来增加一点人生的经验,GSoC 可能是你不可多得的机会。享受一线互联网公司实习的待遇还能在 GitHub 上刷经验值,何乐不为?最重要的是,这可能是你开启另一种生活方式的一个机会,也可能是改变你编程生涯的机会(有的人成了大型开源组织的 core team member),更是一个跳出你舒适区的机会。

我时常担心自己变成温水里的青蛙,所以非常期待人生中的各种际遇,也想要体验各种各样的生活,在此共勉,加油朋友!