見出し画像

制作裏話を公開!エンジニア実務を体験できる「Progate Path」公開までの道のりとは。

Progateは2022年11月9日、「Progate Path」の提供を開始しました。エンジニアの実務を体験しながら学べる、今までにないプログラミング学習サービスです。

Progateのミッション「Be the gate, be the path.」のとおり、プログラミング学習の入り口が「Progate」、そして、その先の道のりとなるように「Progate Path」は長年の構想と開発を経て誕生しました。

「Progate Path」がどのように生まれたのか、「Progate Path」開発チームに聞きました。
開発裏話を対談形式で公開いたします!

加藤 將倫(かとう まさのり)写真左
小中学校時代をオーストラリアのパースで過ごす。東京大学工学部在学中の2014年7月にオンラインプログラミング学習サービスのProgateを創業。『Forbes 30 Under 30 ASIA 2018 (Forbesが選ぶアジアを代表する30才未満の30人)』に選出。

島津 真人(しまづ まこと)写真中央
情報系の大学院を卒業後、GoogleのChromeチームでSoftware Engineerとして5年間勤務。テックリードとして Service Worker の実装をする傍ら、STEP教育コースの講師なども行っていた。 2021年4月より Progate に入社し、現在はグループリード兼テックリードとして新規サービス「Progate Path」 の企画・開発を率いたのち、2023年4月にProgate CTOに就任。

福井 達也(ふくい たつや)写真右
アドテクノロジー関連企業にてエンジニアとしてシステムの開発・保守・運用に携わる。2019年4月にProgateに入社し、「Progate」のコンテンツや「Progate Journey」の制作に携わる。現在は「Progate Path」のPdMとコンテンツリードを担当し、企画開発を進めている。

「Progate」がスタートから順番に行う学習で、「Progate Path」はゴールから逆算して行う学習。

ー「Progate Path」がついに公開されましたね。

加藤:Progateには創業当初から「初心者から創れる人を生み出す」という理念があります。「創れる人」とは、プログラミングで世の中に価値を生み出せる人のこと。

でも、現状だと「Progate」だけで創れる人への道が完璧につながっているとは言えません。「Progateで学んだ後に何を学べばいいのかわからない」という声も多い。従来の「Progate」のように環境が用意されていて指示がある状態で誰でもクリアできる、挫折させない学習に加えて、別のアプローチが必要なのではないかと思いました。

「Progate」の延長にあるプロダクトではなく、全く別のもの。それが「Progate Path」です。この構想を初めてみんなに話したのが2020年6月頃で、「Progate Path」チームを立ち上げて始動したのが2021年4月。ようやく公開できました。

島津:公開まで、本当に大変でした。僕たちはすでにエンジニアとして様々なことを乗り越えてしまっているから、ユーザーさんがどういうことを勉強したいのか、僕たちはどういうことを教えればいいのか、それがわからなくて。想像しながらピースを埋めている感覚。公開した今も手探りです。

加藤:僕は最初の構想の頃から「Progate Path」に関わって2年以上経つのでようやくという感覚が強いですが、公開した今はめちゃくちゃ良いものができたと思っています。これまでの「Progate」って挫折しない、誰もが使えるサービスを意識していました。学習のスタート地点があって、順番に学習していくイメージ。

「Progate Path」はその逆のアプローチで、到達してほしいレベルから逆算して作っています。ゴールを目指して進んでいく。そういう意味で、作ったものには自信があるけど、尖りすぎていないか、学習対象が絞られすぎていないか、今はユーザーの皆さんの反応にドキドキしています。正しいアプローチだとは思ってるけど、不安もある。

福井:「Progate Path」は「Progate」との違いをどう出すのか、設定も難しかったですね。簡単にしすぎると「Progate」でいいじゃんとなるし。チームで手探りで進んでいきました。


最初に生まれたのが、期間限定チャレンジコース「Quest」だった。
エンジニアの「実務感」ってなんだろう?

