前言:
分享在博班畢業前夕同時準備畢業和面試的過程,貢獻一個data point供大家參考。如果
有問題,歡迎來信詢問,如果能回答的小弟會盡量回答。在疫情期間獲得這個面試機會純
屬意外,當下也不確定自己何時可以畢業,所以搞到最後整個找工作期間只面試了一家,
也非常幸運通過面試,並趕在上工前夕畢業。趁畢業和上工這段空擋,把這個過程記錄下
來,希望能幫助大家。
背景:
PhD in ECE @ 美國中西部某大學
Undergraduate in Engineering @ NTU
來美國念博班之前沒修過演算法,但大學修過資料結構,沒有實際開發Project經驗。演
算法苦手。
博班期間 Google Intern * 1 (No return offer)
刷題準備:
第一次Intern前: 斷斷續續大概200題,刷的很鬆散,確定拿到面試之後才密集刷了快100
題。
確定拿到Google正職面試 - 面試當天共三個月密集刷: 大概 300題。
Summary:
LeetCode 共刷512題 162 Easy, 287 Medium, 63 Hard.
學習資源:
這邊我就不贅述,現在網路上資源太多了,也有很多大神分享過。每個人學習方式不同,
僅列出我常使用的,供大家參考。我覺得最有效的方式是多看不同種解法,想辦法讓自己
看懂。但這就因人而異了,有些人光看文字就可以知道為什麼要這麼解,有些人要看影片
從頭到尾一步一步講解才有辦法完全理解解法的邏輯。小弟就是屬於後者,所以剛開始刷
題時十分之崩潰,光一題recursion或是dp就可以耗上一整天但仍然看不懂。就算看懂了
,數日之後又遇到相似的題目卻又解不出來,常常忙了一整天卻一無所獲的感覺。同時又
有研究上的壓力,真的是刷到懷疑人生,覺得自己的腦袋是不是哪裡出了問題。
演算法相關:LeetCode、MIT Algorithm 線上影片、對岸Github刷題教學 (ex:
https://labuladong.gitbook.io/algo/)、Back To Back SWE
面試過程相關:一畝三分地、 Ex-Googler YTer(Clément Mihailescu)
面試過程:
五輪面試 一天面完
每輪 45分鐘,back to back
早上兩輪 下午三輪
前四輪coding 最後一輪Behavioral
面試過程不詳細贅述,寒喧之後不囉唆直接開始面,前三輪原始題目和follow-up都有解
出來,第四輪小炸,但還是有把題目解完,所有題目難度落在Medium~Hard之間。
Behavioral 遇到的面試官感覺很菜,照著他手上的題庫一題一題問,沒有來回對話過程
。
Timeline:
2020 10月recruiter 聯繫
2021 1月面試
2021 2月過Hiring Committee開始Team Match
2021 2月- 6月 Team Match
共配對到3組
2021 3月
1. Youtube Engineering Productivity Team (失敗,要求即刻上工,時間無法配合,繼
續 Match)
2. Google Search Ads Experiments and Analytics(失敗,原因同上)
2021 4月 - 6月
人資決定暫停Match,先把我抽離Candidate Pool 一個多月後再繼續。中間完全無聲卡,
直到我寄信問,人資才想起來,並把我放回Pool。期間又發生原本負責我的人資跳槽,換
人資。
2021 6月
3. Google Search Knowledge Engineering Team (成功)
簽約 9月上工
因為沒有Competing offer,所以沒有任何談薪空間,這點G踩得很死。
結語:
一直知道G家以慢聞名,之前實習面試的時候也有體會過。不過就算有心理準備,過程仍
是十分煎熬,太多不確定性可以讓自己胡思亂想搞得整天心神不寧,再加上在博班最後階
段,隨便一個信箱通知都可以搞得我心驚膽顫。感謝天,還好最後結果是好的。在這邊就
不分享自己刷題方式,板上已經有太多神人分享,我就不獻醜了。這邊主要講的是刷題時
的心態,個人認為刷題是時間的累積,有些一開始看不懂的解法,如果當下有花時間去努
力搞懂他,時間久了,大腦會神奇的理解這些東西。個人反而認為很多時候要克服自己的
情緒,要努力抑制覺得「自己很笨很廢」的這個想法,才有辦法靜下心來好好的把這些知
識烙印到腦子裡並融會貫通。整個準備過程太多眉眉角角,很難在一篇文中把所有東西寫
出來,如果有任何問題,歡迎來信詢問,我會盡量回答。最後,祝大家找工作順利!