5 Tips - 讓GSoC接受你的proposal吧!

Google Summer of Code

Google Summer of code是一個提供給學生開發者許多機會的全球性計畫,主要的計畫內容都是Open Source project的開發,當然經過闖關到最後階段有高額獎金能夠拿,但對我而言,這就是一個練功的好機會。距離今年GSoC 2015的學生提案開始日期只剩下約短短的五天了,筆者也很想要在自己還是學生的時候,能夠有機會去爭取這樣難的的機會,如果今年不行,明年再來吧!
剛好在網上疲於找資料時,看到了這篇心得分享,想把它記錄、翻譯下來,希望能對正在閱讀這篇文章的你有所幫助。

5 Tips to get your Google Summer of Code proposal accepted

  1. 黃金原則:「越早開始越好!」,你越早開始著手於提案書撰寫,便會有越高的機會獲得青睞
  2. 注重品質:必須要集中至離於少量的專案,若同時想要執行太多專案,那只會減少我們開發的品質,有一個傑出的品質是極度重要的
  3. 真正參與專案:
    • 訂閱組織的mailing list,並且提問及回答問題。
    • 如果該專案有其IRC頻道或每週的phone calls的話也盡量的參與
    • 閱讀專案的介紹文件,讓自己跟熟悉專案的原始碼以及Coding style
    • 在社群當中介紹自己
    • 替專案加入一點簡單的功能、修復一些簡單的bugs
    • 提出一些pathes以及得到其feedback,這麼做有兩個重要原因:
      • 若是過去沒有做個這個專案,early-hacking能夠幫助你對於專案內部的code更有概念,且幫助你評估你每項在專案中工作可能所需花費的時間
      • 藉著做early-hacking,就像是你在告訴著他們:「我可以做到!我的patch就是證據」
      • 你的程式碼必須依照專案的coding style,確認自己在提出第一個patch前,已經閱讀過所有的coding style規則
  4. 討論你的點子:
    • 你所想的點子跟專案有關係嗎?你計畫如何實踐它?專案歷程的milestones是什麼?
    • 得到一些關於你點子的feedback,這些feedback對於你的程式很重要,專案的開發者們可以幫助你調整每一個milestones所需要、必要花費的時間,不管你是否能夠在Google summer of code的期間內完成,有時候學生是很樂觀的
    • 討論一些技術上的細節,你會如何測試你的程式?你要如何使用project test suite來檢驗你的工作?你需要自己寫test嗎?
    • 建立優先順序,什麼會是在GSoC的尾聲時傳遞給大家,又有哪些是可有可無的?確認你可以做到你所設定的目標,「小、可信的、易讀的、有好的文件整理」總是較佳的,品質很重要
      在提出提案之前,和別的開發者討論你的點子是很重要的步驟
  5. 撰寫提案
    • 清楚地敘述你的想法
      • 點子本身
      • 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

有用連結