標籤:

谷歌編程之夏(GSoC)的含金量高嗎?

今天看到13編程之夏已經接受報名了,有這樣幾個疑問:

1. 報名者需要有什麼樣的基礎才可以被選拔上?

2. 想取得好的成績難度有多大?

3. 有什麼好的經驗可以分享。

謝謝。

------------

報酬方面是不是也可以提一提?我聽說有一個中國的做一個項目是5000刀,這個對於還沒畢業的中國學生來說還是不錯的。


先說說含金量的問題。其實從各方面來說,這個含金量都是很高的,遠遠超過一份互聯網公司的暑期實習。我參加過兩次GSoC,也參加過兩次暑期實習,這個對比還是很明顯的。實習其實基本是打雜,但是在GSoC里是真正地負責一個項目,一個社區期待已久的feature。能學到的東西、以及最後的成就感是完全不一樣的。

Ps. 如果所謂含金量還包括了對找工作的幫助的話,那麼實際上谷歌里負責GSoC項目的Ms. Carol說過,凡是參加過GSoC的學生,隨時可以找她內推去Google。我正好今年找工作,就正在等待時機使用這個重量級內推 :)

1. 報名者需要有什麼樣的基礎才可以被選拔上?

如果你有語言偏好,那麼當然最好找對口的,例如一些偏php的web項目,一些Java寫的應用,一些C/C++寫的遊戲等。至於編程的實力,其實並沒有那麼高的要求,足夠cover住你的工作就行。上面@羅聰翼 哥哥也提到了,我11年給Blender做國際化的時候,完全沒用過這個軟體,也基本不懂3D建模,但是我所要做的東西跟這些沒關係,我就根本不需要知道。

所以當你看到有些來頭很大的項目,例如Python,GNU,Unix,不要望而生畏,點開看一看,很有可能會發現一些idea完全在你的能力範圍之內。接下來需要做的就是去和社區里的人「套磁」,讓他們相信你能夠勝任這個項目。

我的室友是大三暑假參加的GSoC,我大四、研一各參加了一次,去年中國貌似有一個大二的成功參加,而國外甚至不乏大一大二的成功參加。所以我覺得計算機大三,或者基本達到這一水平,付出一點心思,付出一點勞動,就完全可以成功參加。

2. 想取得好的成績難度有多大?

我覺得在寫proposal的時候就應該考慮到工作量有多大,基本按照3個月的全職實習工作量(每周5天,每天6小時)來考慮是比較合適的。在這個時間內,盡量把該有的feature做完,代碼穩定,文檔充分,最終能順利進入主代碼庫,應該就算是很不錯的成績了。

如果是一個較大的項目,你可以拆成幾大塊,在GSoC時間範圍內完成其中一塊。後續再接著做其他的,畢竟GSoC本身的意義就是為開源軟體找到更多志願者。也可以在第二年的GSoC再繼續完成,這相當於做了個大蛋糕慢慢吃。

也有很多項目沒有做得盡善盡美,例如不穩定,BUG多,缺文檔,其實mentor也都會給pass。我2012年做的項目其實就是在別人2011年的項目上繼續做,重構一下,修修bug,增強點功能,寫些wiki,最終使它併入主代碼庫。工作難度不大,又比較有意義——要不然2011年的工作就白白浪費了。

所以說,多付出一點,總會取得好成績的。比如你每天干8個小時,或者每周干6天,結果肯定完全不一樣——前提是你乾的時候要感到快樂,這是GSoC和實習的區別之一。

3. 有什麼好的經驗可以分享。

貌似上面說得挺多了……

大概還需要補充一點——多說話。多跟社區的人、自己的mentor,甚至跟你自己的項目不相干的人交流,甚至去幫助別的GSoC學生。積極交流和反饋至少可以將你的申請成功率提高一倍。

以上,祝成功!


有關這個項目的申請和簡介可以參考去年我為Blender的GSoC項目翻譯的申請說明:http://wiki.blender.org/index.php/Dev:ZH/Ref/GoogleSummerOfCode/2012/Ideas

接著結合之前的2年尋找中國項目申請學生的經歷聊聊:

1,我接觸到的大部分學生都在問我一個問題,我會不會不夠資格啊?而其中很多人連試一試的勇氣都沒有,還沒開始就已經打了退堂鼓,我總結出這些學生自己認為申請的難度有以下幾個:

  • 自己的英文不夠好,能看懂能和老外交流嗎?(難道學會說話一定專八嗎?)
  • 我沒什麼公司的實習經驗,他們會要我嗎?(不要把GSoC和實習劃等號)
  • 我編程能力好像不夠強啊,要是做不下來怎麼辦?(其實外國的申請學生也不一定個個牛逼,每年都有做不出來的學生,還有學生因為無法完成乾脆直接消失掉,害得導師和社區到處找人。所以為了避免學生擔心難度,每個項目都配備了在選定課題上最權威的開發者作為導師,其中很多不乏國外大學中的猛禽級教授)
  • 我好像對這個軟體都不熟悉,或者還不算精通,我擔心我不能開發好這個功能(不是申請下來就立馬開始編碼,你有充足的時間去學習,而有些課題根本不需要太多的整體使用經驗,例如Blender2011年由中國學生完成的課題是軟體國際化模塊開發)
  • 進這些項目相關網站還要翻牆啊?還要學iRC啊?還要學寫郵件啊?(翻牆都不會,你學編程是靠百*的啊?)

所以綜上所述,申請者最需要具備的基礎就是對自己的自信和對項目的熱情,如果你剛好有和項目相關的類似開發經驗,那麼這肯定會加分。至於語言什麼的,沒人要求你一定得到精通C++和Python才能申請這個項目,但是會的多也不代表你能加分,只能說你可選擇項目的機會多點。

2,好成績的難度和你的付出成絕對的正比,如果你不會項目相關的軟體,可以求助開源社區,社區對待開發者是200%的歡迎;如果你在開發上遇到瓶頸,可以求助郵件列表,學會參與國際化的各種討論方式,論壇,iRC,郵件,但是請務必在先Google之後再去求助,別人願意幫助你不代表可以偷懶,請先知之而後問,不要把這些求助方式完全當成獲得快捷答案的通道。

末了,項目評審通過即表示完成,但是社區和導師一定會對你期望更多。開源社區中很多優秀開發者都是以GSoC作為入門,從而成長為更成熟的開源項目專家。現在Blender基金會僱傭的全職開發者中就有當年的GSoC學生,他為Blender部署了十分優秀的攝像機反向追蹤技術。

3, 經驗請參考我最上面發的鏈接,我想這應該寫的比較實在了。

最後,希望能看到更多的中國學生參與GSoC,其實很多人都十分優秀,但是面對這些優秀的校外實踐項目時,不夠自信成為了最主要的瓶頸。想想這幾千美金的獎金(不用交稅),想想自己在校期間這項獨一無二的鍍金經歷(我相信這比任何證書任何校內外實踐項目都更有價值,而且一年全國能有幾個人有這份閱歷?),想想你所學到的不僅僅是如何去編程,還有如何去學習如何去接觸全球更多頂級的開發者。

不要等到你畢業之後再後悔,那就來不及了!

2016年2月16日更新:

2016年Blender的GSoC開發提案列表出爐了,有興趣的同學可以關注一下,鏈接如下:

Dev:Ref/GoogleSummerOfCode/2016/Ideas


