0. 前言
↑ 面試前都聽這首歌,分享給各位讀者。建議搭配本篇文章服用
1. 背景
- 四中 + 四大 CS 學碩
- 兩年工作經驗
2. 面試準備
2-1. 履歷
CakeResume 一頁英文履歷
學生時期的履歷,幾乎都跟目標職缺需要的 skill set 無關
這次拿掉大部分內容,換成工作經驗 + 碩論 (校招當年還沒有題目)
並保留少數 side project 讓面試官 deep dive
履歷建議寫英文的,投台商 / 外商都能用到
另外投外商不要放照片,剩下依照個人經驗撰寫即可
2-2. 刷題
固定打週賽維持手感
主要刷 medium,面試前專攻高頻題
另外也訂了兩年 leetcode premium (感覺面試前再買就好)
相較前年的成績 (1902分 / 462題),這段時間大概寫了 1400 題,分數也有提升一些
但其實題數 / 分數不是重點,面試時展現的溝通能力與解題思維,才是真正的關鍵
倘若刷題初期較難掌握方向,可以找題單或者以不同主題進行
通常一場面試 45 分鐘,可以抓在 20 分鐘完成一題 medium
在此之上,依照自己的狀況,決定多久時間要去看詳解
不過 leetcode medium 的難度範圍很廣,因此還是看狀況 ;<
待熟練運用且能夠穩定發揮,可以進一步透過模擬面試
確認自己準備的成效
2-3. 模擬面試
模擬面試有助於掌握整體節奏
了解每個環節要如何表現,逐漸穩定自己的狀態
有些小夥伴會顧慮外商的英文面試
但 technical interview 通常不用很高的字彙量,比起 BQ 更容易準備
像我不擅長英文溝通,也是透過模擬面試逐步練習
至於聽力... 就看面試官的口音了
有聽過小夥伴使用 Pramp、gpt 等媒介
但我是用 google meet,找幾位朋友互相練習
virtual 練過十幾場,仿 google 流程的 technical interview
onsite 只練過一場 4hr 的 panel interview,全程寫白板
Youtube 有很多影片,介紹 FAANG 面試的流程跟細節
可以參考相關流程,或者找認識的面試官練習看看
↑ 之前看過的相關影片,確定自己準備 mock interview 的方向
2-4. 面試流程
google (reject)
D:內推
D+1:收到 HR 聯繫
D+4:HR talk
D+25:phone interview x1
D+29:phone interview pass,安排 (virtual) onsite
D+38/39:onsite interview x3
D+45:感謝函,HR feedback + 轉投其他職缺
HR talk:
上海的 HR
聊天 + 說明招聘流程,沒有技術問題
工作領域差比較多,有被問到轉職原因
有聽說別人 (本科) 在這關,被技術問題刷掉
不確定 HR 的標準,可能是我以前有面過 google
總之聊完就準備排 phone interview 了
phone interview:
中文面試,binary tree
總共有三題,難度 easy ~ medium
實作過程有拆一些 helper function,假裝某些功能已經完成
主體寫完再回去補這些細節
應該是 bug free,溝通和 dry run 也算順利
面試完有想到某個不太直覺,但是更簡潔的做法
推測評價是 strong hire
onsite 1:
英文面試,graph
聽不太懂題目定義,花一些時間討論各種測資的預期輸出
後來拿一個提示,想到要轉成某種經典問題
原題勉強寫完,但還有改進空間
follow up 也沒完成,難度大概是 medium ~ medium+
推測評價是 lean no hire
onsite 2:
英文面試,binary tree
這場寫了兩題,難度 easy ~ medium
節奏掌握不好,暖身題被我硬生生講到 20 分鐘
影響後面寫 follow up 的時間
回過頭看是某種經典問題的變形,實作難度不高
推測評價是 hire
onsite 3:
中文面試,難度約 medium
前面討論不同方法的優缺,很快就訂立解題方向
但是卡了某個實作細節,拿提示才寫出來
follow up 是針對某個場景,口述討論做法
推測評價是 lean hire
這幾場面試流程都差不多,有些是先自我介紹,有些是直接解題,
接著大多都是:
面試官介紹題目 > 我提出一些做法 + 分析優缺點 (複雜度等) > 面試官同意解題
> 邊實作邊說明 > 解完 dry run 並跑 test > 解完看下一個 follow up > Q&A
剩下有些細節要注意,
例如剛開始要問過 function prototype、釐清 edge case
實作過程可以留 comment,確保面試官跟自己在同個頻率,
為了讓整體更簡潔,有些內容可以拆成 function
維持一貫的 coding style,也要保持語法正確性
寫完後要 dry run 並確保程式是正確的
清楚知道自己使用的容器特性
很多網路文章提過相同概念,這邊就不贅述了
HR feedback:
面完有感覺兩場偏 borderline,沒有 strong hire 救不回來的那種
feedback 也符合預期,有些地方沒發揮好
沒有推進到下一個階段
這是轉職第一間投的公司,
雖然表現未達預期,但也逐漸進入狀態,後續其他面試有比較順利
印證 googler 朋友的建議,我欠缺的是實際面試的經驗 QQ
nvidia
D:內推
D+12:忘記要填資料,填完才算正式應徵
D+15:感謝函 (職缺 A)
D+30:OA (職缺 B,後來無聲卡)
D+30:phone interview 通知日期 (職缺 C)
D+38:phone interview x1
D+41:phone interview 通知 passed
D+59:phone interview x1
D+63:phone interview 通知 passed
D+79:onsite interview x4
NVIDIA 是組招,面試內容取決於各 team / 面試官
沒有統一的準備方向,建議要了解 JD 需求技術的內容
除了刷題也需要 domain knowledge,並且會 deep dive 履歷
相較 google SWE 的面試,更像是技術 + BQ 關的融合
據說冷卻時間是獨立的,且面試結果不會通用
我是同時投三個職缺,其中一個進到面試環節
面完的感想是,不清楚職缺 B 無聲卡的原因
OA 應該都有寫出來,只有一題 hard 給次佳解
可能是我忘記開鏡頭嗎 = =
3. 談薪
身邊幾位朋友,一致認同談薪水就是「自己認為的市場價值」
但還需要考量手上的籌碼 e.g., 現職薪水、學經歷、面試表現、compete offer
像我是沒什麼可談的 (沒有 compete offer),學經歷沒有特別優勢
有事先了解「公司能給出的範圍」,現職的薪資結構攤開
直接填一個 +30%,最後簽了某個接近的數字
沒有參考價值 :<
↑ 談薪水有參考 moboo 的文章和 podcast
4. 後記
其實這篇文章的初衷,是想要打這篇後記,分享個人求職的體悟
這兩個人生經驗,來自我遇到的 FAANG 面試官
有點像雞湯,但我覺得蠻有道理的 (?
1. 熱情,是在優秀人才脫穎而出的關鍵
> 來自某次面試的 Q&A 環節
當初我問了「貴司有許多優秀人才,您覺得最重要的特質是什麼?」
面試官思考一段時間,給了我這個答案
我也認同這個特質是一種推力
能夠讓人鍥而不捨的專注在某件事物,不斷琢磨自己直到成功
2. 不斷面對挑戰,遭遇挫折也不要氣餒
> 也是面試官的教誨,當時面試表現不好,結束前給我許多建議
鼓勵我不要停下腳步,繼續嘗試並不斷前行
人生不同階段,一路走來要通過許多關卡
即便出師不利,能夠撐到最後才能成就自我
希望讀者能夠找到理想的工作
也期許這篇文章能夠有所幫助
<(_ _)>