「自分が欲しいものを作ろう」ジーズアカデミー主席講師が語る“アウトプットの極意”

「自分が欲しいものを作ろう」ジーズアカデミー主席講師が語る“アウトプットの極意”

「成長したい」と思っている若手エンジニアの方々は皆、「アウトプットが重要」ということは認識しているかと思います。

とはいえ、世の中に情報を発信していくのは怖いし、具体的に何をアウトプットすればいいのか分からずに、なかなか行動に移せなかったりするものです。

今回は、エンジニア養成学校「ジーズアカデミー TOKYO」の主席講師であり、アジアで唯一のMicrosoft MVP(Bing Maps Development)に選出されてから、6年連続でMVPを受賞されている山崎大助さんに、「”アウトプットの極意”」についてお伺いしました。

山崎大助
ジーズアカデミー主席講師/デジタルハリウッド大学院准教授。MicrosoftMVP[2013-2019] 受賞。著書に『レスポンシブWebデザイン「超」実践デザイン集中講義』(ソフトバンク クリエイティブ)『jQueryレッスンブックjQuery2.x/1.x対 応』(ソシム)『はじめてのLaravel 5.6 ⼊ ⾨』(Amazon)他、 雑誌での連載・書籍執筆多数。
Twitter:@daisu_yamazaki

学んだことは実戦でアウトプットして理解する

──今日は山崎さんに、アウトプットについてお聞きしたいと思っています。

色んな所で教えたり、講演活動をしても、みんな受け身で講義を受けるんです。講義を受けて、少し基礎をやると、少し覚えた感が出てきます。

でも、結局それって出来てないんです。言われた通りやっただけで、実際自分で考えてそれを打ってみてくださいって言った瞬間に、全然打てません、となることが多いと感じます。

それを乗り越えるには、自分が作りたいものに対して、学んだことを機能的にちゃんと実装しながら、実戦でアウトプットをしていく必要があります。それを作ることによって、ちゃんと理解できるようになると思います。

何かしら覚えてコードを書くだけではなく、1つの作品を作りつつ、その一部にこれを使うんだというように、全体の中での部品であることを認識しないといけません。

よくスポーツで例えるんですけれども、例えばサッカーで例えると、トラップばかり練習するとします。じゃあそれが試合ですぐに応用して活かせるかといったら、絶対そんなことないじゃないですか?

活きるのは、試合の練習試合や紅白戦を1つのチームの中でやりながら、「あー、こういう使い方するんだ」とか「タイミングによってはアレンジして使う必要があったり」、して覚えられます。また、ゴールしたら下手くそでも試合は楽しいですよね。逆に試合しながら、ダメだった点というのが、自分の中で分かるわけです。それは1つのアプリ作りと一緒です。

そこを例えば、じゃあトラップが自分は下手だから、やっぱりトラップを練習しようとか、例えばif文出来ないんだったら、if文ちゃんと理解しよう。ヘディングがダメだったら、ヘディング練習しようとか、実戦で必要性を感じながら覚えられます。練習のための練習(基礎を学ぶための学習)ではなく、試合のための練習(アプリを作る実戦の練習)をすることです。

アウトプット思考の原点はサッカー

──たしかに、スポーツでは当たり前のことですね。

そう、やっぱり試合を楽しみながらですね。プログラミングでいうと、アプリ作りを楽しみながら。そこで必要なもの足りないものを実装していく、後付していくというのが楽しみながら学ぶコツだと思っています。

僕もサッカーを小学生の頃からやっていて、試合するのが大好きだったんです。練習はつまらないじゃないですか。やっぱり、つまらないものからは何も得られないと思っています。

ちなみに僕は田舎育ちなんですけど、周りにサッカーが強い学校があったんです。その学校と試合した時に、圧倒的に負けたことがあります。

実は同級生がその学校にいて、「普段どういう練習をしてるの?」と聞いてみたら、「いや、試合ばっかりだよ。」と言われ、「走ったりはしないの?」と聞き返すと、「一応あるけど、ほとんど試合形式の練習だよ。」と。

「強い学校ってやっぱりそうなんだ、試合のための練習をするんだな。」と、弱い学校ほど、練習のための練習をしているんだな、と気づきました。

──そこに山崎さんのアウトプット思考の原点があったんですね

そうです。実際にアプリを作ってみて、サッカーと一緒だなと重なって見えました。僕はあまり勉強はできるほうではなかったのですが、for文とかどんなときに使うのか、最初は絶対分からないじゃないですか?これが一体何になるんだろう?みたいな。

それを覚えようとして、永遠と100回ぐらい繰り返すわけですよ。だけど、それって全体像が分からない中で永遠とやっていても、その意味が分かってないから、ただ何となく何回も繰り返して、暗記してるだけなんですよ。それは絶対に実戦では活きないです。

初めてのサービス開発で掴んだ成功体験

