ライブコーディング面接で本当に見られていること
コーディング面接で評価されるのは、最終的なコードだけではありません。面接官は、あなたがどうやって解き方を選ぶか、その時間計算量と空間計算量を把握しているか、聞かれる前にどんなエッジケースに気づくか、そしてタイピングしながら自分の判断をどれだけ明確に説明できるかを見ています。
これを一度に頭に入れておくのは大変で、先週解けた問題が当日はまったく解けないように感じるのもそのためです。コパイロットは必要な順番で要素を示すので、思い出すことではなく説明することに集中できます。
問題から回答まで4ステップ
コーディング用のモードに切り替える必要も、最初にラウンドの種類を選ぶ必要もありません。面接官の声を聞き取るのと同じセッションが画面も読み取るので、ペアプログラミングの通話だけでなく、無言で解くラウンドや持ち帰り課題でも使えます。
- 「Start」を押すか、そのまま問題をキャプチャします。最初のキャプチャまたは回答でセッションが始まります。
- 問題を画面に表示した状態で⌘/Ctrl + Hを押します。長い問題は、入出力例や制約も含めて何回かに分けてキャプチャできます。
- ⌘/Ctrl + Enterを押します。数秒で、解き方の方針、エディタで選択中の言語で書かれた完全なコード、時間計算量と空間計算量、エッジケース、声に出して言えるひと言が表示されます。
- しっくりこなければ、「Regenerate」(再生成)で回答し直してミスをチェック、「Another approach」(別のアプローチ)で別の解法、「Explain simpler」(もっと簡単に説明)でコードの下にわかりやすい解説を追加できます。
コーディングの回答に毎回含まれるもの
コードはスターターコードの関数シグネチャをそのまま使うので、LeetCode、HackerRank、Codility、CodeSignalの問題にそのまま合います。SQLや、Terraform、YAML、Dockerfileなどのファイルにも対応します。
どの回答にも、そのコードが対応しているエッジケースが明記されているので、面接官に「これで完成ですか?」と聞かれたときにすぐ答えられます。「Another approach」では本当に異なる解法と、元の解法との比較がひと言で示されるので、決める前にトレードオフを説明できます。
- エディタの言語で書かれた、そのまま動く完全なコード
- 時間計算量と空間計算量
- 聞かれる前に示されるエッジケース
- 声に出して言えるひと言と、必要に応じたわかりやすい解説
追加の質問は、表示済みのコードをもとに回答
画面で作業している間も聞き取りは続いています。面接官に「最適化できますか?」「なぜハッシュマップを使ったのですか?」と聞かれると、すでに表示したコードをもとに回答します。「再帰を使わずに書いて」のように声に出してコードを求められた場合も、完全なコードが表示されます。
自分で考えたい場合は、「ヒントだけ教えて」「エッジケースを挙げて」のように、やりたいことを「Ask」に入力すれば、そのとおりの内容が返ってきます。どれもセッションをやり直す必要はなく、追加のクレジットもかかりません。
面接の前に
オーバーレイは画面共有と画面録画の対象外なので、面接官に見えるのはあなたのエディタで、アシスタントではありません。ただし、マウスポインターは共有されます。また、オーバーレイをクリックするとエディタからフォーカスが外れ、それを記録するコーディングプラットフォームもあります。キーボードショートカットを使いましょう。
- ショートカットを覚えておきましょう。回答は⌘/Ctrl + Enter、キャプチャは⌘/Ctrl + H、オーバーレイの表示切り替えは⌘/Ctrl + Bです。
- 必要に応じて、面接セットアップで優先するコーディング言語を設定できます。画面に言語が表示されていない場合にのみ使われます。
- LeetCode形式の問題で短いセッションを一度試し、流れに慣れておきましょう。
- そのラウンドのルールを確認しましょう。監視付きのコーディングプラットフォームはそれぞれ異なり、外部ツールを禁止しているものもあります。