プログラミングを学び始めた際の苦労から起業を決意
――加藤さんご自身のプログラミング教育に対する思い、Progateの設立やこれまでの経緯についてお聞かせください。
Progateは「誰もがプログラミングを学ぶことで可能性を広げられる世界を作りたい」というビジョンを持っています。しかし、初心者がプログラミングを学ぼうとするとあまりにもハードルが高い。なんとか低くできないか……こう考えたのが起業のきっかけです。そして、それはダイレクトに私自身の経験や実感に結びついています。
私がプログラミングを本格的に学び始めたのは、5~6年前、東京大学に在学していたときです。それも仕事や勉強などに関係なく、「なんとなく」プログラミングを学びたいと思って始めただけで、完全に初心者でした。ちょうどスマートフォンが普及し始めた時期で、ユニークなアプリが話題になっていました。そんなとき、自分が使っているアプリが同じ大学生によって開発されたものだと聞いて、俄然興味が湧いたのです。自分にもできるんじゃないか、面白そうだと思って、本当に軽い気持ちでプログラミングを始めました。
ちょうど学部の専攻を決める時期と重なったので情報工学を選んだのですが、そんな自分にとっても想像以上にプログラミングは難しくて……。私はとにかく実際に何かを作りたかったのですが、専攻はあくまでアカデミックな「学問」であり概念的なものが多く、実践的なモノを開発するイメージが湧きませんでした。今思えば、学んでいた言語自体が自分が作りたいものに適していなかったからなのですが、当時はそれすらわからなかったのです。
さらに言語の学習自体も非常に面倒だと感じました。環境構築のためにインストールから始める必要があり、1つバグが出たらどうしようもなくなってしまう。勉強は好きなほうで独学も楽しめるタイプだと思っていましたが、「詳しい誰かに聞かないと、今この時点で正しいかどうかすらわからない」状態が本当にストレスでした。独学、かつ初心者同士で学び合う方法ではすごく時間がかかりましたね。「そもそも何を学ぶのか」といった道筋選びもできないし、学習コストも高い。おそらく飽きたり諦めたりする人も多いのではないかと感じました。
――学校でもダメ、独学でもダメという状況で、加藤さんはどうやって乗り越えられたのですか。
最終的には、たまたま教えてくれる人を見つけていろいろとアドバイスしてもらえたので、それに助けられて、なんとかできるようになった感じです。本当に「たまたま」で、ラッキーでしかなかった。そんなメンターが見つからなければ、もしかすると私も飽きたり諦めたりしていたかもしれません。
ただ、幸いそうなる前にプログラミングが少しずつできるようになって、ちょっとした課題を乗り越えるたびにすごくうれしかったんですよね。そして、作品的なものが作れるようになれば、それもまたすごく楽しい。また、アルバイトで受託の仕事をしていると、学生にとってはかなり高額の報酬をもらえたことに驚かされました。
それまでは「東大に入学したからには、将来は大企業や官公庁などに入り、安定した人生を送るのだろう」と、漠然と考えていました。それが、自分で生み出した価値の対価として報酬をダイレクトにもらえる、「そんな稼ぎ方、そんな生き方もできるんだ」という発見につながったのです。さらに、プログラミングを友だちに教えることで同じように可能性に気づいてもらえる、感動してもらえることも喜びでした。自分自身はもちろん、周りの人の可能性も広がっていく中で「プログラミングでもっと多くの人の可能性を広げたいな」と考えるようになりました。
一方で、こんなにいいものなのに、学ぶのが大変だからと諦めてしまうのはもったいないとも感じました。そこで、「プログラミングの学習が難しいと感じた記憶」がまだ新鮮なうちに解決策を練って、提供したいと考えました。それがProgate開発の原点です。
初心者の障壁を取り除き、プログラミングの楽しさや価値を伝える
――プログラミングを学ぶ上でネックになりがちなものとは、どのようなものでしょうか。また、Progateはそうした問題をどう解決しようとしていますか。
具体的な課題となると、本当にさまざまですね。例えば「何をやればいいのかわからない」に対しては「目的別におすすめのプログラミング言語を紹介し、全体像をつかめるようにする」こと、「インストールなど環境構築が面倒で諦めてしまう」に対しては「簡単にブラウザ上でプログラミングできる環境を提供する」というように、解決策を盛り込んできました。
「環境構築も重要な手順だから学ぶべき」といった指摘もあるでしょう。しかし、プログラミングを始める前に環境構築でつまずくのはあまりにももったいない。プログラミングの価値を体感した上で楽しいと思えるようになってからであれば、環境構築にも意欲を持って取り組めるようになる。そのときに学べばいいと考えたのです。
同様に「プログラミングの概念」が難しくて挫折する方も多いのですが、こちらについても初心者はまずイメージできればいいと考え、図などを使って楽しくわかりやすく、直感的に捉えられるコンテンツを用意しています。ときには学ぶ順番を変えるなどして、障壁をなくそうとサービスを開発してきました。
障壁を取り除くのと同時に、Progateが特に意識しているのは、初心者にも「プログラミングを何のためにやっているのか」といった目標や目的を持ってもらうことです。そのため、最初に目標物を提示し、「これを作るために学んでいくのだ」と意識付けを行います。また、難しいイメージを払拭するために、かわいらしく親しみやすいデザインにしています。
サービスを改善する上で、ユーザー、それも初心者のフィードバックは常に意識していますね。SNSでもどんどんエゴサーチをして意見を取り入れるようにしています。特に「ここまでできるようになった!」という報告は本当にうれしくて、見つけると「お気に入り」をつけています。もちろん全員がエンジニアになる必要はありませんが、プログラミングを知らずに「難しい」と思っている人にこそ、楽しさや可能性を知ってもらいたいのです。
――初心者には子どもから大人まで幅広い層がいますが、年齢によってプログラミングとの付き合い方や目的は変わるのでしょうか。
子どもたちについては、私は純粋にプログラミングの楽しさを感じてもらえれば十分ではないかと思っています。だから、例えば小学校での必修化に伴って「試験のためのプログラミング」になってしまうとしたら非常に心配です。これまでの学校教育では「押し付けられるからやっている」「良い点を取らないと怒られるから」と義務化してしまっている印象があります。また「受験のため」であることも多いでしょう。本来の勉強の楽しさが、義務感や点数付けによって損なわれてしまうのは本当にもったいないこと。どうか、プログラミング教育がそうならないでほしいと切に思います。
20代の若手の方に対しては、作る楽しさを知ってほしいことはもちろんですが、さらに自分で何かを生み出せる、それによって生きていけるといった確信、自信を得てもらえれば、と考えています。その上で、仕事やキャリア構築といった目的のもとで、手段としてプログラミングを学ぶのは大人ならではの選択でしょう。自走できるようになったら、ぜひとも世界を変えるくらいの勢いでがんばってほしいです。
そうした意味でも、Progateが目指しているのはプログラミングスキルの上達だけではありません。プログラミングによって、さまざまなことを実現させる自信がつき、クリエイティビティが刺激され、自分が世の中に価値を生み出している実感を得られる。そんな成功体験を提供することだと考えています。
また私自身の体験として、論理的思考はプログラミングを通じて得た実感があります。現在は代表取締役としての仕事が増え、プログラミングを仕事として行うことはほぼなくなりました。ですが、タスクを分解して順番をつけたり、可能性の分岐を考えたり、俯瞰して物事を見たり……こうした場面で論理的思考が大いに役立っています。なので、Progateにおいても論理的な思考を体得できる組み立てやコンテンツを意識しています。