「セカイを変えるGEEKを育成する」ジーズアカデミーとは?

司会:皆さま、大変お待たせいたしました。

イノベーショントラックの2ということで、これから「世界を変えるサービスが産まれるTech教育」と題しまして、今回デジタルハリウッドで「ジーズアカデミー」というエンジニア養成の学校を開校しました。そちらの教育成果等を踏まえました、昨今話題のプログラミング教育、Tech教育について、どのような形でこれからの時代取り組んでいくべきなのか、議論していきたいと思います。

では、40分ほどお付き合いください。よろしくお願いします。今日のパネリストとして、お二方お招きしております。

まず、BASE株式会社取締役CTOの藤川さん、通称えふしんさんです。よろしくお願いします。

藤川真一氏(以下、えふしん):よろしくお願いします。

(会場拍手)

司会:Microsoft MVP(Bing Maps Development)に3年間連続で選ばれております、デジタルハリウッドの講師、山崎先生です。よろしくお願いします。

山崎大助氏(以下、山崎):よろしくお願いします。

(会場拍手)

司会:お二人は、新たに始まりました「ジーズアカデミーTOKYO」という、デジタルハリウッド株式会社が設立しました新しい学校に、それぞれ主席講師とメンターとしてご参画いただいております。

簡単に、ジーズアカデミーとはどういうものなのかをご紹介させていただきます。

「セカイを変えるGEEKを育成する」というテーマで、日本からFacebookやTwitterといった、世界の人たち皆が使ってくれるサービスを生み出していくにはどうしたらいいのかということを、たくさんの業界の方々とお話させていただいて、2015年4月に渋谷ヒカリエで設立をいたしました。

こちらのスライドは4月に入学した第1期生の卒業制作発表会でして、「GLOBAL GEEK AUDITION」というタイトルで行ないました。約100社の採用企業及びVCの方々にお集まりいただいて、その前で発表させていただいたという次第でございます。

下のほうは、GitHub(ギットハブ)の本社の方をお招きして行ないました講演会の模様です。

日本とアメリカのエンジニアの違いとは

司会:ジーズアカデミーが設立した背景を、簡単にご紹介させていただきます。

これは何の数字かと申しますと、エンジニアの数なんですね。日本で働いているエンジニアの数なんです。

青いところがITサービス、つまり、SIer(システムインテグレーター)と言われているような受託で、「こういったITのシステムを作ってください」と発注を受けて作る会社さんたち。その会社にお勤めのエンジニアの数は、日本とアメリカ、人口から考えると、そんなに大きい違いがないんです。

赤いところは、一般の事業会社さんにお勤めのエンジニアの数なんですけれども、こちらは約10倍という開きがあります。

これはなぜだろうかといろいろ調べていく中で、この画像は海外の学校なんですが、私もシリコンバレーに実際に見に行ってまいりました。

左上がGeneral Assemblyという、アメリカの中で今20〜30くらいの拠点を構えている社会人向けのエンジニア養成学校です。約12週間ですから3カ月くらいの講習で、1万1500ドルの授業料。150万円くらいですね。これに、非常にたくさんの方が通っていらっしゃったり。

右下はHackbright Academyという女子校で、サンフランシスコにあります。こちらはもっと授業料が高くて、3カ月で1万5000ドルという。180〜190万くらいの授業料ですが、たくさんの人が通っているという状況ですね。

こういった社会人向けの教育が、非常に興隆しています。

いっぽうで日本のエンジニア育成の学校がどんな感じになっているのかを、いろいろ仕分けてみますと……。

日本の学校さんというのは、ゲームをテーマにした形で、最終的にSIerさんに人材を輩出するところが非常に多く、ここは学びのマーケットとしてもすごく大きいんですね。

最近流行っている、オンラインも含めた短期学習ができるプログラミング教育というのも話題になっておりますが、本当にプロ養成といった感じになる。

そこで「事業会社向けのエンジニア教育をちゃんとやっていく場所を作ろう」と、始まったのがジーズアカデミーでございます。

今回こういった趣旨をお話させていただいて、ジョインしていただいたお二人。約半年間、実際教育をしてみて気づいた点などを、どんどんお話していただきたいと思っております。

前説が長くなりましたが、以上です。

開発現場で抱える課題、まずは人材の不足?

司会:では、さっそく本題に入っていきたいと思います。

