Progate Path コンテンツ制作の話
この記事は、Progate Path コミュニティ Advent Calendar 2023 の20日目の記事です。
シリーズ 2 も公開中ですので、そちらもご覧ください!
はじめに
皆さん、こんにちは。Progate Path チームのコンテンツプランナーの静(しずか)です。
Progate Path はリリースから 1 年以上が経ち、タスクの数も 80 を超えました(2023/12/20現在)。この記事では、Progate Path のコンテンツ制作について、普段の取り組みや課題感/展望について紹介します。
※ Progate Path のサービスの変遷については、Progate Path リリース1周年の棚卸しと今後の話 をご覧ください。
コンテンツ制作の目的
Progate Path は、実務につながる経験を積めるプログラミング学習サービスです。
Progate Path のサービスの大きな方向性として、現在では特に「エンジニアを志す学生」にフォーカスし、以下の 2 つの目的の達成を目指しています。
- インターンや就職先で価値を発揮するために必要な最低限の技術スタックを身につけられること
- 実際にインターンや新卒採用につながること
そのため、コンテンツ制作の大目的もこれらを満たせるものでなくてはなりません。
コンテンツ制作のスコープでは、特に「インターンや就職先で価値を発揮するために必要な最低限の技術スタックを身につけられること」の意識して業務を進めています。
コンテンツ制作の流れ
タスクのスコープを定義する
ユーザーに「インターンや就職先で価値を発揮するために必要な最低限の技術スタックを身につけてもらう」ためには、まず「最低限の技術スタック」を定義する必要があります。
Progate Path では、求人ごとにどのような技術スタックが必要なのかを調査し、それぞれの技術要素ごとに 0 - 3 のレベル感を設定しています。
こうすることで、求人ごとに必要な技術スタックを可視化できます。
また、それぞれのレベル感にあったタスクが不足している場合には、新たにタスクを制作する必要があることもわかります。
このように不足しているタスクを洗い出すことで、タスクのスコープ(何を学んでもらう必要があるか)を定義してきます。
タスクを制作する
タスクを構成する要素としては大きく分けて以下の 2 つがあります。
- repo
- ユーザーがタスクを進めるために必要なコードベース
- task
- ユーザーがタスクを進めるために必要なドキュメント。タスクの概要、アドバイス、解説など
多くの場合、repo の制作から着手します。というのも、具体的にどのようなコードの実装を想定しているかを明確にすることで、最初に定めたスコープとすり合わせを行うことができるからです。
スコープ外の知識が必要になる場合には repo の内容を調整したり、そもそも前提知識を伝える別のタスクの制作を検討します。
repo にも大きく分けて以下の 2 つの要素があります。
- お題コード
- ユーザーが実際に変更を加えるコード
- テスト
- タスクの要件を満たしているかをチェックするコード
お題コードが作成できても、テストが作成できていなければタスクとして成立しません。そのため、repo の制作にはテストの制作も含まれます。
一通り repo が作成できたら、タスクのスコープなどと照らし合わせながらレビューを行い、問題がなければ task の制作に移ります。
task の制作には、以下のようなステップがあります。
- 解説の作成
- アドバイスの作成
- その他の作成(概要、セットアップ、チェックアイテムなど)
task の制作は解説の作成から始めます。
解説のメインの内容は「タスクをクリアするまでの思考の流れ」です。どのような仮説/検証のサイクルを回して開発を行うのかをシミュレートしたものを書きます。こうすることで実際の開発に通じる思考方法を学ぶことができます。
また、解説を最初に書くのには、以下のようなメリットがあります。
- タスクのクリアに必要な技術要素を洗い出せる
- スコープ外の技術要素があればこの段階で洗い出すことができる
- アドバイスの作成に必要な知識を整理できる
- タスクを解く上での思考の流れを解説に落とし込むことで、どのようなアドバイスが必要かを明確にできる
レビューを通して解説が完成したら、アドバイスを作成します。
アドバイスには、タスクを解く上でのヒントや、タスクを解く上でのポイントを書きます。順序通りにアドバイスを読めば、タスクをクリアすることができるようにします。ユーザーはアドバイスを読みながらタスクを進めることで、自分で考えながらタスクをクリアすることができます。
このとき、アドバイスの内容は解説から派生したものであるべきです。解説とアドバイスの内容が食い違っていると、ユーザーが混乱してしまう可能性があります。
最後に、その他の項目を埋めてタスクの制作を完了します。実際には、これらの内容をサービスに反映させる入稿作業もありますが、ここでは割愛します。
課題感と展望
Progate Path のコンテンツについては、まだまだ以下のような点で改善の余地があると考えています。
- 表現力
- 充実度
- 難易度の設定
- 手軽さ
充実度
制作においては「インターンや就職先で価値を発揮するために必要な最低限の技術スタックを身につけられること」を念頭においていますが、現状ではまだまだ充実度が足りていないと感じています。
というのも、求人ごとに必要な技術スタックを調査してみるとやはり業界や企業によって求められるものの幅が広く、それらをすべてカバーするにはまだまだタスクが不足していると感じています。
例えば、人工知能 / 強化学習やモバイルアプリ開発などの分野については、まだまだタスクが不足していると感じており、今後はこういった分野についてもタスクを制作していきたいと考えています。
表現力
現在のコンテンツには以下のような点で表現力に欠けていると感じています。
説明と指示の見分けがつきにくい
タスクによっては、文章中の指示に従って実装をしてもらうものがあります。しかし、現在のコンテンツでは説明と指示の見分けがつきにくいため、ユーザーが混乱してしまう可能性があります。
文章の重要度がわかりにくい
文章の中には注意点や、補足といった立ち位置のものがあります。
注意点の中にも、必ず理解してほしいこと / あまり重要ではないことといったものがあります。
また、補足の中にも、わかったほうがいいけどわからなくても大丈夫なこと / わかってもらいたいことといったものがあります。
現在では以下のように ※
を使って注意点を表現したり、アコーディオンのような UI を使って補足を表現したりしていますが、これらの表現は文章の重要度を表現するには十分でないと感じています。
remark というプラグインを使って Markdown のドキュメントを表示していますが、このプラグインを使って文章の重要度を表現する方法などを検討しています。
難易度の設定
特に Progate Path のリリース初期は限られたユーザーに向けて難易度の高いタスクを制作していたため、挫折しやすくモチベーションを維持しづらいという問題がありました。
現在では、難易度の高いタスクを制作する際には、前提となる知識を身につけるためのタスクを制作してステップバイステップで学習できるような体験を提供するようにしています。
しかし、まだまだタスク感の難易度のギャップが大きい箇所が残っていることや、そもそも学習を継続するためにちょうどいい難易度の設定がどこなのかを明確にできていないことなどが課題として残っています。
これらについては、ユーザーの学習の進捗や挫折の傾向を分析することで改善していきたいと考えています。
手軽さ
Progate Path は実務感を重視しているので、Progate のように仮想の開発環境を用意するのではなく、実際にソースコードをダウンロードしてエディタ上でコードを編集してもらうような体験を提供しています。
ただし、これがネックになるケースもあります。
例えば、指示に従ってコードを書いてもらうようなタスクだとエディタと Progate Path を何往復もしながら作業を進める必要があり、ユーザーの負担になってしまいます。
また、エディタ上でコードを書くことに慣れていないユーザーにとっては、エディタ上でコードを書くこと自体がネックになってしまうこともあります。
こうした点を踏まえて、タスクの種類によっては Progate Path のサービス上で直接ソースコードを編集できるような体験が導入できないかを検討しています。
おわりに
今回は Progate Path のコンテンツ制作について紹介しました。
Progate Path は多くの人が実務につながる経験を積み、実務につながることを目指しています。実際に Progate Path を通してインターンに参加された方もいらっしゃり、そのような方の声を聞くことができるのはとても嬉しいです。こういった人を一人でも多く輩出できるように、コンテンツ制作を進めていきたいと考えています。