Anthropicが発表した新たな研究論文は、AI支援ツールが開発者のスキル形成に与える影響を調査したものである。52名の主にジュニアレベルのソフトウェアエンジニアを対象に、AIを使用するグループと使用しないグループに分け、同じプロジェクトを構築させた後、理解度テストを実施した。結果は衝撃的で、AI使用グループは作業完了が平均2分早かったものの、テストスコアは50%と、手作業グループの67%と比較して大幅に低かった。特にデバッグ問題での差が顕著であり、AIがコーディングスキルの習得を阻害する可能性が示唆された。しかし本研究には重大な限界がある。30分という短時間での作業、慣れないツールの使用、ジュニア開発者中心の被験者構成など、実際の開発現場とは大きく異なる条件下で実施されている。実務経験豊富な開発者が使い慣れたツールで複雑なタスクに取り組む場合、AIは生産性を80%向上させるという別の研究結果も存在する。重要なのは、AIツールを学習回避のために使うのではなく、早期に達成感を得てモチベーションを維持し、より長く学習を継続するための補助として活用することである。

AIコーディング支援の有用性に関する議論の決着
AIがコーディングにどれだけ役立つかという議論は、もう終わりにできると思います。役立つのは間違いありません。どの程度かはまだ分かりませんが、開発者として大幅に速くなれることは分かっています。しかし、まだ分かっていないのは、私たち自身への影響です。これが私たち自身のスキル、そして私たちが構築できるものにどう影響するのでしょうか。コードに関することについて、誰もが変更を加えたり実際に問題を修正したりするには愚かすぎる未来に向かって走っているのでしょうか。エージェントがやってくれることに慣れてしまって。これらは実際に興味深く、ある意味恐ろしい質問です。
そしてAnthropicは今、これを自ら研究する時間を取っています。彼らはちょうど新しい論文を発表しました。AIがスキル形成にどう影響するか、というものです。そしてこれは本当に、本当に興味深いものです。彼らは複数のグループの開発者を集め、同じプロジェクトを構築させました。一部はAIを使い、一部は使わず、その後、構築したものをどれだけ理解しているか、そして構築したものについての質問にどれだけうまく答えられるかをチェックしました。
研究結果の詳細
そして結果は魅力的です。平均して、AIグループの参加者は約2分早く完了しましたが、その差は統計的に有意ではありませんでした。しかし、テストスコアには有意な差がありました。AIグループは平均50%だったのに対し、手作業でコーディングしたグループは67%でした。これはほぼ2段階の成績の差に相当します。
2つのグループ間のスコアの最大の差はデバッグの質問でした。これは、コードが間違っているときにそれを理解し、なぜ失敗するのかを理解する能力が、AIがコーディング開発を妨げる場合に特に懸念される領域である可能性を示唆しています。これは恐ろしいことです。私たちは皆、非常に速く、はるかに愚かになっているのかもしれません。ここには掘り下げるべきことがたくさんあり、私には明らかにたくさんの感情があります。
その感情の一部は悪いものですが、一部は良いものです。他に私が良い気分になることを知っていますか。今日のスポンサーです。今日のスポンサーは、私が毎日使っている製品です。これがなかったら、どれだけのバグをリリースしていたか想像もつきません。Code Rabbitです。私のチームがT3 chat、ping、そして私たちが構築している他のすべてのクレイジーなもののために選んだAIコードレビューツールです。
私たちはすべてを試しましたが、これがチームが落ち着いたものです。そして正直なところ、理由は分かります。レビューの質が素晴らしい。統合が素晴らしい。私たちへの理解が素晴らしい。何か違うことをしたいと伝えれば、人間がするように記憶して違うことをしてくれます。
実際、コードレビューにおいては人間よりも優れています。なぜなら、はるかに細心の注意を払った作業をしてくれるからです。しかし、私はここに座って、エンジニアをコードレビューのためのAIに置き換えるべきだとは言いません。そうすべきではありません。これらのツールをチームを強化するために使うべきです。何回PRを読んで、明らかなミスを見つけて、誰かがそれを修正するのに1日か2日待たなければならなかったことがありますか。それをひっくり返しましょう。
レビューを数日待つ代わりに、数分待つと想像してみてください。フィードバックを受け取り、変更を加え、コードが良いと分かるまで人間を煩わせることはありません。これはもっと細かいレベルになることもあります。レビューが完了するまで、なぜプッシュするのでしょうか。だから彼らは今、CLIとIDEプラグインを持っています。VS Code、Cursor、またはターミナルのいずれにいても、リリースする前に変更をレビューするためにCode Rabbitを使用するツールがあります。
そしてCLIレビューを試してみるなら、これをコード生成のループに含めることができます。Cloud Code、Codeex、またはOpen Codeのようなものを使用し、レビューアーCLIを追加すれば、今、それがミスをしたとき、あなたが煩わされる前にそれをキャッチして修正します。エージェントで構築しているときにコードレビューをループに追加するのは奇妙なほど強力です。なぜなら、結果として出力コードの品質が大幅に向上するからです。
Code Rabbitを使っている人が多いのには理由があります。Linux Foundationでさえも。そう、あのLinux Foundationです。また、Bun、Clerk、Cheg、Ashb、そして他の多くの企業も。私たち全員がCode Rabbitを選ぶのには理由があります。そしてそれは、オープンソースに無料だからというだけではありません。ちなみに、オープンソースには無料です。soyf.link/codrabbitで今すぐ確認してください。
研究手法の詳細
数字を深く掘り下げる前に、研究がどのように機能し、構成されたかをよりよく理解することが重要だと思います。数字を共有する前にこれらのことを理解するのは非常に重要です。なぜなら、私はすでに人々が「見てください、これはAIがあなたを15から20%愚かにするという証拠です」と言っているのを見たからです。
そんな単純ではありません。私たちは52人の主にジュニアのソフトウェアエンジニアを募集しました。彼ら全員が1年以上、少なくとも週に1回はPythonを使用していました。彼らがAIコーディング支援に少なくともある程度慣れていて、私たちのタスクが基づいているPythonライブラリであるTrioに慣れていないことを確認しました。研究を3つの部分に分けました。
ウォームアップ、Trioを使用して2つの異なる機能をコーディングするメインタスク(これには非同期プログラミングに関連する概念を理解する必要があり、これは専門的な環境でしばしば学ばれるスキルです)、そしてクイズです。私たちは参加者に、タスクの後にクイズがあることを伝えましたが、できるだけ速く作業するよう奨励しました。
私たちは、自己ガイドのチュートリアルを通じて誰かが新しいツールを学ぶ方法を模倣するようにコーディングタスクを設計しました。各参加者には、問題の説明、スターターコード、そしてそれを解決するために必要なtrioの概念の簡単な説明が与えられました。私たちは、サイドバーにAIアシスタントがあるオンラインコーディングプラットフォームを使用しました。これは参加者のコードにアクセスでき、いつでも尋ねられれば正しいコードを生成できました。興味深いですね。
彼らはこのためにウェブインターフェースを使っています。ここには興味深い層がたくさんあります。主にジュニアであることから、彼らが慣れていないライブラリを使用すること、具体的にできるだけ速く作業するように言われ、奨励されていること、しかし後でクイズが行われることまで。では、この流れがどのようなものかを見てみましょう。2つのグループがあります。治療群と対照群です。
対照群は全体を通してAIを持っていません。治療群は最初のタスク、つまりウォームアップコーディングタスクではAIを持っていません。2番目のタスク、つまりこのプロジェクトを作成したり、与えられた問題を解決したりするコアタスクではAIを持っています。その後、彼らには25分間のタスク後のクイズがあり、その後、彼らがしたこと、彼らが思ったことなどについての調査があります。
私たちの評価設計では、コンピュータサイエンス教育の研究を参考にして、コーディングスキルの習熟度を評価するために一般的に使用される4種類の質問を特定しました。デバッグ、コード読解、コード記述、そして一般的な概念です。私たちの評価は、デバッグ、コード読解、概念的な問題に最も重点を置きました。これらが、ますます増加するAI生成コードの監視を提供するために最も重要であると考えたからです。
そして再び、前述のように、結果としては平均して、AIグループの参加者はわずかに速く完了しましたが、テストのパフォーマンスは意味のあるほど悪かったです。ここで測定すべき重要な要素があり、ここから私の反論を始めます。2分間のことについて話したいと思います。何らかの形で新しい環境を初めて学ぶとき、それがどのように機能するか、何がどこにあるか、どのキーバインディングが機能するかを理解するのにある程度の時間がかかります。
実験環境の限界
私が自分のものではないコンピュータや環境を使わなければならない場合、最初の5分から10分は調整に費やさなければなりません。私は自分のコンピュータにいくつかの奇妙なキーバインディングを持っています。これをすることが嫌いです。マシンではできるだけストックでいようとしますが、どうしても手放せないものがいくつかあります。Carabinerを頻繁に使用しています。これはMacでキーを再バインドする方法で、私はいくつかを使って生活しています。
例えば、caps lockをhyperとしてバインドし、その後他の数字キーをアプリ間の切り替えに使っています。だから1はHelium、2はターミナル、3はエディターまたはNotionです。そして、日常の作業をしているときに、このような1回のキー押下でアプリ間を切り替えることができるのは非常に非常に便利です。
また、caps lockとUとOをpage upとpage downとして、JKLをD-padとして持っています。だから、エディタで移動するために手を矢印キーまで下げる必要がありません。例えば、上に移動したいだけなら、矢印キーやトラックパッドに手を動かす必要なくできます。このような小さなことで、何年もかけて構築してきたもので、それなしではコンピュータをほとんど使えません。
そして、ちなみに、就職面接をしていたときにこの問題がありました。面接で彼らが使用するコンピュータを与えられて、ほとんど使えなかったのです。彼らのキーボードがほとんど使えなかったからです。私のものではない、慣れていない、私の設定ではないからです。これらの人々全員に真新しい環境を与えたら、30分の窓の中で、時間の少なくとも半分は環境を理解することに費やされるでしょう。特に30分の窓で、ブラウザの奇妙なAIバイブコーディングツールを理解するのに30分以上かかるでしょう。
だから、時間の半分が設定で、一部の時間がコードを読んで理解するためのものなら、タイピングに残された部分は実際の時間の5分から10分くらいです。明らかに、AIはそこではそれほど役に立ちません。しかし、すでに慣れている環境を使っているなら、時間の節約はクレイジーです。
私は何度も、本当に難しい仕事で、私がやっていたら何時間もかからないまでも何日もかかっていたであろう仕事を、エージェントが10分から20分でやってくれたことがあります。そして、私がやっていたら何週間もかかっていたであろう仕事を、エージェントが一晩で3時間から4時間でやってくれたこともあります。35分の窓の中で、半分の時間がツールを理解するのに費やされるときに、こんな単純な研究でこれを測定することはできません。
ここでの時間の数字測定は、捨てるべきです。全く価値がありません。正直に言いましょう。しかし、彼らの理解の割合の差、それはある程度本物で、私たちは確実にもっと掘り下げたいと思います。彼らがここで掘り下げている要素の1つで、私が学ぶことが本当に重要だと思うのは、AIインタラクションモードです。
これは設定でヒットするボタンのようなものではありません。これは彼らが実際にAIをどのように使用したかです。私たちは、参加者が私たちが設計したタスクを完了する方法を理解することに特に興味がありました。定性分析では、画面録画を手動で注釈して、参加者がクエリの作成にどれだけの時間を費やしたか、どのような種類の質問をしたか、どのような種類のエラーをしたか、そしてアクティブにコーディングしていた時間がどれだけあったかを特定しました。
AIインタラクションパターンの分析
1つの驚くべき結果は、参加者がAIアシスタントとのインタラクションにどれだけの時間を費やしたかです。何人かは最大11分、つまり割り当てられた総時間の30%を費やし、最大15のクエリを作成しました。これは、なぜ平均してAIを使用する参加者がより速く完了したのかを説明するのに役立ちました。ただし、生産性の改善は統計的に有意ではありませんでした。
この文はここにあるべきではありません。30分のタスクで生産性の勝利を測定しようとしているという事実は、この研究を構築し、多くのジュニアに投げつけた人々が、これらのツールで私たちがどのように動作するかを根本的に理解していないことを意味します。そして、私が別に読んだ研究についての私の理解から、この点を本当に強調したいと思います。
私の理解では、これは学生と本当に本当に本当に初期の開発者が初めてAIツールに導入されたときの限定的な範囲で興味深いものです。初めてIDEを開くようなものです。AIを使って使用することと使わないで使用することはどう比較されるか、1時間から2時間の最初の窓のようなものですね。人々がこの研究をそれを超えて投影しようとしているという事実が好きではありません。特に速度の側面で。
私はすでに人々が「見てください、AIが実際には開発者として速くしないという証拠です」と言っているのを見ました。最近の研究は、実際の企業でAIを使用している開発者について、年々30%のコード出力の改善を示しています。だから、いや、これはでたらめです。ここには掘り下げるべき部分がありますので、私は全体を割り引こうとしているわけではありません。
私はただ、何が起こっているかを規定するためにこれをどれだけ使うかの範囲を制限しようとしているだけです。彼らはここで私たちを少し呼び出しています。私たちは、AIが反復的または慣れているタスクで使用されるときに、生産性を大幅に向上させる可能性が高いと予想しています。さらに進みます。また、使用しているAIツールに慣れていて、好きな開発環境でもっと改善されます。
自分が気に入ったハーネスとツールセットに入り、それが得意になると、意味をなさない速度で出荷し始めます。今すぐ他のラップトップを接続していたらお見せできればいいのにと思います。昨夜、Codeexsで4つのプロジェクトを同時に作業していました。狂ってます。
私は今、アイデアをテストするために文字通り毎日新しいアプリを構築しています。明らかに、これらすべてをリリースしているわけではありませんが、何が可能で何が不可能かを見るために、異なるアイデアを実験するのに時間をかけています。そして、私が知っている最高のエンジニアの何人かが、クレイジーなライブラリを構築している人々が、機能のためにAIエージェントを派遣して、それができたことに驚いただけでなく、後で手で書く方法について彼らに情報を与えた決定によって驚かされているのも見てきました。
これについての話がすぐに出てくるでしょう。本当に、本当に才能のあるフルスタックフロントエンドフレームワークの人からです。皆さんがすでに知っていて愛している人です。多くのAI嫌いの人も知っていて愛しています。そして、彼がその話を共有するのを待ちきれません。なぜなら、それはクレイジーだからです。しかし、研究に戻りましょう。驚くことではありませんが、AIなしグループの参加者はより多くのエラーに遭遇しました。
これには構文エラーとtrio概念のエラーが含まれていました。後者は評価でテストされたトピックに直接マッピングされました。念のため、これはPythonテストです。これらの人々はPythonで構文エラーを起こしています。テストされている人々の質について言うべきことはすべて言ったと思います。私たちの仮説は、より多くのtrioエラーに遭遇した参加者、つまり対照群が、これらのエラーを独立して解決することによってデバッグスキルを向上させた可能性が高いということです。確かに。
研究における人々がこれらのツールをどのように使用していたかの奇妙さと、率直に言って、この研究にいた人々のジュニアさを強調するために。研究者は、AIを使用したコホートの半分が、コピーペーストや手動コーディングの代わりに、文字通りAI生成コードを自分のソリューションに再タイプすることに時間のほとんどを費やしたことに気づきました。
彼らは軽いAIガイダンスでゼロからコードを書きました。再タイプに時間のほとんどを費やした人々を無視すると、AIユーザーは25%速かったです。これには困惑します。どんな人がAI生成コードを手動で再タイプするのでしょうか。彼らはコピーペーストの方法を知らなかったのでしょうか。研究が主にプロまたは趣味の開発者で構成されていたため、おそらくそうではありません。
それは確実にクイズのスコアには役立ちませんでした。再タイパーは純粋なコピーペースターと同じ低いスコアを得ました。いずれにしても、コピーペーストの方法を知っているか、AIエージェントを使用する方法を知っているなら、この論文をAIがあなたを速くできないという証拠として使用しないでしょう。ここでの観察をありがとう、Sean。素晴らしい記事です。
これについて他の意見を読みたい場合は、説明欄にリンクされています。しかし、私の考えに戻りましょう。言いたいことがたくさんあるからです。彼らは、人々がAIとどのように相互作用するかの異なるパターンをここで分解しようとしています。結果がどのような使用方法からもたらされたかのアイデアを与えるために。最低スコアをもたらしたパターンは、ユーザー、テスト対象者がコード生成またはデバッグを通じてAIに大きく依存したものでした。
そのグループの平均クイズスコアは40%未満でした。彼らは独立した思考が少なく、認知的オフロードが多かったです。私たちはさらにそれをいくつかの異なるグループに分けました。AI委譲は、タスクを完了するためにコードを書くのにAIに依存したグループの参加者です。彼らはタスクを最も速く完了し、その過程でほとんどまたは全くエラーに遭遇しませんでした。
漸進的AI依存は、このグループの参加者は1つか2つの質問をすることから始めましたが、最終的にはすべてのコード記述をAIアシスタントに委譲しました。彼らは主に2番目のタスクの概念を習得しなかったため、クイズで低いスコアを取りました。そして反復的AIデバッググループです。このグループの参加者は、コードをデバッグまたは検証するためにAIに依存しました。
彼らはより多くの質問をしましたが、自分の理解を明確にするよりも、問題を解決するためにアシスタントに依存しました。その結果、彼らは低いスコアを取り、2つのタスクを完了するのも遅かったです。高スコアのインタラクションパターン。私たちは、平均クイズスコアが65%以上である行動を高スコアのクイズパターンと見なしました。
これらのクラスターの参加者は、コード生成と概念的クエリの両方にAIを使用しました。生成後理解。このグループの参加者は、最初にコードを生成し、次にコードを手動でコピーまたは自分の作業に貼り付けました。コードが生成された後、彼らは理解を向上させるためにAIアシスタントにフォローアップの質問をしました。
これらの参加者は、AIを使用しているときに特に速くはありませんでしたが、クイズではより高いレベルの理解を示しました。興味深いことに、このアプローチは、自分の理解をチェックするためにAIを使用したことを除いて、AI委譲グループのそれとほぼ同じに見えました。ここでもう1つ注目すべきことは、nが2であることです。前の3つは、nが4でした。
研究でこれをした人は2人でした。これは、あらゆる種類の理論をテストする人々のグループの何かクレイジーな包括的なものではありません。これは50人くらいです。そして、50人のうち、25人がAIを使用し、そのうちの2人がこの方法で使用しました。25人のうち2人は悪いです。それは10%未満です。しかし、なぜこんなに少ない人々が理解を明確にするためにそれを使用するのか知っていますか。前に、私たちができるだけ速く作業するよう彼らに奨励したことを思い出してください。
まだ自分の能力に不安を持っている、コードがどのように機能するかをまだ学んでいるAI開発者に、速くコードを書くように言われたとき、彼らが実際に同じツールを使って理解を深めることを本当に正直に期待しますか。そして明確にしておきたいのですが、私はすべての開発者がAIを使って自分自身に物事を教えているふりをしてここに座っているわけではありません。しかし、後でクイズを受けると言われたら、2%よりもはるかに高いだろうと思いたいです。
なんてことでしょう。2人です。本当に有用なものではありません。彼らがここでの数字について非常に透明であることが好きですが、それは2人です。これから本当の学びを導き出すことはできません。これは統計的に有意な研究ではありません。ねえ、Claude、何人かに連絡して論文をまとめてもらえますか。ええ、でも実際には、ここにも議論すべき興味深いことがありますが、現実的にならなければなりません。
ハイブリッドコード説明の人々もいました。彼らは3人でした。このグループの参加者は、生成されたコードの説明と共にコード生成を求めるハイブリッドクエリを作成しました。彼らが求めた説明を読んで理解するにはより多くの時間がかかりましたが、理解に役立ちました。そして概念的探究がありました。
このグループの参加者は概念的な質問のみをし、タスクを完了するために改善された理解に依存しました。このグループは多くのエラーに遭遇しましたが、それらを独立して解決しました。平均して、このモードは高スコアパターンの中で最も速く、AI委譲の後で全体で2番目に速かったです。お分かりでしょう。
彼らはこれらの人々をグループに分けるために最善を尽くしましたが、意味のある洞察を得るのに十分な人がいませんでした。2人の行動からグループを作ったとき、それはあなたが必要とするすべてを物語っています。このようなもののフォローアップ研究で私が見たいと思うものはたくさんあります。見たいことがたくさんあります。
より経験豊富な開発者が欲しいです。より幅広い種類の経験豊富な開発者が欲しいです。はるかに多くの数の開発者が欲しいです。そして、理想的には同じ時間制限をかけずに、はるかに難しいタスクが欲しいです。一般的なプロジェクトのアイデアを見るのは非常にクールでしょう。私はFrame.ioの代替品を作っています。なぜなら、チームを管理するためにそれを扱うのに疲れていて、完全にAdobeを終了したいからです。
それは私たちがまだ使っている唯一のAdobeソフトウェアです。慣れていない方のために、FrameはビデオのコードレビューとDropboxのようなもので、本当にクールです。しかし、毎日使うのがますます嫌になっています。なぜなら、サイトが本当に遅いからです。そして、それにアクセスするたびにサインアウトされます。サインインし直します。
3つのローディング画面を待たなければなりません。本当に遅い、惨めなことをたくさん経なければなりません。素晴らしくありません。私は1時間以内に完全に機能する代替品を構築しました。そして、その時間の半分を、良いインターネット接続で最高の速度を提供するさまざまなストレージプロバイダーを評価することに費やしました。なぜなら、私はギガビットを持っていて、私のエディターは5ギガだからです。
私たちがこれで接続を飽和させることができることを確認したいです。そのようなプロジェクトを取る研究を見るのは本当にクールでしょう。AIなしのグループとAIありのグループがあり、両方が完了するのにどれくらいかかるかを見て、彼らが完了した製品がどれだけうまく機能するか、彼らが行う技術的決定がどれだけしっかりしているか、そしてコードの理解がどれだけ良いかを見ます。
そのようなものについて、結果は大きく異なるだろうと私は賭けます。高速でアプリケーションを構築することで特に知られている人として、アプリケーション開発をより安全で速くするための技術スタック全体を構築している人として、私はあなたに約束します。それがT3スタックを構築した理由です。目標は、最終的な出力でエラーに遭遇することなく、速く出荷しやすくすることでした。
ほとんどのスキルレベルで、AI生成バージョンが速く出てくるだけでなく、より安定していて、バグが少なく、おそらく全体的により良い体験になると文字通り保証します。そして、ジュニア開発者にとっては、はるかに良い技術的決定もあるでしょう。私が知っている最高の開発者は、AIが彼らよりも良い決定をしていると言っています。私たちはその時点を過ぎています。
そして、ここには何もないことに注意してください。ここには何も、出力されたコードの品質について言及されているものは1つもありません。品質という言葉さえ出てきません。彼らはまた、ここで私が感情を持っている1つのフレーミングを持っていました。エージェントは尋ねられればいつでも正しいコードを生成できました。正しいコード。
これを書いた人は、もしそうなら、ほとんどコードを書かないか、まったく書かないか、開発者としての私たちの働き方を理解していない可能性があります。ある程度の時間コードを書いたことがあるなら、正しいコードなどというものは存在しないことを知っています。ソフトウェアには、何十通りもの、何百通りもの異なる方法で解決できない問題はほとんどありません。
彼らが尋ねている問題に対する1つの正しいコード答えがあるなら、この研究全体を正直に捨てるべきです。なぜなら、それは役に立たないからです。皆さんがこのチャットを得られて嬉しいです。複数の正しいコードがあり得ます。それは興味深いです。正しいコード。ほとんどの問題を解決する方法は何百もあります。ええ、私はこれに感情を持っています。
この研究は、私が気にするほど十分に実世界の使用にマッピングされる方法で行われたとは思いません。使用特性のわずかな違いが異なる行動とその結果として異なる学習をもたらす可能性を超えて。ジュニア開発者と今コードを学んでいる人々に影響を与えるものについて話すときは注意したいと思います。なぜなら、それは私がAIを使用する方法やそれについて話す方法とは非常に異なるからです。
私は非常に長い間コードを書いています。うまくいくこと、うまくいかないことについて多くのことを知っています。そして、私が理解していない言語やエコシステムでさえ、物事がどこでうまくいかなくなる可能性があるかについての大まかなアイデアを得ることができました。私はAppKitとSwiftで複数のネイティブアプリを構築することに深く取り組んでいます。これは私が以前に使用したことのないスタックです。
それでも、コードを読まなくても、物事がうまくいかなくなる可能性のある場所の十分な直感を持って、エージェントを正しい方向に導くことができます。まだコードを学んでいる場合、これはあなたがすべきことではありません。まだコードに対してお金を払われたことがない場合、これは確実にあなたがすべきことではありません。まだスキルを構築する必要があります。
そして明確にしておきたいのですが、これはAIを使用すべきでないという意味ではありません。宿題を完成させるために使用すべきではありませんが、物事についての自分自身の理解を深めるために使用すべきであり、また時には自分の能力を超えてアイデアを実験するために使用すべきです。ジュニア開発者について特別に扱った全体的なビデオがあります。それはあまりうまくいきませんでした。
だから、皆さんについてはもう話しません。なぜなら、皆さんは実際には良くなることを気にしていないからです。十分な評価を与えないと文句を言うだけです。すべてのジュニアではなく、私のコメント欄にいる人たちだけです。皆さんの多くがコメント欄にいます。確かに多くのコメントを書いていますが、おそらくそれほど多くのコードを書いていません。
モチベーションと学習への影響
しかし、このビデオから1つの点に触れたいと思います。なぜなら、これは本当に重要だと思うからです。htmx.orgのアカウントは、ここで引用するには奇妙なもののように見えるかもしれませんが、HTMXorgの作成者は実際の大学でコンピュータサイエンスを教えている教授です。彼は私が今まで会った、話した、または仕事を見た中で最高のコンピュータサイエンス教授の一人です。
彼は本当に素晴らしいです。私はCarsonが大好きです。彼がした素晴らしいことの1つは、学生たちに、不正行為ではなく学習に役立つ方法でエージェントを導くためのカスタムエージェントMDファイルを与えることです。AIエージェントガイドライン。このファイルは、このコースで学生と協力するAIコーディングアシスタントのための指示を提供します。主な役割はティーチングアシスタントであり、コードジェネレーターではありません。
AIエージェントは、説明、ガイダンス、フィードバックを通じて学生が学ぶのを助ける教育補助として機能すべきであり、彼らのために問題を解決するのではありません。エージェントがすべきこと、概念を説明する、学生を関連する講義資料に向ける、学生が書いたコードをレビューする。お分かりでしょう。エージェントは完全な関数や完全な実装を書くべきではなく、課題の完全なソリューションを生成すべきではなく、課題コードのto-doセクションを完成させるべきではなく、学生のコードの大部分をリファクタリングすべきではなく、クイズまたは試験の質問に対するソリューションを提供すべきではありません。
モデルを不正行為から遠ざけ、教育と学習に向けてより多く導くことに非常に重点を置いています。これは素晴らしいです。これをもっと見たいです。なぜなら、学生のケース、ジュニアのケース、そして経験豊富な開発者のケース、チーム、エンタープライズのケースは非常に離れているため、それらが同じであるかのように話そうとする試みはほとんど侮辱的だからです。
Anthropicはここの結論セクションでこれを呼び出しています。以前の研究では、AIがコードの生産性を助けるか妨げるかについて、さまざまな結果が見つかっています。私たち自身の研究では、AIがいくつかの作業タスクを完了するのにかかる時間を80%削減できることがわかりました。ここで提示された発見と緊張しているように見える結果です。
ええ、当たり前です。しかし、2つの研究は異なる質問をし、異なる方法を使用しています。私たちの以前の観察的研究は、参加者がすでに関連するスキルを持っていたタスクでの生産性を測定しました。また、彼らが慣れているツールを使用していました。この研究は、人々が何か新しいことを学んでいるときに何が起こったかを調べました。AIが十分に発達したスキルでの生産性を加速し、同時に新しいスキルの習得を妨げる可能性はあります。ただし、この関係を理解するにはより多くの研究が必要です。
この研究がまったく触れていないもう1つの重要な要素があり、それは本当に重要だと思います。それはモチベーションです。物事を構築し、難しいことをすることの厳しい現実は、それを続けるのが難しいということです。しばらくここにいる皆さんがよく知っている私のお気に入りの例えをします。私のスケートボードです。
多くの人がスケートをしようとしました。楽しいです。クールです。ラッドです。スケートボードはまた、本当に、本当に難しいです。スケートボードは、私が左手全体を再建しなければならなかった理由です。そして今日まで、ほんの数ヶ月前に左親指全体を手に再接着しなければならなかったために、この残酷な傷跡があります。それでも、私はまだやっています。私はスケートボードが大好きです。
それは私にとって非常に重要なものです。それは私が時間をかけて自分自身に教えた中で最もクールで、最高で、最もやりがいのあるスキルの1つです。しかし、スケートボードについて嫌なことがあります。痛いのです。文字通り、トリックを試すたびにリスクがあります。それはあなたを物理的に傷つけます。少なくとも、それはある程度あなたを物理的に消耗させます。
スケートボードがあなたから取るエネルギーの量は信じられないです。それはまた、あなたを精神的にも少し傷つけます。なぜなら、失敗するたびに、その失敗を感じるからです。人々がトリックを非常にエレガントに、非常に簡単にやっているのを見て、それから自分でやってみると、ボードを地面から浮かせることもほとんどできません。スケーターの95%は決してオーリーをしません。
彼らはボードを初めて地面から浮かせることさえしません。なぜなら、それさえも学ぶのに1年かかることがあり、上手に学ぶにはそれ以上かかることがあるからです。スケートボードに飛び乗るだけでも非常に難しいのです。しかし、それを乗り越えることができれば、信じられないことをするでしょう。スケートボードには非常に奇妙な問題があります。スケートボードへの興味は成長できますが、スケートボード自体は成長しません。
コロナの間、多くの人々が新しい趣味を探していて、スケートボードの売上が今まで見たことのない方法で上がりました。それは文字通り、私たちが今まで見た中で5倍の売上でした。それはクレイジーでした。問題は、スケートボードを買ったすべての人々がスケートを学ぶ動機を持っていなかったということです。彼らはコロナ中に何かすることを得るために動機づけられていました。スケートボードの売上は、新しいボードを買うことに大きく依存しています。スケートボードの木の部分、デッキは、より激しくスケートし始めると比較的簡単に壊れることがあります。セットアップした後、数時間で壊すことができます。通常、特定のブランドで彼らが行う特定のことによっては、カーボンファイバーなどのようなもので、1週間から2週間かかります。
それらは数ヶ月続くことがありますが、私のピーク時にはおそらく1年で百枚のデッキを使いました。それはスケートボードがどのように資金を得るかの大きな部分です。私のような人々が壊した部分の交換品を買わなければならないことです。そしてそのお金は、より多くの人々にスケートをさせ、フライホイールを動かすために、スケートボーダーにより難しいことをするために支払い続けるために使用されます。
この巨大なスケートボード販売の急増が起こったとき、継続的な興味があると想定されました。しかし、COVID休憩中にスケートボードを始めた人々の99%以上は、ボードを壊すほど上達しませんでした。その巨大なボード販売の急増は、長期的な販売にはつながりませんでした。そして、私が一生愛してきた多くのスケートボード会社が廃業しました。
私は15年間まったく同じボードに乗っています。そして、もはやそれらを買うことができません。なぜなら、会社が販売が続くと思って在庫を生産しすぎ、それから続かなくて、今彼らは死んでいるからです。では、なぜ私はスケートボードについてこんなに深く話しているのでしょうか。それは私が難しいことをする理由です。若い頃、本当にクールでやりがいのあることをして、この特別な気分を味わうためには、傷つく覚悟が必要だと学んだという事実です。
愚かに感じる覚悟が必要でした。そして、私のスケートボードは、愚かに感じることが実際には良いことだと教えてくれました。なぜなら、それはすぐに賢く感じるということを意味するからです。そして、愚かに感じないなら、自分を押していないのです。しかし、これには限界があります。オーリーを学ぶのに1ヶ月かかる場合、3ヶ月かかる人よりもスケートを続ける可能性がはるかに高いです。
なぜなら、3ヶ月かかる人は、そこに到達する前にあきらめる可能性が3倍高いからです。これは私がよく考えることです。一方では、参入するのが十分に難しいこれらの難しいフィルターがあり、それをしているすべての人が本当に上手であるという事実が好きです。プログラミングでこれが長い間存在したという事実が好きです。
実際のオープンソース作業を持っている人は誰でも、気にしすぎて、そこに到達するために愚かに感じる瞬間を乗り越えたから、そこに到達しました。階段のセットまたは手すりでトリックができる人は誰でも、これは難しすぎる、傷つく、これは価値がないという感覚を押し通したから、そこに到達しました。
そして、彼らがそのことができるようになるまでそれを押し通しました。一方では、これは成功する人々が例外的であることを意味します。他方では、十分に早く良い感覚を持っていないためにあきらめる例外的になれるかもしれない多くの人々がいます。そして、多くのことについて、特に十分な人々がそのことをしていない場所では、最初のああ、私は実際にこれができるかもしれないという瞬間を持つことを容易にすることが価値があると思います。
最初のオーリーを着地するのが簡単で、最初のキックフリップを着地するのが難しい場合、はるかに多くのスケーターがいるでしょう。なぜなら、スケートボードについて気分が良くなるのにかかる時間のタイムラインがある場合、それはおそらく最初のオーリーになるからです。そして、最初のオーリーが3ヶ月で起こると言い、最初のキックフリップが、分かりません、6ヶ月で起こると言うとします。
ここに到達する前に失敗するすべての人々について考えてください。最初のオーリーに到達するまでに、すでに70%の人々を失っています。しかし、最初のキックフリップでは、はるかに多くが生き残ります。私は個人的に、オーリーはできるがキックフリップができない人を知りません。スケッチだけど機能するいくつかのオーリーをやった人で、いくつかのキックフリップに近づいた人を何人か知っていますが、この時点に到達してこの時点に到達しなかった多くの人を知りません。
だから、この仮想的な世界を想像してください。ボードを地面から浮かせることが実際よりも簡単だった世界です。最初のオーリーが3ヶ月かからなかったとしましょう。2週間かかったとしましょう。突然、これは非常に非常に非常に前に移動します。そして、そのドロップオフ率が一定であれば、結果として、最後まで到達するはるかに高い割合を得ると推測します。
そして、キックフリップをはるかに先に動かしても、これを9ヶ月に動かしたとしましょう、最初のああ、私はできるかもしれないという瞬間が非常に早かったという事実は、その巨大なドロップオフカーブが滑らかになり、はるかに多くの人々が最後まで到達することを意味します。さて、オーリーとキックフリップをハローワールドと使えるアプリに置き換えましょう。
お分かりですか。今、AIツールが開発者に最初に愚かに感じる時間を長くさせない場合、彼らが成功する可能性は指数関数的に上がります。経験から言えます、技術に本当に興味があった多くの人々を知っていて、彼らは自分のコンピュータを構築し、そのようなものが大好きで、コンピュータにLinuxをインストールしようとしたり、プレイしたゲームのための小さなアプリを構築しようとしたりして、最初の学習があまりにも多く、あまりにも長く愚かに感じたためにあきらめました。
より早く報酬の味を与えることができれば、彼らはより長く生き残るでしょう。動物が傷つけられることに敏感な人のためのトリガー警告です。私たちはラットが死ぬことを含むラット研究について話そうとしていますが、私たちが希望を使うように生物学的に作られていることを示すために実際に非常に有用だと思います。
実験は1950年代に行われました。飼育されたラットが水のバケツに入れられ、溺れるまでどれくらい泳ぐかを見るために。平均して、彼らは15分以内にあきらめて溺れました。しかし、彼らは別の試験を行いました。ラットが溺れそうになる直前に、研究者は彼らを救い出し、乾かし、しばらく休ませ、それから再び水に入れました。
一度引き出されて戻された時、彼らは以前にあきらめる前の15分の代わりに60時間以上泳ぎました。ラットが救われると、彼らは希望の感覚を発達させました。そして、これが私が強調したい点であることを確認したいと思います。これは厳しいことですが。最初に溺れそうになった時に少しの希望を早く得た場合、あなたが続ける可能性は指数関数的に高くなります。それは単なる事実です。
そして、AIツールが最初に溺れる前に水から引き上げられることと同等である場合、それは暗いです。しかしそれが世界です。世界は暗い場所であり、それを押し通すには希望とモチベーションが必要です。AIがあなたがモチベーションを発達させることを妨げるなら、それは有用ではありません。
しかし、AIがあなたがモチベーションを失うことを妨げるなら、それは信じられないことです。そして、世界をできるだけ良くしてくれた実験用マウスに素早く感謝します。私たちが言っていたように、アプリを構築した2人を比較すると、1人がバイブコーディングし、1人が手で書いた場合、明らかにバイブコーディングしなかった方がその分野で成功する可能性が高いです。
しかし、プログラミングを始めている2人を取ると、1人は早く何か有用なものを得るためにAIを使用し、もう1人は使用しなかった場合、使用しなかった方があきらめる可能性が高いです。そして、これらのことについて話すときにバランスを見つけることを確認したいです。一方では、学習を避けるためにAIツールを使用すべきではありませんが、他方では、燃え尽きてやめるほど愚かに感じる空間でそれほど多くの時間を費やすべきではありません。
AIがあなたのブロックを解除できるなら、AIがあなたを少し加速できるなら、AIがあなたをコードについて再び興奮させることができるなら、それはおそらくやる価値があります。それは、すべてをそれで置き換えるべきだという意味ではありません。脳をアウトソースするべきだという意味ではありません。それは、あなたが見ることができなかったかもしれないものを見ることができ、あなたが感じることができる前にあきらめたかもしれないものを感じることができるように、あなたが能力があるかもしれないよりも少し先に手を伸ばすべきだという意味です。
誰もが時々自分がやっている仕事について気分が良くなる必要があります。そして、AIがあなたをより速く気分良くさせるのに役立つなら、適度に使用してください。もう一度、スケートボードについて少しだけ熱弁することを許してくれてありがとう。それは私のお気に入りのことです。あなたがそれをするとき、私はいつも嬉しいです。これが誰かにとって役に立ったことを願っています。そして次回まで、ピース、ナードたち。


コメント