まず、今Webサービスやアプリを開発されていらっしゃる方、今日ご来場の方の中にもたくさんいらっしゃるのではと思います。

こちらの開発現場で抱えている課題ですね。ざっくりしていますけれども、気づいた点ですとか、特に気になっている点などを、まずお話していきたいなと。

えふしんさんからよろしいですか。

えふしん:非常に漠然としたテーマで、どうやって話そうかと考えていたんですけれども、私が今いる会社って、社員がだいたい40人くらいで、いわゆる新卒採用、新卒のポテンシャル採用っていうのはできない。できる新卒がインターンで来ていれば、そのまま入ってもらうというのはあります。

そういう意味で、中途で入って来る人に、僕らはどうやって来てもらうかという視点で言うと、中途で入ってくる人たちが、どういう経験、どういうスキルを持っているのかが、結構大事だと考えた時に、良質な経験を持っている人がいれば来てもらいやすいですし、そうでなければお断り。

よく「IT人材が不足している」と言われていますが、人が不足しているというよりは、自分たちとやれる人たちが不足しているっていうのが、現状かなと思っています。

「何でかな」っていうのを、わりとずっと考えていますね。

SEとプログラマーの知識や技術の断絶が人材不足の根本に

えふしん:うちの開発のメンバーって、裁量労働制で契約しているんですね。ある時、人事のほうから質問がきまして。うちの会社は、いわゆる肩書き的にはプログラマーですよね。「世の中の産業構造的に言うと、プログラマーというのは裁量労働制にならないんだよ」って言われました。これ、僕の中ではカルチャーショックで。

なぜなのか簡単に言うと、いい大学を出てSIerさんに就職して、なる仕事がSEなんですね。SEさんは裁量労働制の対象になりうる。ところが、いわゆるプログラマーっていうのは、そうではない人たちが結構いて。この人たちは、すごく語弊がある言い方かもしれないけれど、工場やラインで働く人と同じような採用基準と扱いになっている。

それゆえに、プログラマーを裁量労働にするのであれば、「仕様や納期の裁量をちゃんと与えていますか?」「自分たちの状況で納期をコントロールできる立ち位置になっていなければ、プログラマーは裁量労働にできません」と言われたので。うちは元々そこをやらせていたので、堂々と「大丈夫ですよ」という話をしたんです。

結局のところ回り回って考えてみると、さっき言ったように高学歴でいい会社、有名な会社に入ります。そこでは、プログラムを書く教育をされない。そのまま5年いたとしますね。その人がWebやアプリで何かをしたいとなった時、「コード書いたことありません。設計はできる。だけど、現場のつなぎ込みみたいなところはあんまりできません」となる。

これは、もちろん人によります。できる人もいっぱいいますけど。できない形で教育されちゃっていると、せっかくいいキャリアで、せっかくWeb系とかに目を向けてもらえたのに、僕らにとっては「経験不足ですね」っていう感じに陥っちゃっている。こういうのは、根本的にミスマッチとしてある。

逆に、プログラマーとして大きいSIerさんの傘の下で鍛えられてきた人が、現場力はあるけど、設計とか自分でプロジェクトを作る訓練をされていなくて、スタートアップやベンチャーみたいな、自分で考えていかなきゃいけない部分だと結構つらい。

「この両方の部分を混ぜた人が欲しいのに!」みたいな部分が、根本的なミスマッチになっているかなと、最近よく思っています。

自分で考えて作れるようになった、山崎氏の分岐点

司会:山崎先生も、以前はSIerにお勤めの経験が。

山崎:そうですね、◯◯というところにいたんですけれども。私は5、6年前までそこにいまして。大手通信会社の研究所とかに出向し、いろいろ経験させてもらいました。

まさにトップダウンですね。SIerだとどうしても。

僕は開発部隊だったので、さっきの話でいくと、プログラマーと同じ感じでした。ただ、ちょっと違ったのは、なぜか設計する人がいなかったんですね。なので、僕らがやらなきゃダメで、基本仕様を自分たちで話を聞いて作って、そこから外部設計から詳細設計までやって作っていった。結構珍しいです。

例えばIBMが参画してきてしまうと、必ずIBMが仕様を作ってその通りにしないと、お金がもらえない。1つでも間違っていると、「仕様が違う」と返されちゃうと思うんです。