──アウトプットするためにインプットが必要です。山崎さんが、インプットしたことをアウトプットするまでの流れを教えていただきたいです。

僕はやっぱりアウトプットファーストなので、これを作りたい!というのが一番最初に出るんですよ。

──作りたいものがあって、それを作るために必要なことをインプットする流れなんですね。

そうです。僕はもともとSIにいたので、ずっとかっこいい洗練されたコードを書くことが正義だと思っていました。誰が見ても、最高のコードを書くのがすごいみたいな考えが若い時にあったんです。

ある時に、Adobe AIR というのが出たんです。当時Flashの案件があって、僕がその担当をしていて、「Flashの技術でデスクトップアプリが作れるのか!」と胸が高鳴りました。

そこで、初めて僕1人だけでアプリを作ってリリースしたんですよ。それがスケジュール管理アプリの「AIR Note!」でした。AIR Note!はAdobe のギャラリーで、3年間ずっとトップ3に入って、ダウンロード数がかなり多かったです。

その時に本へ掲載させてほしいという依頼と、執筆依頼がきて、AIR Note!はWindows 100%とか日経 PCなど、ほとんどの雑誌に載ったと思います。

山崎さんが開発された、スケジュール管理アプリ「AIR Note!」が掲載された書籍の数

その時に、ある意味成功体験と言いますか、「かっこいいコードを書く人が有名になるんじゃないんだ、成功するんじゃないんだ。」と思ったんです。

今までは井の中の蛙みたいに、ただコードだけ書いてればいいと思っていましたが、結局は世の中に何かしら影響を与えて、その人が良いと思って使ってくれるものを作らないと、やっぱり認知されないじゃないですか。

でも、コード自体は汚かったですよ。初めて書いたコードだったので、とにかく1つこれを作りたい!というのがあって、とりあえず作り始めながら必要なものを学んでいく。「ああ、これが足りない、どうしたらいいんだろう?調べる!」みたいなね。

だから後付なんですよね。作りながら調べながら、インプットしていく。これが自走力をつける流れになっていました。

アウトプットがエンジニアとしてのブランドを作る

──山崎さんが考える、エンジニアがアウトプットすることのメリットは具体的に何だと思いますか?

僕はもうブランディングがやっぱり一番にきています。エンジニアは自分が商品ですからね。それを可視化して、一番手っ取り早く見せることができるものじゃないですか。

コードだったら同業者がリスペクトして見てくれますが、開発に関係ない人からすると、今は使ってもらってなんぼみたいな部分があるので、やっぱり作ったものを世の中に出してそれを評価してもらうのが大切だと思います。

もし転職するとしたら、作ったものが自分の成果物として見てもらえるわけじゃないですか。やっぱり一番いいですよね。

──面接する側も実際にアウトプットを見せてもらえると対応しやすいですよね。

はい、やっぱり自分を証明するためのものですよね。技術だけではなく、サービスを考える視点も持ち合わせてることも伝えられますね。

コツは自分が欲しいものを作ること

──これまでにたくさんのアウトプットをされてると思います。山崎さんが考えるアウトプットのコツは何だと思いますか?

コツは、やっぱり自分が欲しいものを作るということがポイントだと思います。そこが一番ですね。やっぱり自分が本心で欲しいと思っていないものって徹夜で、できないんですよ。

──すごく分かります、途中で嫌になってしまいますよね。

「もういいかなー。」と思ってしまいますね。だけど、本当に自分が欲しいと思っているものには、寝なくても、何日も寝なくてもできちゃうんです。毎日の睡眠が1時間だろうが30分だろうが、どんだけ少なくても力を出せると思います。

だからやっぱり、自分が好きなもの、欲しいものを作るということが、一番大事なんです。

山崎さんが開発された、Bing Maps APIをより簡単に使えるようになるWebアプリケーション「BingMaps GO!」。米国 Microsoft公式サイト「BingBlogs」トップページにも掲載された。

──僕がよく周りのエンジニアから聞くのは、自分が欲しいサービスがそもそも分からなかったり、無いという人が結構多いです。山崎さんはどういうプロセスで自分が作りたいもの、欲しいサービスを考えているのでしょうか?

例えばAIR Note!に関しては、その当時はまだSIだったので、営業さんも同じフロアにいました。2000年くらいだったので、結局営業の人はワードとかメールとか打ってて、コピー取っておいても履歴がないから、閉じるとそのまま消えちゃうじゃないですか。

その時に、コピーの履歴取れてればいいのに、みたいなのがあって、AIR Note!の一番の始まりは、そのコピーの履歴を1000件ぐらい残しておけるのが売りだったんですよ。

Excel だろうがなんだろうが、別のアプリとしてAIR Note!が常駐してて、それにコピーしたやつがずっとアプリにデータとして入っていく仕様でした。

──では、いわゆる仕事で自分の小さな課題を解決したいというのがあったんですね。

