AI対策版技術面接質問:2026年でも機能する出題方法
「AI対策」という考え方の課題
厳密に言えば、完全にAI対策された面接質問は存在しません。決意した候補者が第2モニターと素早い操作スキルを持てば、ほぼすべての回答をLLMを通して正当化できます。現実的な目標は不可能性ではなく、経済的に不利にすることです。つまり、AIをうまく使うコストが、単に自分で答えるコストよりも高くなる質問を設計することです。
AI利用がショートカットでなくなれば、それはもはや問題ではありません。以下のパターンは、わたしたちの独自の評価ライブラリ全体と2026年の顧客の面接ループで機能し続けているものです。
パターン1:すべての質問を、候補者が最初に読む必要があるコードに紐付ける
単独のプロンプト(「Xという機能を持つ関数を書いてください」)は学習データに含まれています。しかし、候補者が見たことのない80行のコードに依存するプロンプトは含まれていません。
具体的な形:
- 小さいリポジトリまたはファイル(40~200行)を提供する。
- そのコードを理解しないと答えられない質問をする:「同じorder idで2つのリクエストが同時に
processOrderにヒットした場合、どうなるでしょうか?」 - その後、修正方法を尋ねる。
ファイルを見ていないLLMは一般的な回答を推測できます。コードを実際に読んだ候補者は具体的で正確な回答ができます。この差異がシグナルです。
これはコードベースの修正形式の背後にあるロジックと同じですが、質問の形式ではなく質問の表現に適用しています。
パターン2:曖昧な要件:コーディング前の質問を報奨する
LLMは自信のある、一見完成度の高いソリューションを生成するように学習されています。曖昧性に対応することは苦手です。コードを書く前に明確化質問をすることに報奨を与える質問は、AIの貼り付けに対する自然な選別になります。
例えば:「ノートアプリに『お気に入りにマーク』機能を追加したいです。どう構築しますか?」
優秀なエンジニアは尋ねます:ユーザーごと?グローバル?デバイス間での同期は?順序は保持される?ノート削除時はどうなる?このような明確化質問がシグナルです。一方、AIの貼り付け回答はfavoritesテーブルのスキーマにまっすぐ進み、トレードオフを一切浮かび上がらせません。
スコアリングの際は、コードそのものではなく、コード作成前の意味のある明確化質問の数を重視してください。これは、バズワードを報奨しないシステム設計ルーブリックの背後にあるのと同じ原則です。どちらも、自信のある見た目だが文脈に盲目の回答にペナルティを課します。
パターン3:前の回答への責任を問うフォローアップ質問
すべての面接手法の中で、最もAI耐性が高いのはライブフォローアップです。LLMはコードを書けます。しかし、面接官が見ている中で、リアルタイムでそのコードに対してフォローアップすることはできません。
有用なフォローアップの例:
- 「なぜここでハッシュマップを選んだのですか?入力がソート済みだったら何が変わりますか?」
- 「この関数が2つのスレッドから同時に呼ばれたら、何が起きるか説明してください。」
- 「要件を変更します:ユーザーが1人ではなく、100万人です。何が最初に壊れますか?」
- 「
const result = x ?? 0と書きましたね。この場合、??と||の違いは何ですか?」
自分でコードを書いた候補者はそれについて即座に説明できます。貼り付けた候補者は通常、最初のフォローアップには答えられますが、2つ、3つと続くと崩壊します。3つのフォローアップに答えられるかどうかはほぼ完全なフィルターになります。そして、テイクホーム課題のフォローアップで機能する同じアプローチは、ライブ面接でも同様に機能します。
パターン4:新しいトピックではなく、新しい制約をつける
訓練セットの暗記に打ち勝つために、エキゾチックなアルゴリズムは必要ありません。馴染みのある問題に小さなひねりを加えるだけで十分です。このひねりが、単なるパターンマッチではなく実際の推論を強制します。
実際に機能するひねりの例:
- カスタムデータ形式(「入力は整数の配列ではなく、
{userId, eventType, ts}オブジェクトのストリームです」)。 - 珍しいコストモデル(「読み取りは無料、書き込みは100倍のコストです。この制約で設計してください」)。
- 自明な解決策を封じる制約(「ハッシュベースのデータ構造は一切使用できません」)。
- 現実的な条件(「この関数は6 MBのメモリ上限のあるLambdaで実行されます」)。
古典的な問題(「重複を検出する」)はすべてのLLMの訓練データに含まれています。しかし同じ問題が{userId, ts}イベントとメモリ制約を伴うかたちでは含まれていません。少なくとも、LLMが直接貼り付けられるようなかたちでは。候補者は問題に適応させる必要があり、この適応こそが、あなたが実際に採用しようとしているスキルなのです。
パターン5:「自分で判断した決定」に関する質問
純粋な経験抽出質問は、その場で偽るのが非常に難しいものです。LLMはもっともらしい武勇伝を作ることはできます。しかし、この候補者が実際に開発したシステムに特異的なストーリーにすることはできませんし、その特定システムについて的を絞った4つのフォローアップ質問に答えることは絶対にできません。
やり方:
- トレードオフ質問をする:「紙の上では劣っていたが、その状況ではより良い選択肢が不適切だったため、それを選んだ時のことを教えてください。」
- 回答を聞いた後:「最適化していた指標は何ですか?」
- さらに:「あなたの判断に対する最も強い反対意見は何でしたか?」
- 最後に:「今なら何が違いますか?」
構造化された行動面接ルーブリックと組み合わせると、これらの質問は、実際の面接の精度では偽ることがほぼ不可能になります。システムを実際に構築した候補者は90秒で答えます。別のタブでChatGPTに頼っている候補者は答え始めるまで30秒かかり、一般的な回答をして、2つ目のフォローアップでつまずきます。
2026年で機能しないもの
完全を期するため、現在ではシグナルとしてほぼ価値がないパターンを列挙します:
- 古典的なLeetCodeスタイルのアルゴリズム問題 - どのLLMでも貼り付けられ、数秒で解かれます。
- コンテキストなしの「関数を書いてください…」 - 同じ問題です。
- トリビア的な言語質問(「letとvarの違いは?」) - LLMの最初のトークンで即座に解かれます。
- 「Twitterを設計する」/「Uberを設計する」という問題 - YouTubeの面接対策チャンネルはすべてこれらをカバーしており、どのLLMも標準的なアーキテクチャを返します。
現在の面接がこれらに依存している場合、気づいているかどうかにかかわらず、採用のシグナル価値は低下しています。コーディング評価がAI時代でもまだ有効かという大きな問いについては別記事で扱っていますが、短い答えはイエス、ただし質問を再設計する場合に限ります。
設計と検出を組み合わせる
よく設計された質問でも、2番目の検証層から恩恵を受けます。すべての評価に対して、キーストロークバイオメトリクスで貼り付けの特徴的なパターンをスコアリングし、最終提出に対してLLMの一貫性分析を実行します。すべての不正を捕捉することが目的ではなく、簡単な抜け道を塞ぐことで、候補者が実際に自分で取り組むよう自然と導くことです。
シグナルの完全な分類について知りたい場合は、整合性レポートの説明で、わたしたちが何を検出し、どう解釈するかが説明されています。
次に何をするか
現在の質問ライブラリを上記の5つのパターンに対して見直してください。以下に当てはまる質問は:
- 回答前に読むべきコードやコンテキストがない、
- 単一の「正しい」教科書的な答えがある、
- フォローアップを3ラウンド続けられない、あるいは
- 有名企業の典型的な問題として認識できる、
こうした質問は現在、シグナル価値が低いです。書き直すか、廃止してください。そして、コンテキスト依存型、曖昧性を含む、フォローアップに耐える、変則的な制約がある、あるいは経験に基づいた質問で置き換えてください。できれば、これらの要素を複数兼ね備えた質問にしましょう。
2026年で採用シグナルを維持できているチームは、2024年と2025年にこの改善に取り組んだチームです。一方、「面接には受かるのに、初日からコードが書けない」と嘆いているチームのほとんどは、このアップデートをしていません。