生成AIに学習教材を作らせて世界にたった一つだけのオーダーメイド教材を作る

# Rustを学びたいと思ったので生成AIをフル活用したら最高の学習体験ができた話

最近、Rustというプログラミング言語に興味があります。
なにやらパフォーマンスが高くて、安全性も高いらしい。
気づけば世の中のツールがどんどんRust製に書き換えられていってます。

私はプログラミング第一言語がPHPなのですが、その後も生粋のPHPer、そしてLaravel Artisanとして過ごしてきました。
そんな私にとってRustは静的型付け言語だし、コンパイラ使うし、クラスベースじゃないしってことでかなり新体験ができる言語だったので、自分をストレッチさせるためにも触っておきたかったわけです。

さて、、、どうやって勉強しようか？

## 目次
この記事では以下の内容について書き綴っていきます。

1. 書籍とかネット上の教材の課題
1. Manusで自家栽培する方法
1. Manusで自家栽培ループする方法
1. 自家栽培の何が良かったかという感想

また、同じ内容をPodcastでも発信しています。

:::note
ひまじんプログラマーの週末エンジニアリングレッスン 
#364 PHPerのためのRust教材作ってみた！オーダーメイド学習教材 〜無限自家栽培〜
- [Apple Podcastで聴く](https://podcasts.apple.com/jp/podcast/%E3%81%B2%E3%81%BE%E3%81%98%E3%82%93%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AE%E9%80%B1%E6%9C%AB%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B3/id1601084785?i=1000712999241)
- [Spotifyで聴く](https://open.spotify.com/episode/1EEjdkUY8LWdaAWXM6YVDP?si=kTrzf4DsRwGqWNH69ZIfAg)
:::

## 書籍は一般的だしネットに転がっているチュートリアルはミニマムすぎる

プログラミング学習の定番といえば、やっぱり**書籍**ですよね。
体系的にまとまっているし、情報量も豊富です。
僕は技術書結構読む系男子なのですが、言語を学ぶ系のものはあまり買ってきませんでした。
というのも以下のような偏見を持ってます。
- 紙だと重くて持ち運びに不便だが、電子書籍だとリフローじゃなくて紙面をスキャンしたようなやつが多くて使いにくい
- 入門編を買うと変数とは〜、とか関数とは〜、みたいな不要な情報が含まれている
- 中級編だとそもそもちょうどいい書籍を探すのが難しいし、見つけても中身が難しい

一方で、**ネット上のチュートリアル**はたまにドンピシャのものがあったりします。
ただ、多くは基本的な文法やごく簡単なサンプルを動かすだけで終わってしまい、「で、これをどうやって実際の開発に活かすの？」となりがちです。
もっと実践的な内容や、自分の目的に合わせた教材が欲しいと思っても、ちょうどいいものを見つけるのはなかなか難しいものです。

あとはYouTubeとかUdemyの動画コンテンツなんかもありますね。
これは結構いいな〜と思います。特にYouTubeだと英語まで範囲を広げるととんでもなく良質なコンテンツが豊富にあります。

ただ、これは私だけかもしれませんが、動画って中断してちょっとずつ進めるよりも、一気にやってしまいたい気持ちになるんですよね。そこで多くの動画が1h~8hくらいの長さがあるため、腰が重くなってしまう気持ちを感じています。
YouTubeいたってはワンピースの考察みたいな別の動画に事故的に吸い込まれることもあります。

すべての不満を解消できる最強の教材ないかな〜。

## そうだ、AIエージェント元年だしAIエージェントに作らせよう

そこで思いついたのが、**「AIに自分専用の教材を作ってもらえばいいんじゃないか？」**ということです。2025年はAIエージェント元年とも言われていますし、AIを活用したらいい教材ができちゃうんじゃないの？？

ってことでManusを使って教材の自家栽培を始めてみました。

### Manusで教材を作成

「[Manus](https://manus.im/)」は中国発の自律型AIエージェントです。
一度指示を投げると勝手にガシガシ作業を進めてくれるUXがたまりません。

教材作成に特化しているわけではありませんが、資料作成、コーディング、調査などなどかなり幅広くやってくれるのできっと教材作成もいい感じにやってくれるでしょう。

今回はManusに以下のような内容で教材作ってくれと伝えました。

```
Rustを学習するための教材を作って欲しい
私の現在のスキルとしてはPHP Laravelについてミドルエンジニアレベルのスキルがあるため、基礎的な知識はあるものRustの構文については把握できていない状況です
また、CやC++などのメモリを直接管理する言語を触った経験がないため、そういった部分に関する知識はかなり弱いため、厚めの解説が必要になると思います

求めるレベルとしては、簡単なTODOアプリが作れるレベルになれることです
```

すると、Manusは「ご依頼ありがとうございます。Rustの学習教材を作成いたします。PHP/Laravelのミドルエンジニアレベルのスキルをお持ちで、メモリ管理の経験が少ないとのことですので、その点に配慮した内容にします。簡単なTODOアプリが作れるレベルを目指した教材を準備しますので、少々お待ちください。」と頼もしい言葉発して作業に移りました。

![Screenshot 2025-06-03 at 8.33.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562446/dee25d6e-cb9e-4b36-87a8-bdaa785c6e87.png)

これは期待感が高まります。

### 成果物ができたのでとりあえずやってみる：Cursorが大活躍

Manusが作ってくれた教材をもとに、早速学習を開始しました。
成果物はマークダウン形式で出力されたので、後はそれを読んで内容を理解するだけです。

そして、ここでAI搭載エディタの「**Cursor**」が大活躍をします。

実際にやってみて良かったポイントは以下の通りです。

- **知っている情報が省かれていてコンパクト**:
    プログラミング経験者なら誰でも知っているような変数宣言の方法や基本的な関数の説明は最小限に抑えられていて、Rust特有の重要なポイントにフォーカスした内容になっていました。これにより、**無駄な時間を削減でき、非常にコンパクトに学習を進める**ことができました。
- **理解度チェックの問題で実践的な思考力アップ**:
    各セクションの説明の後には、必ず理解度をチェックするための演習問題が付いていました。ただ読むだけでなく、**実際に手を動かしてコードを書くことで、知識の定着が格段に進んだ**と感じます。
- **PHPのコードと比較して説明してくれてる**
    PHPerですと伝えていたので、どの説明にも必ずPHPで書くとこうみたいなコードがついています。新しい言語を学ぶ時は今自分が知っている言語をフックにして学習することが多いと思うので、それが最初からあるためめちゃくちゃ理解しやすい内容になっていました。

:::note
TIPS: 内容が理解ときのCursorの使い方
読み進める中でわからない時はCursorに以下のような質問をするとより深く理解できると思います。

- 対象コードの文法的な意味を教えて下さい
- その機能のユースケースと登場するに至った歴史的な経緯を教えて下さい

:::

一方こんな問題点も。

- **練習問題の回答がない**
    出来上がった教材には理解度チェックの問題があるのですが、回答がついていない！しかし今どきそんなことは大した問題にはなりません。基本Cursorを使って学習を進めていたのですが、「Q4の回答が要件を満たしているかチェックしてください」と投げるとかなりの精度で採点してくれます。さらに自分で書き方に納得していないときは「もっといい書き方はありますか？」と投げると良いコードの提案までしてくれます。
- **補完が強すぎる**
    これは教材ではなく、Cursorを使いすぎる場合の問題点ですが、入力補完の精度が高すぎて、練習問題をやるときに脳みそを動かさずに書けてしまうことがあります。なので私は練習問題の時はVimで開いて補完されないようにして手で書くことを意識して進めていました。
    
### 基礎編が終わったので次なるコンテンツを作りたい

ManusとCursorのおかげで、自分にとって必要なものが凝縮されたコンテンツを使って効率的に学習ができるという感覚が掴めてきました。
さて、次は何をしましょうか…？
正直、基礎が終わったら**次に何が必要で、どんな順番で学ぶのが効率的なのか、自分だけでは判断がつきません**。

そこで、今度は「**Gemini**」に最適な学習内容の相談してみることにしました。
「Rustで〇〇ができるようになったんだけど、次に学ぶべき実践的なトピックは何ですか？ いくつか候補を挙げて、それぞれのメリット・デメリットを教えてほしい」といった具合です。
最初に作った教材と自分のレベル感についてもプロンプトの中に盛り込むことで、オーダーメイドで発展編の学習教材に必要な要素を洗いしだしてもらいます。

すると以下のような提案が。（回答が長いので見出しだけ抜粋）
1. より高度なエラー処理と堅牢なアプリケーション設計
1. 並行処理とマルチスレッドプログラミング
1. マクロによるメタプログラミング入門
1. FFI (Foreign Function Interface) と unsafe Rust
1. 高度なライフタイムと借用、スマートポインタ
1. 高度なトレイト活用 (Associated Types, Trait Objects)
1. 実践的アプリケーション開発ワークフロー
1. WebAssembly (Wasm) への挑戦 (オプション)

これは確かにこれまでのセクションで学んできていないし、できるようになったらスゴそうだぞ、、、！？

ということでManusに依頼するためのプロンプト形式で出力し直してもらいました。

### そしてManusへ...

次に学ぶべき方向性とそのためのプロンプトが出来上がったので、再び**Manus**の出番です。

そして待っているだけで完成する教材たち。
オーダーメイドの教材を無限に自家栽培する時代がついに来てしまいました。

こうして、私のRust学習はAIエージェントたちに導かれながら、次のステージへと進んでいくのでした。

## AIエージェントで作成した教材で勉強してみた感想

AIエージェントを活用した今回の学習体験は、**めちゃくちゃすごく、そして超いい**ものでした！

特に、**言語やフレームワークを新しく学ぶ際には、この方法が最適かもしれない**とすら感じています。自分のペースで、自分に必要な情報だけを効率的に学べるのは、本当に大きなメリットです。

作るときのコツですが、AIで解説

もちろん、AIのナレッジカットオフとかの関係で、情報が少し古くなってしまう可能性はゼロではありません。でも、それは**従来の書籍も同じか**。むしろ、AIの場合は対話的に最新情報を補足説明してもらったり、疑問点を即座に解消できたりする分、アドバンテージがあるかもしれません。

今回の学習で作られた教材は、以下のGitHubリポジトリで公開しています。
[Rust for PHPer](https://github.com/kazunoriboy/rust_for_phper/tree/main)

Rustに興味があるPHPerという実にニッチなニーズを満たすための教材になっているので、たまたま当てはまる人は是非活用してみてください。そして感想もください。

ということで今回は、AIをフル活用した新しい学習スタイルの実証実験でした！

もし参考になったとか面白いと思ってくれた方は「いいね」をポチッとやってもらえると日々のアウトプットの糧になるのでよろしくお願いします :pray: