世界を動かす技術を、日本語で。

ライブコーディング面接はコーディングスキルではなくストレスを測る

2025年8月1日原文(hadid.dev)

概要

  • ライブコーディング面接 が苦手なエンジニアの体験談
  • ストレス が認知機能に与える影響の科学的根拠
  • 公開実験 でのパフォーマンス低下とその不公平性
  • ストレス下での 適性評価の問題点
  • ストレス軽減や対策方法の提案

ライブコーディング面接の苦手意識と実体験

  • ライブコーディング面接 を楽しむ人もいるが、自分はそうではないという立場
  • Toptal の選考で、非公開テストは合格、ライブコーディングで失敗した経験
  • 後で同じ問題を簡単に解けたことから、根本原因に疑問を持つ
  • 問題自体は簡単だったが、 ライブコーディングの場 で解けなかった混乱
  • これをきっかけに ストレスとパフォーマンス の関係を調査

ストレスが脳に与える影響

  • 高ストレス・時間制限下 では脳が「脅威」と認識し、 扁桃体 が活性化
  • コルチゾール (ストレスホルモン)分泌増加
  • 前頭前野 (複雑な思考・ワーキングメモリ担当)が機能低下
  • ワーキングメモリ低下により、 流動性知能 (新しい問題解決能力)が著しく減少
  • 軽度の パフォーマンス不安 でも思考が狭まり、記憶力や集中力が極端に落ちる

科学的研究と不公平性

  • Microsoft研究者らによる論文「Does Stress Impact Technical Interview Performance?」の紹介
  • プライベート環境 (一人で解答)と 公開環境 (監督者の前で解答)での比較実験
    • 公開環境では 得点が半分 に低下
    • パフォーマンスの分布も広がり、一部の人が極端に影響を受ける
  • 特に女性は、 公開環境で全員不合格、逆にプライベートでは全員合格という衝撃的な結果
  • ライブコーディングは ストレス耐性フィルター として機能し、不公平性を助長

ストレス下でのパフォーマンス評価の問題

  • 一部企業は「 プレッシャー下でのパフォーマンス」を重視するが、ほとんどの求人は明記しない
  • 多くの職場では ストレス耐性 よりも、普段のエンジニアリングスキルが重要
  • ライブコーディングで失敗した人 も、日常業務では高い成果を出せる場合が多い
  • ライブコーディングは「 コーディング能力 のテスト」として不適切で、実際は ストレス反応 の測定になっている

ストレスへの対策と緩和方法

  • ライブコーディング面接 が一般的である現状は変えにくいが、 ストレス軽減策 は可能
  • 模擬面接 (Pramp、Interviewing.io、LeetCodeの模擬試験など)で繰り返し練習
    • タイマー使用や録画、他人の前での練習で実際のプレッシャーを再現
  • サプリメント の活用検討(個人差あり・自己責任)
    • L-tyrosine :ストレス下での神経伝達物質補充
    • L-theanine :リラックス促進・集中力向上
  • サプリメントは 実際の面接前に練習で試す ことが重要
  • ライブコーディングが苦手 =悪いエンジニアではなく、「普通の人間」であることの再認識

ライブコーディング評価の再考

  • ライブコーディング面接 は本来の目的(コーディング能力測定)を果たしていない可能性
  • ストレス耐性 よりも 日常業務での実力 を重視する評価方法の必要性
  • 公平な採用プロセス実現のための見直し提案

Hackerたちの意見

とてもよく書かれていて、すごく真実だね。普通のストレスじゃなくて、高いリスクのストレスだし、時には侮辱されながら働かなきゃいけないこともある。昔、Googleの面接に行ったことがあるんだけど、オランダの最初のローカル検索エンジンの一つを作ったんだ。でも、カウボーイハットをかぶったGoogleの人にホワイトボードにバイナリサーチを書けって言われたんだ。手で書くことなんてほとんどないし、いつもキーボードを使ってるのに。しかも、検索インデックスや検索エンジンを設計・構築したのに、バイナリサーチを書くように侮辱されるなんて。バイナリサーチはやったけど、全体のプロセスには全然満足できなかった。だって、実際に自分がやったことを見ようともしないんだもん。それを見ちゃうと、彼らが求めてた基準が崩れちゃうからね。多分、彼らはカウボーイを探してたんだろうな。面接のコツとしては、カウボーイハットを持って行くといいかもね。

バイナリサーチを書くように言われて侮辱されたと感じるなら、ちょっと自分のエゴが強すぎるかもね。

残念ながら、これは意図した通りに機能したね。こういう会社は、そこに入りたくて必死な人を求めていて、何でもして入ってくるような人を探してる。今回のケースでは、双方ともに良いフィットではないことを確認できたってわけ。

最後にGoogleで面接を受けたとき(向こうから声をかけられて、仕方なくリクルーターに今回は違うと言いくるめられた)、面接官がひどすぎて、リクルーターが技術面接を無視して管理面接に進むことに同意しても、私はそのプロセスを続けるのを断った。それ以降、Googleのリクルーターからの電話には、前回の出来事と、もう興味がなくなったことを説明してる。出された問題は全部「引っかけ」タイプで、解決策を読んでないとまともな代替案しか出せないか、リクルーターが完全に時代遅れのことについて知識を求めてきた(例:UNIX v6のinodeの構造について聞かれたけど、知らないと答えて、Unix系システムがinodeに保持する情報の種類について一般的な返答をした。さらに、今回の役職にはファイルシステムの詳細の知識は関係なかった)。企業は面接官のプールをしっかりトレーニングして、どんな質問がされるかを追跡し、フィードバックを提供する必要がある。私が見てきたほとんどの企業は、技術的な質問が面接官やそのマネージャーの好みになってしまっている採用プロセスを持っている。

[遅延]

その説明は相反するものじゃないと思うよ。確かに、実際にはコードが書けない「シニア」ソフトウェアエンジニアの大きなグループがいる。彼らはクソみたいなことを言って仕事を得て、解雇されるまで続けて、次の仕事に応募するんだ。そういう人たちをライブコーディングでフィルタリングしたいんだよね。でも、ライブコーディングの面接で失敗する理由は、そのグループに属している以外にもあるからね。

もっと効果的にフィルタリングするには、彼らを一人で部屋に座らせてコードを書かせるといいよ。そうすれば、異常なストレスの下で機能できない良い候補者を逃すこともないしね(実際の仕事とは関係ないストレスだけど)。

なぜ、無意味で非常に短い締切を設けて、誰かにホワイトボードの前に立たせながら問題を解決させて、「思考過程を説明させる」必要があるの?それでコードが書けない人をフィルタリングするの?

ライブコーディングの面接をうまくこなせる開発者はたくさんいるけど、スケールでのエンジニアリングシステムの理解が欠けている人も多いから、彼らが時間とともにコードベースを悪化させてしまうことがある。こういう人たちは本当に避けたい人たちだけど、そういう人をフィルタリングするための面接プロセスはほとんどないんだ。会社の既存のシニアアーキテクトや開発者が新しい人がコードを悪化させるのを止めるだろうという前提があるけど、どの会社の開発者も自分のコードベースがひどいと思ってるから、明らかにうまくいってないよね。

君の意見には同意だけど、最近のライブコーディングはプログラミングスキルをテストする以上のものになってるよね。最も一般的なアルゴリズムを暗記して、30分で問題を解くために2つか3つ使った解決策を考える必要がある。時には、パズルを解く方法を考えるのに時間を使いすぎて、実際にコードを書く時間がなくなっちゃうこともある。

面接には2つの方法があるよ。1つ目は、良い候補者を全員選ぶけど、悪い候補者もいくつか通っちゃう。2つ目は、悪い候補者を全員落とすけど、良い候補者もいくつか落ちちゃう。候補者は1つ目のプロセスを望んでるけど、企業はそれを推進する理由がないんだ。悪い社員をうっかり雇っちゃうコストは、良い社員を拒否するよりもずっと高いからね。今のシステムは2つ目を優先してる。そう、素晴らしい候補者を拒否してることは分かってるんだ。

もう20年やってるけど、あの人たちとは一度も仕事したことないんだよね。面接したこともないし、履歴書と15分の会話でフィルタリングできたと思う。ホワイトボードの面接を通過した人たちとたくさん働いたけど、結局は生産性を下げることに時間を費やしてた。

Hacker Newsで議論の続きを見る