この記事はHTアドベントカレンダー24日目の記事です。
はじめに
本記事では、AIを活用したプログラミング学習法を紹介します。具体的には、仕様駆動開発ツール「cc-sdd」を使って自分専用の教科書を生成し、批判的思考を持ってレビューしながら学ぶ方法です。
「AIに頼りすぎて自分の技術力が不安」「新しい言語を効率的に学びたい」と感じている方の参考になれば幸いです。
AIを使うほど、自分の技術力が不安になる
GitHub CopilotのEditモードに始まり、現在ではClaude Codeを業務で中心に利用しています。AIが進歩するにつれ、自分自身でコーディングをする機会は明らかに減りました。便利になった一方で、「自分の技術力は大丈夫だろうか」という漠然とした不安を感じるようになりました。
2025年のDORAレポート「State of AI-Assisted Software Development」では、AIは「増幅器」であると表現されています。優れたエンジニアリングプラクティスを持つ組織ではその強みがさらに増幅され、逆に課題を抱える組織ではその問題点も増幅されてしまうというわけです。裏を返せば、基礎的な技術力が高いエンジニアほど、AIの恩恵を受けやすいとも言えます。また、AIを使えばアイデアをすぐに形にできる反面、構築されたアプリケーションに対する説明責任は我々エンジニアが負わなければなりません。そのため、自分自身で実装していた時代よりも、幅広い知識を深く理解している必要があります。
こうした技術力への不安を解消するためには、やはり自己研鑽が必要だと考えています。普段の技術スタックとは異なりますが、業務外の技術習得を兼ねてRustを勉強し始めました。
従来の学習法の限界
久しぶりに新しい言語を学ぶ中で、これまで言語習得の近道だと思っていた「自分でなにかを作ってみる」というアプローチが非効率に感じました。
これまでの学習法は、言語のチュートリアルを試し、フレームワークのドキュメントを読み、サンプルコードを動かしては書き換えるという流れが一般的でした。しかし、この方法にはいくつかの限界があります。
まず、自分が正しいコードを書けているのかどうかの判断が難しいという点です。そして、詰まったときには自力で解決しなければなりません。エラーメッセージを読み解き、Stack Overflowを検索し、試行錯誤を繰り返す。もちろんこのプロセス自体が学びになることもありますが、効率的とは言えません。
最近は、AIを使って作りたいものの作り方を教えてもらうようにしています。そのために業務でも活用している仕様駆動開発の手法を取り入れています。
cc-sddで「自分専用教科書」をつくる
cc-sddとは?
cc-sddは、Kiro式の仕様駆動開発を実践するためのツールです。要件定義→設計→タスク分解→実装というプロセスを構造化し、AIエージェントと協調しながら開発を進めることができます。詳細は以下のリポジトリで公開されています。
本記事では学習用途での活用を紹介しますが、チーム開発での運用については以下の記事で詳しく解説しています。
この学習法のメリット
AIに教科書を作成してもらうメリットは、自分の経験に合わせて教科書の内容をチューニングできる点です。例えば、私はPythonの経験があるので、Rustに関する説明も「Pythonでいうこれに相当する」といった形で教えてもらえます。これにより、既存の知識と新しい知識を結びつけやすくなります。
また、cc-sddを使うメリットとしてコンテキスト管理が出来る点にあります。長編の教科書を作成したい場合は一度のセッションですべてを生成しきることができないため、コンテキスト管理がしやすいcc-sddのようなツールを使って、教科書作成のタスクに沿って段階的に作成していくのが効果的だと思います。
実践例:TUIを作りながらRustを学ぶ
以前からRatatuiが気になっており、Rustを学ぶための動機づけとしてRatatuiでTUIツールを作ってみることにしました。
Ratatuiの教科書をcc-sddを使って生成させたところ、全部で5章の教科書になりました。ところどころに練習問題も用意してくれて、理解度を確認しながら進められるので助かっています。
第一章で軽く基本を押さえたら第二章からは実際にRatatuiを使いながらRustの学習ができます。
第四章ではTUIツールとしてシステムモニターを作るようになっていました。
質問もAIにして、それをノートとしてまとめてもらうこともできます。

なお、Claude Codeを使う際は、CLAUDE.mdにContext7 MCPを使うよう記載しておくとライブラリに関する知識がより正確になるのでオススメです。
批判的思考こそが学習の要
AIに教科書を生成させる学習法において、一点懸念があります。それは、教科書の内容の信頼性をどう担保するかという問題です。
しかし、この点こそがこの学習法の最も重要なポイントでもあります。AIに教科書を生成させるのは、最終的には人間が賢くなるための手段に過ぎません。したがって、最終的に人間が批判的思考を持ってAIの生成した教科書をレビューできる状態になること、それこそが学習した知識を血肉化できた証だと言えます。
学習の過程では、適宜公式ドキュメントや信頼できる資料に当たりながらファクトチェックを行います。これにより、受動的な学習と能動的な学習を行き来することができます。従来の学習方法でもドキュメントを読んで自分で実装しながら勉強していく形が主流でしたが、参照する資料自体は変わりません。ただし、資料に当たるステップを細かく刻み、AI教科書の内容をレビューするという目的意識を持って取り組むことで、学習がより効率化されると考えています。
また、プログラミング学習のように実際に動作させることで内容の正否を判断できる分野は、AIを使った学習と特に相性が良いと感じています。
まとめ
AIの登場によって、開発業務に求められるスピードと品質は確実に向上しました。一方で、開発スキル自体は陳腐化するどころか、求められるスキルはより多様化・高度化しています。エンジニアはこれまで以上に勉強が必要であり、その手助けとしてもAIの活用が期待できると感じています。
この学習法では、細かにチューニングした教科書を作ることも可能です。例えば、1日30分程度で終わるようにChapterを分けてもらったり、要点だけに絞った内容にしてもらったりすることができます。ぜひ一度試してみてください。
最良の学習法は「誰かに教えること」だと言われてきました。AI時代では、その相手がAIになるのかもしれません。仕様を定義してAIを正しく導き、その出力をレビューできるようになること—それ自体が深い学びにつながるのではないでしょうか。



