国際プログラミング大会に挑戦して学んだこと
【田原】学業のかたわらICPCというプログラミングの大会に出たそうですね。これはどういう大会ですか。
【西川】大学対抗の国際コンテストです。3人1組で、5時間にプログラミングの問題が8~9問、出題されます。たとえば複雑な迷路が与えられて、この迷路はゴールにたどり着けるかどうかを判定するプログラムを書いたり、飛行機の時刻表があって、一番遠くまで行けるスケジュールを求めるプログラムを書いたり。いろんな問題が出ますね。
【田原】成績はどうだったのですか。
【西川】大学1年生から大学院1年生まで、最大で5回までしか出られない大会で、僕は毎年挑戦しました。国内予選、アジア地区大会、世界大会とあって、1年生のときは地区大会まで。2、3年生は予選落ちして、4年でまた地区大会まで。大学院1年のときに地区大会で好成績を取り、テキサスで開かれた世界大会まで行きました。このとき東大チームは京大チームとタイで、約80チーム中19位でした。
【田原】すごいですね。このときの経験から何か学んだことはありますか。
【西川】チームの力はおもしろいなと感じました。世界大会にはいろんなカラーの国が参加します。たとえば中国のチームは1日20時間も練習してきましたという人たちでした。一方、僕らは3人が別の学科だったので、中国チームほど練習ができません。そこでそれぞれ得意分野を決めて強みを活かすというやり方で大会に臨みました。すると、ものすごい練習を重ねてきたチームとも互角に戦えた。プログラミングは、何でもできる1人の天才がいなくてもいい。チームで一人一人の強みを掛け合わせれば大きな力を持てるんだなと実感しました。
【田原】院生のときにベンチャー企業でバイトをしていたそうですね。どんな仕事ですか。
【西川】3カ月間だけですが、創薬のバイオベンチャーで働きました。ゲノムの中にはさまざまな遺伝子があります。その中には、たとえばがんを膨らませるとか、太らせちゃうとか、何か悪い機能を発現する遺伝子もあります。ただ、数万の文字列でできている遺伝子に対して21塩基くらいの短い塩基配列をくっつけると機能の発現を止められる、siRNA(small interfering RNA)という技術があります。コンピュータをぶん回して、その21文字を探すバイトでした。
東大・京大のプログラマー6人で起業
【田原】同期はGoogleに行き、ご自身はバイオベンチャーで働いた。でも西川さんはどこにも就職せず、2006年に起業します。どうしてですか。
【西川】大学での技術研究と産業界の間にある深い溝にジレンマを感じたんです。大学は論文を書くことが主な目的になっていて、せっかくいい技術があってもなかなか製品化されない現状がありました。一方、Googleに代表されるように、ITの分野では新しい研究がすぐ実用化されていく流れがある。それを見ていて、僕らもアカデミックで生まれた最新の技術を製品にしてすぐ届けられる組織をつくりたいなと。
【田原】僕らということは、起業は1人じゃなかった?
【西川】はい。同級生やコンテストでライバルだったメンバーを含め、東大と京大のプログラマー仲間6人で起業しました。みんな技術力の高いメンバーです。
【田原】僕はプログラミングがわからないから聞きたい。技術力が高いって、どういうことをいうのですか。
【西川】普通、たくさんのデータを処理するときは量に比例して時間がかかりますよね。それを、手法を工夫することで一瞬で処理できるようにしたりとか、そういうことです。突き詰めると数学力と、コンピュータサイエンスの知識、あと慣れの問題でしょうか。とにかく子どものころからアルゴリズムのことばかり考えてきたメンバーが集まりました。
【田原】そのメンバーで、具体的にはどんな技術で起業したのですか。
【西川】最初はあまり考えていませんでした。メンバーの1人が持っていた技術を使うと、検索エンジンを高性能化できそうだったので、まずはそれを使ってみようと。