最近在幫一個朋友練習面試,同時也剛好有讀者來信詢問面試技巧。其實我的資歷也不是特別突出,或者應該說我過往的經歷其實蠻弱的。2012 年畢業後找環境工程相關的工作,投了 800 多份以上的工作機會,最後只拿到 3 個 intern 的工作。2015 年來加州參加 Hack Reactor(經歷請參考前篇〈Coding bootcamp 程式語言密集班:從不會寫程式到 3 個月被矽谷科技公司雇用的終南捷徑?〉)結束後,我投了近 180 份工作,有被 HR 聯絡的只有 63 個(35%),進到第二關電話技術面試 38 個(60%),11 家公司邀請我到 onsite(29%),最後有 3 個 offer,offer/總申請的工作比例只有很可憐的 1.6%。在矽谷工作一年半後,2016 年底因為在上班沒有太多時間面試,所以只試了 5 家,每家都有進到第二關電話技術面試,3 家邀請我 on-site interview,最後有 2 個 offer,和前兩次相比是進步滿多的,但相比我有認識的強者朋友一次拿到 5~10 個 offer、一畝三分地上的一些牛人一次拿到矽谷各大科技公司 offer,我的經驗不算是特別厲害。可能也因為我這些不那麼順利的經驗,讓我有機會得到更多寶貴的體悟。

找工作系列文章

如果你對找工作系列有興趣的話,可以參考我之前的系列文章:

  1. 程式語言:到底學哪個好?我想進 Google,我沒學 OOO,他們會接受我 XXX 語言背景嘛?
  2. 簡介美國軟體工程師面試流程
  3. 等待機緣:我要如何被人資或獵人頭發現?我要如何脫穎而出?LinkedIn 重要嘛?
  4. 主動出擊:我要找工作了,現在美國都用什麼找工作?哪個網站平台能讓我有較多面試機會?
  5. 軟體工程師面試準備:面試要練習什麼?找工作和練習的時間要如何平衡拿捏?
  6. 聽說你最近在刷題:軟體工程師的面試一定會遇到的資料結構及演算法關卡
  7. 被錄取了:我該注意什麼,可以談判要求多一點薪水、股票或假期嗎?
  8. 我還有問題!矽谷找工作之常見問題 FAQ

我在 2015 年瘋狂面試的時候,有時候一天最多會有 5 個電話面試,一些是 HR 第一關電話面試,有些是技術電話面試,要用 CoderPad 之類的網站來寫 code。一開始很長一段時間,我大部分的結果都是被拒絕。為此我找了一些朋友來幫我檢視我的面試技巧,而在 SolarCity 及 Facebook 也有一些面試別人的經驗,反思總結後,把一些心得分享給大家。

1. 英文表達

所有的面試一定會請你自我介紹,這是一個暖身,讓你講你自己的經驗及故事,進而平靜下來回答好接下來的其他問題。這題是個送分題,一定要好好準備。我提到英文表達是說你不需要很難的英文能力,只要能讓面試的人了解就好。我一開始常常緊張,講話會不自覺地變快,或是字都糊在一起,我後來做了一個大字牌寫 “Slow down!”,在電話面試時放在前方提醒自己每個問題要慢慢清楚地表達,不要緊張搶快。

2. 自信,並且不要刻意提半路出家

我在一開始會提到我半路出家。在拿到許多 rejection 後,一個朋友建議我不需要刻意提我半路出家的事實。你不會聽到牙醫師說他是半路出家才學牙醫的,就算有,也可以從履歷上看出來。在面試過程中,我應該要表現出 what I can offer/bring to the team/company。因為我的能力比我的出生背景重要,有自信地展現出我的能力,並且實際上從回答內容展現出來。

3. 溝通步調,先簡答,再依情況詳答

每個問題面試官都有預期大概的步調,有些問題面試官希望簡答就好,有些則是想多了解細節。我在當面試官的時候發現有些候選人在一些小問題上花了很久的時間講細節並舉例,因此壓縮了他更重要 coding challenge 的時間。我覺得好的作法是對問題先有個簡單的回答,並且表達如果面試官有興趣可以再說明多一點細節,讓面試官依時間及面試步調決定是否要聽細節,你也不會因此損失回答更重要問題的寶貴時間。

4. 展現對任何變化有彈性的心理素質

有些時候面試會遇到特別艱難的題目,這時候其實不要驚慌,許多面試官其實會想觀察你是如何面對高壓及不確定的難題,如果你可以有邏輯的分析問題,並且開始慢慢的提出想法,構思解法,很多時候其實就可以達到面試官的要求,而不是說一定要有完美的答案才可以過關。

5. 準備一兩項你過往的最大成就

許多面試的問題其實都可以帶到你過往的成就上。面試常常會問到:你工作遇過什麼難題,你喜歡什麼工作,你覺得你的優缺點是什麼,你有過什麼類似的經驗嗎?舉例來說:如果被問到你遇到過什麼難題,你可能會說,我參與一個跨部門的大型合作計畫,一開始因為不同部門的時程及目標不一致,讓計畫進度緩慢,而我為此和不同部門的領導持續溝通,並且幫忙制定可順利執行的方案,讓不同部門的人全部 onboard,最後讓計畫順利在時限內完成,並且帶給公司 500 萬元的新收入等等。用佐證及數字說明你的成就,進而用這個例子來回答一些難題。

6. 白板面試 coding challenge

聽到面試官說完題目之後,先確定 input 與 output,不要馬上說怎麼做,也不要寫程式。input 與 output 必須非常明確,不要幾句話帶過去,在白板上寫出來,並和面試官溝通確認是否正確。確認完後可以先把你的解題思路講出來,並且溝通後再開始寫解法,開始寫程式之後,要不時地和面試官溝通,為什麼你這樣寫,如果是第一個初步解法,可能寫完後還可以 optimized,也要提出來,面試其實是一個看你技術上是否合格,同時也看你是不是個能和 team member 溝通的 team player。我看過好幾個面試開始就埋頭寫程式,都不太溝通,有一些錯誤也都因為沒有溝通,在解題時沒被發現,最後也因此沒過關。

以上 6 點是我過往經驗的心得總結,你覺得面試中還有什麼部分你會想了解呢?歡迎留言或回信和我討論。


本文原發表於舊站「半路出家軟體工程師在矽谷」(2018 年 6 月 13 日)。該站現已下線,全文由 Wayback Machine 備份保存,搬到本站時做了輕度編輯。