「バイブコーディング」という言葉を最近よく目にするようになりました。AIに指示を出すだけでコードが生成される開発スタイルのことです。
一方で、「バイブコーディングだけでは本物のスキルが身につかない」という声も増えています。エンジニア歴の長い方からは「基礎をちゃんと学べ」という意見が出るのも当然でしょう。
では、これからプログラミングを学ぶ初心者は、どちらから始めるべきなのでしょうか?
私は現役CTOとしてメンタリング活動をする中で、**両方の良いところを取る「段階的アプローチ」**が最も効果的だと感じています。
バイブコーディングの功罪
メリット:「動くもの」がすぐ手に入る
バイブコーディングの最大の利点は、初心者でもすぐに動くアプリケーションを体験できることです。
「ToDoアプリを作って」→ 数分で動くアプリが完成
この「成功体験の速さ」は、従来の学習法にはなかった強みです。
デメリット:「なぜ動くか」がわからない
しかし、AIが生成したコードを理解せずに使い続けると、こうなります。
- エラーが出ても自分で解決できない
- 要件が少し変わっただけで対応できない
- 「何がわからないか」すらわからない状態が続く
つまり、AIなしでは何もできない状態に陥るリスクがあります。
「ちゃんとした開発」だけでも挫折する
かといって、従来の「基礎から順番に学ぶ」アプローチにも問題があります。
変数 → 条件分岐 → ループ → 関数 → クラス → ...(まだ何も作れない)
この「基礎固めフェーズ」が長すぎて、多くの初心者が動くものを作る前に挫折します。
特に社会人学習者にとって、「いつ使えるようになるかわからない基礎知識」をモチベーションだけで学び続けるのは困難です。
解決策:4フェーズの段階的アプローチ
私が設計したカリキュラムでは、以下の4フェーズで進めています。
フェーズ1:AIと一緒に「動くもの」を作る(セッション1〜5)
まずはバイブコーディング的に、AIの力を借りて動くアプリを作ります。ここでの目的は成功体験と全体像の把握です。
// AIが生成したコードを「使う」段階
// まだ完全に理解しなくてOK
export default function Home() {
return <h1>Hello, World!</h1>
}
フェーズ2:AIに「説明してもらう」(セッション6〜10)
動くものができたら、次は「なぜこう書くのか」をAIに聞きながら理解を深めます。
自分:「この useEffect って何をしてるの?」
AI:「コンポーネントが表示された後に実行される処理です。例えば...」
CLAUDE.mdに以下のような設定を入れることで、AIの振る舞いを「教える」モードに切り替えます。
## 学習モード
- コードを書く前に、なぜそのコードが必要かを説明する
- 学習者が自分で考える時間を設ける
- 答えをすぐに出さず、ヒントから始める
フェーズ3:自分で書いてAIに「レビューしてもらう」(セッション11〜15)
ここからは主体が逆転します。自分でコードを書き、AIにレビューしてもらう段階です。
フェーズ4:自力で設計・実装する(セッション16〜20)
最終フェーズでは、AIは「聞かれたら答える」だけの存在になります。設計から実装まで自分で行い、最終的にWebアプリを公開します。
バイブコーディング時代だからこそ必要な学び方
重要なのは、バイブコーディングを否定するのではなく、入口として活用することです。
| フェーズ | AIの役割 | 学習者の役割 |
|---|---|---|
| 1 | コードを書く | 使ってみる |
| 2 | 説明する | 理解する |
| 3 | レビューする | 自分で書く |
| 4 | 質問に答える | 設計から実装まで |
この段階的な移行により、「バイブコーディングの気軽さ」と「ちゃんとした理解」の両方が手に入ります。
まとめ
AI時代のプログラミング学習は、「バイブコーディングか、基礎固めか」の二択ではありません。
AIを徐々に手放していく段階的アプローチが、初心者にとって最も効果的な学び方だと、実際のメンタリングを通じて確信しています。
この段階的アプローチに基づいたプログラミング学習サポートをMENTAで提供しています。→ https://menta.work/plan/20251
YouTubeでもAI×プログラミングの情報を発信中 → https://www.youtube.com/channel/UC1rXVD9WYsQPQEWZyd-A1KA/