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

AIへの依存が進むことでコーディングの専門性が崩壊する

2026年8月25日原文(larsfaye.com)

概要

  • AIコーディング支援ツールの普及が、開発者のスキル獲得に与える影響を分析
  • 経験豊富な開発者と初心者の間で、AI活用の効果に大きな差異が発生
  • AIによる「錯覚的自信」と「本質的理解不足」のリスク
  • 効果的な学習には「摩擦(friction)」=試行錯誤の経験が不可欠
  • AIツールは「答え生成」より「対話的チューター」として活用すべき

AI時代の開発者スキルとパラドックス

  • AI支援ツール は電気や水道のような「インフラ」として普及する未来像
  • 経験豊富な開発者 ほどAIツールを効果的に活用できる現状
  • 初心者開発者 は、必要な基礎経験が不足したまま高度なツール利用を求められる矛盾
  • Expert Novice」=経験不足なのに上級者向けツールを使わされる層の出現
  • 業界全体で「AIを使わないと取り残される」というプレッシャーが強まる

AIツール利用の落とし穴

  • AIツール で「自信」は得られても「本質的な理解」は身につかないケースが多発
  • JetBrainsの調査で、「AIを多用した初心者ほど、計画・問題解決プロセスを省略しがち」
  • AIの提案 を無批判に受け入れることで「錯覚的有能感」が生まれる
  • AI利用を抑制 した初心者ほど、自力で問題解決する力が身につきやすい
  • 「負の専門性」=「AIの誤った提案を無視できる能力」が重要

逆転した学習モデル

  • LLM(大規模言語モデル) は経験者ほど恩恵が大きく、初心者ほど誤誘導リスクが高い
  • 逆転学習」=生徒が指示しAIが答える構図、質問力や前提知識がなければ効果半減
  • 未知領域では「何を質問すべきか」自体が分からず、AIの回答も的外れになりやすい
  • JetBrains調査でも、計画力のある生徒ですらAIによる「問題解決プロセスの省略」に陥る例あり
  • LLM は「経験」や「判断力」ではなく「パターン抽出」のみが強み

摩擦(friction)の重要性

  • 専門性 は「経験」「繰り返し」「失敗からの学び」によって培われる
  • AIによる「答えの即時生成」は「摩擦」を回避し、直感や勘(Fingerspitzengefühl)が育たない
  • UPennの大規模調査:「AIを使った生徒は教科書のみの生徒より17%成績が悪化」
  • ただし「Socratic対話型AI」=「答えではなく問いかけで導くAI」では、学習効果が向上
  • AIツール は「生産手段」ではなく「思考パートナー」として活用するのが理想

パイプライン崩壊か進化か

  • LLM がコード生成・デバッグ・設計まで担う未来では、「開発知識」の意義が問われる
  • 「自然言語だけでプログラミングできる」世界は、現場の現実と乖離した楽観論
  • パターン認識 だけでは本質的な問題解決や品質保証は実現できない
  • SentryのDavid Cramer:「AIで大量コード生成しても、品質は常に破綻する」
  • AI活用 の本質は「深い理解を促す教育的運用」への転換

フリクション・ファーストの学び

  • Joel Spolskyの「 Law of Leaky Abstractions」:抽象化ツールは必ず「漏れる」ため、基礎の理解が不可欠
  • JavaならSpring Bootより素のJava、JavaScriptならReactより素のJS、CSSならTailwindより素のCSSから学ぶべき
  • LLM は究極の「漏れる抽象化」ツール
  • 学びの段階では「AIによる摩擦回避」より「自力での試行錯誤」を優先
  • AIは「答え生成」ではなく「対話・思考訓練」のために使うべき、という提言

Hackerたちの意見

100% 企業レベルではもうこれが見えてきてるよね。リーダーシップからの指示で「手動でコードを書くのは間違ってる」って言われてる。まあ、一時的にはそれなりに機能するけど、実際にはエンジニアが人間が理解できる以上のスピードでコードを生み出してるんだよね。正直言って、これって「ねえクラウド、このJiraチケットを読んで、このコードベースに機能を実装して」って言うのが年収20万ドルの価値があるとは思えない。しかも、リーダーシップがAI生成のマニフェストをプロダクトオーナーに投下して、プロダクトオーナーがその内容をAIを使って1500ワードのJiraチケットに変換する羽目になってるから、現実感を失いつつある。要するに、ソフトウェアエンジニアの仕事が根本的に変わってしまって、今やソフトウェアエンジニアにとって一番大変なのは、AIが生成したアーティファクトをあれこれフィルタリングして、機能をリリースすることなんだよね。

自分の仕事は、マネージャーたちに「クラウドに冗長にならないように言って」って伝えたおかげで、かなり改善されたよ。1200ワードのチケットで「自動メールに合計を入れて」って言われるのはもううんざり。

これって「ねえクラウド、このJiraチケットを読んで、このコードベースに機能を実装して」って言うのが年収20万ドルの価値があるとは思えない。ましてや年収5万ユーロの価値もない。二つのことが真実だね。1) 私のキャリアのコーディング部分は終わった。LLMは私がこれまでお金をもらって書いてきたことをすべてできる。2) 実際の仕事にはコーディング以外の作業も含まれていた:この解決策は本当に機能するのか?これは正しい問題を解決しているのか?たとえそれが正しい問題に対する有効な解決策だとしても、時間の制約を考慮した場合に最良の解決策なのか?最後の「時間の制約を考慮して」という部分は、私の経験がまだ役立つところだと思う。AIは、訓練された人間の例と同じくらい怠け者(または早く勝つことに最適化されている)だけど、LLMはコストが非常に低いから、答えは常に「正しくやる」になってしまう。「早くやる」ではなくてね。多くの人は「正しくやる」がどういうものかも知らない。例えば、広告や分析のせいで5秒かかるウェブサイトしか知らない人たちで、CPUの1%とGPUなしで完全にプレイ可能なファーストパーソンシューティングゲームが同じメモリフットプリントに収まる世界を知らない。少なくとも、私はこの「私の経験がまだ役立つところだと思う」と願っている。もしかしたら、ただ自分にいい話をしているだけかもしれないけど、歴史の中で自動化が彼らにやってきたときに時代遅れになった人たちと同じように。

