Google Summer of Code:貢獻,收穫,然後成長。

Google Summer of Code Map2008 年的 Google Summer of Code 活動正如火如荼地展開當中。

所謂的 Google Summer of Code (GSoC) 是由 Google 提供贊助經費,推動在學學生進行「開源專案」(Open Source Projects) 開發工作的活動計畫。這項計畫自 2005 年起每年舉辦,今年已經是 Google 第四度舉辦這樣兼具實質意義與精神意義的活動。

開源專案的發展,一直在全世界的軟體產業中佔有相當重要的地位。而在遊戲業界中,則以 John CarmackQuake 系列作品,做為原始碼開放精神的首選典範。如果沒有了這些專案開發者與貢獻者的無私奉獻,現在的我們就不會有免費的 LuaWordPressMySQLPHPOGRE 以及許許多多功能強大的軟體系統可用。

根據 GSoC 2008 FAQ 中開宗明義所闡述,發起這項活動計畫有下列五項目的:

  • 使更多的開源專案能夠被創造出來。
  • 鼓勵年輕的開發者,開始參與開源專案的開發。
  • 幫助開源專案找到並且帶來新的開發者與貢獻者。
  • 提供資訊科系的學生,一個在相關領域工作的機會(而不是去做漢堡)。
  • 給學生更多接觸真實軟體開發情境的機會。

在 2005 年第一次舉辦這項活動時,有 40 個機構與 400 位學生參加;而 2006 年有 100 個以上的機構,以及 600 位學生參加;到了 2007 年,更有超過 130 個以上的機構與 900 位學生參加。而今年,參與計畫的機構與學生數目預計都會再往上提升。GSoC 的參加者資格,限定為年滿 18 歲的學生身份;不論你是就讀於大專院校或者碩士班的學生,甚至是攻讀博士班的學生都能夠參加這項活動計畫!

那麼 GSoC 活動的程序,到底是如何運作的呢?

首先,由有意願參與計畫的開源專案管理者向 Google 提出申請,然後由 Google 篩選後決定正式參與計畫的專案名單。這些開源專案的管理機構或組織,被稱為是活動計畫中的指導者 (Mentoring Organizations)。專案名單出爐後,想參與的學生需要提交對於相關專案的提案 (Proposal),藉以推銷自己的程式能力,或者證明自己對於該專案的瞭解程度與已具備的知識。接著,這些指導者會進行評比以選出合適的學生,最後再由 Google 將適任的人選分配到各個專案之中,就能夠準備啟動 GSoC 的開發程序了。

依據 GSoC 中公布的活動時程表,入選的學生在正式開始撰寫程式前,需要先與專案指導者連繫,閱讀相關文件並且學習基本的專案知識,然後大約在五月底時,就可以開始動手撰寫程式。接著在七月中旬之前,會由指導者對學生進行一次期中的成果評估;然後在八月底之前,進行專案成果的最終評估,如果順利通過了這兩次評估的成果檢測,參與的學生就能夠提交完整的程式碼,完成整個活動計畫的程序。

可能很多人都會特別關心的部分,就是關於付款方面的相關事項了。Google 在款項支付的部分提到,每個入選的學生最多可以得到總計 4500 美元的款項!在獲得參與專案資格的時候,能夠先獲得 500 美元的款項;接著如果能通過期中的成果評估,就能夠再得到 2000 美元;最後,如果能順利通過最終的成果評估,同樣能夠得到 2000 美元!

有興趣的讀者,不妨將款項單位換算成新台幣,大略估算一下參與活動計畫的投資報酬率有多少,應該不難發現 Google 所提供的款項,真的可以說是相當豐厚的一筆報酬。當然要在世界各國的眾多優秀學生之中,能夠脫穎而出入選參與專案也是相當不容易的事。但是我認為無論如何,這絕對是一個極佳的機會,不僅能夠證明自己的能力,得到實質的報酬,更可以為未來的前途早一步做好準備。

參與者的申請日期從 3 月 24 日至 3 月 31 日止,為期僅僅一個星期整,甄選的結果也會隨後公布在 GSoC 的首頁中。而在 3 月 17 日時,Google 已經公布了 GSoC 2008 的入選專案名單。這次的專案數目果然又比去年更多,其中不乏很多非常著名而且受到廣泛使用的開源專案,例如:Wordpress、OGRE、Boost C++、GCC、PHP、Python 等等。而每個入選的專案,都會先Ideas List 的方式,條列出專案中需要協助的部分,或需要新增的功能項目。OGRE 提出的 Ideas 為例,其中的項目包含有:

  • 完成 DirectX 10 繪圖系統的開發與整合。
  • 完成新的記憶體管理模組。
  • 改善 LOD 系統與 Animation 系統。
  • 以 OpenVG 實現硬體加速的 2D 向量繪圖功能。
  • COLLADA 格式轉換器的創建。

