はじめてUdemy講座を作ってみた話 〜日本語初のRSpec講座を完成させた200時間〜


こんにちは、とまだです。

Qiita などで記事を執筆した人はいるかと思いますが、動画の講座を作ったことはありますか？

この度、人生で初めて Udemy 講座を作ってみました。

[「【RSpec 実践入門】Ruby on Rails 開発者のためのテスト自動化 - 完全ガイド」](https://www.udemy.com/course/rspec-ruby-on-rails/?referralCode=7E43E652974CF1A7DCDC) です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364501/9ffe6066-2304-1c4d-77bc-7d8128c21141.png" width="500">

講座制作は想像以上の苦労がありましたが、貴重な経験にもなりました。
今回は、その裏側をできるだけ詳しくお話ししていきたいと思います。

（記事の最後にクーポン配布の宣伝をさせてもらってます。ご容赦ください）

## きっかけは自分自身の苦い経験から

私が RSpec の講座を作ろうと思ったきっかけは、自分自身の経験にあります。

未経験からプログラマーになって一番最初の苦労は「RSpec で既存システムのテストを書くこと」です。

今もですが、RSpec の学習教材がほとんどなくて本当に苦労しました...。
テストの前提知識が全然ないうえに、コードの書き方も分からない。そもそも何から始めればいいのかさえ分からない状態でした。
（しかもペアプロ・モブプロの中でスピーディに書かなければいけないプレッシャー）

**「コードを書く」** という実装面の理解と、 **「テストの考え方」** という概念の理解。
この二重苦で、かなり苦労した記憶があります。

そんな経験があったので、「これから Rails エンジニアを目指す人たちには、もっと分かりやすい教材があった方が嬉しいだろうな」と思ったんです。

実は、Udemy を見てみたら日本語の RSpec 講座が一つもありませんでしたので、これは「見てもらえる＆役に立てるチャンス」だと思いました。
※執筆時点

## 講座作りの準備段階

最初は「事前準備さえ出来ていれば、割とすんなり作れる」と思っていましたが、後に大変な苦労を知ることになります...！

今回はそんな話を赤裸々にお伝えしちゃいます。

### 準備 1：ターゲット層の設定 🔰

プログラミングスクールで講師をやっていると、「初心者向け」と一言で言っても、その「初心者」のレベル感は人によって全然違うことが分かります。

例えば Ruby は書けるけど Rails は触ったことない人もいれば、Rails でアプリは作れるけどテストは全く書いたことない人もいます。
もちろん、Ruby を学んでいても、テストで大事になる「クラス」「メソッド」「インスタンス」など、オブジェクト指向の概念はまだ未学習という方もいます。

結局、 **「RSpec を全く学んでいない初心者」** を主なターゲットにすることにしました。

ただし、Ruby/Rails の知識が不十分な人でも理解できるように、必要な基礎知識も随所で説明する形を取ることにしました。

### 準備 2：カリキュラムの設計 📝

プログラミングスクールで教えていた経験から、初心者がよくつまずくポイントはある程度つかめているかと思います。

例：

- 「アクションとルーティングの関係」がわかりづらい
- 「インスタンス変数とローカル変数の違い」がピンとこない
- 「クラスとメソッド」の関係性が掴めない

これらの基本的な部分を丁寧に説明しつつ、RSpec のテストの話もしっかりカバーする必要がありました。
初心者の方と触れ合う機会が多くて良かったと思ってます！

カリキュラムの構成は本当に何度も練り直しました。

「この順番で説明したら理解しやすいかな」「ここでこの例を出すのはちょっと早いかも」と考えながら、以下のような流れに落ち着きました。

1. RSpec の基本概念
2. 環境構築からじっくり
3. 基本的な構文の説明
4. モデルのテスト
5. コントローラのテスト
6. システムスペック（ブラウザ操作の自動化）

過不足はないか、今でも気になるところではありますが、気軽に動画を追加できるので日々アップデートしていこうと思っています。

### 準備 3：テキスト版カリキュラムの作成

今回、ほぼ全動画に対して **テキスト版のカリキュラム** を付けています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364501/082dbf10-fe6a-528f-21d5-c06e679a3f0e.png)

動画と同じ内容を、テキストベースで読めるようにフォローしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364501/4d8f30dd-9077-5314-27d9-bfb944b6413a.png)

これは、自分自身が数十以上の Udemy 講座を受けたときに、以下のような悩みを持っていたからです。

- 先にざっくり内容を頭に入れておきたい
- コードを書くスピードについていけない
- 後から復習するときに動画を全部見返すと時間がかかる

こういった時に、テキスト版があれば悩みをすべて解決できると思いました。

結果、準備料が爆増して大変だったんですが、妥協できなかったこだわりポイントの一つです。

## 実際の制作で直面した課題

### 課題 1：予想以上の初期投資 💸

最初は「パソコンとマイクがあれば OK でしょ」と思っていたのですが、実際はそうではありませんでした。

最初は Earpods で収録してましたが、やはり音質が気になるので「Blue Yeti X USB マイク」を約 1 万円で購入しました。

