
エンジニアリングの世界において、「一つの技術を深く掘り下げること」は並大抵の努力では実現できません。表層だけではなく奥深くまで理解するには、膨大な量の学習と経験が求められます。しかし、その先には、道を突き詰めた人にしか見えない景色が広がっています。
Java Champion*の称号を持つ谷本心さんは、“達人”と言えるほどに、研鑽を続けてきた人物です。プログラミング言語Javaと20年以上も向き合い、オープンソースのコードを読み解き、コミュニティの人々とともに学びを深めながら、実力を磨いてきました。
特定の技術領域に長く携わることの意義とは、何にあるのでしょうか。今回は、そのキャリアを振り返っていただきました。
*…Java Championとは、世界中のJavaコミュニティの中でも、特に影響力があり、貢献が顕著な個人に与えられる特別な称号。技術的知見だけではなく、コミュニティへの貢献や発信力、教育活動などが評価されて与えられる。
OSSが教えてくれた“本気の学び”。長い旅路の出発点
――谷本さんがJavaに触れ始めたのは、いつ頃からでしたか?
大学4年生の頃です。教授から「研究に使うから、Javaを覚えてね」と言われたのがきっかけでした。それまでにもPerlやVisual Basic、Delphi、Visual C++といった言語には触れていたのですが、Javaは比較的あとから学んだ言語になります。
その後、大学院に進学し、1年目の後半から就職活動を始めました。就職先でもJavaを使うことがわかっていたので、「それなら大学院の研究もJavaでやろう」と、そのまま書き続けることにしたんです。そうして、現在までずっとJavaを使い続けていますね。
――Javaのスキルを向上させるうえで、役立った経験や学習はありますか?
特に効果的だったのは、OSSのコードを読むことです。新卒で最初に配属された案件と、その次の案件でStrutsを使っていたので、「どういう仕組みになっているか気になるし、業務にも役立つだろう」と考えて、Strutsの主要なコードを一通り読みました。
この記事の読者の方々にも、もしOSSのコードを読んで勉強するなら、まず「自分が仕事で使うOSSを読むこと」から始めるのをおすすめします。趣味や学びが仕事に直結していると、取り組みやすいですし、成果にもつながりやすいです。
また、勉強会にもよく参加していました。中でも印象的だったのは、「Tomcatのコードを全部読むなんて普通だよね」と平然と話す人がいるような、レベルの高い勉強会があったことです。「全部読むのが普通って、とんでもないな」と思いつつも、食らいついていました(笑)。そういう環境に身を置いていたことが、地力の底上げにつながったと思います。
その流れで、国産のJavaフレームワークであるSeasarにも関わるようになりました。きっかけは、S2JSF*というソフトウェアを業務で使っていた時期に、標準では提供されていない機能を自作して、それをブログにまとめていたことです。Seasarプロジェクトの主要メンバーだった比嘉康雄さんがその記事を読んで、「S2JSFのコミッターになったら?」と声をかけてくれました。
*…S2JSFは、Webアプリケーションフレームワーク「Seasar2」の一部であり、JavaServer Faces(JSF)を拡張・補完するためのソフトウェア。
――Seasarプロジェクトは、日本国内でも有数のJavaエンジニアが集まっていましたから、かなりスキルを磨ける環境だったのではないでしょうか。
そうですね。特に大きかったのは、現在ファーストリテイリングのCTOを務めている大谷晋平さんとの出会いです。私のキャリアにとって、とても大きな影響を与えてくれた存在です。私がS2JSFのコミッターになったとき、彼はプロダクトのリーダー的な立場にいました。大谷さんは、私と同年代なんですが、とにかく圧倒的なバイタリティがある人でした。その熱量を間近で見ていると、自分も引き上げられるような感覚になるんですよ。

