職位類型:技術類
面試地點:廣州
招聘公司:Google谷歌
我非常喜歡Google公司,也想進Google工作,于是想在大三下半學期去Google實習。當時正好有師兄在谷歌里面,就請他幫忙推薦了一下。本來有了這個便利是可以不用筆試的,不過想想還是靠自己的實力吧,于是還是參加了宣講會和筆試。
谷歌技術崗位實習生面試經歷及實習收獲
筆試
我感覺Google的筆試重視的是CS所學的基礎知識,特別是選擇題、操作系統、編譯原理、編程等都考察到了,而且在網上搜筆經的時候有看到其他人說起過,如果筆試時候的選擇題沒達到要求的題目數,就會被直接cut掉,不看后面的主觀題。雖然無從驗證消息的真實性,不過大家做筆試的時候還是要多加小心。
筆試的主觀題一般似乎都是考的算法,對于平時沒怎么寫過算法題目的同學會比較難,不過我認識的一起去筆的ACM的大牛們都覺得很簡單,所以建議以后想去筆g家的師弟師妹們還是要好好準備下算法這part,g還是蠻重視這方面的。
順利通過了筆試,然后就是面試了,這是偶的處女面,當時心里超級緊張,簽了保密協議就在那里等。
一面
第一面面我的是stephenGe,問了我一個很經典的算法題目的變種,屬于該經典問題的一個特殊情況,不過由于簽了保密協議就不在這里說了,如果有看過《具體數學》這本書的話應該有看過類似的變種,是有O(1)的算法。
可惜我當時真的是太緊張了,雖然看過類似的題目也想往那個方向想,可惜還是沒能想出來,于是只能從頭開始推,最后勉勉強強在錯了幾次和面試官的提醒下,推出了個O(n)的,然后就結束了。其實我想應該會面兩道的,不過可能因為我的時間已經用完了,所以面試官沒有再問。
然后當天回去后以為要當炮灰了,結果過了幾天好很驚異的發現自己收到了二面通知,當時真的是很開心,估計是因為我的答案雖然沒有最優,但是O(n)對那個經典問題的一般情況可以算是最優的,所以被放過了吧。
二面
二面我的是wang chaogg,很nice的一個人,問的問題也不難,方法一下子就想到了,不過我還是經驗不足,寫代碼的時候寫出了很多小錯誤,影響了這面的成績。
這里提醒一下大家,要面Google、微軟這類公司,可能會要求你當場寫出可運行代碼的公司的時候,最好在去面試之前好好練習一下,先自己習慣一下在紙上coding的感覺。我就是訓練得太少,結果當時出了很多低級錯誤,例如把a<;<;=1寫成了a<;<;1之類,搞的每次改完一編wang chao都會問我,"你要不要再檢查一下",然后還每每能找出我的錯誤,弄得我當時完全郁悶了……
還有就是Google對細節的要求是很高的,記得當時我代碼當中寫了一句int n=lg(s)/lg(2);然后面試官就當場就把我的代碼敲了進去測試,把結果給我看,原來是想告訴我這句可能會有精度問題,話說我雖然平時也知道會有這種問題存在,可是沒想到會要求到這個程度,還好我接著說那就加個1e-7之類的就好了,似乎面試官覺得這個答案還可以,沒繼續追問……
然后就拿是拿到了Google的實習offer,去了北京。
實習收獲:這里再說一下實習里面學到的東西。
1.好的coding style,這是我之前比較欠缺的一方面,也是我本科很少訓練的一方面,之前都是覺得寫個程序能把結果弄出來就是了,其實一個好的coding style會使你的代碼易讀性大幅度提高。
2.文檔和注釋的規范化,在那里第一次體驗了寫文檔和寫注釋比寫代碼花費更多時間的情況,無數次被老板讓我改注釋,話說我之前寫程序都是很少寫文檔的...同時也很佩服engineer們對代碼的嚴格要求,嚴格到了就算注釋里面少打了一個空格都會很細致的給我指出,有時也許會想,也許就是這些對無數性能和細節上的精益求精,才造就了Google今天的成功吧~寫出這些是希望師弟師妹們吸取我的教訓,在coding的時候也注意下這些方面~
3.intern的conversion,也就是申請full time再加的兩輪面試,不過其中一面面得不好,于是fail掉了。
Google的面試制度
最后再介紹下我了解到的Google的面試制度,一般申請full time最少要面4面,由4個不同的enginner來面。面試的內容和范圍不定,不過一般都會根據你簡歷上寫的來問,所以如果自己沒做過的項目,不擅長的方面就不要往上寫了……
如果你是本科生沒做過什么項目,又除了學校教的一些基礎知識外沒學過多少課外的東西,那么一般一開始都會被問到算法,我自己碰到的難度感覺上大概是poj上那些三四百人過的難度,不過在水木看到有人說碰到的難度和top coder srm div1的250分題目差不多,這個難度對那些平時搞算法的大牛估計就是秒殺的難度了,不過如果是平時比較少玩算法的,可以針對上面的難度準備下~
好了,我的面試過程、實習收獲還有了解到的東西都告訴大家了,希望大家都能求職順利啦。