26 ポイント 投稿者 GN⁺ 2025-03-06 | 9件のコメント | WhatsAppで共有
  • 採用プロセスは誰もが嫌う。採用マネージャーも、担当者も、応募者も同じ
  • 技術面接はその中でも特に評判の悪い段階で、面接される側のほとんどが嫌っている
  • 実務はシンプルな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活用は難しい
      • 他のすべてのプロセスを通過したと仮定すれば、対面のコーディング面接にすることもできる
  • 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件のコメント

 
scheee 2025-03-07

技術面接と実際の業務のミスマッチを減らすべきで、罪のないAIのせいにされないか心配ですね

 
whitelips 2025-03-07

この変化のせいかどうかは分かりませんが、私が勤めている会社では事前課題なしで、面接でライブコーディングを行っています。

 
cnaa97 2025-03-06

私が所属しているところでは、技術面接でAIに質問させることを認める方針に進んでいます。インプットがアウトプットを左右するため、むしろ質問する能力を見るためです..

 
cronex 2025-03-06

AIを使ってもいいと思います。
でも、そうして出てきた成果物を100%自分のものにしないといけません。
私が面接官なら、オンラインでコーディング課題を出して、対面面接でそのコードについて説明してみてくださいと言います。もちろん追加の質問もします。
自分で書いたのであれAIが書いたのであれ、提出したコードを説明できず、それに対する回答もできないレベルなら不合格にすべきです。

 
bbulbum 2025-03-06

> コーディング能力の代わりに、LLMに対してプロンプトをうまく書く能力とリファクタリング能力を評価する形

この能力は重要になっていくのだろうと思います。

 
alucard 2025-03-06

AIのせいではなく、もともと面接課題が「optimal answer を求めよ。そうすれば万事OK」というような粗いフォーマットだったことが問題で、その問題が今になって表面化したのではないでしょうか。実務でAIを活用しないわけでもないのに、なぜ制限をかけるのでしょうか?(笑) どんな手段を使ったとしても、output が出ればいいのです。ただし、その手段をどう活用したのかを透明に審査する必要はありますね。

 
jamsya 2025-03-06

同感です。AIの登場によって、実務とかけ離れたいい加減なコーディングテストは市場から自然に淘汰されていき、より良い採用方法を使う会社が優秀な人材を獲得していくのでしょう。
興味深い矛と盾の戦いですね。

 
xguru 2025-03-06

Leetcode Interview チートプログラム
この記事で述べられている技術面接でのAIによるチート事例として、ちょうど مناسبですね

 
GN⁺ 2025-03-06
Hacker Newsの意見
  • 最高の面接プロセスには、チームメンバーとのペアプログラミングと電話面接が含まれていた。数分で候補者が仕事をうまくこなせるか分かり、このプロセスは20年以上のキャリアの中で最も生産的なチームを作った

    • 問題は、スケーラブルなプロセスと高い処理量の必要性がソフトウェア文化の多くを壊してしまったことだ
    • 「私たちは何百人もの候補者を処理しなければならず、結果よりもプロセスの指標が重要だ」という考え方が問題だ
  • コードレビューは評価ツールとして非常に有用だ

    • 候補者にコードをレビューさせることが重要だ
    • ジュニア、ミッド、シニア、スタッフは、同じコードベースからまったく異なる点を見ることがある
    • AI生成コードが一般化するにつれて、コードの品質と正確性を効率的にレビューできる開発者を選ぶことが重要だ
    • YC企業で、コードレビューを第1ラウンドとして行う面接を経験し、それを通じてオープンソースのアプリを作ることになった
  • 2005年ごろ、SMEでホワイトボードコーディングを求められたが、コンピュータは使えなかった

    • ホワイトボードを使う理由を尋ねると、Googleのベストプラクティスを模倣していると答えられた
    • 結局ホワイトボードでコーディングしたが、コンピュータを提供してくれるなら再びやる意思があると伝えた
    • 結局、別の場所に行った
  • 会社Aは、AIがあらゆる技術面接の質問を解けるなら、なぜAIを雇わないのかを考えるべきだ

    • エンジニアが機能の実装可否を評価することが必要かもしれず、面接で候補者に機能の例示的な要求について考えさせることができる
    • 会社がエンジニアの価値を明確に理解しておらず、そのため候補者の価値を判断しにくいことが多い
  • AIを避ける採用手法として、ジュニア開発者にはコードを持ってこさせて説明させる

    • 何を変更するか、どう変更するか、パターンを使ったかなどを議論する
    • シニア開発者には複雑なコードを渡し、リアルタイムで分析させる
    • AIを使って日常的な作業を短縮するのは構わないが、結果を批判的に考えられなければならない
  • 面接官として、FAANGではない会社ではシンプルな面接プロセスを使っている

    • 候補者の履歴書、期待事項、能力について質問し、書いたコードを見せてほしいと頼む
    • このプロセスは速くて効果的だ
  • 現在の就職市場は混乱していて、壁にぶつかるまでは就職は難しいように思える

    • 26年の経験があるが完璧ではなく、ごまかしはうまくいかない
  • Leetcodeの中級/上級問題を30〜45分の面接で使うと、明らかになるのは2種類の人だけだ

    • 問題に最初から取り組む人と、すでに解法を知っている人だ
    • Kadaneのアルゴリズムを知らなければ、その問題に最初から取り組むのと同じことになる
    • 最適な面接方法は分からないが、個人的に好むスタイルはある
    • 面接の質問にはテストケースがあり、段階的に複雑になり、データ構造に焦点を当て、候補者がトレードオフをして意思決定する機会を提供すべきだ
  • 問題はAIではなく、会社が候補者を適切に選ぶ方法を知らないことだ

    • 心理測定学の基本すら適用していない
    • 最善の選考プロセスは、新しい人に実際に数週間働いてもらうことだ
  • 最後の面接では、AIを含むツールを使って課題をこなすよう求められた

    • ライブコーディング面接でも似たようなプロセスを経た
    • ツールを使って技術と良い実践を確認するのは当然の選択だ