如何通過 HackerRank 面試?

作者 Aaron Cao · 更新於

如何通過 HackerRank 面試?
三件事決定成敗:通過隱藏測試案例而不只是範例案例、在時限內完成,以及全程留在監考視窗內。請在 HackerRank 自帶的編輯器中練習,這樣環境本身就不會成為讓你意外的部分。

三件事決定成敗:通過隱藏測試案例而不只是範例案例、在時限內完成,以及全程留在監考視窗內。請在 HackerRank 自帶的編輯器中練習,這樣環境本身就不會成為讓你意外的部分。

HackerRank 到底在給什麼計分?

招募方看到的分數不只是通過或不通過。一份 HackerRank 測驗會同時回報好幾項內容,了解哪些指標是各自獨立變化的,會改變你分配時限的方式。

  • 通過的測試案例數。每道題都會針對可見的範例案例和更大的隱藏案例集執行。空輸入、單一元素、重複項和最大規模資料都藏在隱藏案例集裡。大多數失分來自邊界情況,而不是演算法本身寫錯了。
  • 部分得分。計分通常按每個測試案例計算,所以一個正確但較慢的解法也能拿到實實在在的分數。而一個沒有提交的完美解法則一分都拿不到。
  • 時間與記憶體限制。如果題目設定了限制,效率不高的解法會在大規模隱藏案例上逾時,即使它通過了每一個範例案例。
  • 監考報告。切換分頁、失去焦點、貼上事件,以及在開啟相關功能時的網路攝影機截圖,都會附加在你的提交記錄中供招募方查看。

其他招募平台在各個環節分別測試什麼,可以參見招募平台專題頁

你該如何準備測驗環節?

你明明已經掌握了演算法,上次卻依然丟了分,這感覺就像練習都白費了。這一節要談的是環境層面而非能力層面的問題。大部分可以挽回的分數就藏在這裡,而且挽回它們的成本很低。

  • 在 HackerRank 編輯器裡練習。它不是你的 IDE。沒有你習慣依賴的自動完成,沒有除錯工具,你的快捷鍵設定也都不存在了。在真正上場之前,先在裡面完整做幾道題。
  • 了解輸入範本。有些題目會給你一個已解析好的函式簽章,有些則需要你自己從標準輸入讀取。讀錯輸入範本是一種常見的失誤方式——即便邏輯完全正確,也會導致每一個測試案例都失敗。
  • 選擇你偵錯速度最快的語言,而不是看起來最厲害的那種。能通過測試才是衡量標準。
  • 先寫暴力解法並提交,再做優化。在時限耗盡之前先把部分分數鎖定,是投報率最高的一個習慣。
  • 手動測試邊界情況:空輸入、單一元素、全部相同、最大規模。

設想一位後端工程師正在準備一場平台團隊的電話面試。他先前解決過類似的底層問題,卻在測驗的前一段時間一直在和輸入解析範本較勁,最終只提交了一份解法而不是三份。他的演算法知識從來都不是那個瓶頸。

CodePair 即時環節會有什麼不同?

CodePair 是一個共用編輯器,通話中會有真人在場,這讓它更像是一場圍繞程式碼展開的對話,而不是一次測驗。計分依據的是面試官的主觀判斷,沉默在這裡會顯得很不利。

  • 複述題目並在動手寫程式碼之前確認清楚限制條件。
  • 先把思路說出來,包括你曾經考慮過但否決掉的方案,以及否決的原因。面試官會為推理過程計分,一個被否決的方案本身就是推理能力的證據。
  • 邊說邊寫。長時間的沉默是面試官對這一環節最常提到的抱怨。
  • 把你的測試案例講出來。主動走一遍邊界情況,傳遞出的用心程度與非同步環節中隱藏測試所衡量的是同一回事。
  • 優化之前先問一句。很多時候面試官想要的是能跑通的版本外加一段複雜度討論,而不是最優解。

模擬面試模式正是用來練習這種大聲表達思路的能力的,因為這裡的失敗往往出在表達上,而不是演算法本身。

AI 面試助手適合用在哪裡,又不適合用在哪裡?

在這個問題上說清楚,比給出一個行銷式的答案更重要。

  • 受監考的 HackerRank 測驗不在適用範圍內。監考系統會記錄切換分頁、失去焦點、貼上事件和網路攝影機畫面。螢幕共用、螢幕錄製、受監考的環境,以及公司管理的電腦,都是任何助手都不適用的場景,SubcueAI 也從不這樣宣稱。
  • 適用的場景是準備階段。提前進行大聲練習的模擬環節,能培養出 CodePair 環節所考核的表達習慣。
  • 圍繞程式設計環節展開的行為面試和系統設計對話,都是在普通會議軟體上進行的普通面試,而這正是 SubcueAI 所面向的場景。

該平台能看到什麼、不能看到什麼,在可偵測性專題頁上有更詳細的說明。

常見問題

如果沒能通過每一個測試案例,我是不是就算不合格了?

通常不會。計分一般是按每個測試案例計算的,所以部分正確的解法也能拿到部分分數,招募方看到的是一個分數,而不是一個通過或不通過的判定。提交一個能跑通的暴力解法,幾乎總比一邊優化一邊把題目留空要好。

我可以切換分頁去查資料嗎?

監考系統會記錄下來。這是否重要取決於雇主的政策,該政策會在測驗開始時說明,有些測驗還明確允許查閱文件。請假定每一次焦點切換都會被記錄並附加到你的提交記錄中。

我應該選擇哪種程式語言?

選擇你在時間壓力下寫得最快、偵錯最順手的那一種,除非職缺明確要求使用某種特定語言。分數來自通過測試案例,語言本身不會加分。

CodePair 和帶回家做的測驗有什麼不同?

CodePair 是一個有面試官在場觀看的即時共用編輯器。沒有隱藏測試案例來決定結果,而是由真人來評判你的推理過程、你提出的問題,以及你應對提示時的表現。大聲說出思考過程和最終程式碼同樣重要。

在 HackerRank 測驗中可以使用 AI 助手嗎?

在受監考的測驗中不可以。監考系統會記錄切換分頁、貼上事件和網路攝影機畫面,在測驗禁止的情況下使用外部協助,有被判定為抄襲的風險。請改為在測驗之前使用練習環節。

相關問題

← 更多關於 招募平台與甄選流程