這是一篇 Google 的面試紀錄 + 心得,會獨立出一篇來是因為 Google 真的太偉大了,不管在面試的體驗也好,或是整個流程來說,都是很獨樹一格的,所以值得直接分出一篇來。
投遞方法
- 從 Google career 丟的
- 申請:基本資料 + 履歷 + 成績單
- 最後我有請裴裴學長和皓丞學長幫我內推(感謝學長!)
- N 週之後回覆我說可以面試了
我還是搞不太清楚我怎麼得到回覆的,我用我主要用的 email 丟了申請之後石沉大海,眼看石沉大海不行,所以我就請偉大的裴裴學長幫我內推,他內推的機制是要綁 email,綁了之後就可以有三次的內推 apply 機會,但很不幸的我把他綁在我已經丟過的 email,因此不能再丟一次,於是呢,我就請偉大的皓丞學長再幫我內推,這次換成綁在 csie 的信箱,在他幫我內推的當天晚上我就想說去丟一下(晚上 12 點左右吧),丟完了之後我再回去 csie mail 看,發現 recruiter 已經在晚上 11 點多的時候回覆我,說有得面試了(問題是我沒有給皓丞學長我的履歷,之前用同一個 mail 申請的也是用破破爛爛的履歷),整個就超怪的,不管怎麼想都很奇怪,就算是看到我主要 email 丟的履歷也應該是回覆到我的「主要 email」,而不是 csie mail,不過有得面試就好了,總算是有得面試我大 Google 了,就算面試被爆打也無所謂,至少有面試了。
面試流程
面試流程真的很長,我是沒有進到最後的 hiring commitee,不然還會更久。
一面(Google Meet - Phone Interview)
這關的面試官一開始就直接說英文,先發制人,直接讓我沒辦法用中文說話,也不好意思問他是不是會講中文。這關他問的問題都是有關圖的 connected component,感覺上真的不算難(大概因為是第一關吧),一共兩題,我差不多在 35/45 分鐘的時候寫完。一開始蠻緊張的,要用英文講,也忘了要先把題目的要求問清楚,所以在寫的過程有點修修改改,這點在面試結束的聊天階段面試官有跟我說,建議我要先把 edge case 想清楚,評分的標準也包含了我怎麼跟面試官討論、如何定義問題以及考慮輸入範圍跟格式。這關的面試官人真的蠻好的,我有沒考慮到的 edge case 他會提醒我,最後也給我不少可以改進的建議,算是很不錯的面試體驗,而且他最後還說我表現的很好,簡直是大好人,這樣應該還會有下一關吧?(總不可能他說我表現很好還讓我下去吧)
二面(Google Meet - 4 Technical, 1 Behavior)
1.
這關是一個做 infrastructure 的 lead 來面試我,他一開始先用了中文讓我卸下心防,後來就還是說要用英文進行面試QQ。他送我一題似曾相識的題目,而且也正好是我面試前在看的相關題目,我面試前還是再看了一下 treap 怎麼寫,結果還真的就考到要用 treap 的題目。所幸在面試官的強力引導下,本來要直接硬著頭皮寫的我,花了非常多時間在跟他討論問題的定義,一些 edge case,還有我應該要怎麼做,有哪些要考慮的地方。在討論的過程中,其實也主要都是他在引導,我其實跟自平衡樹很不熟,他在使用例子討論的時候就直接把 7 成我不確定的地方寫出來了,剩下的就是我要給他一個針對題目而且合理的作法。在討論完之後其實就沒剩多少時間了,大概剩 15 分鐘吧,他就幫我貼了一個 template 上來,我要完成的部分就又越來越少,整體來講我可能只寫了 10 行左右,有些地方甚至是我講出作法,他就直接幫我寫上去了。
不得不說這關的面試官真的人超好的,雖然是用英文的關卡,但對我來說除了語言之外都極致的友善。在結束之後他讓我問問題時間,甚至也是我提了一個小問題他就有辦法說出超多東西,包含了他有些同學待在 MTK,跟他現在在 G 所做的事情有什麼不一樣;以及 Google 居然在台灣設置一個這麼核心功能的 team,讓我很訝異,他也說其實台灣的硬體真的蠻厲害的,就也需要一個 team 來專門設計跟訂做他們要的東西。我面試前最害怕的 treap 居然讓我以這種方式度過了,讓我安心不少。面試官也分享了蠻多關於面試的一些事情,包含了其實做不出來不是重點,他們的評分也包含了溝通等等的,跟上一個面試官講的完全一樣,他多透露的是他們面完一關要花一個小時以上在寫報告,感覺蠻不可思議的。
2.
第二關的面試官就感覺話比較少一點,也感覺很資深,他出的題目是關於字串的題目,乍看之下蠻簡單的,不過我一開始也是小誤會了他的意思,在弄清楚意思之後就變得稍微難一點點,但也是最多 medium 的難度,在用例子討論的過程中雖然面試官蠻熱心的加入,但有時候會講一些錯的東西(我的 code 不是寫那樣做,但他卻說那樣做),除了這個之外,他選的題目真的算是蠻簡單的。雖說很簡單,但是討論到最後時,也是看起來沒有把題目走到完,最後一個 follow up 我有給一個合理的解釋,但已經來不及寫完了,只好用註解來解釋我的作法。結束之後他就沒有讓我問問題的時間了,可能是比較忙吧,少了一次聊天的機會感覺蠻可惜的。
3.
這關是中文的,題目雖然面的當下覺得很難,但之後再回來看就覺得自己沒有發揮的很好,難度應該是介於 medium 跟 hard 之間。雖然有勉強唬爛出一個時間複雜度似乎是對的解,但因為我一開始就先寫個暴力解所以也沒時間寫出我唬爛出的東西了,而面試官也沒要求我這麼做,本來因為是時間不夠了,後來才恍然大悟,根本是因為我講的東西不是對的。在唬爛完第一個小題之後,還有一個 follow up,這個我一樣是把想法先想出來,不過很可惜的是我是 based on 第一小題的錯誤解法,不然我的方向其實是對的。總結起來這關我幾乎都是紙上談兵,沒有真的把什麼東西寫出來。
4.
這關是英文關,題目是有關 graph 的,真的不算太難,但我發揮的也不怎麼樣,再加上上一關的摧殘,心態已經沒有 100% 了,難度大概 medium 的題目我也沒有回答出正解。一方面是用英文的關係,用英文已經讓我更難理解所有東西了,另一方面是我也有點小累了,所以最後才會變成我說的 greedy 解有錯,但我一直不知道面試官說我錯的地方到底是哪裡,就這樣糊裡糊塗的過了 40 分鐘。最後也覺得自己表現的蠻糟的,不過也已經都結束了。這關給我的感覺也很像是第三關,花了太多時間在一邊打字一邊講話(我想說這樣能讓面試官更清楚我要表達的),幾乎沒有寫到什麼 code 就沒時間了。
5.
這關是聊聊天關卡,我以為會是 HR 之類的來跟我聊天,沒想到後來問了發現是工程師。他問的問題其實就蠻一般的,沒有特別難回答的問題(大概是難的 behavior 問題都在 MixerBox 體驗過了吧)。整段面試我最印象深刻的地方是原來面試官也是台大資工畢業的,只是年代似乎有點久遠了,而且還是個超強的強者,我會發現他是超強的是先問他比較喜歡問 behavior 還是考演算法,他說比較喜歡演算法,理由是 behavior 的報告要寫很久,我就說我面下來會覺得如果我是面試官,然後面試者說了一個不對的東西,那面試官不就要想為什麼那是錯的,感覺就很困難,但他說不會阿,他覺得還好。
後來就問到他是什麼時候加入 google 的,他就說他其實蠻晚期才加入的,一開始先在新創跟別地方待了一下,而且又因為大學就有在 google 實習過了,所以想去外面玩看看(在大學就有 google 實習的強者),沒想到他是他那時候 ACM 的國手,有代表台灣去打 regional final 之類的(我不確定是不是這個,我沒有很了解),總之就是超猛的人。後來我也問了有沒有現在在我們系上的教授是跟他同期的,結果還真的有,陳蘊儂教授是他的學妹,我整個不敢置信,覺得世界好小。後續我還問了很多關於面試怎麼安排,平常在 google 有什麼休閒活動,在 101 沒有只有早午餐怎麼辦(多裝一份當晚餐)等等的莫名其妙的問題,一時之間好像沒辦法全部想起來了,總之算是 google 面試裡面體驗最好的關卡之一吧。
因為面完的時候我已經有其他 offer 了,所以面完的隔天我就寄信去問 HR 我的 feedback 如何,想要知道一下我的表現來決定之後的安排,隔天他就無情回信說我沒了,該下去囉~我自己感覺起來應該是在及格邊緣,不過因為我寄信去催,所以就直接下去囉。(也有可能是我真的面不好,我也覺得可以接受,因為的確是沒有想到最好的解,跟面試官的討論我覺得也是普普,特別是在英文關那邊)
心得
真的不愧是 Google,身為一個很多軟體工程師的夢想,就是這麼難被錄取。儘管聽說近幾年以來正在大力擴招,但還是有一定的 hiring bar,在去面試的眾多同學之中(好像也沒有幾個),目前為止只有兩個人上了而已(不含國手同學們的話),雖然說相信還沒去面試的其他同學一定也會有被錄取的,可是整體來說,說是有在大幅擴招的公司也是有點沒說服力(是說 intern 的話就有感覺到了,有超多學弟妹都進 Google 實習,但也是難以排除學弟妹比我們這屆強很多的可能)。不過也很正常,他們給的薪水加上滿滿的福利,本來就是要有相對應的能力才能享有的,依靠努力也好或是聰明也好,不太可能什麼都沒有就能進 Google。
說來慚愧,本來想說應該已經能上 Kronos 了,面 Google 就當作走完面試流程,有也好沒有也罷,本來的盤算也是覺得我應該有辦法在第二階段 virtual onsite 的地方至少有 3 round technical 是全破的,只能說我刷的題目太少,也沒有花足夠的心力來做到這件事。當然也不是說再刷多一點就保證能進,只是說刷多一點的話應該至少可以不用那麼緊張,看到新題目的時候大概會比較有信心吧。雖然我的心態蠻隨意的,但整個面試過程中還是都蠻緊張的,我覺得只要能把緊張消除 + 多刷一點題目 + 能用流暢的英文對答的話我應該就能進 Google 了吧(現在說這些都是馬後砲,之後有機會挑戰的話就看看有沒有學乖)。