【學長姊帶路】Google 軟體工程師 面試分享
原標《Google Software Engineer University Graduate 2022 面試心得》
文/匿名
電話訪談
recruiter 電話訪談,聊過往經歷 & DSA 基本知識 大約聊了 20 分鐘左右,主要 focus 在一些 CS 領域的基本知識 會問十幾個關於演算法複雜度以及各種資料結構的問題 這個部分比較像是recruiter 要確定 candidate 有一定的基礎程度,才會啟動面試流程,讓雙方不會浪費彼此的時間。
virtual phone interview
一場 coding 面試官是蠻年輕的男生,感覺年紀比我還小,開場寒暄一分鐘後,就直接切入主題 這輪的題目難度普通,要實作一個有特殊 function 的 stack 一開始的題目差不多是 medium 偏 easy,當下看到題目大概就知道怎麼寫了,因此快速跟面試官 sync 設計想法與複雜度後,就開始 coding 大概花了 5 分鐘寫完,之後馬上列幾個 test case 然後跟面試官一起跑了幾遍 code,確定沒有問題 接著 follow up 要再額外加一個新的 function,這題難度個人覺得 medium 偏 hard 當下直覺是用 double linked list + hash map 來做,我說完想法後,面試官覺得聽起來 ok,就讓我開始 coding,結束之後回想才發現自己想得太複雜了,這題其實可以直接開兩個 stack + map 來做,會簡單很多 可能是因為第一次面試外商正職,這場稍微有點緊張,double linked list + hash map 刻的不是很流暢,花了不少時間才寫完,而且寫完後測 test case 發現在特定情況下會有 bug,好險面試官人很好,給了我一個 hint,讓我順利把這題做完 因為 follow up 寫的不是很順,而且有被小提示一下,因此面完的時候覺得很抖。
virtual onsite interview
第一場, coding
面試官是一位跟我同屆的台灣男生,看起來非常嚴肅,給人一種很強烈的菁英感,這場是全英文面試。第一題是 leetcode經典 medium ,graph 相關,跟面試官確認好後直接秒掉,不過分析複雜度的時候,考慮不夠周全,不小心講錯,被面試官糾正回來 QQ follow up加一個限制 – graph裡會有cycle,加幾個判斷式即可。可能因為還有時間的關係,面試官又來了一個follow up,假定graph nod 的狀態會有好幾種,把題目變得更複雜一點,個人覺得有 hard 等級,不過並不是很tricky的題目,因此還是在時間內順順寫完 因此這輪自己評價在 positive 跟neutral 之間,雖然寫得很順又沒有要 hint ,但複雜度講錯,稍微有點可惜。
第二場, coding
面試官是一位人很好的台灣姐姐,整個給人很親切的感覺! 這場也是全英文面試 這輪我只寫了一題,tree相關,難度約medium – hard,之前沒有遇過類似的題目,花了很長的時間跟面試官討論想法 而且coding 到一半才發現方向錯誤,直接打掉重練 好險後來突然頓悟,想到一個自己覺得蠻漂亮的解法,才把這題寫完 因為時間的關係,面試官決定直接進入聊天環節,由於覺得只寫完一題有點丟臉,聊天的時候我很不甘心的問了一下follow up,結果follow up比原題簡單很多,當下瞬間想了一個解法,把複雜度從 O(n) 降到 O(log n) ,跟面試官口述後,她有點驚訝地認同我的想法,雖然沒有實際寫code,不過可能多少有挽回一點分數 後來有一周的 leetcode contest 三題就是這題,算是蠻tricky的題目,第一次看到要很快想出最佳解個人覺得不太容易,當時看 contest 的各路大神都在這題卡了起碼1x分鐘 這輪自己評價是 negative,是 on-site 裡面我表現的最差的一場,recruiter還跟我說這場面完後有點小危險,當下還挺懊惱的哈哈哈。
第三場, coding
這場面試官是嚴肅且寡言的台灣男生,中文面試 第一題是 matrix 相關 第一直覺是空間複雜度 O(n ^ 2) 的暴力解,面試官同意後,就先秒寫一個 easy 等級的暴力解 follow up 請我優化空間複雜度,這邊我想了大約 3 分鐘,絞盡腦汁還是怎麼想都想不到 O(1) 的解法,跟面試官詢問後發現只要有優化就行了,當下覺得自己有點搞笑,然後迅速給了一個面試官認同的 O(n) 解,難度約 medium 由於時間還剩很多,因此面試官再出了一個新的題目,system design 相關,用 hash map 完成,難度約 medium – easy,是我這次 on-site 遇到最簡單的題目,5 分鐘搞定 之後 follow up 加入一個 probability 相關的新功能,難度約 medium – hard,想了一下後,用 accumulate array + binary search 完成 這輪自己評價為 positive,沒要 hint 而且 bug free 順順寫完 4 題,整個信心大增。
第四場, coding
這場面試官是很親民的中國男生,中文面試,這場整個節奏非常特別,開場面試官因為 link 搞錯,進到了錯誤的 meeting room,大約 15 分鐘才發現,回到正確的 meeting room 後還跟我瘋狂道歉哈哈 這輪因為時間關係,也只面了一題,graph 相關,leetcode 經典 medium 變形,10 分鐘寫完 過程中花了不少時間跟面試官討論 recursion 跟 iterative 孰優孰劣,因為我原本想用 stack 直接 iterative dfs 做這題,但面試官似乎有他的堅持,跟我分析了很久之後,覺得 recursion 版本比較合他的胃口。當然我也就順勢照他的意思,用 recursion 來完成這題 寫完後時間還剩很多,我原本以為會有 follow up,結果不知道他是因為開場的 delay 心懷愧疚還是怎樣,居然直接進入聊天環節,當下其實蠻訝異的。最後的 20 分鐘都在聊天,這輪的面試官非常 nice 且健談,我們聊了很多未來的規劃跟彼此的經歷,是一場很愉快的面試體驗。這輪自己評價是 positive,不過整場節奏真的很詭異就是了。
第五場, behavioral
這場面試官是一位溫文儒雅的台灣男生,中文面試,一開始是用英文面試,不過因為我英文有點破,講一講覺得用英文很難精確表達自己的想法,就詢問說能不能改用中文回答,面試官也很 nice 的同意了 問題主要 focus 在一些過往的經歷跟一些假設情況,類似人際之間一些情境的處理跟應對進退 因此面試過程算是蠻順利的,基本上把 googleyness 稍微看一下,然後整理一下自己的思路,不要緊張過度,正常人基本上應該都不會面得太差 這關自己評價是 positive,自己覺得 behavioral interview 這種類型的面試是我的優勢之一
心得:
整體而言,Google 的面試相對單純,就是很純粹的測試資結演算法以及溝通能力,沒有其他零零總總的 domain knowledge 這次整體面試的流程都蠻順利的,可以感覺到 Google 有認真在對待面試這件事,每個環節都讓人感到非常舒服,能夠很好的檢驗出一個人是否配得上這份 offer,也讓我知道自己還有很多不足的地方,是一次很寶貴的經驗 雖然說今年科技業景氣一片大好,各大企業都積極擴招,不過我感覺 Google 招的 SWE 新鮮人似乎並沒有很多,還是有一定的標準。在這裡要謝謝我的熱心 recruiter 以及 chrome OS 的兩位主管,沒有你們的協助,我根本不會有這個機會 同時感謝我生命中所有的人事物,不管是支持我,使我心靈富足的,亦或是厭惡我,使我明白自身不足的,都很謝謝你們,沒有你們就沒有今天的我 最後在這裡祝大家求職順利,早日找到心中理想的工作。
本文由 DCARD 網友 授權轉載, 原文《Google Software Engineer University Graduate 2022 面試心得》
___________
你也有經驗想分享嗎?快來投稿賺稿費吧!
瀏覽 8,457 次