見出し画像

「Go」コース共同開発者tenntenn氏とProgate CEO加藤將倫が見据える、プログラミング学習の今と未来

義務教育でのプログラミング教育必修化やIT人材育成のニーズ拡大など、プログラミング学習を取り巻く環境は近年大きく変化している。

本連載では、IT業界を牽引されてきた方や第一線で活躍されている方々とProgate CEOの加藤將倫が対談形式でプログラミング学習の意義や未来について紐解いていく。

‍今回お迎えしたのは、株式会社メルペイの現役ソフトウェアエンジニアであり、Goの第一人者として著名な上田拓也(tenntenn)氏。

Goとの出会いから、2018年にProgateと共同開発した当時の話、現在取り組んでいるGoの普及活動、さらに今後の展望などを伺った。

画像1

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

画像2

上田 拓也 (@tenntenn)氏
メルカリ/メルペイ所属。 バックエンドエンジニアとして日々Goを書いている。 Google Developer Expert (Go)。 Go Conference主催者。golang.tokyo、Goビギナーズ、GCPUG Tokyo運営。 大学時代にGoに出会い、それ以来のめり込む。 社内外で自ら勉強会を開催し、Goの普及に取り組んでいる。 マスコットのGopherの絵を描くのも好き。人類をGopherにしたいと考えている。


「創れる人」へのターニングポイント


ーープログラミングを始めたきっかけを教えてください。‍

‍tenntenn:初めてプログラミングに触れたのは、中学生の頃です。家にたまたまあったMSXでゲームを作りました。一緒に家にあった書籍にBASICでのゲームの作り方が載っていたので、ゲームを作ったというよりかは書いてあるものをそのまま打ち込んでいました。それが動いたのがすごく嬉しかったのを覚えています。

その後、工業高校の情報科に進学したのですが、授業で使うのでポケットコンピュータ(ポケコン)を校内に持ち込んでいいことになってたんですね。なので、BASICでゲームを作って遊んでいました。高校3年生くらいからはポケコンだけでなく、パソコンでプログラムを作るようになり、大学に入った頃にはJavaの触りぐらいはできる状態でした。

そして大学4年間は主にC#とJavaを、大学院前期の修士課程もほとんどJavaを扱っていました。Goが出たのは2009年ですが、私がまともにGoのコードを書いたのは2011年のGoogleのイベントでした。当時は博士課程に進んでいて、研究用のシミュレーションプログラムをJava以外の言語で書き換えてみようと思い、D言語とGoを試してみたんです。その結果、どんどんGoにのめり込んでいきました。

Goにのめり込んだ理由は、当時かなりユーザーが少なかったこともあります。まだマイナーな言語だったので、周りの人がほとんど知らない。学生時代って新し物好きなところがあるので、それでハマりましたね。また、新しい機能がどんどん追加されるのも楽しかったんです。‍

‍ーーProgateではプログラムで世の中に価値を生むことのできる人を「創れる人」と呼んでいます。tenntennさんは、いつ「創れる人」になったと思いますか?‍

tenntenn:価値を生む、という意味で言うと、高校時代にポケコンでビンゴの抽選機能のプログラムを組んだんですね。クラスのレクリエーションでビンゴ大会があって、それに使えるんじゃないかと作ってみたんです。かなり拙いプログラムだったんですが、先生が「これを使いましょう」と言ってくれて。すごく嬉しかったですね。それが一番最初に人に価値を提供したプログラムなのかなと思っています。


加藤:すごくいいエピソードですね。作る側からしたら、評価して、褒めてもらえるのはとても嬉しいですよね。

僕もProgateで初めてメンバー以外の方が登録してコースを修了してくれたときのことを思い出しました。初めて自分の全く知らない方の登録があって、その方が1ページ目をクリアしてくれて、さらにTwitterでシェアしてくれて…という時は、すごく感動しました。もう100いいねを押したい気持ちでしたね。

初学者が乗り越えるべきハードルと、継続学習に必要な資質とは


ーーtenntennさんはGoを体系的に学べるGopher道場を運営していますが、その中で初学者にとって課題やハードルだと思うことがあれば教えてください。

tenntenn:「動かしてみる」というところが最初のハードルだと思います。自分で考えてプログラムを打つというのはかなり先の方にあるので、まずは解説書通りに打ち込んだり、誰かに教えてもらいながら打ったりして、とにかく動かしてみる。多分大多数の人は、そこまで辿り着かないと思います。