福井:そんな中で生まれたのが、期間限定のチャレンジコース「Quest」でした。「入り口のその先となる学習教材」という構想はあるものの、理想的な形がわからないし、見えない。だからこそ、作ってみるしかなかった。

まずはアルゴリズムやバグの修正を学べる「Quest」を作ってみました。出来上がって、体験そのものはいいねと話し、これを土台に「Progate Path」の制作に着手し始めました。Quest制作中にもボツネタはたくさんありましたよね。OSSを題材にしたものとか。

Questは「Progate Path」公開に伴い、2022年11月末に公開終了

島津:実務のような体験、実務感のある学習という定義が大きな壁でしたね。果たしてそれってどんなものなのか。僕たちは最初、実務で使うコーディングを学習してもらおうとしていました。それでOSSの題材を作ってやってみたら、学習が面白くない。ただ面倒くさいだけの教材になりました。

福井:あの時は現実で運用されているコードを題材にして学べばいいと思っていたんですよね。でも、それだけでは足りないのではないか、定義が間違っているのではないか、となって。実際にエンジニアが実務でやってることからブレイクダウンしていくと、現実で運用されているコードかどうかは本質ではないと気付きました。実務に近いワークフローやタスクのシチュエーションを設定できれば実務感のある学習ができそうだなと。定義の整理が始まってから、「Progate Path」の軸が固まってきましたね。

島津:そう。自分で考えないと何をやればいいのかわからない状態というか、自分の手で進めていくのが実務感だと気付いたんですよね。

「Progate Path」の形が見えてきた。
方向性は決まったけど、学習難易度の設定に難航。

加藤:そこから現在の「Progate Path」の形に近いものを作っていきました。ある程度形になったのでユーザーインタビューを実施してみようと、初めてチーム外の人に触ってもらうことにしたんです。社内外あわせて10名くらいの方に、実際に学習する様子を見せてもらいました。

島津:そしたら、OSの不具合があったり、何故か学習のジャッジが反映されなかったりして…。

加藤:ジャッジが反映されないんだったら、ユーザーインタビューの意味ないじゃん!って焦りました。これは困るぞと。祈るような気持ちで見ていました。

島津:あの後、必死でバグを探して修正したんですよね(笑)。

加藤:トラブルはありましたけど、コンテンツを考えていく上で、ユーザーインタビューを実施したのはとても良かったです。

福井:ユーザーインタビューでは事前に聞きたいことをリストにしておくんですが、学習タスクについて聞きたいと思うと、CLIのインストールについて聞けなかったり。だからインタビューをする前にユーザーさんの進捗をみて、ユーザーさんごとにインタビューの目的を変えて臨機応変に対応していました。ユーザーさんの声は本当に参考になりましたね。

島津:ユーザーデータを見ながら、そのデータと突き合わせて答え合わせしてる感じでした。インタビューでユーザーさんに対する解像度はあがったと思います。ローカルでやる学習体験をProgateとしてはじめて出すので、CLIやNode.jsのインストールに対するハードルはどれくらいなのか、学習の難易度についてどう感じるのか、とにかく色々な情報が欲しかったんです。

福井:僕らが必要な学習項目を考えると難易度が上がってしまいがち。学習する方はこれから何を学ぶのか知らないから、僕らが学習するものを決めれば良いと思っていたんですけど、難しすぎても簡単すぎてもダメでした。最初は「これくらいなら大丈夫だろう」と進めていたんです。でも難しすぎた。

島津:従来の「Progate」の上位レベルの人たちにもやってもらったんですけど、かなり学習に苦しんでいました。当時はアドバイス機能もなかったし、クリアするまでにすごく時間がかかることがわかったんです。

福井:ユーザーインタビューの実施で「難しい」の要因もわかりました。メニューに気付いていないとか、文字数が多すぎて読み飛ばしてしまっていたり、公式ドキュメントに外部リンクで飛ばしていたんだけど、リンク先のドキュメントが難しくて挫折してしまっていたり。学習ログだけを見てもわからなかったことがわかってきたんです。