また、動画編集ソフトとしては「Wondershare Filmora」を選びました（1 万円弱）。
Adobe Premiere Pro も検討しましたが、買い切りで使える安心感があるのと、直感的に初心者でも使えるということで Filmora の方が自分には合っていると判断しました。

### 課題 2：時間が溶けていく日々 🕰️

予想外だったのは 1 本の動画を作るのにかかる時間です。
10〜20 分の動画を作るのに、事前準備を含めると実は 2〜3 時間くらいかかっています。

台本作り、説明用スライド作成、動作確認、台本修正、実際の収録、編集作業、音声チェック、そして必要なら撮り直し。

特に最初の頃は、言い間違いが多くて「あ、ここ説明が間違ってた」とか「噛んじゃった」などなど、部分的な撮り直しが多く、それがまた編集作業を増やします。

平日は朝に 2〜3 時間、土日は 6〜8 時間ぐらい費やして丸々 1 ヶ月半ぐらいかけていたので、
結果的に講座全体で **200 時間** は余裕で超えていたかと思います。

年内にはリリースしたかったので、なんとか間に合ってホッとしています。

### 課題 3：テキストと動画の整合性 ✅

これが一番の苦労ポイントかもしれません。

動画では実際にコードを書きながら説明するので、どうしてもテキストでの説明とは順序が違うところが出てきます。
ただ、後で復習する時のことを考えると、テキストと動画である程度内容を合わせる必要がありました。

結局、動画用の台本とテキスト版の原稿、この 2 つを別々に用意して、それぞれの特性に合わせた説明の仕方を考えました。

二度手間ではありましたが、分かりやすさのためなら必要経費だと思っています。

## サンプルコード作成のこだわり

### こだわり 1：現場を意識したコード設計 💻

サンプルコードを作る時に、特に意識したのは「実際の現場でありそうな例」を使うことです。

ユーザー認証や記事の管理、商品の在庫管理など、実務でよく目にする機能を題材にしました。

ただし、初心者には難しすぎる例は避け、最初は本当にシンプルな例から始めて、徐々に機能を追加していく形を取りました。

### こだわり 2：リファクタリングの過程もあえて見せる ♻️

これは結構こだわったポイントです。

最初から「きれいなコード」を見せるんじゃなくて、まず「そこそこ動くけど、イマイチなコード」を書いて、その問題点を説明し、リファクタリングの過程を見せるようにしました。

なぜなら、実際の現場でも同じようなプロセスを踏むからです。
最初から完璧なコードを書ける人なんていません。

むしろ、既存のコードを少しずつ良くしていく、その過程を見せた方が実践的だと考えました。

今思うと、メインテーマの RSpec よりも、こういったコード品質の説明に一番熱が入っていたかもしれません 😇

## 講座制作から得た学び

### 学び 1：詳細度と冗長さのバランス 🤸

RSpec の全機能を説明しようとすると、初心者には情報が多すぎて消化不良になります。
かといって、基本的なことだけ説明すると、中級者には物足りない。

このバランスを取るのが本当に難しかったです。

結果的に、基本的な機能は丁寧にじっくり説明し、応用的な機能は「こういうのもありますよ」程度の紹介にとどめ、特に現場でよく使う機能に焦点を当てることにしました。

また、じっくり説明している分、RSpec 経験者の方には冗長に感じる部分もあるかもしれません。

これはターゲットを絞った結果なのでやむを得ないですが、永遠の課題だと思います。

### 学び 2：動画講座ならではの教え方がある 📽️

プログラミングスクールで教えていた時は、生徒の反応を見ながら説明を調整できました。
ただ、動画講座は一方通行です。
受講者の「分からない」というサインを即座にキャッチできません。

そのため、説明はとにかく丁寧にし、時には説明スライドも使いつつ、つまずきそうなポイントは先回りして説明するようにしました。
実際のコーディングの様子も見せることで、より理解しやすい内容を目指しました。

もちろん 100%カバーできるわけはないので、いただく質問に合わせて動画はガンガン修正していこうと思っています。

### 学び 3：独学で苦労した経験があってよかった 📖

講座を作りながら、自分が独学で苦労した経験が本当に役立ちました。

「ここ、初見の時に絶対引っかかるよね」「この概念、最初は本当に分かりづらかったな」、などなど。

そういう経験があったからこそ、丁寧に説明すべきポイントが分かったように思います。

## 最後に

ここまで長々と書いてきましたが、講座を作ってみて本当に良かったです。

確かに大変でしたが、「テストを書きたいけど、どう始めていいか分からない」という方の助けになれればと思っています。

全ての動画にテキスト版をつけて、Ruby/Rails の基礎知識も確認しながら進められる構成にしました。プログラミングスクールで培った、「初心者でも分かる」説明を心がけています。

## 期間限定で 86%OFF クーポン配布してます！！！！！！！！！！！！！！！！

もし興味を持っていただけましたら、以下から講座をチェックしてみてください。
個人ブログからであれば、10,800 円のところを 1,500 円（86%OFF）で学習いただけます 🙇

https://musclecoding.com/rspec-rails-udemy-coupon/

駆け出しエンジニアの皆さんの学習の助けになれれば幸いです。

最後まで読んでいただき、ありがとうございました。