做過兩屆 GSoC 學生一屆 mentor,補充幾點:

  • 不管是否臨近申請,平時多關心自己愛用的開源項目,嘗試報告 bug 寫 patch,就不至於到申請的時候才來拉關係。
  • 不要好高騖遠,做自己力所能及的,這點其他兩個回答都提到了,很多項目的 bug tracker 都有比如 GoodFirstBug 這樣的 label/tag,從這些簡單的改起可以建立信心。
  • 申請前學好英語寫作和 Email 的禮儀。注意文稿的格式。從我對常訂閱的開源項目郵件列表的觀察看,英語表達能力最差的第一是中國學生/工程師,第二是印度學生,單從這一點就讓人在印象上大大減分。
  • 最好能在 GSoC 評審結束後堅持做下去,不要僅僅想這個項目對你鍍金有什麼作用,而要更多的想它對別人起到了什麼實際作用:如果僅僅是你簡歷里的一點,而沒有合併進開源項目主幹的話,意義是很小的。


報名者需要有什麼樣的基礎才可以被選拔上?

Proposal 寫得靠譜,你的技能符合項目的要求,能用英文做書面交流,Mentor 覺得你行,就可以了。當然熱門項目的競爭會大一些。

想取得好的成績難度有多大?

提高你的參與度吧…… 我覺得我應該不算取得好成績的那一類,所以沒法說什麼。

有什麼好的經驗可以分享。

Again,提高參與度,不要浪費時間和機會。

GSoC 是個好機會,但是從含金量來說,不太同意其他答主的觀點,看你如何定義「含金量」。

  • 對於自身的發展來說,參加項目是否能得到提升和鍛煉取決於你參加項目的氛圍和你的參與度,冷門項目,你自身又不夠積極的話,那可能就是了解一下開源社區的運作流程,完成 Proposal 里的最低要求然後拿錢了事。像我這麼渣的,參加完還是那麼渣。
  • 從對找工作的幫助來說:GSoC 只能說是在小圈子裡有名氣,HR 們可不知道什麼是 GSoC —— 在朋友的幫助下內推了幾家大廠的簡歷,全部石沉大海,完全看不出 GSoC 經歷對我的幫助 ,所以是我簡歷寫得太差了么?雖說今年成功參與 GSoC 的學生都有谷歌內推機會,不過我沒敢去。
  • 從真正的含金量來說:在國內,5500 刀算是一筆不小的錢了,比國內絕大部分實習高。

對我自己來說,這次 GSoC 還是比較遺憾的…… 雖然沒有被 fail,但是自己做得太少,不配拿這筆錢,希望明年有機會加油吧。

--

利益相關: GSoC 2016 參與者。


說一些我的經驗,我做過一屆GSoC學生一屆Mentor。

1.報名者需要有什麼樣的基礎才可以被選拔上?

我非CS專業,不過對編程有興趣。當時自己專業與申請的GSoC項目完全無關。周邊沒有認識的人可以傳授經驗,不過GSoC的FAQ你讀完也差不多了解如何做了。那年過完年後想起來3月份就是一年一度的GSoC了,然後就在寒假裡開始做準備。挑了幾個感興趣的項目,大概熟悉項目後去逛項目的郵件列表,有不明白的可以在上面問。定下你要申請的項目後再精心準備。

2. 想取得好的成績難度有多大?

看你自己願意付出多少了,收穫與付出正相關。

3. 有什麼好的經驗可以分享

- 想要申請成功,需要早做準備。

- 申請的項目與社區需求對口可以提高成功率。做Mentor的時候發現有不少申請者申請前沒有與社區好好溝通,項目難度太高,導致申請失敗。

- GSoC結束之後,做好收尾工作。我當時代碼的後續優化花了不少時間,到進項目的代碼庫又是三個多月,可以當成再參加一次了。。。其中的辛苦不說,不過後面來我的Mentor看我態度良好,直接問要不要去念他們組的PhD;)

- 項目的獎勵確實比較豐厚,完成了可以好好犒勞一下自己。


1. 報名者需要有什麼樣的基礎才可以被選拔上?

選擇的標準取決於社區,往往是你對項目越熟悉,比如貢獻過補丁,在此領域有經驗,而且申請的項目的難度不大(太難需要mentor冒險選你,還要擔心你完成不了),項目工作量剛好適合GSoC的時長,即可。

