大約一個禮拜前Google的HR在LinkedIn找到我,邀請我去面試。我本來打算在等到我在公司三年了再去投履歷(差不多再半年)。但反正機會來了,所以試試看吧。跟他們約了一個禮拜後在我在下班時間後面試。
今天就是一個禮拜後的那天。剛跟Google電話面試完軟體工程師在總部的工作。我準備了一個禮拜,但緊張得要死。45分鐘的面試終於結束了,心裡的大石頭也放下了

一開始問的是根據你自己的履歷上寫的經驗。我被問我在我現在的團隊裡的貢獻是什麼,什麼是continous integration, cvs/svn 跟 git的差別, unit testing, integration testing, dependency injection,如何寫要連資料庫但不需真的連的unit test(mocks, stubs)。
再來就是寫程式。他們會準備一張Google Doc讓你還有面試官可以一起作業。我被問的是費氏數列,還有合併排序 (不想寫太明,如果真的想知道再私訊我)。
他只叫我寫偽代碼而已因為他說寫真的代碼太麻煩了

我的建議:自己履歷上寫的最好懂,不然很容易被看出來在膨風,至少懂一種O(nlog n)的排序算法,散列表,陣列,順序表最好背得滾瓜爛熟。
如果有什麼問題可以再問,我儘量回答。

***更新***
5/12:
-上禮拜Google跟我確認面試日期後幫我訂了機票,旅館還有當地租車。我在面試的前幾天前就到了San Jose。剛剛好Google安排的旅館對面就是台式餐廳,所以我這幾天一直猛喝珍珠奶茶還有吃台式便當。這幾天的飯錢當然也是Google買單

-當天我早上提早15分鐘就到了,但我就坐在車裡複習考題,直到剩五分鐘我才進去。剩下的礙於保密協約,我不能透露太多細節。但基本上早上兩個面試,然後中午Google會安排一個人陪你吃午飯(一個小時),下午再三個面試。面試官都是不同的軟體工程師,有些看起來非常資深,有些非常年輕(有個看起來大學剛畢業沒多久)。面試模式就是在白板上解題。一天下來我背還有腿超酸的(因為一直站著)。

-說說Google總部到底怎麼樣吧。地點我感覺有點偏僻,附近好像沒什麼商業活動。但我所接觸到的好像只是整個Google園區的一小部分,但是已經有十幾棟了(都幾層樓而已)。然後到處都有黃色的腳踏車,免費讓員工在Google園區內使用(有時候要到另一棟真的有點遠)。內部的工作空間是開放式的,然後到處都是椅子還有沙發。還蠻多人自己隨便找個地方坐下來就做自己的事的。我還看到一個邊用跑步機邊在電腦上打字的

-員工餐廳據說有好幾十個(我只去了一個),每個的主題都不一樣(有BBQ!)。我去的那個那天有烏冬麵,披薩,沙拉吧,還有好像是墨西哥捲餅還是什麼的。全部都是免費。然後飲料隨便拿。唯一缺點是好吃的都排太長。我不想等所以就選了沒人排的披薩

-據我的觀察,Google總部的員工大部分都是亞裔,印度裔,還有白人。幾乎沒看到什麼西班牙裔或是黑人。
-因為時間的關係,每個面試官大概只會問一到兩題(看你解的速度多快)。關於考題,我只能說如果你電腦科學的基礎不好,那你肯定被GG。每一個面試官(Google這間公司)都非常注重運算法複雜度。然後面試官問的問題真的跟HR提供的練習題庫差不多。但整體來說我只給自己的表現打65分而已。聽Google員工說兩到三個禮拜內會給我答覆。無論有沒有上,我非常慶幸一切都結束了。過去這幾個禮拜我整個緊繃到不行,現在終於可以放鬆了。
4/17:
-後來得知面試地點是Mountain View, CA的總部。Google會幫我出機票還有旅館然我可以飛去面試。面試當天會有五個技術面試(在白板上解題),各45分鐘。我已經跟他們說我五月初有空,可以去面試。現在就等他們回覆。HR有提供該複習的CS概念。HR e-mail裡提到Google的技術面試是以C++, Java, Python為主。所以建議至少要懂一樣。我是準備以Java迎戰(雖然近一年沒用了因為最近的案子是Ruby on Rails)。
-有趣的是Google竟然有提供面試指導(只限於第進入二輪的面試者)。基本上就是可以在特定的時段到Googe的辦公室跟Google軟體工程師做練習題。如果當地沒有Google辦公室或者不想特別跑一趟,也可以透過Google Hangouts來接受指導。
4/11:
-下班後Google HR打電話來,說我通過了電話面試。接下來要我到他們辦公室去面試。細節HR會再用e-mail聯絡。他們給我電話面試的評價是「you did very well」。
-40分鐘後收到e-mail,要我在接下來的一個月挑幾天我有空可以去他們辦公室面試。面試時間是早上十點到下午三點半。中午他們會幫我安排在Google的員工餐廳吃飯。E-mail有提到他們的員工餐廳很棒,所以我非常期待
