Google Summer of Code instruction for Taiwan Students

【GSoC 2016 — 推薦給對 Open Source 有興趣的同學們】

今天想推薦大家一個 Google 專門爲學生舉辦的活動 – Google Summer of Code (GSoC)

我在 2014 & 2015 分別參加了 GSoC with Ruby on Rails / GitHub,對我來說是非常珍貴、收穫良多、而且有趣的體驗,甚至 GitHub 還因此在暑假時提供我前往美國參加 CodeConf 的機會(special thanks to John Britton & Mu-An Chiou);私以爲這個活動相當值得參加,但臺灣的同學們好像都不太知道有這個活動,至少我這兩年參加下來似乎都只有我一個臺灣學生(當然也有可能是臺灣參加學生都太低調了,沒在 mailing list 上出聲),所以剛剛一得知 GSoC 2016 時程表出來,就想著要寫篇推薦(坑)文 … XD,希望能讓更多臺灣的同學知道

首先,GSoC 是 Google 舉辦的、爲其約莫三個月的暑期活動,適合闔家大小一起參加(誤),而且還有錢領(重點無誤)!其目的爲促進學生對於 Open Source Projects 的參與,只要在申請參加的時候有學生身份(i.e., 在學證明)都能參加,活動進行方式大致如下:

  1. 有意願參加的 Open Source Projects (organizations) 會向 Google 申請
  2. Google 審核後會有一個 approved organizations list,這些 organizations 會指派一些 mentors(通常就是這個 projects 的 core contributors)以及一些他們覺得可以做的 ideas / proposals
  3. 接着由學生向這些通過 approved organization 提出 proposals,大概就是說想 improve / implement 什麼東西之類的
  4. Organization 會從申請者中挑選最 match 的幾個 proposals(每個 org 大概都有 2~5 個 quota 可以挑人)
  5. 被選上的學生會在五月至八月與該組織的 mentors 一起 work on your proposal,mentors 會在這段期間跟你 meeting,討論進度,幫你 review code,甚至跟你一起 implement 某個 feature

我覺得值得參加的幾個原因如下:

  1. 有錢拿XD,這個經歷寫上 resume 也算比較特別,例如我在 LinkedIn 上就因此收過幾封來信,並說他們覺得這個經歷很有趣
  2. 跟 core contributors co-work 的經驗挺珍貴的,可以看看 senior developers 是怎麼思考問題,他們解決問題的策略是什麼,重要的是,可以有一個隨時讓你問的 mentors 是件幸福的事情
  3. 會被迫要好好看這些 open source projects 的 code,我想讀一些品質好的 code 對於寫程式的技巧是挺有幫助的,可以更加熟悉一些該程式語言的特性,大多時候看 code 可能會遇到看不懂的狀況,這時候有 mentors 的好處就出來了,看不懂的地方大可直接問他們
  4. 熟悉 open source 的開發、整合流程 (e.g., CI / testing),這些我想在 industry 實務開發上都是挺有用的
  5. 就我自己在幾個 start-up 打雜的經驗來說,open source 的使用率都是挺高的,能趁早熟悉這個生態對於進入業界我想應該算是有些許幫助

下面則是一點點對於有意願參加的同學的建議:

  1. 儘早跟有興趣的 org 聯絡,可以參考下面 link 的 timeline 看 organizations list 什麼時候會出來,多溝通才知道他們想要做的是什麼,例如我這兩年參加的 project 都跟該 org 一開始提出的 ideas 有不少出入,都是在多次溝通之後才確定彼此想做的是什麼
  2. Make a concrete proposal,儘量把 proposal 寫的詳細一點,例如想要怎麼完成這個 project,安排的時程如何之類的
  3. 在申請開始前(也就是提 proposal 前),就可以先開始參與該 open source 了,例如看看 GitHub 上面有什麼 issues,先找簡單的解解看,或是甚至在下面隨便畫個蝦也行,熟悉一下 codebase,這樣對於之後寫 proposal 很有幫助,畢竟對 codebase 瞭解才能寫出有內容的提案,也可以藉機讓 potential mentors 對你有點印象,最重要的是,趁這個時間確定是不是真的對這個 project 有興趣(例如我去年幫 CodeMirror 寫了一點東西之後才覺得我沒有很想做這個 project)

還有更多我覺得很棒的收穫,但是比較偏私人方面,就不寫上來了。對於這個活動有興趣或是有更多疑問的都歡迎來跟我聊一下,雖然我只是一個弱弱的參與者,但是參加了兩年至少對於申請、流程還算是有點小心得,主要也是希望可以讓更多臺灣的同學知道這個活動,免得每次都只能看一堆老印在 mailing list 上面聊天(必須說,他們真的超積極)、或是看他們辦 GSoC meetup 之類的XD

GSoC 2016 相關時程表也已經出來了,請參考:https://developers.google.com/open-source/gsoc/timeline

最後特別感謝 iCook 愛料理Richard Lee 大大介紹讓我得以知道這個活動!