プログラミングを始めて3ヶ月。ToDoアプリを作れるようになった。「もうWebアプリ開発は理解した」と思った。そこからReactを学び、TypeScriptを導入し、CI/CDを組むようになって1年。「自分は何も分かっていなかった」と気づいた——この経験に心当たりはないだろうか。これはダニング=クルーガー効果と呼ばれる認知バイアスそのものだ。
ダニング=クルーガー効果とは
1999年、コーネル大学の心理学者デイヴィッド・ダニングとジャスティン・クルーガーは、ある実験を行った。論理的推論、文法、ユーモアのテストを被験者に受けさせ、その後に自分の成績を予測させた。結果は衝撃的だった。
| 実際の成績 | 自己評価の傾向 | 乖離の方向 |
|---|---|---|
| 下位25% | 自分は上位40%程度だと予測 | 大幅に過大評価 |
| 下位50% | 自分は上位40%程度だと予測 | やや過大評価 |
| 上位25% | 自分は上位30%程度だと予測 | やや過小評価 |
| 上位10% | 自分は上位25%程度だと予測 | 過小評価 |
能力の低い人ほど自分の能力を過大評価し、能力の高い人ほど自分の能力を過小評価する。この非対称な認知バイアスがダニング=クルーガー効果だ。
根本的な原因は「メタ認知能力の欠如」にある。あるスキルが低い人は、そのスキルの「何が分かっていないか」を判断する能力もまた不足している。Unknownのunknown——知らないことを知らない状態だ。
[エンジニア](/tag/engineer)の[キャリア](/tag/キャリア)におけるダニング=クルーガー曲線
この効果をエンジニアのキャリアに当てはめると、多くの人が経験する「あの感覚」が説明できる。
| フェーズ | 経験値 | 自信の度合い | 典型的な状態 |
|---|---|---|---|
| 「愚者の山」 | 初学者(0〜6ヶ月) | 非常に高い | ToDoアプリが動いた。もうフルスタック名乗れる |
| 「絶望の谷」 | 中級者(1〜3年) | 非常に低い | 設計パターンもインフラもDBも分からない。自分はダメだ |
| 「啓蒙の坂」 | 中上級者(3〜7年) | 徐々に回復 | 得意領域ができてきた。知らないことも認識できる |
| 「持続可能な高原」 | 上級者(7年以上) | 適度に高い | 自分の強みと限界を正確に把握している |
「愚者の山(Mount Stupid)」に立っている初学者は、プログラミングの全体像が見えていないからこそ自信に満ちている。変数とfor文とAPIコールを覚えた時点で「プログラミングを理解した」と思える。なぜなら、設計原則、テスト戦略、パフォーマンスチューニング、セキュリティ、運用監視といった広大な世界がまだ視界に入っていないからだ。
技術面接での典型的パターン
ダニング=クルーガー効果は技術面接の場面でもよく観察される。
| 質問 | 「愚者の山」の回答 | 「持続可能な高原」の回答 |
|---|---|---|
| あなたのReactの習熟度は? | 「10段階で8くらいです」 | 「業務で3年使っていますが、内部実装まで理解しているとは言えません。6くらいでしょうか」 |
| このシステムの設計をしてください | 「マイクロサービスにしましょう」(即答) | 「まず要件を整理させてください。トラフィック量と一貫性の要件によって設計が変わります」 |
| 分からないことはありますか? | 「特にありません」 | 「低レイヤーのネットワーキングは経験が薄いです」 |
面接官の立場からすると、「自分が何を知らないかを正確に言語化できる候補者」は信頼できる。逆に、すべてに自信満々の候補者には警戒感を覚える。
正確な自己評価のためのフレームワーク
ダニング=クルーガー効果を克服する方法はあるのか。完全な克服は難しいが、自己評価の精度を上げるための手法はいくつかある。
| 手法 | 内容 | 効果 |
|---|---|---|
| スキルマトリクス | 技術領域ごとに知識・経験・実績を可視化する | 「知っているつもり」と「実際にやったこと」の乖離が見える |
| コードレビュー | 他人のフィードバックを定期的に受ける | 盲点を指摘してもらえる |
| [OSS](/tag/oss)貢献 | 外部のプロジェクトにコードを提出する | 社外の基準で自分のレベルを測れる |
| 教える | 後輩や勉強会で技術を教える | 教えようとして初めて理解の浅さに気づく |
| 知識の境界を記録する | 「知っている」「聞いたことがある」「知らない」を分類する | unknown unknownを減らせる |
特に「教える」は強力だ。人に説明しようとすると「あれ、ここよく分かっていないな」という瞬間に必ずぶつかる。リチャード・ファインマンの学習テクニック——理解したい概念を子どもにも分かる言葉で説明する——はこの原理を利用している。
インポスター症候群——もう一つの罠
ダニング=クルーガー効果の裏返しとして、「インポスター症候群(詐欺師症候群)」がある。十分な能力を持っているのに「自分は周りを騙している」「いつかバレる」と感じる状態だ。テック業界では意外なほど多くのベテランエンジニアがこの症候群に悩んでいる。
ダニング=クルーガー効果が「知らないことを知らない」なら、インポスター症候群は「知っていることの価値を知らない」状態だとも言える。
プログラマーとして成長する過程で「自分は何も分かっていない」と感じる瞬間は、実は成長の証かもしれない。知識が増えるほど、未知の領域の広大さが見えてくる。ソクラテスの「無知の知」は、2400年後のエンジニアにも通じる真理だ。
あなたは今、ダニング=クルーガー曲線のどのあたりにいるだろうか。そしてその自己評価は——本当に正確だろうか。