ライブコーディング面接に受かる方法

文責 Aaron Cao · 更新

ライブコーディング面接に受かる方法
ライブコーディング面接は、コンパイラとの対話だと考えましょう。トレードオフを声に出しながら、まずブルートフォースの方針から始め、そこから改善していきます。CoderPadやCodeSignal、あるいはZoom、Google Meet、Microsoft Teams内の共有エディタでも、面接官は最終的な関数と同じくらいプロセスを評価します。

ライブコーディング面接は、コンパイラとの対話だと考えましょう。トレードオフを声に出しながら、まずブルートフォースの方針から始め、そこから改善していきます。CoderPadやCodeSignal、あるいはZoom、Google Meet、Microsoft Teams内の共有エディタでも、面接官は最終的な関数と同じくらいプロセスを評価します。

ライブコーディング面接では実際に何が評価されるのか?

ライブコーディングは持ち帰り課題ではありません。面接官が見ているのは、あなたが問題文をどう確認し、どんな例を選び、どのデータ構造を選択し、テストが失敗したときにどう立て直すかです。正確さはもちろん重要ですが、計算量の議論が一切ない、無言で完璧な関数は、あとから改善していく動作するブルートフォース解よりも評価が低くなることがよくあります。

あるパブリッククラウドベンダーのL5職に応募したバックエンドエンジニアが、共有エディタでレートリミッターの実装を求められたとします。面接官は、最初のコンパイルで教科書通りのトークンバケットが出てくることを期待しているわけではありません。聞きたいのは、バーストと定常状態の違い、O(1)案とログ走査案の比較、そしてハッピーパスを書く前に失敗するテストを書くことです。その会話そのものが、この面接ラウンドなのです。

面接は通常、CoderPad、CodeSignal、HackerRank、またはZoom、Google Meet、Microsoft Teams内の共有エディタで行われます。コードを書き始める前に、入力サイズ、重複の有無、変更(ミューテーション)の可否を確認しましょう。出力を自分の言葉で確認し直してから、書き始めます。

  • 最初の行を書く前に制約を確認した。
  • 正しいブルートフォース案から始め、そこから一つ改善した。
  • 時間計算量と空間計算量を声に出して説明した。
  • 例とエッジケースをそれぞれ手でたどった。
  • 実行が失敗しても黙り込まず、立て直した。

コードを書きながら、どう話せばいいのか?

話しながら書くと遅くなったり、自信がなさそうに聞こえたりするのではと不安になるかもしれません。このセクションでは、最初に問題を確認する場面から行き詰まった瞬間まで、どんな共有エディタの問題にも使い回せる話し方のパターンを紹介します。台本のように読み上げるのではなく、体が覚えるまで練習して使ってください。

コードを書き始める前に、問題を自分の言葉で確認し、制約を挙げ、例を一つ手作業でたどりましょう。次にブルートフォースの考え方とその計算量を説明します。書き始めるのはそのあとです。書いている間は、キー入力のすべてではなく、ループの不変条件を説明しましょう。手が止まったときは、黙り込む代わりに、何を確認しているか(null入力、off-by-oneのずれ、ソート済みかどうかなど)を話してください。

  • 型やサイズ、エッジケースを声に出して確認する。
  • ブルートフォースを提示し、次に一つ改善し、それからコードを書く。
  • 完成した関数に沿って例をたどり直す。
  • 黙って手を止めるより、ヒントを求める。

最初から最後まで声に出して進める、時間を計った練習は模擬面接ページで行えます。

面接官にAIオーバーレイは見えるのか?

画面やウィンドウを共有したり、デスクトップを録画したりすると、フローティングオーバーレイを含め、その画面に映るものはすべて相手から見えます。監督付きのプラットフォーム、ロックダウンブラウザ、会社管理のデバイスでは、ローカルで動くアシスタントはすべて対象外です。そうした環境では、どんなツールも見えないものとして扱わないでください。

SubcueAIにはリアルタイムアシスト機能が2つありますが、どちらも会議ボットとして通話に参加したり、会議ページにコンテンツスクリプトを注入したりすることはありません。ネイティブのmacOSおよびWindowsデスクトップアプリは、システム音声とマイクの両方をキャプチャし、デスクトップ版の会議クライアントで使えるフローティングのローカルオーバーレイを表示します。Chromium拡張機能(ChromeとEdge)はSide Panelを使い、キャプチャするのは会議タブの音声、つまり面接官の声だけで、あなたのマイクは一切キャプチャしません。そのためブラウザタブでの通話に対応しつつ、あなたの発言は文字起こししません。Firefox版は模擬練習専用です。

オーバーレイが共有していないディスプレイ上にある場合、面接官には見えません。ただしデスクトップ全体の共有では、そのディスプレイ上のすべてのウィンドウが含まれます。面接官に実際何が見えるのかという正直な限界は、検出可能性のトピックページにまとめています。

本番の前に何を練習すべきか?

本番で実際に時間内に書くことになるパターンを練習しましょう。配列とハッシュ、2ポインタ、スライディングウィンドウ、二分探索、BFSとDFS、ヒープ、基本的な区間マージなどです。使用する言語のハッシュマップ、キュー、ソートAPIに習熟していることは、マイナーなパズルを暗記するよりも重要です。声に出しながら解く練習をしてください。無言での練習は本番には生きません。

本番で使うのと同じ環境で模擬面接を1回行いましょう。同じ言語、同じエディタの使い方、同じ会議クライアントです。企業がデスクトップアプリのZoomを使うなら、そこで練習します。ChromeタブでGoogle Meetを使うなら、そのタブを開いた状態で練習しましょう。デスクトップのオーバーレイとChromeのSide Panelの設定方法はチュートリアルページにあります。

最適解を最後まで書ききれない場合は、正しいブルートフォース解を提出し、ボトルネックを説明したうえで、より速いアプローチの方針を示しましょう。遅くても完成していて、速い方針が明確な回答のほうが、たいてい未完成の巧妙なアイデアよりも評価されます。

よくある質問

コードを書きながら話すと、本当に評価は変わるのか?

変わります。面接官は、聞いたことのない方針を評価できません。答えが合っていても、無言でタイピングしているだけでは当て推量のように見えます。まず問題を確認し、ブルートフォースの方針を示してから、コードを書きましょう。

SubcueAIは私のZoom、Google Meet、Microsoft Teamsの通話に参加しますか?

参加しません。会議ボットが参加することも、会議ページにコンテンツスクリプトが注入されることもありません。アシスト機能は、macOSまたはWindowsのオーバーレイ、あるいはChromeやEdgeのSide Panelとして、あなたの端末内にとどまります。

コーディング画面を共有している間、面接官にオーバーレイは見えますか?

オーバーレイが共有中の画面やウィンドウ上にある場合は見えます。画面共有、録画、監督付きの試験、会社管理のデバイスはすべて対象外です。そうした環境でツールが見えないと想定しないでください。

ブラウザ拡張機能は私の声を聞いたり、CoderPadのタブを読み取ったりしますか?

いいえ。ChromiumのSide Panelがキャプチャするのは会議タブの音声、つまり面接官の声だけで、あなたのマイクは一切キャプチャせず、あなたの発言を文字起こしすることもありません。別に開いたCoderPadのエディタを読み取ることもありません。Firefoxは模擬練習専用です。

時間内に最適解を書き終えられない場合はどうすればいいですか?

正しいブルートフォース解を提出し、ボトルネックを指摘したうえで、より速いアプローチの方針を示しましょう。遅くても完成していて、速い方針が明確な回答のほうが、たいてい未完成の巧妙なアイデアよりも評価されます。

関連する質問

← 詳しく見る: 面接の種類