宮下竜大郎(みやした りゅうたろう)さんは、運営されているブログimthinker.netの他にも、当サイトエンジニアインターンのコラム( Titanium Mobile でつくる iPhone アプリ)でもプログラミング開発に関する記事を執筆するなど、 Titanium Mobile というアプリ開発技術の普及に力を注いでいるエンジニアの一人である。
今回のインタビューでは、『最高のエンジニアになるために必要な条件とは何か』についてお話を伺った。
◆どのような学生時代を過ごしていましたか?
中学生のときに私の家にパソコンとインターネット環境が整いました。 当時ちょうど携帯電話が普及し始めたころで、まだ中学生だったこともあり携帯電話を持っていても着信メロディを買うお金がありませんでした。
そこで、自分で着信メロディを作り、それを無料で配信するサイトを作ろうと思い、1週間後にはインターネットでWebサイト作りを始めました。その着信メロディを配信するWebサイトをつくってみると、予想以上の反響があり、それからどんどんとプログラミングにのめりこんでいくようになりました。
そんな状態だったので、高校へ進学する際、普通科は面白くなさそう、パソコンを使って何かやりたいという漠然とした想いで、そのとき都内で唯一の科学技術科を持つ「都立科学技術高等学校」に行くことになりました。
都立科学技術高等学校は朝8時20分から夕方遅くまで授業があったり、大学以上の環境設備が整っているなど、高校では国内でも珍しい学校だったと思います。当時、熱中していた「電気回路や IC を使った物作り」は面白かったのですが、いざ作り終わってしまうと、限られた人からのフィードバックしかないことに、物足りなさも感じていました。
そのような流れでWebの世界の方が面白いと思うようになり、大学は工学系の単科大学「東京電機大学」に進学しました。
他にも大学では『学生職員』という制度のもと、学生でありながら電気科の実験室で職員の仕事を入学から卒業までの4年間行っていました。学生職員とは、どのような仕事をするものなのかというと、夜間学部の実験科目で、実験テーマ毎に機材準備や実験結果の値の確認や、学生からの質問対応といったものでした。
特に学生の不明点への応答の業務では、高校時代の知識と経験をフルに活かさなくてはならないものだったので「人に何かモノを教えるということの大変さとやりがい」を知ることができたので、貴重な経験になりました。
また、職員制度とは別に中学から培ってきたWebサイト作りの特技を活かして、学部・学科のWebサイトも作っていました。とにかく大学という組織の中で学生としての立場と、職員としての立場両方にたつという経験はなかなかできないので、良かったと思います。もちろん、旅行に行ったり、遊んだり、という学生らしいこともやっていましたが、一人の時間があるときはほとんどパソコンに触って何か作業をしていましたね。
◆これまで作ったことのあるものやこれから作ろうとしているものがあれば教えてください。
これまで作ったものには“ Picky “という特定のテーマにそって写真を共有していく iPhone アプリやWebサービスがあります。ただ、Webはコラボレーションの世界だと思っているので、個人で作るという感覚より、仲間やクライアントと一緒に作っていく感覚の方が強いです。
現在、 Titanium Mobile というアプリ開発技術のコミュニティで様々な活動を行っているのですが、そのコミュニティで開かれる技術勉強会で行われている名刺交換の代わりに『ソーシャルアカウントのやり取りができる仕組み』があったらいいなと思っていてその仕組みを実現させるサービスの開発を考えているところです。
この仕組みで、技術者同士のコミュニケーションを円滑にするだけでなく、技術者以外の人との共通言語のような機能を果たせるようになればいいと思っています。
自分の頭の中にあるものをカタチ作れるということは、ものを作る人共通のやりがい
Webの面白さは、作ったものを世の中に公開すれば世界中の人たちに使ってもらえるということだと思います。サービスを作る側に立つことで、『インターネットの一見無味乾燥に見える世界の先には、かならずリアルな人間がいる』ことを実感することができますし、扱っている対象の大きさにやりがいを覚えることができます。
最近よく見かける光景の一つに、電車に乗っている最中にスマートフォンを利用している姿があります。多くの人はその姿を見たとき、あまり良い気持ちにならないかもしれません。
しかし、忘れてはならないのはその画面を見ている人達は、画面の向こう側にいる人達とのコミュニケーションを楽しんでいるという事実です。ここにWEBの世界の醍醐味があるのだと思います。
◆宮下さんの思う、最高のエンジニアの条件、また素質とはなんでしょう?
Webの世界だけに限れば、最高のエンジニアの条件は、『新しいものを毛嫌いしない』ではないでしょうか。一度身につけた技術にこだわらず、新しいものが次々と出てくる中で臆せず味見できる人は良いと思います。さらに、手当たり次第に味見するのではなく、これだというものをしっかりと見定められる審美眼を持っていれば最高のエンジニアだと思います。また、最高のエンジニアの素質に関しては『精神論を先行させない考え方をできるかどうか』だと思います。
- 気合いがあれば
- 時間をかければ
- がむしゃらに
という考えが先行すると、自分を疑うということを忘れます。
主観性と客観性の観点からバランス良く技術というものを見つめ、冷静な論理の組み立てと、選択、選択した後の熱意と成果を求められるのが、最高のエンジニアといえるのではないでしょうか。
より良い方法を冷静に追求し、熱く実践できることがエンジニアには求められる
◆これからどんなことをしていきたいと考えていますか?
Webの仕事をする上では、私はジェネラリストになりたいと考えています。なぜならスペシャリストには技術基盤のスペシャリストだったり、デザインのスペシャリストだったりがいて、こうした人たちが製品を作りたいと考えたときに必ず障壁となるのは自分の専門分野以外のことについてです。
Webは様々な分野の人が自分の能力を発揮できる場ですが、サービスや製品を作りたいと考えたら、自分の持っている能力だけでは解決できないことがたくさん出てきます。そうした人たちに対して、何らかのビジョンを示せる人、それがジェネラリストだと思います。
ジェネラリストはスペシャリストの接着剤
ここで注意しなくてはならないのは、真のジェネラリストはスペシャリストにとっての「単なる都合の良い存在ではない」ということ。真のジェネラリストを目指すということは、どういうことなのか常に考えて行動していく必要があると思っています。
そのためには、常に自分の持っている技術は古くなっているという意識を持ち続けて、新しい技術を臆せず学んでいかなければいけないのです。
◆これからプログラミングを学びたい人に向けたメッセージをどうぞ!
プログラミングはWebの分野に限ったものではありません。たとえば医療の現場でも必要になってくる知識です。最近ではスマートフォンアプリやWebサービスなどの華々しい一面だけが脚光を浴びているように思います。
プログラミングとはもっと広範囲に定義されるものです。どの分野においても変わらず意識して欲しいのは、画面の上で動くものを作るという側面と、機械を動かしているという側面です。
プログラムとは機械に任せる仕事のマニュアル
酷いマニュアルを渡された人間がウンザリするように、酷いプログラムを渡された機械もウンザリします。機械は人間が書いたプログラムの通りにしか動きません。人間のように融通を利かせることなんて一切起こり得ないのです。
サービスやアプリを作って誰かに喜んでもらいたいと思うならば、そのプログラムを動かす機械にとっても“優しいプログラム”を書かなくてはならない、と言うことも忘れずにプログラミングを学んで欲しいと思います。
そのように書かれたプログラムはスムーズに動きますし、結果としてユーザにとっても良い体験を与えることができるでしょう。
(取材・文/ 佐藤 雄紀)
今回、宮下さんのお話を聞いて最高のエンジニアになるために必要な条件とは、現状に満足することのない探究心だと分かった。プログラミングは単なる技術ではなく、機械と対話するためのコミュニケーション言語だということ。その言葉を駆使して社会により良い仕組みを生み出すエンジニアが求められているのだろう。学生のうちに制作・開発の仕事に関わり、実際に企業で制作・開発の経験を積むのもいいのかもしれない。
≪プロフィール≫
宮下 竜大郎 / Miyashita Ryutaro