「BEAR.Sunday」郡山昭仁さんに聞くプログラミングに必要な視点と考え方

2015年4月16日 (2017年3月8日最終更新)
「BEAR.Sunday」郡山昭仁さんに聞くプログラミングに必要な視点と考え方
目次
  1. ゲームがしたい!それがはじめの一歩でした
  2. 学習に必要なことは、学ぶ人の「考え方」や「姿勢」
  3. これが来る!と未来を予測して備えるのは難しい時代
  4. 新しいアイデアを生み出したい
  5. より大きなことへの関心をもち、世界を広げる

トップエンジニア・インタビュー第二弾!

業界をリードするトップエンジニアの皆さんに聞いた、プログラミングを始めたきっかけやご自身のスキルアップの極意、初心者へのアドバイスなど、貴重なお話をお届けするシリーズ「トップエンジニア・インタビュー」。

第二弾は、小川雄大さんからバトンを受け取った、フリーランスPHPプログラマーの郡山昭仁氏です。

プロフィール:郡山昭仁(こおりやまあきひと) フリーランスPHPプログラマー。オープンソースフレームワークBEAR.Sundayの開発者。昨今は、PHPNW(2013年)やPHPカンファレンス関西(2014年)等での講演活動にも精力的に取り組む。

ゲームがしたい!それがはじめの一歩でした

PHPプログラマーとして、主にどんな活動をされていますか?

BEAR.SundayというWebフレームワークやRay.DiというDIフレームワークを製作していてます。これらはエキサイト株式会社に提供していて、海外含め50人以上のエンジニアに使われています。

また、PHPフレームワークAuraのメンバーでもあります。2013年はイギリスBBCとPHPNW、2014年には「PHPカンファレンス関西基調講演」等の講演活動も行いました。

プログラミングに出会ったきっかけは?

ゲーム専用機が登場する前に「マイコンブーム」の時代というのがあり、多くの人が単にゲームがしたいという動機で最初のPCを購入しました。ゲームがつくれる(=プログラムができる)という事は憧れであり、それがきっかけでプログラムを始める人は当時大勢いて、私もそのひとりでした。

学習に必要なことは、学ぶ人の「考え方」や「姿勢」

郡山さんご自身は、どのようにスキルを伸ばされてきたのでしょうか?

黎明期のコンシューマーゲームは、クオリティとアジリティがプログラミングスキルのみによって求められる非常に厳しい世界でした。現在のように、便利なツールや洗練されたメソッドの力を使うことができず、ドライバやライブラリの無い世界で、全てを自作し、コードが全ての責任を負いました。このような厳しい環境は、基礎的な「創り上げる力」に役に立ったのでないかと思います。

今は良いコードを読むことが大事だと思います。そして、良いコードを読むことができるために「何が良いコードなのかを理解する力」をつけること。理解する力をつけるためにはそのことについて、常に意識的でなければいけません。

そして良いと思えるコードに出会ったならば、自らのつまらない好みや慣れを捨てる事に躊躇せず、自分のコーディングをアップデートする。自分が気持ち良くコーディングすることよりも、コードを引きついだ人が理解してメンテナンスできるかどうかを基準に考えるようにしてます。

学習に大事なのはテキストや教えそのものではなく、学ぶ人の「考え方」や「姿勢」ではないかと思います。

これが来る!と未来を予測して備えるのは難しい時代

CodeCampをはじめ、プログラミングを学んでいる多くの方は、プログラマーへの転身や転職を目指している方もいますが、これからのプログラマーにはどんなことが期待されると思いますか?CodeCampをはじめ、プログラミングを学んでいる多くの方は、プログラマーへの転身や転職を目指している方もいますが、これからのプログラマーにはどんなことが期待されると思いますか?

回答するのが難しい質問ですね(笑)。

予測不可能な時代にこれから求められるものをイメージするのは「プログラマー」に限らず難しい。未来を予測して、それに備えるような行動が今うまくいくかという点にはちょっと疑問があります。