これには二つの部分があると思う。1. エンジニアリングタスクの実行 - 企業はこれに主に焦点を当てていて、これは簡単に測定できる指標だ。LLMツールを使うことで、この分野での改善の印象を与え、みんなが追い求めているもの。2. エンジニアの成長 - これは常に企業文化、個人の興味、行われている仕事、失敗から学ぶために費やされる時間の副産物だった。初めて完璧に実行された仕事は、学びの機会を与えず、実行している人の頭の中に記憶や経験が積み上がることはない。二つ目の部分は、現在の状況では過小評価されている。筋肉の記憶という概念は、ほぼすべてに適用される。

それは素晴らしいことのように聞こえるけど、「ねえクロード、このJiraチケットを読んで、このコードベースに機能を実装して」って言うのが年収20万ドルの価値があるとは思えないよね。オーバーヘッドや福利厚生を考慮すると、多くの企業が「このJiraチケットを読んで機能を実装する」ためにそのくらい払ってたんだよ。今は人間とAIの組み合わせが最高の成果を出す「ケンタウロス」フェーズにいるけど、AIだけの製品が最終的にはケンタウロスを上回ると賭けている人もいると思う。中国のオープンウェイトモデルの激しい競争のおかげでトークンのコストが下がってきているから、早期にAIに賭けた人たちがより多くの成果を得るために支出を減らす可能性は十分にあるよ。正直、どちらの側に立つかはわからないけど、それを排除することはできないね。

いつかはそうなるかもしれないけど、短期的には無理だね。Fableを使っている悪い開発者の成果を見たことがあるけど、その後は安心して眠れるよ。悪いか平均以下の開発者がAIを使うと、数週間で製品や会社を潰しちゃうからね。

チームには、AIの前は技術的な役割ではなかったプロダクト担当者がいて、「ねえ、Claude、このJiraチケットを読んで、実装して」ってやろうとしてるんだけど、彼が試みるほとんどのチケットではうまくいかないんだ。彼には、オートコンプリートが生成する解決策が実際に使えるかどうかを考えるための理解が全くないからね。それに、 fancyな開発ループがあっても、キーボードと椅子の間のスペーサーは、私の経験上、やっぱり重要なんだよね。

数十年前、企業は「アセンブリを書いているなら、それは間違っている」と言っていた。それが、平均的なプログラマーのアセンブリに関する知識を減少させたけど、専門家たちはそのスキルを失っていない。結果として、役立つソフトウェアを作るプログラマーの世代が生まれたけど、彼らの中で自分がプログラムしている機械を理解している人はごくわずかだ。これについては、ポジティブな評価もネガティブな評価も簡単にできるよね。

人間って基本的に短期的な考え方をするよね。例えば、自分の庭に神経毒を撒くのを想像してみて。草の種類が一つだけじゃなくなる「恐怖」からは「救われた」かもしれないけど、結局は自分や子供、さらには他の誰かの癌リスクを徐々に増やしてるんだよね。これが一例に過ぎないけど、人々はこういうことを常にやってる。プラスチックのフリースも環境に無限の毒を放り込むけど、「今すぐ暖かくなりたい」って感じで。あと、鉛塗料も。「壊れない限りは毒じゃないし、壊れるのは数十年後だよ!」って。プログラミングがどうして違うっていうの?

LLMソフトウェア開発における自縄自縛は、話題に出るたびに肩をすくめられるだけだね。せいぜい、AIに頭をやられてない少数の開発者がいるくらいで、その報酬は、頭をやられた人が書いたひどいAIコードをレビューすることになってる。完全に持続不可能だよ。

// 長期的なスキル形成における継続的な摩擦の必要性。この話のサブタイトルが全てを物語ってる。摩擦を求める人もいるんだよね。アスリートやハードコアなオタクを考えてみて。最高のエンジニアは、子供の頃からコンピュータや学ぶことに魅了されて、あらゆる機会を追求してきた人たち。つまり、自分で摩擦を見つけたわけ。そういう人たちにとって、摩擦を求めることが常で、LLMがやったのはその摩擦が発生するポイントを移動させたこと。例えば、私が一緒に働いた最高のエンジニアたちは、アセンブリ言語でのコーディング経験が豊富というわけではなかった。なぜなら、その摩擦はもはや必要じゃなかったから。でも、彼らは難しい問題を解決できたし(もし本当にアセンブリが必要なら、学びに行くこともできた)。AIによって一番影響を受けるのは、低レベルなエンジニアだと思う。好奇心がなく、ただの仕事としてやっていた人。例えば、典型的なオフショアのチケット処理をするような人。そういう人は摩擦を求めることがなかったから、もう通用しないと思う。普通や平均でいいなら、LLMで十分だしね。

まあ、考えてみれば、それは最初から miserable な生活に聞こえるよね。誰かがこの…えっと…混乱を利用して、本当に喜びをもたらす何かを追求するようになる可能性は否定できないよね。もちろん、支払いもあるし、そんなに簡単なことじゃないけど、少なくともそんな希望の光があるかもしれない。

Hacker Newsで議論の続きを見る