# 2-1 教材のテーマを考える

優れた教材を作成する最初のステップは、**この教材を買うことによって学習者は何ができるようになるかという学習者への価値を考える**を考えることです。まずは、以下の4つの項目を考えて、教材のテーマを固めていきます。

* どの技術を中心に教えるか（技術）
* 今回作成する教材の対象者はどういった人か（対象読者）
* 今回執筆する教材が終わったら何ができるようになるか（学べること）
* どのような構成・ストーリーで教えるか（実装物）

項目を一つずつ確認します。

### どの技術を中心に教えるか（技術）

プログラミングを教える上で全ての技術を同時に教えるは大変です。なので、技術分野を絞ってプログラミングを教えることが非常に大切です。 例えば、Ruby on Railsを使ったWebアプリケーション開発を教えるとします。Ruby on Railsの開発では以下のような知識が必要になります。

* HTML / CSS
* JavaScript
* Ruby on Rails
* SQL
* Git

これら全ての技術を一気に学習するのは非常に難しいです。なので、一番教えたい技術分野 に焦点を当てる必要があります。例えば Ruby on Rails を中心に教えたい場合、見た目を整 える HTML / CSS に関しては、あまり力を入れないカリキュラム構成にし、Ruby や Rails に 関してはみっちり教える構成にします。 このように教えたいことを明確にすることで、学習者も1つの分野に集中して取り組む ことができます。

ちなみにTechpitで学習者からニーズのある技術分野は以下になります。

* PHP / Laravel
* Ruby / Ruby on Rails
* JavaScript / TypeScript
* React.js / Next.js
* Vue.js / Nuxt.js
* AWS

### 今回作成する教材の対象者はどういった人か（対象読者）

技術を決めたら、次は教材のターゲットとなる学習者を決めます。「プログラミングの文法を身に付けたい人」を想定しているのか、もしくは「プロダクトの作り方を学びたい人」を想定しているのか。その対象者に応じて教材の内容も変わりますし、解説が必要な量も変わります。誰を対象に教材を作成するかを決めることは非常に重要です。

ちなみにTechpitでは、プログラミング学習歴で言うと、3ヶ月\~半年くらいのユーザーが多くいます。なので**まだエンジニアとして働いている方は少ない**です。

こういったユーザーの課題感としては、「基本的なプログラミングの文法を学んだけど、実際にプロダクトを作ろうとしたときに、どうしたらいいか分からない」や「エラーに遭遇したときに、解決できない・ググりかたが分からない」といった声を聞きます。

なので**エンジニア向けの内容よりは、エンジニアになるために必要なスキルや機能実装・設計方法といったエンジニアを目指している人を対象にした教材の方がニーズがあります。**

### **今回執筆する教材が終わったら何ができるようになるか（学べること）**

\*\*対象者を踏まえて、自分が執筆する教材を終えた人がどのような状態になっていて欲しいのかを設定すると、自分の想いが伝わりやすい技術コンテンツを作成できます。\*\*このゴールを考えることが教材作成において非常に重要です。

ゴールを明確にし、そのゴールを達成できるように教材を執筆することで、学習者が満足できる教材を作成できます。

### どのような構成・ストーリーで教えるか（実装物）

技術・対象者・学べることを考えたら、最後にそれらを教えるためにどういった構成・ストーリーにするか実装物を考えます。

実装物に関しては、以下のシートにある`プロダクト一覧`及び`機能一覧`を参考にすると考えやすいです。このシートは、Google検索にてプログラミング関連でよく検索されているワードになり、学習者の方が「実装したい」と考えているものになります。

{% embed url="https://docs.google.com/spreadsheets/d/1szsbFxcQ-PdClydnjHeJbzLplJgXinQUDzTMfv7sK3U/edit#gid=0" %}

### なぜ、実装物を考えることが大事なのか？

「プログラミングを教える上で実装物はなんでもいいのではないか？」・「ToDoアプリでいいのではないか」と思うこともあるでしょう。しかし、教材を作成する上で実装物を考えることは非常に重要なステップになります。理由は2つあります。

#### 1. 自分が知っているプロダクトや機能の実装の方が取り組みやすい

自分が知っているプロダクトや機能の場合、どういった機能があるのか、完成の状態はどういった感じなのかイメージができます。つまり学習を始める前に自分が何をするのか全体像を掴むことができるため、取り組みやすくなります。

#### 2. ToDoアプリは既に世の中に沢山あり、差別化できない

ToDoアプリを開発することは、機能実装の基礎を学ぶ上では優れた方法です。ただ、ToDoアプリの開発方法のコンテンツや記事は既に世の中に沢山あり、差別化できません。

決してToDoアプリがよくないということではないのですが、実装物をToDoアプリにした際に、他のコンテンツと比べて差別化できることを考えましょう。

### テーマの例

Techpitでリリースしている「[【Ruby on Rails 5】Instagram風簡易SNSアプリを作ってみよう！](https://www.techpit.jp/courses/2)」という教材では以下のようにテーマを設定しています。

#### どの技術を中心に教えるか（技術）

* Ruby on Rails

#### 今回作成する教材の対象者はどういった人か（対象読者）

* ProgateなどのRailsの教材を見ながら簡単なサンプルアプリケーションを作ったこと がある方
* Ruby は学んだことがあるけど、Rails でWebアプリケーションを開発したことがない方
* Ruby on Railsの開発の大まかな流れを把握したい方

**この教材を終えたら学習者はどのような状態になっているか（学べること）**

* MVC を理解している状態
* Rails で簡単な機能実装ができるようになる

#### どのような構成・ストーリーで教えるか（実装物）

* Instagram風SNSアプリケーション
* 機能実装
  * 認証機能
  * 投稿機能
  * 画像アップロード機能
  * いいね機能
  * コメント機能

このように教材のテーマを考えることが教材作成の最初のステップになります。
