AI支援コーディング面接に備える方法
文責 Aaron Cao · 更新

まず面接官が許可するAIツールを確認し、その環境でリハーサルを行いましょう。プロンプトを入力する前に方針を述べ、生成コードをレビューし、独自にテストを作成して、トレードオフを声に出して説明する練習をします。要件変更とツール停止のシミュレーションも練習に取り入れ、支援なしでも続けられるようにしてください。
ツールを選ぶ前に何を確認すべきですか?
「AI支援あり」と記載された案内でも、どのような支援が許可されるのか曖昧な場合があります。このチェックリストを使い、練習方法を組み立てる前に、ツールの利用許可、作業環境、提出要件を明確にしましょう。
- 「AI支援あり」とは何を意味しますか?候補者がAIを使えるのか、面接官がAIを使うのか、あるいは双方なのかを確認します。具体的にどのアシスタントが承認されているか、また許可の範囲に自動補完、チャット、自動コード変更、面接中のリアルタイム提案が含まれるかを尋ねましょう。
- どこで作業しますか?言語、ランタイム、エディター、リポジトリへのアクセス、依存関係の制限、インターネット接続を確認します。想定される環境で小さなプログラムとそのテストを実行する練習をしましょう。
- アシスタントに何を送信できますか?プロンプトに問題文、リポジトリのコード、スクリーンショット、面接音声を含められるかを尋ねます。エディター用アシスタントの許可に、音声取得が自動的に含まれるわけではありません。
- 何を提示または提出する必要がありますか?面接官が画面共有、プロンプト履歴、生成コードの開示、テスト、書面による説明のどれを求めるかを明確にします。プロンプトの質がコーディングの基礎力に取って代わると考えず、その選考で何が評価されるのかを尋ねましょう。
指示に記載がなければ、選考前に採用担当者へ確認してください。練習と本番での許可は分けて考えましょう。ツールを使って練習したからといって、面接中にも使用できるとは限りません。
コーディング、行動面接、システム設計面接の準備方法については、面接形式に関する回答をご覧ください。
プロンプト作成とコード確認はどう練習すべきですか?
自力で考えられる問題を選び、要件の把握からテスト済みの解決策に至るまでの全工程を練習します。利用可能であれば承認済みのアシスタントと環境を使い、自分で結果を説明して変更できるよう、支援なしの練習も行いましょう。
- 最初に契約を定義します。入出力の型、サイズ制約、エラー時の動作、例を書き出します。イベントの重複排除タスクなら、どの重複イベントを残すか、出力順を入力順と一致させる必要があるかを決めましょう。
- プロンプトの前に方針を述べます。使用するデータ構造、アルゴリズムが維持すべき規則、想定される時間計算量と空間計算量を説明します。これにより、生成コードを評価するための具体的な基準ができます。
- 範囲を限定した変更を依頼します。言語、関数シグネチャ、制約、使用可能な依存関係を指定します。たとえば、重複排除関数を実装し、最初の出現を保持し、入力は変更せず、前提条件を説明するよう依頼します。周辺コードを依頼する前に、その関数をレビューしましょう。
- 実行前に確認します。ループ境界、ミューテーション、戻り値、見慣れないAPI呼び出しを確認します。ツールがファイルを編集した場合は、実際の差分を読みましょう。説明できない変更は受け入れないでください。
- 自分で定めた期待値に対してテストします。テストコードを依頼する前に、期待する出力を自力で決めます。通常のケース、関連する境界ケース、意図した動作と起こり得る誤りを区別できるケースを含めましょう。無効な入力は、合意した契約に従ってのみ確認します。
- 結果を説明し、変更します。具体的な入力を使って処理を追い、計算量の根拠を示し、解決策全体を再生成せずに要件を変更します。現在のテストに合格しても、すべての入力に対する正しさが証明されるわけではありません。
口頭説明のリハーサルには、模擬面接ページをご利用ください。
時間制限やミスにはどう備えればよいですか?
面接で指定された所要時間に合わせてリハーサルを行います。その時間内に、課題の読解、要件の確認、実装、テスト、最終的な説明までを含めましょう。コーディングが早く終わった場合だけ検証するのではなく、あらかじめ検証時間を確保してください。
決済プラットフォーム企業の職種に備えるバックエンドエンジニアを例に考えます。リハーサル中、彼女はトランザクションIDごとに最初のイベントを入力順で保持する関数を依頼しましたが、生成された草案はマップ内の以前のイベントを上書きしていました。IDが重複し金額が異なるテストによって誤りが判明したため、未登録のIDだけを挿入するよう関数を変更し、先のイベントを残すべき理由を説明しました。
有用なタイミングで判断を言葉にする練習をしましょう。プロンプトの前、提案を採用または却下するとき、テストによって理解が変わった後が該当します。生成コードを一行ずつ読み上げるのではなく、要件、根拠、次の手順を説明してください。
- 追加要件を加えます。並び順の規則、入力サイズ、メモリ制約のいずれかを変更します。編集前に、どの前提条件とテストを変更すべきかを特定しましょう。
- AIが利用できない状況を再現します。面接で許可されているエディター、コンパイラー、デバッガー、ドキュメントを使い、最後に理解できたバージョンから作業を続けます。
- ボトルネックを振り返ります。終了後、不明瞭なプロンプト、大規模な生成変更、環境の問題、デバッグのどれに時間を取られたかを特定します。次のリハーサルでは、その弱点を重点的に練習しましょう。
承認済みの環境でSubcueAIはどう活用できますか?
面接でその形式の支援と必要な音声取得が許可されている場合に限り、リアルタイム支援にSubcueAIを使用してください。通話を行う場所と準備に必要な音声に応じて、使用する画面を選びます。
- ネイティブデスクトップアプリ:主力アプリはmacOSとWindowsで動作し、システム音声とマイク音声を取得して、ローカルのフローティングオーバーレイに支援内容を表示します。ZoomやMicrosoft Teamsなどのデスクトップ会議クライアントで利用できます。
- ブラウザー拡張機能:Side Panelは、Google Meetを含むブラウザータブでの通話に対し、ChromeとEdge上で面接中のリアルタイム支援を提供します。取得するのは会議タブの音声だけで、マイクではなく面接官の声を聞き取り、候補者の発言は文字起こししません。Firefox版は模擬練習専用です。
どちらも会議ボットを通話に参加させたり、会議ページへコンテンツスクリプトを挿入したりしません。ただし、これらの特性は不可視性を保証するものではありません。共有または録画された画面には表示中の支援が映る可能性があります。監督付き面接と会社管理の端末は、ここで扱うリアルタイム支援の利用場面には含まれません。
承認済みのセッション前に、設定チュートリアルを使い、会議環境に合った画面を準備してください。