AIコーディングは熟練を阻害する:専門性の崩壊を招くリスク
Coding expertise is going to collapse from AI reliance

AIコーディングツールの普及により、開発者の専門性が損なわれるという警告。JetBrainsの調査では、AIに過度に依存した初心者は「熟達の錯覚」に陥り、問題解決の重要な段階をスキップすることが判明。UPennの研究でも、AI支援を受けた学生は教科書のみの学生より17%成績が悪かった。著者は、摩擦こそが学習に不可欠であり、AIをコード生成ではなくソクラテス的対話パートナーとして活用すべきと提言する。
「AIコーディングツールで最も生産的な学習が起こるのは、それがほとんどコードを生成しないときだという、ある種の皮肉がある。」
HNでの議論
533- ryandvm
100%。
企業レベルではすでにこの現象が見られています。企業は「コードを手書きで書いているなら、それは間違っている」という方針をリーダーシップから打ち出しています。
まあ、それはしばらくは機能します。確かに私たちは大量のコードを生み出していますが、実際にはエンジニアは人間が理解して(正直に言って)レビューできる速度よりも速くコードを出力しています。それは「ねえClaude、このJiraチケットを読んで、このコードベースに機能を実装して」が本当に年間20万ドルの価値があるとは思えないと気づくまでは素晴らしく聞こえます。
さらに複雑なのは、私たちが反対方向からも現実の把握を失いつつあることです。リーダーシップがAI生成のマニフェストをプロダクトオーナーにエアドロップし、プロダクトオーナーはAIを使ってそのすべてを1,500語のJiraチケットに変換しなければならず、その内容は10%が必要な機能作業で90%がLLMの定型文です。
その結果、ソフトウェアエンジニアの仕事は根本的に変わり、ソフトウェアエンジニアであることの最も難しい部分は、機能をリリースするために、あらゆる方向から来るAI生成の成果物をフィルタリングすることだけになっています。
- xyzelement
// 長期的なスキル形成における継続的な摩擦の必要性。
この記事のサブタイトルがすべてを物語っています。
摩擦を自ら求める人々がいます。アスリートや熱心なオタクを考えてみてください。
最高のエンジニアは、子供の頃からコンピュータと学習に魅了され、あらゆる機会を利用して追求してきた人々です。言い換えれば、自分自身の摩擦を見つけたのです。
そういう人々にとって、摩擦を求めることは常であり、LLMがしたことは摩擦が発生するポイントを移動させただけです。
例えば、私が一緒に働いた最高のエンジニアは、必ずしもアセンブリ言語でのコーディング経験が豊富だったわけではありません。その種の摩擦はもはや必要ではなかったからです。しかし、彼らは難しい問題を解決できました(そして、問題が本当にアセンブリを必要とするなら、それを学ぶことができました)。
AIによってより大きな打撃を受けるのは、低レベルのエンジニアだと思います。本当に好奇心を持ち、献身的ではなく、ただの仕事としてやっていた人々です。例えば、典型的なオフショアのチケット処理のような人々です。そういう人々は決して摩擦を求めに行かず、そのようなことは二度と通用しなくなるでしょう。平凡または平均的なものを求めるなら、LLMで十分です。
- LandoCalrissian
LLMソフトウェア開発における自己食い尽くしの蛇は、それが持ち出されるたびに肩をすくめられるだけでした。せいぜい、AIで自分の頭を焼かない開発者の小さな集団がいて、彼らの報酬は、頭を焼いた人々によって書かれたひどいAIコードをレビューすることのようです。
完全に持続不可能です。
- TonyAlicea10
テック教育者として、私は100%同意します。LLMは、コードを心配する必要がなくなる「新しいコンパイラ」にはならないでしょう。決定的なシステムを信頼する理由があります。
私はこれについてずっと心配してきました。実際、私は「do-i-understand」というエージェントスキルを作成しました。これは初心者開発者(そして経験者も、萎縮のため)向けに設計されており、LLMが提出しようとしているPRについて質問します。これが非常に役立つことを発見しました: https://github.com/AnthonyPAlicea/skills/blob/main/skills/do...
いずれにせよ、スキルの清算が起こるでしょう。
- aledevv
認知的摩擦が学習の原動力であるという概念に強く同意します。
まず第一に、それは「依存」の問題です。論理と推論の「筋肉」を鍛えるのをやめると、使われない身体の筋肉と同じように徐々に萎縮します。かつて自分自身が持っていた能力を置き換える外部ツールに依存するようになります。
同様の変化をもたらした歴史的な例はこれです。生産プロセスが職人の頭と手からフォーディズムの工場(および組立ライン)に移ったとき、物を作るスキルは人間の職人技から匿名の構造化されたプロセスに移行しました。
少しずつ、伝統的な職人は知識と「ノウハウ」を失いました。今日、私たちの家に家具があることは、大規模な生産とサプライチェーンに依存しています。「平均的な」人はもはや自分でそれを作る能力を持っていません。
ソフトウェアにもまったく同じことが起こっています。
私たちは(今や「元」)ソフトウェア職人です。
- oscillonoscope
AIの最も可能性の高い結果は、ゼネラリストを促進することだと思います。つまり、ドメインの専門知識を持ち、分野横断的に働き、LLMを軌道に乗せるための十分なプログラミング知識を持つ人々です。「純粋な」ソフトウェアエンジニアが過去10年間ほど高い評価を受けることはないと思いますが、他の分野でも同様だと思います。例として、信号処理では、一般的なアルゴリズムを設計する人と、組み込みシステムにアルゴリズムを実装する専任の人がいることは珍しくありません。コーディングエージェントの品質を考えると、両方の人を持つ必要はもはやありません。両方に中程度の経験がある人が今ではその仕事をこなせます。
- vain
これは悲しいことに非常に真実のようです。
ちょうど昨日、私は少しトリッキーなJavaScript(私の主言語ではない)を実装していました。ホバー時に各側のn個の隣接要素を表示し、どちらかの側に不足がある場合は反対側に拡張するというものでした。オフセットを正確に調整するのに約20分苦労した後、私はエージェントにやってもらうことに屈しました。
今でも自分でできると確信していますが、以前のようにすぐにできなかったことに悲しみを感じました。萎縮はすでに始まっているかもしれません。
- blutoot
ソフトウェアエンジニアリング >> コーディング。これを何度繰り返せばいいのでしょうか。著者はクソマーケティング記事を書いたのです。
利益のためにFUDをまき散らすのをやめてください。
- 01100011
正直に言うと、それはすでにかなり悪かったです。私の経験では、最高と平均の間には歴然とした違いがあります。トップ、例えば10%のコーダーは、定型のグルーコード(それも必要であり、平均的なコーダーがやる方がまだましですが)以外では、他の誰よりもはるかに優れています。
これはシステム/C/C++担当者としての私の経験から言っています。もしあなたがJSウェブフロントエンド担当者、Python担当者などであれば、これが当てはまるかどうかはわかりません。
- xtracto
はい、そしてそれは問題ではありません。
プログラミング言語でコードを書くことは、コンピュータに何をさせたいかを指示するために私たちが作り出したスキル/必要性です。
当初、60年代には、これは回路を何らかの方法で接続することによって行われていました(ENIACを考えてください)。その後、私たちは「プログラム可能な」コンピュータを考案し、それらのケーブルを抽象化する一連のコード(コンピュータコード命令)を考案しました。
その後、私たちはプログラミング言語を作成して、ハードウェアの複雑さをさらに抽象化し、私たちの願いを人間の間でより伝達可能な方法で書き留めることができるようにしましたが、それでも機械で計算可能です。
しかし、LLMとニューラルネットワークにより、ある時点でこれらの抽象化は不要になるでしょう。
コンピュータは依然として計算を行いますが、私たちが何を望むかを伝える方法は進化するでしょう。
それは魅力的です。