AIがコードを書く時代、本当に失うものとは?「理解の委任」という罠
Beyond Recall and the Illusion of Competence
AIによるプログラミング支援が当たり前になる中、コードを書くことの意味が変わりつつある。著者は、AIがコードを生成すること自体は問題ではなく、むしろ「理解」まで外注してしまう危険性を指摘する。デバッグやシステムの挙動を理解するプロセスをAIに委ねることで、エンジニアは「有能さの幻想」に陥り、本当の能力を身につけられない。経験豊富な開発者よりも、これから学ぶジュニアにとって深刻な問題だ。AIを積極的に使いながらも、設計や意思決定、システム理解といった本質的な部分は自分で保持すべきだと論じる。
AIは、システムを動かしてくれることで、あなたがシステムを理解しているかのような錯覚を生み出します。
HNでの議論
31- MarkusQ
> だから、Stack Overflowから便利なコードをコピーすることがずっと許容されてきたのなら
これは「ずっと許容されてきた」わけではありません。コピペはつい最近まで軽蔑的な言葉でしたし、理解せずにSOからコードをコピーして使っただけで解雇された人もいます。
- kayo_20211030
> 目立つ開発者は、システムを理解している人たちでしょう。
それは常に真実です。AIはそれを変えません。ただ、その理解の前に来るいくつかの要素を並べ替えるだけです。量と速度は課題ですが、理解と判断が優れた人と偉大な人を分けるのです。
ちなみに、私の世界での「システム」には、技術的な構成要素だけでなく、すべての部品を操作し、調整し、管理する人間や、それを制御するプロセスも含まれます。
- WillEMac
ソフトウェアに必要な冗長性には、いくつかの厄介な点があると思います。
例えば、私はクリーンテックでPLCプログラミングがタービンを制御する仕事をしたことがありますが、そこでは完全な理解が求められます。すべてのバグと関連するLOCに人間が関与する必要があり、それには時間をかける価値があります。
一方で、私はゲーム開発もしていますが、そこでは完全なデバッグプロセスを理解することに価値はないと思います。例えば、マルチプレイでスペースバーを離す動作を誤って2つのものにバインドしてしまい、協力プレイのグリッチが発生しました。このような針山から針を探すようなデバッグは、時間の無駄です。
> コードを書くことが安く誰にでもできるようになれば、コードを書くことは差別化要因ではなくなります。目立つ開発者は、システムを理解している人たちでしょう。
特に限界や境界条件については同意します。私が取り組んでいるゲームでは、画面上の500匹のGPU制御の魚とCPU制御の魚の違いとその限界を根本的に理解することが、優れたアーキテクトになるために必要です。そうでなければ、このゲームは10fpsで動作することになるでしょう。
- jebarker
私は著者が描写する開発者のスペクトラムの中間あたりに位置しています。AIを毎日、限定的なコード作成と多くのデバッグに使用しています。著者の言う通り、AIの出力を真剣にレビューするのをやめ、生産性のスリルを得るためにただ「承諾」をクリックし始めると、物事が軌道から外れることに同意します。ただし、AIをデバッグに使うことが必ずしもそうなることを意味するわけではなく、それは依然として選択です。AIと人間のチームとして、複雑なシステムの問題をデバッグする経験を何度もしてきましたが、それは単独では、または妥当な時間内ではできなかったでしょう。これは私の能力が低いことを反映しているとは思いません。なぜなら、AIは私には決して持てないスキルをもたらすからです。例えば、クラスタ内の異なる計算ノードで同じシステムを何度も実行した膨大なログを読み通して関連付けることです。それが干し草の山から針を見つけた後でも、私は時間をかけてそれが見つけたものを理解し、推論することができます。
- ssivark
著者は所有権について重要な指摘をしていますが、それはコードの理解とデバッグに矮小化されてしまいました。重要なのは、書かれたコードの所有権だけでなく、問題の特定と解決策の選択の所有権でもあります。私は最近、会話のテンポという少し異なる角度からこれについて書きました[1]が、共通の核心は、AIが認知的な伴侶として機能し、状況を理解し、問題を特定し、決定を下すのを助けてくれることです。AIが先走って問題を「解決」し、その後ユーザーに何が起こったのか、それが意図とほんのわずかしか相関していないことを理解させる負担を負わせるのではなく。
[1] https://woventhought.substack.com/p/ai-assistants-need-adapt...