哪些平台用於程式設計面試?它們有何不同?
作者 Aaron Cao · 更新於
大多數程式設計面試會採用即時共享編輯器(CoderPad、CodeSignal、HackerRank Interview 或一般共享文件)、限時線上測驗(HackerRank、Codility、CodeSignal),或 Karat 之類的面試即服務供應商。主要差異包括即時或非同步、能否執行程式碼,以及過程是否受到監考。
你實際會遇到哪些平台?
邀請電子郵件通常會寫明平台,而平台名稱大致就能讓你知道面試過程會是什麼樣子。這些平台可分為四類。
- 即時共享編輯器。CoderPad、CodeSignal 的面試模式、HackerRank Interview(前稱 CodePair)及類似編輯器會開啟一份你和面試官都能編輯的文件。大多數平台可執行數種程式語言的程式碼;有些雇主會刻意關閉執行功能,讓你透過推理作答,而不是反覆試錯。
- 一般共享文件。有些團隊仍會透過 Zoom 或 Google Meet 傳送 Google 文件或空白文字編輯器。沒有語法醒目提示、執行按鈕或測試;面試官會像程式碼審查者一樣閱讀你的程式碼。
- 限時線上測驗。HackerRank、Codility 和 CodeSignal 會提供一組固定題目、計時器及自動評分器。沒有人會在線上通話;平台會記錄你的作答過程,並依隱藏測試案例評分。
- 面試即服務供應商。Karat 及類似供應商會安排受過訓練的工程師,在供應商自己的編輯器上進行即時技術面試,並撰寫報告供雇主審閱。面試是即時進行,但通話另一端的人不是你未來的同事。
雇主會混合使用這些形式。典型流程會先進行測驗,接著安排一輪或兩輪即時編輯器面試,最後透過白板工具或一般通話討論系統設計。平台審查主題會更深入介紹各家供應商。
這些平台在關鍵之處有何不同?
五項特性會決定面試如何進行,而不同平台在這些特性上的差異,往往比題目難度的差異更大。
- 即時或非同步。即時編輯器是一場對話;你可以詢問限制條件並獲得提示。測驗則是安靜的考試;唯一可供釐清的資訊就是題目敘述。
- 程式碼執行。具有執行按鈕的編輯器,可讓你先檢查測試案例,再聲稱程式能正常運作。一般文件及停用執行功能的編輯器會讓你成為直譯器,因此你必須說明每一行的作用。
- 輸入內容的可見性。使用即時編輯器時,面試官會看到每一次按鍵、停頓及刪除。即使重寫函式三次也都會被看見;這未必是壞事,但默不作聲地重寫就可能有問題。
- 語言與工具。多數編輯器支援主流程式語言,但可用的程式庫、自動完成及偵錯工具各不相同。測驗通常會限制你只能使用評分器支援的語言。
- 錄影與監考。即時面試通常會錄影,以供事後討論。測驗平台提供選用的監考功能,可能包括網路攝影機快照、瀏覽器分頁切換紀錄或複製貼上標記;是否啟用由雇主決定,而且邀請函很少會說明。
最後一項特性是規劃時最需要留意的。除非指示另有說明,否則請將所有限時測驗都視為已啟用監考。
你該如何針對各種形式做好準備?
擔心在某個平台上的練習無法轉移到另一個平台,是很合理的。這一節會依各種形式提供準備方法;簡單來說,程式設計能力可以轉移,但面試習慣不會,因此請有意識地演練這些習慣。
- 即時編輯器:使用沒有自動完成功能的瀏覽器編輯器練習,邊輸入邊說明,並在執行任何程式碼前手動寫出一個小型測試案例。如果編輯器有執行按鈕,請在解釋方法後使用,而不是用它取代說明。
- 一般文件:練習在沒有編譯器的情況下寫出正確程式碼。統一的縮排和簡短的函式很重要,因為面試官會閱讀程式碼,而不是執行它。
- 限時測驗:在計時環境下練習,並將隱藏測試納入考量:處理空輸入、重複項目及允許的最大資料量。先讀完整組題目,再依預估所需時間安排作答順序。
- 供應商面試:預期會採用標準化評分準則。Karat 類供應商的面試官會明確評量溝通及拆解問題的能力,因此請在開始寫程式碼前說明你的計畫。
一位應徵支付公司資深職位的後端工程師,在同一週收到三種不同邀請:CodeSignal 測驗、啟用執行功能的 CoderPad 面試,以及使用共享文件的最終面試。她針對每種形式各演練一次,而唯一調整的是口頭說明的程度。SubcueAI 的模擬面試工具,可讓你方便地大聲練習口頭說明。
AI 面試助手能在這些平台上提供協助嗎?
只有在有人與你交談的形式中才可以。SubcueAI 的原生 macOS 和 Windows 桌面應用程式會同時擷取系統音訊與麥克風,因此可聽見面試官在 Zoom、Google Meet 或 Microsoft Teams 上提出的問題,並在只顯示於你自己螢幕上的浮動視窗中提供建議。其瀏覽器擴充功能的側邊面板,也能為在 Chrome 或 Edge 瀏覽器分頁中進行的通話提供相同功能,但只擷取會議分頁的音訊,因此它能聽見面試官,卻不會轉錄你的語音。這兩種介面都不會以機器人身分加入通話,也不會將任何內容注入會議頁面或程式碼編輯器;擴充功能的 Firefox 版本僅支援模擬練習。
這項功能的適用範圍有明確界線。限時測驗沒有對話,因此聆聽型助手沒有可處理的內容;會記錄分頁或監看網路攝影機的監考測驗,也不在 SubcueAI 的用途範圍內。使用即時編輯器時,分享整個螢幕會讓浮動視窗出現在共享畫面中;請只分享編輯器視窗,或完全不分享。錄影面試及由雇主管理的裝置同樣不在適用範圍內。SubcueAI 創辦人 Aaron Cao 正是基於這個原因,將浮動視窗設計為本機視窗,而非會議參與者:它絕不應成為平台錄製內容的一部分。各介面的設定步驟列於教學頁面,安全性頁面則會說明會擷取與不會擷取的內容。