interview 台積電 SRE 面試心得

又好一陣子沒有更新 blog 了,先簡單聊一下概況。五月底的時候有一次轉換到新公司的機會,不過和既有公司商量後,雙方同意內轉到研發單位的軟韌體部門,因此就繼續留在現在的公司。也因為剛轉換部門,很多新的流程和產品需要學習,就暫時把心力都放在跟公司產品相關的技術進修,期望自己能快一點跟上腳步。目前轉到新部門約過了三個月的時間,一切適應良好,工作任務也可以在期限內順利完成,同事相處也都很融洽,過的很開心。

在七月中的時候,接到台積電的 SRE 主動面試邀約,直到最近才結束整個面試流程。整個面試流程覺得收穫良多,所以在此簡單記錄一下。面試一共會有專業項目三關 + 人資一關,由於主管希望面試者能有較充足的準備,因此專業項目每一關的間隔時間預定是兩個禮拜,如果有需求需要加快面試速度也是可以調整時程。現在疫情期間,除了測驗要去廠區之外,其他面試一率都是視訊面試。

第一關:專長簡介和專業問題 (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 這一塊沒有回答的很好,知道用哪些工具去查看,但是問到更細節的部分就不太了解。不過主管說這樣問是想了解面試者的程度在哪裡,所以不會就說不會就好。

一面完後就直接約了第二關的時間,第二關其實就是台積的程式測驗 HackerRank,主管給兩週的時間做準備,所以應該是沒有所謂補考的機會,此外還很貼心地說該怎麼循序漸進地去準備線上測驗考題,像是可以先從 leetcode acceptance 較高的題目開始練習。

第二關:HackerRank 線上測驗 (90 分鐘)

HackerRank 90 分鐘要做 3 題,我覺得 3 題的難度都在 leetcode easy 而已,如果有在刷題的面試者應該可以做很快。3 題中我 2 個題目的 test case 全過,最後 1 題有兩個 test case 沒有過 (大概是 code 判斷沒有寫完整),未來有機會的話,想要檢討一下為什麼這題的 test case 會 failed。

HackerRank 提交之後,隔天人資就很有效率地打電話約二面時間和人資面試時間,並且請我找時間去廠區進行適性和英文測驗。

英文測驗 (30 分鐘)

英文測驗網路上很多資訊就不多說,自己寫起來是覺得有點難度,尤其閱讀測驗字體每一篇都不一樣 (有些看起來有點模糊),對於一個格式狂來說看起來有點痛苦 QQ 多益 755 (3 年已過期),台積英文測驗 7 級。

第三關:Algorithm & Data structure 面試 (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。

結語

整體面試時程超過一個月時間,雖然時間上拉的比較長,但是面試過程能感受到主管是一位很重視技術能力,並且很認真地想要篩選符合職缺的人。從面試過程中學習到蠻多經驗,是一個很好的面試體驗。