加藤:そうなんですよね。実際にコードに触れてから向き不向きをや面白さを判断して欲しいのに、もっと手前の環境構築の部分で挫折してしまう人は非常に多いです。

tenntenn:そしてその次のハードルは、楽しいと思えるかどうか。そうでないと、それ以降続けるのは難しいというか、辛いと思います。画面に「Hello, world!」と出た時に喜びを感じる人がプログラムにのめり込んでいく人なんじゃないかなと。

加藤:すごく分かります。僕もプログラミングを学び始めた頃、それこそ「Hello, world!」が出たり、ちょっとした演算ができたりしただけですごく嬉しかったのを覚えています。

ーー今挙げていただいたハードルをクリアして、かつ学習を継続できる人が共通して持っている資質はありますか?‍

tenntenn:何事も自分事として考えられる人ですね。例えば、プログラムが動かないときに、「言われた通りにやったけど、動かないので教えてください」というタイプではなく、なぜ動かないか考えた上で、「こう考えてやってみたけど、動かないので教えてください」という人が継続できると思います。

加藤:先ほど、楽しさを感じるのが大事という話がありましたが、初学者の時だけでなく、継続して楽しさを感じられるかみたいなところは結構重要な資質かなと思ってます。‍‍

ーーGopher道場では、どのように参加者が挫折しない仕組みづくりをしていますか?‍

tenntenn:今まで参加者の中からGoを使った企業に就職された方もたくさんいらっしゃったんですが、やはり業務経験なしの状態からGoのエンジニアになる場合は何かとっかかりがないと難しいと思うんですよね。

とっかかりとは、いわゆる自信です。けれど、「私はこれができる」という自信を持つのは、今の時代なかなか難しい。なぜなら、「これを作ろうかな」と思ったものが既に存在しているので、モチベーションが下がってしまうからです。

それを解決するために、昇段審査を始めました。資格試験をクリアすれば達成感が得られるし、自信にも繋がるからです。

また、昇段審査を取り入れたのは、練習する場も必要だと思ったのも一つの理由です。コーティングをやる場は、採用試験も含めだいたい本番なんですよね。けれど、いきなり実践するのは難易度が高い。なぜなら、特にコーディング試験は自分の書いたコードで相手に自分の技術力をわかってもらわなきゃいけないからです。

例えば空手には「形」と「組手」がありますよね。流派にもよりますが、空手の昇段審査は形による審査があります。形は空手の基礎や実践が詰まったいわゆる演武なので、そこから実力を測ります。

私はコーディング試験も同じ側面があると思っていて、単に要件を満たすだけのコードを書くだけでは、採点者がそこから製品レベルのコードが書ける実力があるかどうかを読み取るのは難しいでしょう。

採点者が求めているレベルに十分に達しているかどうか判断できるだけの材料を提供する必要があります。しかし、個人で開発してるだけだとスキルを測る前提のコードを書くということは、なかなか意識することがないと思うのでGopher道場の昇段審査を練習の場として使ってほしいな思います。

加藤:製品レベルのプロダクトを作れるかという課題感は僕らもすごく持っています。今取り組んでいるPathという新規事業では、より実践的な技術や知識をつけるためのカリキュラムを開発しています。それこそ製品レベルのプロダクトを扱えるようになれるまでユーザーを導きたいのですが、本当に難しい。そこを何とかクリアしようと動いているので、昇段審査の考え方はすごく参考になります。

共同開発者が見た、Progateの可能性


ーー2018年にGoの学習コンテンツを共同開発しましたが、こちらはtenntennさんがProgateに問い合わせをしたのがきっかけだったと伺っています。当時、Progateのどういった点に期待して声をかけたのでしょうか?‍

tenntenn:当時、最初に学ぶ言語としてGoが選択肢に挙がるようにと、オンラインで学習できる教材を提供できないかと考えていました。Goを扱っているオンライン学習サービスは全くなかったので、もう自分がやるしかないと思っていろいろ見ていたところ、Progateさんは圧倒的にUIが優れていました。

ここなら使いやすいコンテンツを作ることができるという期待のもと、一緒に作らないかと声をかけてみたんです。そしたら反応があったので、すごく嬉しかったですね。

実際に一緒に作り始めると、すごく丁寧に教材を作っているなという印象を受けました。それまで私が作ってたものはある程度できる人を対象として考えていたので、プログラムを組み始める前の道に落ちてる石ころを躓かないように拾う作業をさぼっていたんですね。

