Last updated on March 3, 2021
接續上集《矽谷軟體工程師面試都在做什麼:從履歷與聊天開始》 ,這篇繼續來聊聊在矽谷面試軟體工程師時會經歷的步驟。這次的主題是那些透過電話與網路的面試,在這個階段面試者可以從家裡進行,不需要到公司。這階段通過後,才會請你到現場進行最後的面試,而那階段會在我的下一篇才會聊到,也會包含談判薪資等後續的步驟。
跟上集一樣,這篇會比較偏向流程介紹,如果有興趣我自己的面試與工作經驗,可以看看《Google Facebook Quora LinkedIn AirBnb 面試經驗分享》。如果已經通過了這階段,進入到 Onsite Interview 的話,可以看看下一篇《矽谷軟體工程師面試都在做什麼:我以為我是來面試的?給面試者的各種福利》~
電話面試 Phone Interview 📞
對大部分的面試者來說,電話面試是第一次正式面對面(透過電話或螢幕)的技術考試了。既然是考試,那當然就可能被刷掉啦,請嚴肅看待。
電話面試的名義目標是:『透過一至兩輪的電話考試來判斷你這個候選人是否有合適的專業能力。』話雖如此,其實大家都知道透過電話來判斷一個人的專業能力是極度困難的。因此,真正的目標是:『判斷這個候選人是否可能有合適的專業能力。』
也就是說,此輪的容錯率會比之後的現場面試高。畢竟面試官也會懷疑你的失誤可能只是電話中溝通不良而不是你的能力問題,如果貿然刷掉你可能會錯失英才。也因此,如果面試官覺得你好像在及格的邊緣上(在有跟沒有之間),他的預設選項也不是刷掉你,而是再約一輪電話面試。所以,只要你的表現不要離面試官期望太遠,都是有機會過關的。
雖然叫做 Phone Interview,但實際上常常搭配視訊以及一些線上協作系統來進行,很少真的單純只透過電話。畢竟這關常常需要寫 code,要有個平台能同時讓雙方能寫能看。Coderpad 或 Google Doc 就是很熱門的選項。
這通電話的目標就是考驗你是否有基本的技能,因此除了履歷以外,會考一兩題程式實作,有的也會考一些系統設計或是跟你的專業領域相關的問題。比方說如果你把機器學習 (Machine Learning) 放在履歷上的話,那對方有機會問一些基本的模型、理論、甚至是業界常用的工具 (scikit-learn 之類的)。
實際上,如果符合某些情況(像是有強力的內部推薦、正在面試其他公司的或是已經有 offer),電話面試是有機會可以跳過,直接去現場面試打魔王(見《Google Facebook Quora LinkedIn AirBnb 面試經驗分享》)!如果有這種情況的話請努力跟人資爭取,因為這可以大大減少了雙方的時間,也降低自己被刷掉的機會。但現在由於疫情的關係,大家都在家上班,因此應該無論是誰都只能通過電話面試了😞。
線上測試 Online Assessments 💻
有些公司會有一個關叫做 Online Assessment (又稱 OA),顧名思義就是一種線上測試系統,可以想像成自動化版本的電話面試。畢竟工程師貴啊!省工程師面試你的時間就是省公司的錢,讓工程師少花點時間在面試上、多敲幾行 code、多開幾場會。
它有點像以前在學校的考試,會有一些選擇題,但畢竟我們是軟體工程師,所以也會考寫程式。但沒有人監督怎麼考呢?就是錄影啦。這個系統會全程錄下你寫程式的過程,也會要求你的程式能夠通過事先準備的測資,所以你從頭到尾就是跟系統互動,不會看到人。有沒有似曾相似的感覺?沒錯,這個模式跟托福 Toefl 很像!
好,選擇題可以讓系統評分,可是公司要如何判斷程式有沒有寫好呢?首先也是最重要的就是測資,公司通常會要求你在時間內寫出來的程式必須要通過全部(或是大部分)的測資。否則就會有很大的機會止步於此。
通過測資後就一定會上嗎?也不一定。系統會有一套評分的標準,除了程式碼風格以外,也會利用各種指標來判斷你有沒有做壞事,有些甚至會要求你全程把攝影機打開,觀察表情來判斷你有沒有偷偷做什麼事。如果這些指標有點怪怪的,那就會有工程師來看看錄下來的過程。
比較常見的下一步是有個工程師會來跟你講個電話,大概是考試後幾天。這通電話會先讓你講自己寫的程式在幹嘛,以確保不是槍手寫的。如果系統指出你的表現剛好位於錄取的邊緣,則這個工程師也會在電話中考幾個問題,確保你不是剛好矇對之前的測試。
這個系統的優點很明顯就是節省公司的時間,但對於受試者是比較不利的。用系統來評分就代表你表現的容錯率很低。如果今天是活生生的工程師來問問題,看著你寫程式,你就有機會反問問題來確保自己沒有誤解問題,卡住時對方也可以給提示,當你只差一點點就可以通過所有測資卻沒時間時,對方可能也會認為意思已經有了而讓你過關。但這些都是冷冰冰的系統所辦不到的,因此我還是比較喜歡跟活人聊天。
現在採用這個步驟的公司還不是很多,我也希望未來也不要變多。畢竟面試是雙向的,對方在面試你時,你也在面試對方。透過系統的話,就只是單方面的考驗而言。
其實上面這些關卡的目的都很簡單,就是在掏錢請你來公司之前,先用較低成本來進行初步篩選。畢竟請你到公司面試是非常貴的,除了公司會全額負擔整趟行程的食衣住行外,最貴的就是那些撥出時間面試你的工程師與主管。因此公司會想用電話面試這種低成本的方法來盡可能篩掉不適合的人,說誇張一點,十輪的電話面試成本說不定都比不上請你跑一趟公司。但也不用太擔心,大家在這階段的標準不會太高,因為還是怕透過電話溝通不良而導致錯失英才。
如果這些都順利通過,那恭喜你,終於可以去公司見見活生生的工程師了。(遺憾的是,現在因為疫情的關係,所以現場面試都已經被改成電話面試了。)可以看下一篇《矽谷軟體工程師面試都在做什麼:我以為我是來面試的?給面試者的各種福利》~如果有什麼問題或有趣的經驗也歡迎在下面留言分享噢!