たまたま僕の場合は、自分たちで仕様を決められるというか、交渉できて、「こっちのほうがいいんじゃないか、あっちのほうがいいんじゃないか」っていう話もできた。技術もかなり大変だったんですけど、大手通信会社と上が決めたら、その通りの日程でやらなければいけなかったので。その中でやっていました。

そこが僕としては分岐点になって、自分で考えて作れるようになってきたんですね。それからは人生がちょっと変わってきたっていうのがありました。

そう考えると、そのちょっと前にいた、まさに大きめの会社というか、SIerの大手が決めた仕様を請け負うような会社に行くと、そのまま作らなければいけない。何も考えなくてもいいんですね。設計されてきているので。それって、何て言うんですかね、ある意味、おもしろみがないんです。

コードを書く量が減ったことで、プログラマーの仕事の質が変化

えふしん:ぶっちゃけ、期待されてるのは「翻訳屋さん」じゃないですか。書いた設計図面、設計書をコードに変換する人がプログラマーだと思われている。

これが何故問題かというと、簡単に言うと時代が変わりました、と。プログラムを書くのがものすごく大変だったりとか、それこそオブジェクト指向とか出てくる前に、コードを書くこと自体に、ものすごい手間がかかるのであれば、確かに設計する人は少ないです。頭使う人ですから。それを形にする人たちっていうのが、いっぱい必要ですよね、ということでよかった。

今、オブジェクト指向以降、コードの再利用、ライブラリ再利用もそうだし、フリーソフトもLinuxもそうだし……無料でいろんなものが使えます。コストがかからずできます。

それを「かき集めて、組み合わせて、いいものを作ります」っていうサイクルの中で言うと、コードを書く量がどんどん減ってきた。ある種の糊のような。いろんなパーツを持ってきて、その糊でいかに組み合わせるかっていうのが、今時のプログラミングの部分なので。

1番大事なのは「言われたことを作る」のではなくて、その糊みたいなのをどうやってつけるのか、どういうふうに組み合わせてやるかっていう部分の依存度がすごく高い。

つまり、ビジネス寄りであればあるほど、パフォーマンスとかアルゴリズムの部分より、試行錯誤の部分が一層大事になってきて。ゆえに、「コードが書けないとちょっときついですよね」っていう感じになってきている。

えふしん氏の新卒時代、製造業の現場で物作りを学んだ経験から

えふしん:僕も今の流れで言うと、最初に入った会社は製造業だったんです。製造業で入る大学生も、物作るなんて思っていないんですよ。ぶっちゃけ、「自分は設計にいって、図面書いて、かっこいい仕事するぜ」みたいなのが絶対あるんですね。大卒の子って。

僕は入社した時に現場に回されて、いきなり溶接からやらされたんです。何故かというと、その会社で過去に大卒で設計いったやつが使えない、と。物作りが分からないくせに偉そうなことを言う、みたいな感じで。現場が偉かった会社だったんで、いきなり「3年くらい修行しろ」と。

そこから、ある種の物作り。毎日グリースまみれになって、手は怪我するし、溶接すれば耳はやけどするし、皮が剥けるんですよ。そういうのをやりながら、物作りのイロハみたいなのを教えてもらったっていうのは、ものすごく大きくて。

それって、運じゃないですか。その会社、その会社、それぞれみたいな考え方で。別に、世の中でコンセンサス取れているわけじゃないですよね。多分、いまもって理系の大学出て、入学する人たちは、多分実装のことをそんなに意識していないのでは。「俺は設計で楽しくやれるぜ」となっていることが多く、そこから変えたい、本質的に。

山崎:昔は製造業というと、まず下のほうから作って、その経験を活かして設計に就くというか。そういう考えだったと思うんですよ。

えふしん:元々そうですよね。それこそ戦後の物作りの歴史なんて言ったら、本田宗一郎さんがひたすらエンジンを組み立てるところから、徐々に会社が大きくなって。いわゆるホワイトカラー、ブルーカラーに分かれたほうが、大量生産に効率がよく……というプロセスで分かれていくわけじゃないですか。それがまた戻ってきたのかな?みたいな。

分業化が進んだ結果、新卒を育てていくパスの欠如

山崎:アメリカだと、SEとプログラマーって分かれていないイメージがあるんですけど。

