HN 日本語サマリー

← 一覧へ戻る
キャリア

AIコーディング:ヴァイブスなしで

AI Coding Without the Vibes (peterbloem.nl)

51 pointsby riskone26 コメント

要約

AIによる不正行為の防止に注力するのではなく、真に学びたい学生(博士課程の学生を含む)に何を伝えるべきかという問いに焦点を当てるべきです。AIを完全に無視するのは時代遅れであり、AIにすべてを委ねるのは何も学ばない最悪の方法です。AIを「レビューア」のように活用し、自分がコードを書き、AIがそれをチェックするという「クラフトコーディング」のアプローチが推奨されます。

全文翻訳

AIコーディング:ヴァイブスなしで 今日、私たちは学生がAIで不正行為をするのをどう止めるかについて多くの努力を費やしています。それは必要ですが、仕事の最も満足のいく部分ではありません。学習の近道を探す学生は、いずれにせよそれを見つけるでしょう。 より価値があり、興味深い質問は、近道を探しているのではない学生(博士課程の学生を含む)に何を伝えるべきかということです。真に学びたいと願う人々、そして自分自身を成長させるために毎日何時間も費やすことを厭わない人々。ここにいたいと願う人々。 この質問――AIを学生にどう使わせるべきか――は、私たち自身が何をすべきか(そしてこのエッセイが本当に伝えたいこと)を考えるための良いきっかけとなります。 最初の本能は、学生にAIの存在を無視するように言うことかもしれません。「昔ながらの方法で全てを学びなさい。私には何の害もなかった」などと。しかし、それは70年代の学生に電卓やコンピュータの存在を無視するように言うようなものです。今日の学生は、AIが主要な存在となる世界に備える必要があります。それがどのような世界になるにせよ、その世界をナビゲートするスキルが必要です。 あるいは、AIを完全に受け入れるように言うべきだと考えるかもしれません。「Claudeの最高ティアにサインアップして、明日がないかのようにトークンを燃やせ。すべてを機械に委ねろ」。これもまた悪いアドバイスです。それは何も学ばない確実な方法です。それだけでなく、何かを学んだという感覚を決して得られないようにするための完璧な方法です。 これは十分に明示されていないことですが、大学で学ぶ最も重要なことの一つは、自分がアイデアを本当に理解しているかどうかを測る能力です。自分が何かを本当に理解したと確信していた状況で、ちょうど良い質問をされたときに、どう答えていいか全く分からないという状況に陥ることがあります。最終的には、自分自身にこれらの質問をするようになります。そして、ゆっくりと、自分が本当に理解の状態に達したかどうかを正確に測る感覚を養うことができます。 すべてをAIに委ねるということは、その機械的な能力が決して発達しないことを意味します。あなたは意図的に近道を選んでいるだけでなく、何かを習得したと思い込ませることで自分自身を欺いていることになります。ツケが回ってきたときに、自分には何の価値あるスキルもないことに突然気づいたとき、問題を修正するには手遅れかもしれません。そして、これは私たち自身にも当てはまります。AIが登場する前にその能力を養う幸運に恵まれたとしてもです。認知スキルは筋肉のようなものです:得るのが難しく、失うのは簡単です。 では、答えは何でしょうか? 私のこれまでの最良のアドバイスは、ほとんどのことは2つの段階で構成されているということです:実行とチェック。コードを書き、バグがないかチェックします。テキストを書き、事実確認と校正を行います。 現在のAIは、両方をこなすには十分ではありません。しばらくは機能するでしょうが、最終的には、大きく脱線する可能性があります。時にはデータベースを削除するような大きな問題で、しかし、より微妙な方法で、コードベースをゆっくりと維持不可能な状態に変えていくことが多いです。 さらに重要なのは、たとえAIが両方を完璧にこなしたとしても、それを「自分の仕事」として提出できますか? あなたは何を貢献しているのかを問わなければなりません。そして、あなたが学生であろうとなかろうと、何を学んでいるのかを問わなければなりません。 したがって、プロジェクトの一部でAIを使用することにした場合:AIに作業を任せて、あなたがその作業をチェックするか、あなたが作業を行い、AIがそれをチェックするようにします。 選択肢をこのように並べると、実際には選択の余地はありません。AIにコードを書かせるのが、ほとんどの人がやっていることです。それは「ヴァイブコーディング」と呼ばれます。上記のルールを守るなら、AIが書いたものすべてをチェックする場合にのみ、これを行うことができます。これはフィクションであることは明らかです。人間の脳はこのために作られていません。たとえボットが生成したコードの各行を本当に、深くチェックすると決意したとしても、あなたの注意は1時間以内に散漫になるでしょう。失敗するケースはまれなので、機械を信頼し始めるのを避けることはできません。さらに重要なのは、それは楽しくないでしょう。他人のコードをチェックするのは骨の折れる作業です。自分のコードを書くのは楽しいです。 だから、逆の方法でやりましょう。あなたがコードを書き、AIにあなたの仕事のチェックをさせます。レビューアのように扱います。それが私の1文でのアドバイスです。 それでも時間を節約できますし、昔ながらの方法では発見に数週間かかったであろうバグを見つけてくれるでしょう。見逃していたトリックや、知らなかったテクノロジーについて教えてくれるでしょう。しかし、ヴァイブコーディングで間違った方向へ向かわせる多くのインセンティブは、この方法で行うと逆転します。 このエッセイの残りの部分では、詳細を掘り下げていきます。実際にはどうすればよいのか? それは何を買ってくれて、何を買ってくれないのか? このアプローチはどれくらいの間実行可能であり続けるのか? しかし、まず、キャッチーな名前を考え出すことができるかどうか見てみましょう。 クラフトコーディング 3人のパン職人を想像してみてください。ハンナ、ヴィヴィアン、カーラ。 Hannaは家庭パン職人です。彼女は熱狂的です:サワードウスターターを熟成させるために、温度を執拗にチェックし、多大な努力を払います。彼女は複雑な発酵プロセスに従います:生地を非常に正確にターン、レタリング、シェイピングします。これにより素晴らしいパンができ、彼女は多くのプロのパン職人よりも多くのスキルを持っています。しかし、生地のこね方を含むすべてを手作業で行うため、決してスケールしません。彼女はそれを知っており、自分のユニークな方法で少数の完璧なパンを作ることに満足しています。 Vivianは商業パン職人です。彼女のパン屋は、スーパーマーケットの棚を満たすために膨大な量のパンを生産しています。彼女は、雇ったフードサイエンティストにパン作りのプロセスのほとんどの決定を委ねています。彼女は集計統計を監視します。その中でも最も重要なのは、パンの売れ行きと製造コストです。彼女はパンの品質を気にしません。あるいは、顧客が気にする範囲で品質を気にしますが、それ以上ではありません。コストを削減するために安い小麦粉を喜んで使用し、生産をより堅牢にするために発酵時間を短縮します。彼女が最も心配しているのは、同じくらいよく売れるパンをもう少し安く作る方法を見つけた別のパン職人に価格で負けることです。彼女は悪い人ではありません。ただハンナとは違うことを気にしているだけで、もしそうでなければ、彼女は仕事で長くは続かないでしょう。 この2つの極端の間に、カーラがいます。カーラは商業的な事業を運営しています。彼女はハンナのようにパンを焼くことはできないことを知っています。商業的なパン屋は生地を手でこねることはありません:それは非常に非効率的で、かなり不衛生です。しかし、カーラはヴィヴィアンとも違います。彼女はパンがどのように作られるかを気にしています。良いパンには彼女にとって内在的な価値があります。たとえ顧客が気にしなくても、彼女は気にします。彼女はプロセスのすべての部分を把握しており、これが彼女の仕事に満足感を与えています。 これは現代のコーディングプラクティスに次のようにマッピングされます。 Hannaはハンドコーダーです。彼女はAIを嫌悪し、商業的に実行可能かどうかに関わらず、古代の技術を生き残らせることに満足しています。たとえAIコードがいくつかの点で優れていたとしても、彼女は手作業でやり続けることに満足しています。 Vivianはヴァイブコーダーです。これは少し直感的ではありません。「ヴァイブコーディング」は、結果をあまり気にせず、ただ楽しんでいるような、ある種の自由放任的な態度を示唆します。それがこの言葉が生まれたときの意味でしたが、世界は進歩しました。多くの企業では、プロのプログラマーがAIを、生成されたコードを詳細に読んでいないと想像できないような方法で使用しています。これが現代のヴァイブコーディングです。AIに委ね、個々のコード行を気にせず、コードがテストをパスし、本番環境で問題を引き起こさないかどうかを監視します。 Caraは、私たちがクラフトパン職人と呼ぶものに相当します。したがって、同等のコーディングスタイルはクラフトコーディングと呼ぶことができます:製品の固有の品質を中心に展開するコーディングスタイル、細部にまでこだわります。プログラマーがAIツールを、それらがその理想に利益をもたらす場合にのみ、そしてその理想に利益をもたらす方法でのみ許可するようなものです。クラフトベーキングのように、クラフトコーディングは(原文ここまで)