2. 想取得好的成績難度有多大?

其實只有中期檢測與末期檢測,過了的話,就算完成了GSoC,拿到證書了。一般入選GSoC後,好好做都能完成。取得好成績嘛,這個就要你自己用心去做了,課題完成度越高,給社區貢獻更多,就算拿到好成績了嘛。

3. 有什麼好的經驗可以分享。

提前準備,熟悉項目與社區,多交補丁,最好完成項目的prototype(前車之鑒)

====感謝的分割線===

我的Google Summer Of Code經歷

在大一寒假時,正好在知乎看到了谷歌編程之夏(GSoC)的含金量高嗎?此問題,心嚮往之。

在瀏覽了一些答案後, 看到@larmbr宇 介紹了@洪謙(QianHong) 熱心幫助學生參與GSoC,雖自知還是菜鳥一枚,但還是誠惶誠恐的私信了他,希望能夠參與GSoC。相信各位在程序員的成長路上,肯定都會有參與開源項目的小目標,先不說5000美金,僅僅是有目標性的參與開源項目就吸引力滿滿了。

隨後@larmbr宇就幫忙聯繫QianHong,並且給出了鼓勵與建議;P

"勾搭"上QianHong後,當時看到wine-zh社區的中國開發者這麼厲害,便稍有打退堂鼓,認為自己暫時還不適合參加,畢竟當時沒有真正的使用linux,連github也沒有用過。於是在之後便盡量些少的準備,學習相關的知識,訂閱wine開發者郵件。

一段日子後,QianHong發來了郵件,問近況如何,以及一些參與GSoC以及Wine開發的建議,滿滿的一大篇,可見其用心程度。當時剛剛開始用郵件通訊以及gmail,一些郵件禮儀都不甚清楚,QianHong便耐心的建議以及一步一步的指導,著實讓人感動,QianHong是我認識的最好的老師,沒有之一。估計在以後的人生中,不會再有這麼好的老師了T_T 第一次回復如下:

hi, 幾個建議:
1. 郵件盡量用純文本,除非必要不要用html格式/富文本格式,尤其是在英文技術列表中更要注意。
2. 訂閱郵件列表不要訂「摘要模式」,更萬萬不要回復摘要郵件。
3. 關於c/c++ runtime,現在就有個簡單的任務:
先下載和編譯Wine的源代碼;
然後查看代碼目錄中的dlls/msvcp90
$ grep stub msvcp90.spec | grep complex
可以看到下面這樣的函數:
@ stub -arch=win32 ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@H@Z
@ stub -arch=win64 ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@H@Z
@ stub -arch=win32 ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@H@Z
@ stub -arch=win64 ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@H@Z
@ stub -arch=win32 ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@H@Z
@ stub -arch=win64 ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@H@Z
@ stub -arch=win64 ?_Cm@?5???$log@M@std@@YA?AV?$complex@M@1@AEBV21@@Z@4MB
@ stub -arch=win64 ?_Cm@?5???$log@N@std@@YA?AV?$complex@N@1@AEBV21@@Z@4NB
所有這類以stub開頭的東西都是Wine項目未實現的函數。
上 http://demangler.com/ ,可以把這些經過mangle的符號重新demangel為c++的語法:
例如這樣的:class std::complex& __cdecl std::pow&(class
std::complex& const ,int)
然後就可以試試自己動手實現這些函數,參考dlls/msvcp90/math.c中同類函數的實現方法:
dlls/msvcp90$ grep pow *.c
(或者 dlls/msvcp90$ grep -A50 -B50 -w pow *.c )
這個任務的難度對你來說合適嗎?

在隨後的很多問題上, QianHong都是如此耐心詳略的指導,大家感受一下(後來不小白了就沒有這樣面向小白的回復啦)。現在回看以前的郵件,還能學習良多,感覺能夠被人如此指導就是撞大運了(好了,現在QianHong在其他領域也會給詳盡的建議我)233

