Anthropicが自ら実験を行い、自社製品に手を加えた。
Anthropicは最近、研究論文を発表し、AIを活用してコードを書くことが、プログラマーの能力を低下させるかどうかという痛い問題を専門的に検討した。
結果は意外なものだった:
AIを使用したプログラマーは、使用しなかったプログラマーに比べてテストの点数が17%低く、相当于で2つのレベルが下がった。
実験はどのように行われたのか?
研究チームは52人の初級ソフトウェアエンジニアを募集し、条件は:Pythonを少なくとも1年間使い、毎週コードを書いていること;AIプログラミングアシスタントを使用した経験があること;ただし、TrioというPythonの非同期プログラミングライブラリには触れたことがないこと。
そして、彼らをランダムに2つのグループに分けた:
AIグループ:AIアシスタントを使ってコードを書くことが許可された
対照グループ:自分自身で書くしかない!
両グループはTrioを使用して2つのプログラミングタスクを完了し、その後すぐにテストを受けた。テストでは、先ほど使用した概念の理解度を考察した。
結果……
速度において、AIグループは平均で約2分早かったが、この差は統計的に有意ではなかった。
しかし、理解度において、AIグループの平均点は50%だったのに対し、手書きコードグループは67%で、17ポイントの差があった。
そして痛いことに、両グループの差が最も大きかったのはデバッグ系の問題だった。
つまり、AIでコードを書く人は、「バグを見つける」ことにおいて明らかに弱い。
おそらく、将来のコードが越来越多にAIによって書かれるようになるなら、人間のプログラマーの最も重要な仕事は、これらのコードを審査し、デバッグすることになるだろう。
しかし、プログラマーが最初からAIに頼り、デバッグ能力さえ身につけていないなら、誰がAIの後釜を支えるのか?
なぜそうなるのか?
研究者は、各参加者の行動パターンを画面録画で分析し、興味深い現象を発見した:
一部の人はAIとの対話に大量の時間を費やした:最多の人は15回のメッセージを送り、入力と問題の思考だけで11分かかり、総時間の30%を占めた。
これにより、AIグループがあまり早くならなかったことが説明される:コードを書く時間を節約した分は、AIとのチャットに費やされた。
対照グループはより多くのエラーに直面したが、正是これらのエラーを独立して解決する過程で、彼らはTrioライブラリの仕組みを真に理解した。
すべての使い方が同じではない
研究者はAIグループの行動パターンを6種類に分け、そのうち3種類は得点が低く、3種類は得点が高かった。
低得点パターン(平均点40%未満):
完全委託型:AIにすべてのコードを書かせ、速度は最も速かったが、何も学ばなかった
漸進依存型:最初は質問もしていたが、後はすべてAIに任せるようになった
反復デバッグ型:バグに直面するとAIに質問し、自分では考えず、結果として遅く、学ばなかった
高得点パターン(平均点65%以上):
先生成後理解型:AIにコードを書かせた後、原理と説明を追问する
混合説明型:每次AIにコードを書かせる際に説明を付けるように要求する
純概念型:概念的な質問のみをし、コードは自分で書く。エラーは多いが、最終的に最も深い理解を得る
違いがわかるだろうか?
高得点グループの共通点は:思考を続けること。
彼らはAIを使わないのではなく、AIを理解を助けるために使い、思考の代わりにはしない。
これは何を意味するのか?
研究では:仕事でAIを積極的に使用すると、スキルの発展を妨げる可能性がある。
これは特に初級エンジニアにとって危険だ。時間の圧力下では、新人プログラマーはタスクを迅速に完了するためにAIに重度に依存しがちで、代償は:彼らが真に必要なスキルを永遠に学べないかもしれないこと。
企業が越来越多にAIを使ってコードを書くようになるが、これらのコードを審査する責任者が「AIによって育てられた」エンジニアである場合、そのリスクは言うまでもない。
研究者は以下を提案している:
管理者はAIツールを推广する際、意識的に従業員の学習機会を保護する
初級エンジニアは、苦痛に陥り、エラーを出し、デバッグすることは、学習の必経之路であることを理解すべきだ
AI製品の設計者も、ツールが効率を向上させつつ、学習を損なわないようにする方法を考えるべきだ
事实上、主流のLLMサービスはすでに「学習モード」を提供し始めた。
例えば、Claude CodeのLearning/Explanatoryモードや、ChatGPTのStudy Mode。これらの機能の設計意図は、「認知卸載」の副作用を軽減することだ。
研究の限界
研究者はまた、この研究には限界があることを認めている:
サンプルサイズが小さい(52人)
測定したのは即時の理解だけで、長期的な影響は不明
タスクは1つのPythonライブラリのみに関わるため、すべてのシナリオに一般化できない可能性がある
使用したのはチャット形式のAIアシスタントで、Claude Codeのようなより自動化されたエージェントの場合、効果はさらに極端かもしれない
しかし、无论如何、この研究が私たちに示唆するのは:
AIはあなたをより速くするかもしれないが、必ずしも強くするわけではない。
もしプログラミングを学んでいるなら、またはチームの新人を指導しているなら、考えてみて:効率と学習の間で、どのようにバランスを見つけるのか?
結局のところ、最高のツールは人を強くするツールであり、人をツールにするツールではない。
関連リンク: