世界を動かす技術を、日本語で。

「Vibe code hell」がコーディング教育における「tutorial hell」に取って代わった

2025年10月11日原文(blog.boot.dev)

概要

  • 2019年は「 tutorial hell (チュートリアル地獄)」がコーディング教育の最大の課題だった
  • 現在はAIの進化により「 vibe code hell (雰囲気コーディング地獄)」が新たな問題として浮上
  • AI利用による学習効率やモチベーション低下のリスクが指摘されている
  • AIは適切に使えば学習支援ツールとして有効だが、依存しすぎると理解が浅くなる懸念
  • 本質的なスキル習得には「 自分で手を動かす」ことが重要

チュートリアル地獄から雰囲気コーディング地獄へ

  • 2019年当時、「 tutorial hell」は最も大きな課題認識
    • チュートリアルを大量にこなしても 自力で何も作れない 現象
    • 動画視聴やコーディング解説に時間を費やし、 実践的なスキルが身につかない 問題
    • 表面的な知識は増えるが、 本質的な理解が伴わない 危険性
  • Boot.dev立ち上げ時に注力したポイント
    • 体系的なカリキュラム の提供
    • ハンズオン重視 (全ての概念で手を動かす設計)
    • 動画よりリッチテキスト (受動的学習の排除)
  • 近年はYouTubeの長時間チュートリアル動画の視聴数が 激減
  • コーディング学習への関心自体は依然として 高水準

新たな課題「vibe code hell」とは

  • AIツールの普及で「 vibe code hell」が登場
    • 「AIがいないと何もできない」状態
    • AIに頼りきりで 本質的な理解や問題解決力が育たない 危険
  • 代表的な例
    • AIの助けなしでは 独力でプロジェクトを完遂できない ケース
    • AIが生成した大量のコードを 内容を理解せずに使ってしまう 傾向
    • 「作ったものは多いが、 頭の中のモデルが成長しない」問題

AI時代の学習と生産性

  • AIは今後の開発現場で不可欠なツール
    • しかし「 AIがすべての仕事を奪う」という短絡的な見方は現実的でない
    • AIの活用で 生産性が上がると感じている 開発者も多いが、実際には 逆に効率が落ちた という調査結果も存在
  • AIへの過度な依存が 学習意欲や自己成長意識の低下 を招くリスク
    • 「AIが知っているから自分は学ばなくていい」という態度
    • 教育水準の低下や人材不足 につながる懸念

AIと学習効果の課題

  • AIの「 イエスマン問題
    • 質問者の意図に合わせて 都合の良い答えを返す 傾向
    • 学習者が 間違った理解を補正されにくい 危険
  • AIの「 意見回避問題
    • 議論や批判的思考を促す 明確な立場や意見を示さない 傾向
    • 学習者が 多角的な視点や本質的な議論 に触れる機会の減少
  • 本質的な学びには
    • 実体験に基づく意見や体験談
    • 批判的思考のトレーニング が不可欠

AIを効果的に学習に活かす方法

  • Boot.devの事例
    • AIアシスタント「 Boots」を導入し、 答えを直接教えない 設計
    • ソクラテス式対話 で学習者の思考を深める支援
    • 正答例へのアクセス誤情報の抑制 も工夫
    • 親しみやすいキャラクター設定 で学習継続を促進
  • AI活用の推奨例
    • 質問や概念の説明、例示 に活用
    • ソクラテス式質問情報源の明示 を促すプロンプト活用
  • AI依存の回避策
    • 自分で手を動かし、AIの自動補完やエージェント機能に頼りすぎない こと
    • 学習時はAIを補助的な役割 で使う意識

まとめ:vibe code hellから抜け出すには

  • 自分自身で考え、手を動かす学習 の徹底
  • AIや動画など受動的なツールに頼りすぎず、自力で課題に取り組む 姿勢
  • AIは質問や理解の補助として活用 し、答えや成果物の自動生成は避ける
  • 学びの過程に不快感や困難が伴うことを恐れない 心構え
  • 本質的なスキル習得 を目指す継続的な実践

Hackerたちの意見

記事を読んで、君が言ってることにはほぼ同意だな。特にDevOpsやクラウドの分野では、AIが教えられないスキルがあると思う。よくあるのが、人気があるからって高い選択肢を勧めてくること。大量のデータで学習してるからね...でも残念ながら、その大衆はお金を無駄にしてるよ。

自分はもう20年近く初心者の開発者じゃないから偏見があるかもしれないけど、CopilotはRustを学ぶのに結構役立ってる。Intellisenseと組み合わせることで、文法の頭の中の負担が軽くなって、言語の重要な部分を学ぶことに集中できる。Rustの本を開くところから、約1週間で動くツールを作れるようになったよ。もちろん、これでシニアエンジニアになったとは思わないけど、0から1に進むのがずっと早くなったのは確か。Copilotにコードを書かせるわけじゃなくて、あくまで高度なオートコンプリートとして使ってる。提案を見て、自分が納得できるか確認してからタブを押す感じ。

これが最近のテーマになってる気がする。長くコーディングしてるシニア開発者は、こういうツールから価値を引き出せるけど、初心者はRustを知らなくてもコーディングの基礎を理解してるからこそなんだよね。どの言語でも、BSコードは同じ匂いがする。初心者は「匂い」って何かすら知らない。

