分享一下近期在台積電不錯的面試經驗。
人資主動邀請面試。面試一共會有專業項目三關 + 人資一關,由於主管希望面試者能有較
充足的準備,因此專業項目每一關的間隔時間預定是兩個禮拜,如果有需求需要加快面試
速度也是可以調整時程。現在疫情期間,除了測驗要去廠區之外,其他面試一率都是視訊
面試。
第一關:專長簡介和專業問題 (60 分鐘)
一面的流程會分成四個部分:
1. (主管) 部門介紹
2. (主管) 整體面試流程介紹
3. 面試者專長簡介和簡答題
4. Q & A
主管在介紹完部門和面試流程後,會請面試者介紹自己擅長的領域。這邊比較特別的是,
主管有說明已完整看過我的履歷,所以希望我能只就自己專業領域和擅長方向介紹即可,
而他會根據我所說的內容進行提問。而我回答我比較擅長的方向是:Golang 和 Web
backend。
主管提問內容包含:
1. sorting algorithm / BST / stack / queue / binary tree / hash map 具體實作和
相關 time complexity
2. HTTP protocol 流程和 package format
3. cookie
4. Linux 環境的操作 (包含查看記憶體、 network package、service port、process)
自認在 Linux 這一塊沒有回答的很好,知道用哪些 tool 去查看,但是問到更細節的部
分就不太了解。不過主管說這樣問是想了解面試者的程度在哪裡,所以不會就說不會就好
。
一面完後就直接約了第二關的時間,第二關其實就是台積的程式測驗 HackerRank,主管
給兩週的時間做準備,所以應該是沒有所謂補考的機會。主管很貼心地說該怎麼循序漸
進地去準備線上測驗考題,像是可以先從 leetcode acceptance 較高的題目開始練習。
第二關:HackerRank 線上測驗 (90 分鐘)
HackerRank 90 分鐘要做 3 題,我覺得 3 題的難度都在 leetcode easy 而已,如果有
在刷題的面試者應該可以做很快。
3 題中我 2 個題目的 test case 全過,最後 1 題有兩個 test case 沒有過 (大概是
code 判斷沒有寫完整)。
HackerRank 提交之後,隔天人資就很有效率地打電話約二面時間和人資面試時間,並且
請我找時間去廠區進行適性和英文測驗。
英文測驗
英文測驗網路上很多資訊就不多說,自己寫起來是覺得有點難度,尤其閱讀測驗字體每一
篇都不一樣 (有些看起來有點模糊),對於一個格式狂來說看起來有點痛苦 QQ 多益 755
(3 年已過期),台積英文測驗 7 級。
第三關:Algorithm 面試 (120 分鐘)
最後一關是在 120 分鐘內寫 3 題 leetcode 題目,每題 40 分鐘,流程包含:
1. 看題目並思考解法,如果有問題也可以提問
2. 跟主管口頭討論解題邏輯和 time complexity
3. 和主管討論後,分享 IDE 畫面,並且根據剛剛所敘述的解題邏輯把 code 實作出來
4. 跟主管逐步解釋 code 內容並討論有沒有更好的解法或是提高 code 可讀性
我是使用 Golang 和 Go playground 來答題。老實說,我因為緊張和缺乏實務演算法面
試經驗,所以第 1 題出現邏輯失常,沒辦法在短時間內思考出答案,不過幸好後來有冷
靜下來回復正常,趕在時間內給出指定 time complexity 的解答,後面 2 題則是都可以
在第一次就給出正確的解題邏輯。
另外,我覺得比較難的是實作 code 的正確度。因為主管會全程觀看我寫 code 的流程,
所以一但有思考停頓、出現 compile error、或是不小心沒寫到邏輯就執行程式導致
test case 結果錯誤,這些行為都會在解題完之後被拿出來討論。討論過程中,主管態度
都是很好的,不會給面試者壓迫感。
面試完後,主管有提到我的演算法邏輯和 code 可讀性不錯, Golang 掌握程度也很好。
不過缺少面試練習,所以一開始因為緊張而失常,第一題應該是最簡單的題目但我卻思考
最久。還有就是第 2 題的時候,寫 code 流程不夠謹慎沈穩,導致有一個地方踩到
invalid memory access。
整體面試時程超過一個月時間,雖然時間上拉的比較長,但是面試過程能感受到主管是一
位很重視技術能力,並且很認真地想要篩選符合職缺的人。從面試過程中學習到蠻多經驗
,是一個很好的面試體驗。
--