Google Summer of Code
Google Summer of code是一個提供給學生開發者許多機會的全球性計畫,主要的計畫內容都是Open Source project的開發,當然經過闖關到最後階段有高額獎金能夠拿,但對我而言,這就是一個練功的好機會。距離今年GSoC 2015的學生提案開始日期只剩下約短短的五天了,筆者也很想要在自己還是學生的時候,能夠有機會去爭取這樣難的的機會,如果今年不行,明年再來吧!
剛好在網上疲於找資料時,看到了這篇心得分享,想把它記錄、翻譯下來,希望能對正在閱讀這篇文章的你有所幫助。
5 Tips to get your Google Summer of Code proposal accepted
- 黃金原則:「越早開始越好!」,你越早開始著手於提案書撰寫,便會有越高的機會獲得青睞
- 注重品質:必須要集中至離於少量的專案,若同時想要執行太多專案,那只會減少我們開發的品質,有一個傑出的品質是極度重要的
- 真正參與專案:
- 訂閱組織的mailing list,並且提問及回答問題。
- 如果該專案有其IRC頻道或每週的phone calls的話也盡量的參與
- 閱讀專案的介紹文件,讓自己跟熟悉專案的原始碼以及Coding style
- 在社群當中介紹自己
- 替專案加入一點簡單的功能、修復一些簡單的bugs
- 提出一些pathes以及得到其feedback,這麼做有兩個重要原因:
- 若是過去沒有做個這個專案,early-hacking能夠幫助你對於專案內部的code更有概念,且幫助你評估你每項在專案中工作可能所需花費的時間
- 藉著做early-hacking,就像是你在告訴著他們:「我可以做到!我的patch就是證據」
- 你的程式碼必須依照專案的coding style,確認自己在提出第一個patch前,已經閱讀過所有的coding style規則
- 討論你的點子:
- 你所想的點子跟專案有關係嗎?你計畫如何實踐它?專案歷程的milestones是什麼?
- 得到一些關於你點子的feedback,這些feedback對於你的程式很重要,專案的開發者們可以幫助你調整每一個milestones所需要、必要花費的時間,不管你是否能夠在Google summer of code的期間內完成,有時候學生是很樂觀的
- 討論一些技術上的細節,你會如何測試你的程式?你要如何使用project test suite來檢驗你的工作?你需要自己寫test嗎?
- 建立優先順序,什麼會是在GSoC的尾聲時傳遞給大家,又有哪些是可有可無的?確認你可以做到你所設定的目標,「小、可信的、易讀的、有好的文件整理」總是較佳的,品質很重要
在提出提案之前,和別的開發者討論你的點子是很重要的步驟
- 撰寫提案
- 清楚地敘述你的想法
- 點子本身
- project能得到什麼利處?為什麼這很重要?
- 技術細節:這顯示出你對於你想要做的是有著明確的想法
- 想想一些你可能會遇到的問題,並且你會如何解決它
- 制定一張詳細的工作時程表:你什麼時候會做什麼事?
- 像CV一樣的段落:
- 展現出你已經執行過一些小專案,是很有幫助的
- 除了你的「好」CV,若是能顯現出你對於專案很了解,你也已經有貢獻出一些patch,你已經準備好開工了!
- 清楚地敘述你的想法
GSoC proposals範例
以下是一些GCC專案已經被接受的提案範例:
- 原作者參與GSoC時的提案(GSocC’ 10):PDF
- Lee Feng的提案(GSoC’ 09):PDF
- Tobias Grosser的提案(GSoC’ 08):Web Page
其他一些Nmap相關的專案: - Djalal Harouni的提案(GSoC’ 10):PDF
- Djalal也被選入GSoC’ 11,請向他聯絡取得提案
- David Fifield的提案(GSoC’ 07):Web Page