那段時間大致是我成長最快的一段時間吧,從自娛自樂寫一些程序,到參與Wine這樣一個有著10年歷史與複雜架構的項目,從一個啥也不會的windows VS小白轉到了linux vim開發。

從14年3月開始斷斷續續做了幾個月,才把第一個補丁寫出來,並且加上了測試,而補丁最終被接受已經是大二的9月了;

而後14年的GSoC已經來不及參加,於是便為此一直為Wine寫關於實現VC++runtime模塊的補丁,在此期間學習到了非常非常多的東西:P

最後終於成功參與了15年的GSoC,課題是實現tr2 filesystem庫。

隨後也可能是憑著此經歷,得到了@肖祥全的內推(感謝!),幸運的獲得了Google的面試,可惜演算法不佳,在電面就掛了。

16年的GSoC,原來在寒假前打算嘗試新項目,參與了R語言GSoC2016的準備,把GSoC Re2正則表達式庫的要求準備全部都做完了,成功的作為candidate的時候,mentor發了我一封郵件

Dear YongHao,

We received another very strong application for the RE2 project from Qin Wenfeng who has already implemented a working prototype https://github.com/qinwf/re2r

It may be possible for you both to work on the RE2 project in GSOC, if you write proposals to implement very different but complementary features. I would encourage you to write an email to Qin and start a discussion about which different features you both could work on.

告知我已經有一位中國學生完成了re2項目的原型了@-@,囧死了。

得知wenfeng是一位經驗豐富的R user以及已經完成了prototype,項目量不夠兩個人合作,便放棄了此項目。我打算準備的另一個項目BOOST也剛好在這年拿不到GSoC的名額, 於是我又投回Wine的懷抱,此時挑戰的是更難的項目: concurrency庫,也因太難而選不上了,太難了mentor不會冒風險嘗試。

後來因為忙著找工作的事情,就沒有繼續填坑了,希望之後有機會繼續填。

以上便是全部GSoC經歷,也是我大學的一個重要組成部分了。

大學更為重要的部分是?

當然是女朋友啦 ;P


同樣,希望這個項目被更多的中國學生知道,參與。也希望相關專業的教師們積極鼓勵學生參與。互聯網時代,機會無限,只要不限制自己、找准目標、努力做事!

以下是一個參加過兩次Google Summer of Code 的人的經驗分享(以下提到的是第一次參加的項目):http://google-opensource.blogspot.com/2016/02/coming-to-america-how-google-summer-of.html (鏈接可能因某種原因無法訪問,以下粘貼了全部內容。)

--------------------------

Coming to America: how Google Summer of Code helped change my life

Posted: Wednesday, February 3, 2016

Today we feature a story about Weilin, a Google Summer of Code student turned PhD candidate. The 12th instance of Google Summer of Code is just around the corner! Visit our new program website at http://g.co/gsoc for more information about how you can get involved.

My name is Weilin Xu and I』d like to tell a personal story about my involvement with Google Summer of Code (GSoC) and just how the experience helped change my life.

I first learned of GSoC in 2011 when I was a CS undergraduate in Beijing. The program sounded great, and my first challenge was deciding which of the hundreds of participating open source organizations to apply to. I finally decided on the Nmap Security Scanner, a tool known for network discovery and security auditing. Nmap is even a movie star, but I chose it because of my fascination with networking and the new IPv6 protocol.

My biggest fear was that I might be unqualified to work on such a major project with millions of users. I didn』t have much experience in the open source community, and my English was really bad.

Meeting my GSoC mentor David Fifield (right) in San Francisco, May 2015

I applied anyway and I』m so glad that I did! The Nmap crew accepted my application and I was assigned a talented, friendly and patient mentor named David Fifield. David taught me how to use Git directly rather than just throwing me a tutorial to complete on my own. He believed that he could teach me in minutes online what could take me an hour to learn from an English article on my own. David also helped improve my English during our weekly online meetings and always encouraged me by pointing out how I』d improved. Working on Nmap with David that summer was terrific and gave me the confidence to succeed!

My project was improving Nmap』s IPv6 scanning features--particularly the host discovery system. The current IPv4 Internet』s address space is small enough to scan by brute force, but that is not possible with IPv6. So we researched and implemented other effective discovery methods, such as our targets-ipv6-multicast-slaac and targets-ipv6-multicast-echo scripts which discover link-local hosts within seconds using the IPv6 NDP protocol. Many of these techniques were already known to the networking/security community, but they were new to Nmap and that brought them into wider use. It was great to see the community appreciating these new features, and perhaps we even helped in spreading IPv6 adoption!

The Nmap GSoC experience was an important milestone in my life. It taught me critical development and research skills and it even helped me find a great job. Tsinghua University』s NISL lab offered me a full-time position which typically requires a master』s degree, but they made an exception because of my real-world GSoC experience!

Before GSoC 2011, continuing my graduate studies in the United States was never more than a dream. Study abroad is usually for wealthy Chinese families, not poor ones from rural areas. But David (a graduate student himself) encouraged me to apply and wrote a recommendation letter. I used the GSoC stipend to pay my graduate school application fees as well as testing fees for the GRE and TOEFL. After months of anticipation, I received great news— a full scholarship from the University of Virginia to research and study adversarial machine learning! My parents were very proud, and I moved to the U.S. for this exciting adventure.

I recently had the honor of meeting my mentor David in person, along with Nmap』s founder Fyodor at the 「Nmap Secret Lair」 in San Francisco. Fyodor took my picture with David that I』ve included in this post.

I would like to thank Google very much for organizing this fantastic GSoC program and my mentor David Fifield for being so supportive and patient and helpful. I』d also like to thank Fyodor for all of his help as well. Finally I』d like to thank my twin brother Guanglin Xu for introducing me to GSoC in the first place.


當然好,我男盆友參加了兩屆,當然他也做過別的實習,後來拿到Google offer,感覺多少有加分。答題攢RP,求男票下月抽籤抽中。

12月3日更新:

沒有抽中,parking到歐洲某國。男盆友已經成為老公了~


實習過,也參加過gsoc。

不能說哪個好哪個不好,含金量哪個高哪個低。

gsoc適合自我推動力強的,如果沒什麼目標那有可能幾個月的時間就是在給漢化工作打雜了,基本上零收穫。實習的話就有壓力了,尤其是在BAT或者網易遊戲這些地方有mentor面對面指導。


做項目有兩個好處:

(1)項目做成功可以潤色resume;

(2)即使不成功,也是很好的學習機會。

Google summer of code可以證明你是一個渴求輸出的學生,但是這個項目在美國一般是大二生去做的,所以沒有辦法向你今後所要申請的Google這種大牛公司證明你是一個比其他申請者牛的人。

所以,我個人更看重第二個好處,能有機會進行高質量的學習交流誰能說含金量不高呢。


恰好我今天看了下,感覺是這樣。

含金量非常高,但是 他接受的projects也有限制--要被開源社區看得上。

那這樣的話也限制了你projects的範圍,我本來想著如果能接受移動APP的話我就報名試試了。

看看各大開源社區的項目, 那難度可都不小。


沒有很大的含金量,技術上的收穫主要看mentor code review的水平,review的越詳細,你寫的code越少越有意義。

GSoC和實習不衝突,我參加了第一屆和第二屆:2008,2009,當時大三和大四,兩個暑假都同時在實習。


推薦閱讀:

Go語言在國內比在國外火的原因是什麼?
如何優雅地使用 Google ?
消息稱 Google 或於近期推出 Google Play 中國版,你怎麼看待?
為什麼YouTube合作夥伴計劃允許的國家/地區沒有中國大陸和香港台灣?
怎樣評價微軟的Fluent design和谷歌的Material deisgn?

TAG:谷歌Google |