方向性やコンセプトは良かったけど、難易度の設定が難しかったんですよね。前提知識をつけるコンテンツが必要だと気付いて、難易度の高い学習に届くような中間レベルの学習コンテンツを作ることにしました。

島津:何をどこまでサポートするのか、どこまでを意図しているのか考えるのが僕たちの仕事。ユーザーさんの学習体験を見ていても、そういう悩み方するんだ、いい題材だねってなるケースもあるし、そういう悩み方は時間がもったいないね、となるケースもある。僕たちエンジニアがユーザーさんの学習の悩みに対して「わかる!あるある!」ってなるのが成功です。つらすぎて挫折しないように、ゴールまで粘れるようにしてあげたいけど、サポートしすぎてもいけない。その塩梅は難しいですね。

福井:一対一だったら臨機応変にアドバイスしてあげられるけど、「Progate Path」は固定のアドバイスだから難しさがあります。アドバイスに不足がないか、内容はこれで良いのか、アドバイスについてもチームで議論して作っています。

エンジニアの実務はコーディングだけじゃない。
仮説、設計、実装、評価の癖をつけてほしい。

ー紆余曲折を経て、現在の「Progate Path」公開に至ったんですね。

加藤:Quest、ユーザーインタビュー、α版、β版と提供して、検証と改善を繰り返してきました。α版は情報系でプログラミングを学んでいる学生さんたちに声をかけて使ってもらったのでほぼ100%取り組んでもらえたんですが、β版は一般応募にしたところ、なかなか使ってもらえなくて。

福井:β版は応募して当選した方のうち、1/3くらいしか使ってもらえませんでしたね。さらにそこから60%くらいがProgateCLIをインストールのところで離脱して、学習タスクに進むと、さらにどんどん離脱していって…。

島津:そもそも学習の内容が難しいし、本腰を入れてやらなくちゃいけないので、始めるまで腰がちょっと重いんですよね。

β版は全タスクをクリアした率が1%でした。とにかくクリアしてもらえない。クリアに到達する道のりが険しすぎることがわかったので、アドバイスや解説を加えました。公開した今も改善の余地はまだまだある。だからこそ、ユーザーの皆さんからのフィードバックは貴重ですね。ありがたく思っています。

ー「Progate Path」はプログラミング学習というより、エンジニアになるための学習というイメージがあります。どのようなことを意識して作っていますか?

島津:僕は実務感や、ゴールに到達するまでの自由度を意識しています。

福井:「Progate Path」はユーザーの皆さんに「創れる人」になってほしいと思って作っています。エンジニアとして就職することがゴールではなく、実務でプロダクトを改善できたり、エンジニアとして価値を生み出せる人になってほしい。

島津:コピペしてほしいわけじゃないというメッセージは強く持っています。なんでだろう?と考えて実行する特訓をしてほしい。ここに対するイメージは、チームでずれたことはありません。

福井:最初の頃はアドバイスも答えもなく、検索ワードを教えるだけでしたからね。「ググれ!以上!」みたいな。スパルタでした(笑)。軸になっているコンセプトは変わってないけど、今は難易度を調整して少し優しくなっています。

島津:検索する癖をつけてほしいんですよね。ゴールに対して、どうアプローチをするべきか自分で吟味しなくてはいけません。答えは一つではない。エンジニアとして活躍していくためには、自分で書いてみて、それで良かったのか考える癖をつけることが必要です。「Progate Path」でそれを学べる状態にしたいですね。それで将来的には「Progate Path」がなくても、自分の力でできるようになってほしい。

福井:学習項目からカリキュラムを作ると、コードの書き方や文法、ツールの作り方になってしまいます。それでは僕たちの定義から外れてしまうので、「Progate Path」はエンジニアのワークフローから逆算して作っています。仕事だと仕様をもらうところから始まって、わからないところがあれば、どうやって仕様を満たすべきか、考えたり検索する必要があります。

島津:僕たちはエンジニアとして働いた時のフローとして、仮説をたてる、設計をする、実装をする、評価する、この4ステップが大事だと思っています。プログラミングというとコーディングすること、実装することにフォーカスが当たりがちですが、物を作って終わりだと仕事として成り立ちません。