そうですね、小さな課題、目の前にあるそういう課題が解決できそうだなと思うと、僕はモチベーションが上がるんですよ。

──欲しいものを作ると聞くと、イメージしづらい方もいると思うんですけれども、小さな課題を解決できるものでしたら確かにイメージしやすいです。

あとは、 「Bootstrap Editor」というブラウザ上で動くエディタがあるんですけれども、Bootstrapのテンプレートを読み込んで、書き換えたらHTMLが出来上がるみたいな。

それもきっかけは、地方での仕事があって、 Bootstrapの講義をしに行ったんです。そしたらデザイナーの方が100人くらいいらっしゃって、「Bootstrap知ってますか?」と聞いてみたら、意外と手が上がらなかったんです。

山崎さんが開発された、「ログインもインストールも不要」でWebページを爆速で作成できるWebアプリケーション「Bootstrap Editor」。

そして講義が終わったら結構質問が来て、「Wordpressと何が違うんですか?」とか質問されて、Bootstrapとは明らかに違うじゃないですか。なので、「Bootstrap使えるようになるまで時間かかるなー。」と思ったんです。

だったら、Web でアクセスしたらテンプレートを選べて、ちょっと書き換えたら出来上がるみたいにしてあげよう!という風に考えました。

──すごい、これ LP 簡単に作れますね!

まさにそうです 。やっぱりそれを作るきっかけがそれだったんですよ。東京ってやっぱりできる人がいっぱいいるじゃないですか。メルカリとかクックパッドとか LINEとか、そういう最先端の企業の人に頻繁に会うから、新しいことをやるのが当たり前のようになってますけれども、ちょっと外れると全然違うんですよ。

それをどうやって解消しようかなと思って、こんなのあったら便利かな?と思って作ったのがこれです。

──意外とWeb業界にもそういう地方と都市の情報格差みたいなものがあるんですね。

そうなんです。なので、多分Vue.jsとかもそうなんだろうなと思います。結局は地方で jQuery とかで作ってるけれども、首都圏は新しい技術を使うことが多いのではと思います。でも地方の小さいデザイン会社がそれをできるかって言ったら、できないと思うんです。なかなかそこは難しいところですね。

──山崎さんはジーズアカデミーで講義をされています。そこでは、アウトプットについてどのように指導されているのでしょうか?

実はアウトプットはシステム化しています。平日コースに通うと、火曜と木曜に発表の会があるんです。週に2回課題があって、それを全員の前で発表しないといけないので、絶対にやらなくちゃいけない。

──なるほど、やっぱり期限を設けるといいですね。

みんなで、発表で面白いものとか色々なものを見ながら、自分の立ち位置を理解して、もっとこれだけやらなきゃいけないとか、そういう機会を設けている感じです。

──しかも、ジーズアカデミーでは最後にアウトプットをしないと、卒業できないとお聞きしました。

そうです、卒業制作がありまして、チェックがかなり厳しいです。本当に中途半端な作品では卒業できません。

小さいアプリを1つ作り終えることから始まる

──最後になりますが、アウトプットが苦手なエンジニアに向けて、明日からできるファーストアクションについて教えてください。

アウトプット苦手な方いますよね。すごい良いコード書くし、アルゴリズムも良いんですけど、1つのアプリとして出来上がらない人っています。

エンジニアとしての基礎スキルは高いんですけれども、じゃあその人が1つのアプリケーションを作り上げられるかというとまた違う話なんです。アウトプットが苦手なエンジニアの方は、やっぱり1つ1つのアプリケーションを、目標を決めてとにかく作り上げていく必要があると思います。

例えばじゃんけんであっても、メモ帳であっても、その1つ1つをとりあえず完成させること。またサッカーの話に戻ってしまうんですけれども、つまり1試合をちゃんと戦って、その試合の流れを読むということですね。

アプリも作っていく中での経験値、流れを読み、大局観を持ちながら、その感覚がないとやっぱり作れるようにならないと思うので。

小さいアプリケーションをとにかく1個作って、仕上げて、また小さいものを作って仕上げて、の繰り返しをすることが非常に大切だと思います。いきなり大きいのは無理なので。

──まずは小さいアプリを1個作り終えることが、1つのアドバイスですね。

そうです、小さいものを1つ作り、そこに何かこういうの付けてみたら面白いかな?ってなったら、また自分で調べてパワーアップできるじゃないですか、これが自走の始まりですね。自走力は作ることで鍛えられます。

──最初から、壮大なものを作ろうと考えている人が多い気がします。壮大なものを考えすぎて、結局行動に移せていないみたいな。

そうですね、結局そのじゃんけんとか小さいアプリをバカにして、それをやらないで、もっと最初からすごいものを作ってやろうと思って失敗する人が多いのでしょうね。小さいものから、コツコツコツコツとやって、感覚を掴んでいく、リズムを掴んでいく感じです。

ジーズアカデミーTOKYO

私の極意カテゴリの最新記事