一方で、変化していく環境や社会の中でも対応できる本当の力は、ずっと長く機能すると思います。流行やトレンドを楽しむことも大事ですが、そうではないものも持っているかを自問するのもいいと思います。

ひとつあえて言うなれば、国際性です。私の開発したソフトウエアでも、当初日本での利用しか想定していなかったものが海外で使用される事になり、英語に対応したものを用意しなくてはならなくなったものがありました。

オープンソースに国境はなく、世界中の人たちが様々なアイデアを交換して協力しています。そういうことに参加するようになるのは素晴らしいですよね。

プログラミング教育義務化への動きなど、最近ではプログラミングが一般層にも広がってきています。このような時代の流れについてはいかがですか?プログラミング教育義務化への動きなど、最近ではプログラミングが一般層にも広がってきています。このような時代の流れについてはいかがですか?

正直、これについては私はまだ良くわからないところがあります。

例えば、「子供にコーディングを教えるのではなく、プログラマーがどのように考えるかを教えろ」という人がいます。

コーディングの実践や詳細より現実の問題をシステムがどう解決するかという、プログラミングをより広く考えた教育がされるのがいいのではないでしょうか。

新しいアイデアを生み出したい

IMG_0920_mini

現在ご関心のある領域や、ITやプログラミングを通じて取り組んでいきたいことについて教えてください。現在ご関心のある領域や、ITやプログラミングを通じて取り組んでいきたいことについて教えてください。

継続を可能にする技術に興味があります。RESTやAPIです。

インターネットやWebはあまりにも日常に深く浸透した当たり前のもので、その優れた設計が見過ごされてるのではないかと思う時があります。情報に「URI」という名前をつけ、「タグ」で情報をつなげるという単純な仕組みで長期的に使えてきているのが「Web」。

25年以上前に、世界で一番最初に作られたWebサイトは、現在の最新のブラウザでも見ることができます。25年以上前のものが普通に見れるなら、50年、100年後にも同じページを見ることができるのを疑わないですよね。

それらを可能にした、そもそもの設計が素晴らしかったと?

そうだと思います、そして単に長期間利用できるだけでなく、その上で継続的な創造が可能です。これらのとんでもなく優れた設計には学ぶべきものが多いと思います。BEAR.Sundayも強くインスパイアされています。

機能の提供だけでなく、継続的改善が可能なプラットフォームの製作、そしてそれを可能にするためのプログラミング、品質の高いコード。これらが今のチャレンジです。

アイデアも重視しています。一昨年にマンチェスターで行ったプレゼンテーションでは「共有する価値のあるシステムのアイデア」について問いかけるという、海外の一流エンジニアをインスパイアさせたい!という無茶で野心的なものでしたが、とても刺激になりました。

そういった場所で知り合った人や、AuraやBEAR.Sundayのチーム、BEARを使ってるエキサイトのチーム、国や会社を超えた様々な人々と意見を交換して、継続的な改善を超えた「新しいアイデア」を生み出せないか、そういうことに取り組みたいです。

より大きなことへの関心をもち、世界を広げる

それでは最後に、プログラミング学習者へ応援メッセージをお願いします。それでは最後に、プログラミング学習者へ応援メッセージをお願いします。

では二点ほど。

「過去の自分と今の自分を比べてみよう」というのが一点。

そして「より大きなことへの関心をもつ」というのが二点目。

自分が今見ているものよりも、より大きなもの、視野の外側にある「見えていないもの」をもっと注意してみれば、世界が広がって面白いと思います。

ありがとうございました。

Code部編集チーム
Code部編集チーム
Code部は、日本初のオンラインマンツーマンプログラミングスクール「CodeCamp」が運営するメディアです。「全ての人にプログラミングを」というミッションの下、プログラミング初心者に役立つ情報を発信しています。

関連記事