福井:僕たちが「Progate Path」に絶対に入れたかったのは、コードリーディングとデバッグと検索。書籍だけでは学びにくい、実務の部分です。

島津:でも作ってみて、教材になりにくい理由がわかりました…。

福井:難しい(笑)。教材として作ることがかなり難しいんですよね。

島津:実務の部分って、体系化した知識にしにくいんですよね。

福井:上手く検索できたかなんて判定できないですからね。判定できなくても、上手くできるように促すコンテンツを意識しています。最初からバグを仕込めばデバッグはせざるを得ないし。今も試行錯誤中です。

加藤:どこまでいっても、結局はコンテンツの軸が大事ですよね。常にチームで認識をあわせないと、みんな違う方向に行ってしまったりしますから。

まだ課題は多い。改善を繰り返して「Progate Path」を生涯学べるコンテンツに。


ー「Progate Path」の今後の展望について聞かせてください。

福井:目先のことで言うと、今よりも「Progate Path」を始めやすいものにしていきたいと思っています。

島津:プレスリリースや公式サイトを見て面白そうだと始めてくれる人は多いと思うんです。でも学習タスクは簡単じゃないので、コツコツ継続してクリアしてもらえるようにしていきたいですね。継続の癖や努力を学習フローに組み込むことには、まだ課題があります。

福井:「Progate Path」で学び、理想のキャリアに近づけるようになってほしいですね。学習意欲が上がる、気持ちが盛り上がるコンテンツにしていきたいと思っています。チャレンジタスクを解けるようになることで、実際にエンジニアとして働いていける自信を持ってもらえるように。

島津:現在はありがたいことに、プログラミングを学び始める初学者に「Progate」を勧めることが主流になっています。それと同じように、プログラミングを勉強した人にエンジニアになるにはどうしたらいいか聞かれたら「Progate Path」を勧めてもらえるようにしていきたいですね。

長期的なところでいうと、エンジニアとしてスキルアップしたい人が「Progate Path」をやれば学びになるような学習コンテンツを作り、みんなが学びに来るようなプラットフォームにしていきたいと思っています。エンジニアのための学習プラットフォームになっていったら面白いなと。

ー「Progate Path」を作る上で、個人的に持っている夢や目標を教えてください。

福井:僕はプログラミングを教えたい人、エンジニア教育をしたい人っていると思うんです。そういった人は色んなサービスに散らばっていたり、教える場がなかったりします。そういう人が「Progate Path」に集まって、みんなで良いコンテンツを作って、教える側も教わる側も、みんながハッピーになれる場を作っていきたい。そうすれば、良い世界を創れると思うんです。教育者も巻き込んで、「Progate Path」を良いプロダクトにしていきたいですね。生涯学び続けられるコンテンツにしていきたい。

島津:僕は、学習効率が良い教材を届けることが世界にとってプラスになると信じています。100万人に良い学習コンテンツを届けて、みんなが10%ずつスキルが上がれば、それだけでも生産性の総量は10万人分も増えますよね。良いコンテンツを作ることで、世界に貢献していけたらいいなと思っています。

加藤:僕はDay1から掲げている「創れる人を生み出す」という夢自体は変わっていなくて、Progateに対するユーザーさんの印象をもっとアップデートしていきたいという野望があります。Progateを使ってくれた人と会うと、「Progateをきっかけにエンジニアになりました」、「Progateから始めてこういうプロダクト作りました」などと言ってもらえることはあるんですが、現状だと「きっかけ」のような言葉が必ず入ってくるのが悔しいんです。きっかけを提供できているだけでも嬉しくはあるんですが、やっぱり「Progateでエンジニアになりました」と言ってもらえるようなプロダクトになるために、もっともっと進化させていきたいです。

本気でエンジニアを目指すあなたに送る、最新プログラミング学習「Progate Path」

Progateで一緒に働く仲間も募集しています!


この記事が気に入ったらサポートをしてみませんか?