えふしん:「SEがない」って言いますね。

山崎:そうですね。日本の場合は大企業が受託して設計したものを、いいか悪いかは分からないですけど、回転させるために分業にしたってところですかね。

えふしん:そのコード量が、書くのが大変なので手が必要だというところが、一番大きいんじゃないですかね。効率化を考えたら。

僕らも今後、自分たちでやってるサービスがすごく大きくなっていったら、全体のアーキテクチャーを設計する人とコードを書く人って、分業されていくはずなんですよ。

だから歴史としては正しいんだけど、その揺り戻しが来た時に新卒の子が教育されるパスが、そっち側にシフトし過ぎちゃって。そうすると、想像的な物作りができる人たちがそんなにいないじゃないかという仮説ですね。

山崎:今の話だと、設計と作り込むっていうお話だったと思うんですけど。それプラス、最近だと企画力というか、自分たちで考えて自分たちで設計する、自分たちで実装するみたいなのが多いと思うんです。スタートアップとか増えてきて。

やっぱり、そうなってくると、そういうふうに育ててきてないので……。

えふしん:その割合も多分にあるんですけどね。スタートアップだったりベンチャー企業だったり、それこそ新卒を一から育てられる会社の数が少なくて。

すごく大きな会社でも、新卒でエンジニアを採っているところは、本当に一握りの子か、ギークみたいな。大学の頃からオープンソースでバリバリ活躍している子だけを採用するケースのほうが、どちらかというと多くて。

ある種まだ産業構造として、そこを真摯になって育てられるパスがない。いや、ないわけではないけれど、まだまだ広がらなきゃいけない。そこまで至っていないというわがままでもあります(笑)。

山崎氏のプログラミング授業、当初は基礎からだったものの……

司会:教育側の話になりましたので、次のテーマにいきましょう。今まで、いろんなエンジニア教育っていうものがあって。昔の工業高校とか高専くらいから始まって、ずっとエンジニア教育というものがされてきているわけです。

これからのエンジニア教育機関は、デジタルハリウッドやジーズアカデミー含めて、どんな人材を育成すべきか。あとは、理想と今のズレっていうのはどの辺りなのか、お考えを聞かせてください。

山崎:今年4月にジーズアカデミーを立ち上げて、実際には昨年から準備をしてきまして。

私、さきほど「◯◯にいた」という話をしましたが、実はデジタルハリウッドで教えているのは10年目になります。ずっとプログラミングを教えることのやり方に疑問を抱いてきたんですね。

特にデジタルハリウッドは、元々デザインとかCGを専攻する学生が多いので、その中でプログラミングを教えてきて、プログラミングにどうやったらのめり込んでくれるのか? どうやったら興味を持ってくれるのか? いろんなことを考えてやってきました。

最近は、(プログラミング教育の)ブームもあるせいかもしれないですけど、なんとなく分かってきたっていうのがありまして。

今までは本と同じようなやり方をしてきたんです。本だと、第1章で「概要」から入るわけです。基礎ですね。変数とは、分岐処理とは、FOR LOOPとは、とか。そんなの誰もおもしろがらないんですね。誰も興味持たなくて、離脱していっちゃうんです。

特にJavaなんかやったら、一瞬で。例えば、50人受けていたら10人くらいしか残らないです。「classとは」なんて最初からやったら、誰もおもしろがらない。そこを楽しんで覚えようっていう人はいなかったのが今までです。

最初から作ってみることで、学生のやる気を引き出す

山崎:じゃあ、何を今回変えてみたかというと、最初から作る。結果を出す。

例えば1日目に教えることとしては、簡単な変数。JavaScriptでいうとvarで変数で値を渡す。もう1つは、分岐処理のifだけです。別にswitch使わなくてもできますし。それとrandom関数だけですね、初日は。

あとは、授業の前にHTMLとCSSをビデオで見せて、簡単なスタイルくらいはできるようにしてもらってきているんですけど。

初日から、占いとか簡単なじゃんけんとか。まず作ってもらうっていうのが大事だなと思いました。

「そんなんでいいの?」って思われる方、いっぱいいると思うんですよね。ところが、これがめちゃくちゃ効果的なんです。最初に「できた!」って感じることが一番大事なんです。

1つできると、次回からめちゃくちゃやる気になってくれるんですね。今まで変数とか、ちょっと難しいと思って見ていたのが、明らかに表情も変わりますし、前向きな姿勢になってきます。

2回目も、たいしたことは教えていないです。例えば、ifの入れ子とか。その日に配列とループをやっちゃうと危ないので、もう1つ別なことをやったりします。

今だとローカルストレージというのがHTMLファイルにあるので、そこに自分でメモ帳を作ってデータを保存していく、みたいな。ちょっとできる人だったら、ページをどんどん追加して、タブをどんどん追加できるscriptを組むとか。

皆の前で発表するわけですね、できる人たちは。そうすると、みんなは「どうやったんだ?」「あんな簡単なことしかやっていないのに、どうやったんだ?」と。

試行錯誤するプロセスで、実装力を身につけさせる

山崎:子供の教育と一緒で、あんまり教えちゃいけないんだと思うんです。少ないパーツでどうやって応用させるかが肝なのかな、と思ってまして。

それができると、勝手に彼らが走り出すんですね。「あの、先生。変数とifとこれしか習っていないけど、検索したらこんなのもありましたよ!」と。「よく知ってるじゃん! よく検索できたね。それを使って作ればいいじゃん!」と。

その実装力ですよね。自己解決能力を身につけさせるのが、プログラミング教育に非常に重要なのかなと思っています。なんか答えを言っているような感じがしてきたんですけど……。やばいですよね、これ(笑)。

司会:やばくないです!

山崎:これからのエンジニア教育機関って、自分で解決する力、自分で気づいて自分で走り出す「自走力」とか最近言われていますけど、そんなのが必要なんじゃないかと思うんですが、どうですか?

えふしん:会社から与えられるとか、お客様から与えられるものを実現するっていうのは、わりとこれまでのエンジニアの仕事だったりして、それでよかった。今でも別にいい、大丈夫なんですけど。

そうでありつつも、ジーズアカデミーのような実装できる人材をいかに育てるかっていう部分で言うと、「作りたい」というものがあって、それを解決する最低限のスキルがあって、そこで試行錯誤するプロセスは、すごく大事かなと思っています。

作りたいイメージとそれを組み立てる力を助けるメンターの役目

えふしん:僕も元々、今のGMOペパボにいて、上場も経験しているんですけど、そこの社長だった家入一真っていう、都知事選にも出た変な人がいて。

家入さんって、元々プログラマーの仕事もしていたんですけど、基本的にはデザイナーなんですよね。ただ、やりたいことのアイデアみたいなものが、ものすごく湧いてくるし、湧いてきた時の瞬発力が異様に速くて。

未だもって何個かのサービスは、彼が突如作ったサービスがそのままあります。趣味で作ったものを、あとで買い取ってみたいな感じでやっていたりするんですよ。

そうすると、その瞬間のアイデアで「これやりたい!」っていう時に、彼は決してプログラマーではないです。なので、書いているコードは正直そんなにたいしたことはない。っていうと怒られちゃうけど(笑)。「あとでエンジニアが書き直せばいいんです、それは」と、先ずはコードを書いていて。

ただ、自分が作りたいっていうイメージと、それをどうにか組み立てる力。彼は元々デザイナーだったので、しかもそれをかっこよく作る力があったので、リリースするとガーッといろんな反響を受けて、余計楽しくなる、みたいな。

そのサイクルがビジネスを作っていったのは間違いないと思います。そういった部分を、皆に再現してもらえればいいかなと。

特にメンタリングの最初の段階では、いきなり……。僕、コードの担当なんで、基本的に技術の質問を受ければいいっていうニュアンスがあるんですけど。

企画書を見せてもらって、まだ実装に落ちないな、という部分があったら、徹底的に画面設計で「これ、何が楽しいの?」「君はどうしたいの?」みたいな部分を説いていき、なるべく速く画面設計を作って。そうしないと実装に落ちないので。その部分をやりますね。

司会:メンターというのは、オンラインで一通り基礎を勉強し終わった方、山崎先生の基礎を勉強し終わった方を、その後バトンタッチして、えふしんさんがお預かりして、最後の仕上げをやっていただくという。そんな流れになっているんですけれども。それがメンタリングです。

えふしん:基本的には、「やりたい!」という企画書みたいなものが作られていて、それを実装に落とすところのお手伝いというか、メンタリングをしていきます。

司会:ありがとうございます。