開発を進める中で、そういった部分を1個ずつ指摘してもらえるのが新鮮で、すごく勉強になりました。

加藤:ありがとうございます。僕らも外部の方と一緒に作るのは初めての体験だったので、最初にお声がけいただいた時は「tenntennさんから連絡が来た!」とものすごく盛り上がりました。

演習構成の企画をtenntennさんが、細かな編集作業をProgateのエンジニアが担当するという形で進めていったんですが、元々tenntennさんの中では教材に関するメソッドがある中で、僕らのユーザー層とうまく融合させながら作っていってくださったのはありがたかったです。

その言語の最前線を走ってる方と作るというのは、Progateの教材のレベルを上げていく意味でもすごく可能性を感じた取り組みでした。‍

ーー現在Progateに期待している点を教えてください。‍

tenntenn:昨今、お世辞にも質がいいとは言い難い初学者向けサービスもありますが、Progateには、そういったサービスが太刀打ちできないような存在にどんどんなって欲しいなと思います。

先程「創れる人」というお話もありましたが、Progateが入り口だけでなく出口まで一気通貫でサポートしてくれるサービス、意欲をもって学習すればプロのエンジニアになれるサービスになることを期待しています。

加藤:ありがとうございます!tenntennさんからエールをいただいて、より気が引き締まったのと、またいつかtenntennさんと一緒に何か作れると嬉しいなと思いました。

「コミュニティがなかったら、違う道に進んでいた」学習環境が及ぼす影響


ーーProgateは「プログラミングは人生の可能性を広げる」ことを伝え続けています。実際に人生の可能性が広がったと感じた経験はありますか?

tenntenn:プログラムが書けると、できるることがすごく増えます。職業エンジニアじゃなくとも、例えばエクセルのマクロが組めたりちょっとしたウェブサービスが作れたりするだけで、仕事の幅が広がると思っていて。

私の周りでもソフトウェアエンジニアではなくてもSQLを学ぶ方が多くいて、プロダクトの分析データなど、自分が欲しいデータを自分で取ったりしているようです。

もちろんエンジニアに依頼することもできますが、自分でやってしまった方が早いし、小回りもききます。プログラムが書けるところまでいかなくても、ある程度読めて理解できるだけでも役に立つと思います。‍

ーー今後、プログラミング学習はどのように変わっていくと思いますか?‍

tenntenn:いわゆるパソコンに向かってプログラミングを行うものだけがプログラミング学習じゃないとは思うんですよね。知育玩具みたいなものに浸透していって、学ぶ層が低年齢化すると思っています。どんどん子供が学んでいきやすくなっていくので、かなりプログラミング学習は多様化するのかなと思ってます。

加藤:確かに最近だとNintendo Switchでもプログラミングが学べるゲームが出ていました。Progateももともとは20代のユーザーの方が多かったですが、プログラミングの義務教育化もあり低年齢層は可能性の広がるマーケットだと思っているので、その波に置いてかれないようにしなきゃなと思います。‍

ーー最後に、今後の展望を教えてください。‍

画像3

tenntenn:ソフトウェアエンジニアとして働きたいと思っても、今まではどうしても東京などの大都市に有名な企業が集まっていたので、さまざまな事情で地元を離れられない人は諦めてしまうケースって結構あったと思うんですよね。そういうのがなくなればいいなと思っています。

今は良くも悪くもコロナ禍によってリモートワークが推進されたので、土地に縛られないような働き方ができてきました。実際に私も2020年に北海道に移住しました。東京を離れて実感するのは自分が住んでいる地域に活発な技術コミュニティがあるというのは重要だということです。

私は大学時代、愛知県で過ごしていたんですが、名古屋のコミュニティが活発だったので、勉強会などにたくさん参加していました。だからこそGoに出会えたのですが、もしそのコミュニティがなかったら全然違う道に進んでいたかもしれません。

場所にとらわれず、楽しくハイレベルなプログラミングができる環境を次の世代のためにつくっていきたいなと思っています。

加藤:環境が左右するというのは僕自身も実感しています。Progateとしても、オンラインサービスだからこそできる環境づくり、世界中の初学者からプロのエンジニアまでが学べるプラットフォームづくりをしていきたいと考えています。


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

🔸 採用情報

🔸Progate会社紹介資料

🔸カルチャーブック

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