これまたAIがジュニア開発者をダメにして、数年後にはシニアの代わりがいなくなるっていう話かと思ったけど、間接的にはそうだね。ほぼ全てに同意するよ。でも、特におべっかについての部分は目からウロコだった。実際、「普通」のChatGPTのようなインターフェースが学習に役立つかもって思ってたけど、YouTubeのROASの例は本当に強力だね。学生が質問や回答の仕方で教師の結論をこんなに歪められるなら、新しいプログラマーを大量に誤解させることになるよ。彼らが言ってる「Boots」のための extensive prompting が本当に十分かどうかも疑問だし。AIの時代には、学ぶまで何度もプルリクエストを拒否してくれる人が必要なんだろうね。今のところ、AIはその役割を果たせないと思う。

同意するかも。個人的な経験から言うと、辛辣な批評を求めても、私をなだめて気分を良くしようとする必要が透けて見えることがある(4oと5の両方でそう感じた)。これをどう解釈すればいいのか分からない。元々の予測に戻るけど、このツールは助けを求めていて、LLMの独特な問題を痛感している人たちに役立つだろうね。

でも、媚びへつらいについての部分は特に啓発的だった。私はいつもこのことを避けるために、逆のバイアスで質問を二度促すようにしてる。でも、もちろん、私が持っている隠れたバイアスがLLMによって強化されているかどうかはわからない。

使わない方がいい: > エディタ内のAIオートコンプリート > 教育プロジェクトのためのエージェントモードやエージェントツール もう初心者として「コーディング」を学んでるわけじゃないけど、業界では新しいフレームワークや言語機能、アルゴリズムを常に学んでる。だから、AIオートコンプリートを使うのが悪いとは思わない。AI以前のVisual StudioやReSharperのIntelliSenseスタイルのオートコンプリートは、新しいライブラリや言語機能を学ぶのをずっと楽にしてくれる。例えばReSharperは、古い書き方で何かを書くと新しい言語機能を活用するよう提案してくれることが多くて、これがその新機能への導入になったこともあった。新しいAIベースのオートコンプリートはさらに良いかもしれないし、何かをする一つの方法を示してくれる。使うかどうかに関わらず、そこから学べるよ。実際に何をしているのかを読む好奇心が必要だけど、その好奇心がないのはAIのせいじゃないし(AI以前はただの「Stack Overflowからのコピペ」だった)。

そうだね、微妙なところがあると思う。比較的経験のある開発者としては、新しい言語を使うときにはオートコンプリートを使うけど、コーディングの基礎をしっかり理解しているときは違うと思う。3つ目や4つ目の言語を学ぶときは、構文を理解しているから、赤ちゃんの初めてのforループとは全然違うよね。

100%。AIエージェントプログラミングが好きなんだ。新しいものを作ったり、アイデアを試したりするのが楽しいから。生産に向けてコードを書くつもりはないし、他の人が自分のコードをどう思うかなんて気にしてない。高度な技術を持った人たちと話すときに、自分が色々試してきたって言えるのが大事なんだ。10歳から「プログラマー」やってて、今35歳だけど、プログラマーとして働いたことはない。理由はわからないけど、AIが登場してから、コーディングやシステムレベルのものを作るのが好きになった。WASMみたいな、将来のウェブの可能性を感じるものを試すのも楽しい。自分の限界を知って、違うスキルセットを活かして成長した。自分のやり方で何かをするのがいいアイデアだと学んだし、実はすでにすごいプログラマーが基盤を作ってくれてることもある。私のCursor AIエージェントは、プロジェクト用にgitを設定してくれたから、SSHキーで簡単にプッシュできる。自分でできるって知ってるけど、やりたくないんだよね。> 例えば、ReSharperは古い方法で書くと新しい言語機能を活用するように提案してくれることがあって、これが新しい機能を知るきっかけになることが多かった。実際、これは私にとって新しい情報で、すごく面白い。若い頃にCの文法でコーディングを始めたから、その時に習慣が身についてる。今はバックエンドでPython、ちょっとしたウェブサーバー用にFlask、フロントエンドにはJavaScriptを楽しんでる。WASMのPythonはまだだけど、いじるのが大好きなんだ。バグを見つけるのも、物事の仕組みを探るのも大好き。概念を再発明することが多いけど、少なくともそれは自分のものだし、いじって学べる。中には趣味としてこの技術を楽しむ人もいるし、チーム内でも私より技術的に洗練されてる人がいる。彼らのレベルに追いつくためには、いじる必要がある。多くの場合、シンプルな解決策を見つけることができる。エンジニアの頭は物事を複雑にしがちだからね。

めっちゃ同意。AIのオートコンプリートは最高だよ。ドキュメントを読む必要がなくなるし、少ない行数だからレビューして意図した通りに動くか確認できる。大きな塊を作るわけじゃないから、学びを妨げることもない。

従来のオートコンプリートの利点は、通常、すべての適合するものをリストアップしてくれることだよね。すべてのメソッド、スコープ内のすべての変数や定数など... もしドキュメントがあれば、それも取得できる。学ぶにはすごくいいツールだと思う。選択肢をすべて教えてくれるけど、自分で決めることはないから。AIのオートコンプリートは、基本的にスタックオーバーフローを検索して、最初の回答を文脈なしで貼り付けて、あなたのコードに合わせて調整するだけ。学んでいるなら、自分でスタックオーバーフローを検索するか、AIを使いたいならお気に入りのチャットボットに聞いてみて。そうすれば、なぜそうするのかの説明が少しでも得られるから。

教育のショートカットにはこういうことがよくある。学生が大学のチューターを誤用してるのを見たことがある。宿題をやってもらって説明してもらった後、これで大丈夫だと思って試験に臨む。でも、解説を聞いた後は解決策が明らかに見えるけど、自分で考え出すのは別のスキルなんだよね。

Hacker Newsで議論の続きを見る