2020 面試經驗分享 — Google 1st round
幾年前,剛畢業兩年,我面過Google一次,當時是系上學長內推,後來我第一關就慘被刷掉了。這次收到HR直接找上門,開啟我找工作的準備之旅。
HR會先說,她看的到上面你幾年前的面試紀錄,包括有誰推薦你,會問你有沒有想試試看,也會問你有沒有在準備面試,有沒有刷LeetCode練習,我當時的回答都是「沒有」。接著在HR的鼓勵下,她給我一個半月的時間好好寫題目跟調整自己,並說明了像BFS, DFS, Dynammic Programming 這些都要很熟,希望我在面試前可以刷題目到150題。
Google的面試流程,就分第一關電話面試:邊電話邊看你在Google doc上寫程式,通過後直接進入Final round的 on-site interview,on-site interview會一天面試完5個關卡。
我開始一一複習這些資料結構跟演算法,也挑上JAVA作為想要熟悉的程式語言。我JAVA其實只在前公司寫過4個專案,一開始的複習之路還挺痛苦的。
這邊感謝考前2週,以前的大神同事幫我做mock up Interview,記得我當時解題目沒有很順,同事給了很多提醒,說第一關至少recursive一定要能很熟,不能只會iterative。
第一關面試結果:通過。
面試完HR會給你面試官的反饋,在三天內。
因為NDA,不能說題目,但分享一下當時準備的方向,跟HR給的反饋裡,面試中被面試官稱讚的要點,也許可以給希望通過第一關的人一個方向。
1.面試題目其實不會告訴你input是甚麼, output是什麼
可能在YAHOO的工作習慣,養成了這部分需要自己先釐清,幫助自己了解需求。在面試裡,這部分也同等非常重要。面試官不會主動告訴你,但會很像以前我們的Product Owner,跟你說想要甚麼功能,沒了。
2.寫Code前能夠清晰告訴面試官你會怎麼寫, 用什麼資料結構定義, 用什麼演算法
我碰到的題目,我直接先說了我會用什麼用的物件,物件中有怎樣的資料結構,面試官說可以,我就馬上先寫好一個constructer,跟object內容。
接著,我會告訴面試官,我想到2種做法,一種是iterative,一種是recursive,而且我會精準告訴他,如果用iterative,我程式會怎麼寫,我是講到每一行的判斷式,跟迴圈裡每一行會怎麼做的那種。然後面試官會說他想要看我recursive怎麼寫 (●´ω`●)ゞ
3.刷題量