AIが技術面接を壊した。これからどうする?
(kanenarraway.com)- 採用プロセスは誰もが嫌う。採用マネージャーも、担当者も、応募者も同じ
- 技術面接はその中でも特に評判の悪い段階で、面接される側のほとんどが嫌っている
- 実務はシンプルなAPI連携中心なのに、面接では複雑な理論やアルゴリズムなどを問われる状況をしばしば目にする
- Googleのエンジニアの90%が使うとされるHomebrewの開発者が、ホワイトボードで二分木の変換ができず面接で落ちたように
ここ数年の変化(面接を無力化する要因)
- リモート面接でカメラを切り、替え玉を雇う事例が発生している
- 北朝鮮の工作員がdeepfake動画を使って求職を試みた事例もあった
- GitHub Copilot、Cursorのような自動コーディングツール、そしてClaudeやOpenAIのようなLLMの登場により、基本的なコーディング問題や質疑応答は簡単に解けるようになった
- 履歴書作成から大量応募、動画面接に至るまでAIが介入できる流れだが、この記事では技術面接そのものに焦点を当てる
技術面接の基本
開発者を採用するほぼすべての企業が、以下を少しずつ変形したようなプロセスを持っている
- Hackerrankの事前課題
- ジュニアやインターン開発者を選ぶためのフィルターとして機能する
- オンラインで自由に問題を解ける
- コンピュータサイエンス基礎(Comp Sci Fundamentals)
- データ構造、アルゴリズム、Big Oなどを問う方式
- ジュニア開発者向けであることが多い
- コーディング面接
- 実際にコードを書いて動かす能力を評価する
- 簡単なプロジェクト例で、基本的な言語運用と問題解決能力を確認する
- アーキテクチャ/設計
- ジュニアよりシニア開発者向け
- システム設計、スケーラビリティ、データベースやAPI設計などを評価する
面接でのAI利用
- AIのせいでHackerrankのような事前課題のフィルター機能は大きく弱まっている
- コンピュータサイエンス基礎やコーディング面接も、問題の難易度がLLMの回答範囲に収まり、簡単に解ける流れになっている
- アーキテクチャ/設計面接はまだ比較的安全だが、長期的にはAIがさらに進化すればこの領域も脅かされる可能性がある
私たちの選択肢は?
- 1. リモート技術面接をやめる
- 面接官が隣で直接見ていればAI活用は難しい
- 他のすべてのプロセスを通過したと仮定すれば、対面のコーディング面接にすることもできる
- 面接官が隣で直接見ていればAI活用は難しい
- 2. Pearson Vueスタイルのソフトウェアを使う
- 監視ソフトをインストールし、カメラで監督する形式
- 回避方法がいくつも知られており、完全ではない(関連Subredditが別にあるほど)
- 3. 問題を見て見ぬふりをする
- 「AIを使わないでほしい」という道義的なお願いに依存する方式
- 結果としてAIを使う人が有利になるため、企業にとって適切な候補者を選びにくくなる
- 4. AI利用を許可する
- コーディング力の代わりに、LLMへのプロンプト作成のうまさやリファクタリング能力を評価する形
- AI出力の誤りを自分で修正できるコーディング力も必要な、過渡期の状況でもある
- 5. ハイブリッドアプローチ
- リモートでまずAI活用能力などを確認し、その後オフラインで最終検証を行うような混合方式
あり得る解決策
- 長期的には4番と5番の方式が実現可能性が高い
- RTOを実施しても、遠方の候補者全員をオフラインに呼ぶことはできないため、効率的な方法を用意する必要がある
- 面接そのものの形式を変えるのも別の代案だ
- 今日のコーディング面接は、FizzBuzzや電卓実装レベルの小さな課題にとどまることが多い
- AI補助を使えば課題の難易度を10倍以上に広げ、完全なアプリケーションを作る過程として評価できる
- アーキテクチャとコーディングを混ぜて、2時間ほどの長い面接として進める方法も試せる
- この方式では、アプリケーションを構築し、拡張し、追加機能を実装することを求められる
- コードベースが大きくなる過程で一貫性を保てるか、表面的な回答にとどまらず、より深いレベルの能力を確認できる利点がある
- この過程で次を評価する
- 基本的なgitやIDEなどのツール活用能力
- LLMに効果的にプロンプトを与え、より良い出力を得られるようプログラミングできる能力
- LLM出力を理解して組み合わせ、保守可能な形でコードを仕上げられる力量
- 限られた時間内に、一定以上の規模とスケーラビリティを持つアプリケーションを完成させられるかどうか
- 一貫した品質と論理を維持する能力
- このような総合評価方式が、AI時代のコーディング面接の代替案になる可能性がある
Summary
- 技術面接は近い将来、大きな変化を迎える見通しだ
- 今はまだAI活用が比較的遅かったり不自然に見えたりするかもしれないが、徐々にAIは見えにくくなる可能性がある
- それに伴って起こり得るシナリオ
- 合格率が上がり、その代わり実務期間中(プロベーション)に脱落する事例が増えるかもしれない
- ジュニア開発者が企業の高い技術要件に早期から追いつかなければならない負担が、さらに大きくなる可能性がある
- AIを使ってFAANG面接を突破する方法が広がれば、変化のスピードはさらに加速する可能性がある
9件のコメント
技術面接と実際の業務のミスマッチを減らすべきで、罪のないAIのせいにされないか心配ですね
この変化のせいかどうかは分かりませんが、私が勤めている会社では事前課題なしで、面接でライブコーディングを行っています。
私が所属しているところでは、技術面接でAIに質問させることを認める方針に進んでいます。インプットがアウトプットを左右するため、むしろ質問する能力を見るためです..
AIを使ってもいいと思います。
でも、そうして出てきた成果物を100%自分のものにしないといけません。
私が面接官なら、オンラインでコーディング課題を出して、対面面接でそのコードについて説明してみてくださいと言います。もちろん追加の質問もします。
自分で書いたのであれAIが書いたのであれ、提出したコードを説明できず、それに対する回答もできないレベルなら不合格にすべきです。
> コーディング能力の代わりに、LLMに対してプロンプトをうまく書く能力とリファクタリング能力を評価する形
この能力は重要になっていくのだろうと思います。
AIのせいではなく、もともと面接課題が「optimal answer を求めよ。そうすれば万事OK」というような粗いフォーマットだったことが問題で、その問題が今になって表面化したのではないでしょうか。実務でAIを活用しないわけでもないのに、なぜ制限をかけるのでしょうか?(笑) どんな手段を使ったとしても、output が出ればいいのです。ただし、その手段をどう活用したのかを透明に審査する必要はありますね。
同感です。AIの登場によって、実務とかけ離れたいい加減なコーディングテストは市場から自然に淘汰されていき、より良い採用方法を使う会社が優秀な人材を獲得していくのでしょう。
興味深い矛と盾の戦いですね。
Leetcode Interview チートプログラム
この記事で述べられている技術面接でのAIによるチート事例として、ちょうど مناسبですね
Hacker Newsの意見
最高の面接プロセスには、チームメンバーとのペアプログラミングと電話面接が含まれていた。数分で候補者が仕事をうまくこなせるか分かり、このプロセスは20年以上のキャリアの中で最も生産的なチームを作った
コードレビューは評価ツールとして非常に有用だ
2005年ごろ、SMEでホワイトボードコーディングを求められたが、コンピュータは使えなかった
会社Aは、AIがあらゆる技術面接の質問を解けるなら、なぜAIを雇わないのかを考えるべきだ
AIを避ける採用手法として、ジュニア開発者にはコードを持ってこさせて説明させる
面接官として、FAANGではない会社ではシンプルな面接プロセスを使っている
現在の就職市場は混乱していて、壁にぶつかるまでは就職は難しいように思える
Leetcodeの中級/上級問題を30〜45分の面接で使うと、明らかになるのは2種類の人だけだ
問題はAIではなく、会社が候補者を適切に選ぶ方法を知らないことだ
最後の面接では、AIを含むツールを使って課題をこなすよう求められた