見出し画像

実務に即した学び通じて、課題を解決できるエンジニアへ。新規サービス「Progate Path」が描くプログラミング学習の展望

先日Progateは、実務に近い学びを得られる最新プログラミング学習サービス「Progate Path」のβ版を公開した。「Progate Path」の学習では演習内容に沿ってユーザー自身が環境構築を行い、実務と同じようにローカル環境でコーディングを行う。また、演習内容は実務で直面するような具体的な課題を用意しており、エンジニアになるために必要な経験を積むことができる。

CEOの加藤と「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の企画・開発を進めている。


Pathが目指すのは「プロダクションレベルのプロダクトを開発・改良する能力を持った人」

ー​​「Progate Path」(以下、Path)では、学習のゴールを「創れる人」とし、さらにその定義を「プロダクションレベルのプロダクトを開発・改良する能力を持った人」としています。Path開発の経緯や、定義の背景を教えてください。

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

僕らは今まで、初心者が挫折しないように環境構築を不要にするなど、1個ずつハードルを下げていくアプローチを取ってきました。それが既存のオンライン学習サービス「Progate」です。

ただ、​プログラミング学習の入り口は提供できたものの、入り口のその先を提供できていないことが課題でした。Progateでの学びをきっかけに実際にエンジニアとして働いている人や、プロダクトを作って起業した人が生まれるなど嬉しい報告がある一方、「Progateを学んだ後に何を学べばいいかわからない」「Progateだけではエンジニアになれない」という声を真摯に受け止めているような状況が続いていました。

どうしたらより「創れる人」を生み出せるのか。そのためには、「創れる人」をより解像度高く定義する必要があるなと思ったんです。

ーそれが、「プロダクションレベルのプロダクトを開発・改良する能力を持った人」なんですね。

加藤:プログラミングの力で世の中に価値を生み出せる人には、色々なタイプがいると思っていて。一エンジニアとして既にあるプロダクトを改良する人、スタートアップ的に0からプロトタイプを作る人、また少し間接的になりますが、プロジェクトを進行する上でプログラミングの知識を必要としている人など…。

その中で僕らのVisionである「誰もがプログラミングで可能性を広げられる世界」の実現に近く、かつ、大多数なのは、既にあるプロダクションレベルのプロダクトを開発・改良する人だなと。

そういった人を増やしていくために、エンジニアになりたいけれど、実務的な経験が足りていないところにギャップを感じている人の課題を解決していきたいと思い、実務に近い学びを得られるプロダクトを作ろうとPathの開発に取り組むことにしました。

ー島津さんは約1年前にGoogleを退職し、Progateにジョインされましたが、元々プログラミング教育においてどのような課題感を持っていましたか?

島津:Googleにいた頃、エンジニアリングワークの傍ら、STEP教育コースというプログラムでアルゴリズムやデータ構造を始めとするソフトウェア開発の基本的な知識を授業で教えていたんですね。ただ、そのコースに入るための選抜テストを作る中で、それにギリギリ受からなかったような人がたくさんいることに気づき、またそのような人たちに代わりにおすすめできるようなちょうど良い学習コンテンツがあまりないな、という課題感をずっと持っていました。

また、そういう人におすすめできるものってどんなコンテンツなんだろうって考えたときに、実際に「価値のあるものを創る」というプログラミングにおいて最も面白い経験をできるようなレベルまで、体系だった学習を一貫して多くの人に提供できるようなサービスなのかなと思って。そこに携われたらなと思っていました。

そんな時、マサさん(加藤)にたまたま声をかけてもらって。当時は創れる人を生み出すためのアプローチがまだふわっとしていたんですが、面白そうだと思ってPathチームに入れさせてもらいました。


難易度の高いプロダクトだからこそ、議論に時間をかけた

ーアプローチが少しフワッとしていたということですが、Pathチームに入ってから具体的なアプローチ方法をどのように詰めていったんですか?

島津:そうですね。メンバーそれぞれが「こういう風に教えたい」「この程度まで教えたい」という考えを持っているので、まずはそのあたりを言語化していきました。

Pathのコアは“実務感”なんですが、最初はそれがあまり分かってなかったんですよね。例えばアルゴリズムとかコードを書くとか、ピンポイントで入れたい項目はリストアップできたんですが、演習に落とし込むのが全然うまくいかなくて。

途中で「僕たちがやりたいのは、手取り足取り教えるんじゃなくて、学び取る力をつけてもらうことだよね」というのが分かってきて。つまり、実務感というのは、自由度の高い中で自分で手を動かして試行錯誤する、その一連の流れの中で感じられる感覚だと。それを演習に盛り込んでいくべきなんじゃないか、という結論になったんです。そこから演習作りが進んで、β版リリースに至りました。

ー話し合いをする中で、意見が割れた時はどのように合意形成を図っていったんですか?

加藤:皆それぞれ考え方がありつつも、Pathチームの良かったところは、「創れる人」をちゃんと要素分解した点だと思っていて。僕らが現状Pathで目指している「創れる人」は、1年後にこういう状態になっている人で、その人は与えられた課題を解くときに、こういう順番で物事を考えそうだよね…というようにブレイクダウンしていきました。

コンテンツを早くリリースしたいという気持ちもありつつ、粘り強く何回もブレイクダウンしていったのは、良いやり方でしたね。