JavaOneで感じた悔しさ。コミュニティがくれた成長
――Javaに関連した活動で、特に印象に残っていることはありますか?
まずは、2008年に初めて大規模カンファレンスのJavaOneに参加したことです。レポーター枠として参加し、現地からレポートを書く役割を担いました。ただ、当時はまだ社会人3〜4年目くらいで、英語も技術も未熟。セッションを聞いても難しくて内容が理解できず、打ちのめされました。
それでもレポートを仕上げなければならないという使命感があったので、必死に話を聞き、夜遅くまで原稿を書いていました。文章としては拙かったかもしれませんが、「とにかく書かないと」という一心でした。翌年も再び参加したのですが、そのときは英語も技術も少しずつ理解できるようになっていて、自分の成長を実感できましたね。
――他の技術イベントと比べて、JavaOne特有の特徴はありますか?
今とは状況が異なりますが、当時はJavaの最新情報がまずJavaOneで発表されるという位置づけでした。日本と海外との情報格差も大きく、アメリカで流行した技術が5年遅れで日本に入ってくることも珍しくなかったんです。だからこそ、現地で得た情報を日本にフィードバックすること自体に大きな価値がありました。
もう一つの魅力は、わざわざ日本からアメリカまで行って学ぶような、モチベーションの高い人たちに出会えること。そういう方々は皆、一癖も二癖もあるようなすごい人ばかりで、そうした出会いがあるのもJavaOneならではの価値でした。
――やはり、コミュニティでの出会いはエンジニアの人生を変えますね。
はい。コミュニティに関連した話で言えば、2009年に関西Javaエンジニアの会を立ち上げたことも大きな出来事です。共同発起人は私と阪田浩一さん、そして奥清隆さんでした。
当時の私は家庭の事情で大阪に戻っていたのですが、関西にはJavaのコミュニティが存在していませんでした。でも私はJavaOneに参加して情報も持っていましたし、それをアウトプットしたい、関西のエンジニアとつながりたいという思いがありました。
そんなときに阪田さんが「関西でJavaのコミュニティを作りたい」と言ってくれて、「じゃあ一緒にやりましょう」となりました。隔月ペースで勉強会を開催し、知り合いのエンジニアに大阪まで来てもらって登壇してもらうなど、地道に関西のコミュニティを育てていきました。
――コミュニティ活動といえば、谷本さんはJapan Java User Group(以下、JJUG)の会長も務めていますよね。JJUGに関連したエピソードはありますか?
実は、何度か会長就任の打診を断っていたんですよ。JJUGをここまで大きくしたのは、間違いなく前会長である鈴木雄介さんの功績が大きくて、「鈴木さんほどのことは自分にはできない」と思っていました。
たとえば、年に2度開催される「JJUG CCC」を1,000人以上が集まるイベントに育てたのも、鈴木さんの尽力によるものですし、JJUGを特定非営利活動法人にする構想も彼が中心になって進めていました。
――最終的には会長を引き受けられたのですよね。何か心境の変化があったのでしょうか?
役割を分担できる体制を整えてもらえたことが大きいです。JJUG CCCの運営やスポンサー対応は引き続き鈴木さんが担当し、私は広報や交流など、“コミュニティの顔”としての役割を担う形を提案してもらいました。それなら無理なく続けられると思い、引き受けることにしました。

実績を積み重ねてつかんだ、Java Championの称号
――Java Champion選出の経緯についても、お聞きしたいです。
Java Championは、技術的なスキルに加えて、コミュニティへの貢献や発信力なども評価対象になります。先ほど述べたようなコミュニティ運営に加え、JavaOneやSpringOneといった海外カンファレンスに継続的に登壇してきたことも、評価していただけたのだと思います。
サンフランシスコのJavaOneに初めて登壇したのは2013年です。当時、Java系の海外カンファレンスに日本人が登壇するのは珍しいことでした。自分で言うのも恐縮ですが、私がJavaOneに登壇したことが、他の日本人登壇者が続くきっかけのひとつになったのではないかと思っています。
――選出されたタイミングはいつだったのでしょう?
Java Championに選出されたのは2017年、JOnsenの場でのことでした。これは、日本のJavaエンジニアと海外のJava Championを含む“すごい人たち”が温泉宿に集まり、レクリエーションを楽しみながらアンカンファレンス形式で技術やコミュニティについて語り合うイベントです。その中で、「Java Championにならないか」と声をかけていただきました。
――選出されたとき、率直にどう感じられましたか?
驚きましたし、純粋に嬉しかったです。たまたまJOnsenでのご縁があったという運やタイミングの要素も大きかったでしょうけれど、それでも、自分がこれまで積み上げてきたことが認められた実感は強くありました。
Java Championになってから、初対面の方の反応は少し変わったように思います。私は昔から童顔で、話し方も柔らかいので、仕事で初めて会う方にはよく“なめられる”んですよ。仕事ができなさそうに見えるらしくて(笑)。でも、実際にご一緒するときちんと評価していただけるんですけどね。
ただ、Java Championという肩書きがついてからは、最初から信頼を得やすくなりました。以前はまず自分の技術力を見てもらってから徐々に信頼を築いていく、というプロセスが必要でしたが、それが短縮された感覚があります。肩書きの効力とは、こういうことなんだなと実感しましたね。
一点突破が総合力を引き上げる。まずは全力でやり切ろう
――こうしてお話を伺っていると、谷本さんは「努力を続ける力」が非常に強いように感じます。モチベーションを保ち続ける秘訣はあるのでしょうか?
ストイックに見られることもありますが、実際はそんなことはなくて、単にのめり込むのが得意な性格なんです。私はプログラミング以外に対戦型格闘ゲームもかなりやり込んでいますが、それ以外にもソリティアや数独のようなミニゲームですら、攻略法やパターンを理解するまで毎日何時間も遊び続けていたこともあります。
逆に、自分のスキルや理解度が上がっていかないと、飽きたりストレスが溜まったりするんですよね。そういう意味で、この性格に支えられている部分は大きいと思います。ただ、気力がないときや、他のことに興味が向いているときは継続できません。なので、モチベーションが高まったタイミングで一気に集中するタイプです。
また、人間ってリラックスしている状態(副交感神経が優位な状態)から、集中モード(交感神経が優位な状態)に入るには、ある種のエネルギーが必要なんだと思います。だから、休日に「さあやるぞ」と思っても、よほど強い意欲がない限り、動き出せないことが多いんですよね。
その点、仕事で緊張感が続いているときのほうが、帰宅直後でもそのテンションを維持したまま集中状態に入りやすいです。私の場合、むしろ忙しい時期のほうがインプットもアウトプットも増える傾向があります(笑)。

――谷本さんにとってのJavaがそうであるように、「エンジニアが特定の技術を深く突き詰めること」の意義は、何にあると考えていますか?
その技術に強くなるだけでなく、付随して他の能力も高まることですね。たとえば、学校で習う5教科のうち「数学だけが極端にできて、他がまったくできない」という人って、あまりいないですよね。何か一つの分野でレベル100になれば、別の分野をレベル50まで引き上げるのに必要な労力は、圧倒的に少なくなります。
先ほど格闘ゲームの話が出ましたが、私はいろんなタイトルを広く浅く触るのではなく、一つのタイトルを徹底的にやり込むタイプです。そうすると、自然と他のタイトルでも強くなれるんですよね。Javaに関して言えば、単に表面的な言語仕様を学ぶだけでなく、それを取り巻く各種の技術やコミュニティまで含めて深く関わることで、より本質的な理解に近づけるはずです。
――これから何かの技術を突き詰めたいと考える人に向けて、メッセージをお願いします。
まずは、与えられた環境の中で、目の前の仕事に全力で取り組むこと。それが最終的には、自分のスキルやキャリアを押し上げていくと思います。私も、最初から能動的にJavaを選んだわけではなく、「研究や仕事で必要だから」という受動的な理由でした。でも、そこから自分なりに努力を続けたからこそ、スキルが伸びたんだと思っています。
たまに、「仕事で使っている技術に興味がないから勉強しない」とか「給料が低いから仕事で手を抜いている」といった方も見かけますが、そうした姿勢ではキャリアは良くならないですよね。やるべきことに全力で取り組むからこそ、周囲に評価され、そこからチャンスが生まれていく。私はそう考えています。
取材・執筆:中薗昴
撮影:山辺恵美子
取材協力:株式会社Everforth