而在其他入選的開源專案中,甚至還包含了七個遊戲專案

  • Battle for Wesnoth:奇幻風格的回合制戰略遊戲。
  • BZFlag:可跨平台與多人連線的 3D 坦克射擊遊戲。
  • Linden Lab:非常著名的線上虛擬世界 Second Life 的製作公司。
  • ScummVM:能夠用來玩許多經典冒險遊戲的遊戲引擎。
  • Thousand Parsec:用來創造回合制建築策略遊戲類型的 Framework。
  • Tux4Kids:專門製作以孩童為對象的教育類型遊戲。
  • WorldForge:多人線上 RPG 遊戲類型的開源專案。

如果你目前是在學的學生,但是現在才知道了這則消息,趕不及準備提案參加今年的 GSoC 也不用氣餒,只要能善加利用一年的時間好好準備,明年就會有更好的機會參與活動計畫。在學生時期如果能夠接觸到真正的遊戲製作者,或者與軟體專案開發者共同開發新的系統功能,不論是對於自我的學習成長,或是未來的工作方向都會有很大的幫助,同時也能為開源軟體領域盡一份心力,絕對會是一個相當可貴而且難以用實質利益衡量的寶貴經驗。或許目前以自己的能力來說,還不足以參與這項活動計畫,但是只要能夠朝著正確的方向,一點一滴的努力學習,充實專業領域的知識能力,將來一定能夠有機會入選!

在此,我列出了幾項個人認為很重要的基本能力供讀者參考:

  • 英語讀寫能力:為了能夠閱讀技術文件,與同伴進行問題討論與溝通協調,甚至是撰寫程式碼註解與說明文件,都需要具備基礎的英語讀寫能力。
  • 程式語言:做為一個資訊科系的學生,除了學習課堂上的理論知識以外,同時也要多多動手寫程式,鍛鍊自己的程式撰寫能力,並且至少熟習使用一種以上的程式語言。
  • 找出感興趣的專案:除了書本中所學習到的知識以外,也需要廣泛地接觸不同領域的知識,特別是與開源專案相關的軟體系統。接著從中找出自己最感興趣的幾項專案,開始學習如何應用這些軟體系統,然後再逐漸深入探究專案系統的原始碼,培養自己獨立思考與解決問題的能力。

當我看到 GSoC 計畫的發起時,心裡覺得非常興奮也非常雀躍,因為對於整個資訊軟體產業來說,這絕對是相當具有意義並且影響深遠的活動事件。很可惜我已經離開美好的學生生活很久的時間了,沒有機會能夠嘗試並且參與這個很棒的活動。雖然如此,我認為這項訊息對於未來有志於從事程式設計工作的學生來說非常重要,絕對值得在猴子靈藥裡開設一個新的文章分類並且撰寫一篇完整的文章,向各位讀者介紹 GSoC 的活動計畫!同時我也很期待,在未來的幾年內,面試想要進入遊戲界的新人時,能夠看到面試者把參加過 GSoC 的光榮經歷拿出來當作加分項目!至少,我個人一定會幫你加很多很多分的! XD

5 Replies to “Google Summer of Code:貢獻,收穫,然後成長。”

  1. 我是念電機的學生,我有參加開源代碼計畫,但我們的計畫沒有報名GSoC。我們的計畫是一個回合制RPG遊戲,雖然有點老掉牙,但這是結合了許多人的點子創造出來的遊戲,有許多獨特的特色,也有自製地圖編輯器。目前我是唯一的台灣人(也是唯一亞洲人),其他有興趣的人歡迎上http://www.allacrost.org看看。

    半路:
    上你們的網站看過了,感覺起來是很不錯的遊戲類型與美術風格呢~

    沒有報 GSoC 也沒關係啊,
    能夠參與開源專案的開發,對於以後的工作會很有幫助的。
    做為團隊中唯一的台灣人很不容易呢,一定可以學習到很多有用的經驗,
    請多多努力加油喔!

    謝謝你的回應!:)

  2. 現在才聽到這個消息,不知道會不會太遲?每年三月份的時候申請嗎,已經是在學最後一年了,很想要試試看!

Leave a Reply