島津:大変でしたが、だからこそコンテンツを作る際に「この演習だと、どのユーザー状態のどの部分の経験を満たせるんだっけ?」という話もできたし、それを通じて、現状のPathで目指してる最終イメージが徐々に擦り合っていきました。

ー具体的にはどのような議論が交わされたんですか?

島津:例えば、プロダクト開発は一般に大きく分けて「調査」「設計」「実装」「評価」の4つのフェーズがあると僕は考えてるんですが、Pathが1年後のユーザーイメージとして目標とするスキルのレベル感は「実装」をカバーするようなものだよねと。

じゃあもう一歩具体的にそのレベル感をどう定義しようか?ということで、実装タスクを行なう状況を考えてみると、ジュニアエンジニアは、よりシニアなエンジニアが行った設計を理解し、それを実装し、最終的に与えられた設計どおりに実装が行えたかを評価するといったワークフローを行っているという言語化を行い、イメージがメンバーで擦り合っていきました。

最終的にはそれを踏まえると「概ねジュニアエンジニアの入り口レベル=1年程度Pathを行ったユーザーのレベル」になりそうだね、みたいな議論をしました。

実際の議論で使われた図

β版で感じた兆しと、見えてきたハードル

ーβ版のリリースについて、SNSでも多くのコメントが寄せられていました。SNSのコメントやクローズドβの反応含め、周囲の反応はどうでしたか?


加藤:知り合いのエンジニアさんなど、実務に携わっている人たちからは「これをやり通すことができたら力がつきそう」「プログラミング教育の新しい扉が開いた感じがしますね」など、ポジティブな反響を直接いただきました。

また、SNSでは「Progateが次の一手を打ってきた!」「プログラミング学習はすべてProgateでOKになるかもしれない」というコメントがあって、確実に求められているサービスなんだなと実感を得ることができました。

次は学びやすさや使い心地の良さを追求していこうと思っています。ただ、学びやすさの追求においては、どうしても実務を経験していない人にとっては、Pathの実務感に戸惑ってしまうかもしれない。そこをどうフォローしていくかというのが、次のハードルだと思っています。

島津:Pathではゴールに近づくにつれ、だんだん実務感を得られる問題になるんですが、そこまでいけた人といけなかった人の差が大きいなと感じました。

実務感を得ながら問題をクリアしていく人はすごく楽しんでいた一方で、最初のコーディングの部分で詰まってしまった人は、ゴールまでのレールにうまく乗れず、苦労していました。どこで躓いているかを意図的にガイドしてあげる必要があるなと感じました。

愚直な人が報われるプロダクトにしたい

ー実務というのは多岐に渡りますし、難易度も青天井なので、Pathの開発はある種無謀ともいえる取り組みだなと感じています。それでもチャレンジし続ける原動力は、どういったものなんでしょうか?

島津:自分の知識を活かしてフルコミットできる問題なので、エンジニアとして面白さを感じてます。すごく解きがいがあるなと。

実際の仕事の中での学習だと一部の知識しか使わない場合が多いんですが、もうちょっと体系立てて知識を身につけられる環境があれば、一気にレベルが上がると思うんですよね。例えば1人10%ずつ学習の効率が上がったとすれば、全体でみるとすごいインパクトですよね。その結果、日本のエンジニアのベースラインが高くなったら面白いなと。そんな未来を描いています。

加藤:正直考えることがとっても多くて、挑戦し続ける中で1日3回ぐらい心が折れます(笑)。けれど、やっぱり楽しいなって思うのが、Pathは社会課題はもちろんですが、僕の個人課題を解決してくれるプロダクトなんですよね。

ー個人課題とは?

加藤:もっと「創れる人」になりたいのに、自分は日々エンジニアの実務をしているわけではないので、業務を通じて成長することはできないという悩みです。そんな中で、もし「創れる人」になるための要素が満たされていくプロダクトがあったら、僕はめちゃくちゃやりたいなって思うんです。

「創れる人」になりたいという憧れがあって、そこに対してちゃんと努力を払える人が、諦めずに頑張ればハードルを乗り越えられる。Pathがそんなプロダクトに成長したら、もっと世の中に価値を生み出せる人が増えると信じています。

島津:確かに、ユーザーさんを見ていると、躓きながらも粘り強くコツコツやれる人って結構いるんですよね。そういう人が、報われるというか…。一生懸命やり続ければ、自然と問題解決できるようになるプロダクトができたら、すごく面白いですよね。


グロースの勝機は、課題解決に本気で向き合う人と環境にある

ーβ版のリリースを経て、次に乗り越えるべきハードルが見えてきたというお話がありましたが、今後Pathをグロースさせるためにどのような人材に入ってきて欲しいですか?

島津:自分の得意分野を活かしながら、どう問題解決していくのが一番良いのかを考えられる人に来てもらえるとすごく嬉しいです。

僕もWebブラウザを作った経験がありつつも、一生懸命勉強しながらシステムを作ったり、β版を広げていくにはどうしたら良いのかなどプロダクトマネジメントのような役割に試行錯誤しながら取り組んだりしていて。そういう経験のない領域の勉強を厭わず、むしろ面白がって取り組んでくれる人だといいなと思います。

加藤:僕は良い議論を対等に交わし合える人がいいなと思ってます。同じようなビジョンや課題感を抱えている人が集まって意見をぶつけあうと、自分では考えられなかったアイデアが出てくるんですよね。そういう人が増えていくと、1が10に、10が100になってどんどん良いプロダクトができるんじゃないかなと思っています。


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