―― 高橋さんいわく、パ研は変態集団とのことですが、高橋さんも世界3位とか、RedCoderで恐れられる立場なわけで。高橋さんも変態ですよね?
高橋 いや、それは……どうなんでしょう(笑)。当時は、パ研の猛者たちには太刀打ちできないと思ってましたよ。最近は少しだけ自信がついてきたんですが、それでも「何とか勝負になるかな」っていう程度だと思ってます。本当に、コンピュータなり数学なりをやりたい人にとって、筑駒パ研はものすごくいい環境だと思います。
―― それほどですか。パ研、恐るべしですね。SFC(筆者注:高橋さんが通う慶應義塾大学 湘南藤沢キャンパス)では、どんな勉強をされているんでしょうか。
高橋 今は数学を中心に据えつつ、いろいろな分野を学んでいます。僕は、数学と文系って通じるところがあると思うんです。数学というより、アルゴリズムと文系。文系といっても、文学とかじゃなくて、経済とか商学。それらはアルゴリズムと通じるところがあると思います。
現代では、コンピュータによる情報分析はどの分野でも必要だと僕は信じています。いかに情報解析ができるかというのは、文系の人がコンピュータをちょっと調べてやるよりは、僕のような人がやった方が効率がいいと思うんです。僕が所属する環境情報学部は「文理融合」というスタンスがあって、すごく自由に勉強できるのがとってもいいなあ、と思っています。
―― SFCの自由さが高橋さんに合っていたわけですね。
高橋 そう思いますね。SFC、好き勝手に勉強できて、いいところですよ(笑)。いま、2つの研究室に入っているのですが、そのうちの1つはとにかくテーマ設定が自由で、TopCoderの結果を報告したり、TopCoderで出題された「Eternity 2 Puzzle」という問題を取り上げてみたり。その問題、解けると賞金200万ドルなんですよ! でも……解ける気がしない(笑)。
もう1つは村井先生(筆者注:日本のインターネットの父といわれる村井純教授)の研究室で、RFIDに関する研究をやっています。でも、村井先生の研究室って、ほかにも班があって、量子コンピュータを研究していたり、画像認識を研究していたり。幅広いですよ。
―― 200万ドルの問題、ぜひ解いてください! そして末永くお友達でいましょう(笑)。画像認識といえば、以前SFCで開催された情報科学技術フォーラム(FIT2008)という学会イベントに参加したとき、画像認識アルゴリズムコンテストというのを見学したことがあります(筆者注:FIT2008「パターン認識・メディア理解アルゴリズムコンテスト」)。画像認識技術も、アルゴリズマーの腕の見せどころですよね。
高橋 あ、そのコンテストは興味ありますね! あとで詳しく教えてください。
―― 毎年やっているコンテストのようなので、ぜひ参加してみてください。
―― 先ほど「将来は研究職」とおっしゃられていましたが、これだけコンテストの実績があると、強い武器になりそうですね。
高橋 みんな、もっと大会に出ればいいのに、と思います。就職活動をするにしても、「基本情報処理技術者の資格を持っています」というより、「世界大会3位です」といえた方が良いと思いませんか?
以前、マイクロソフトの方とお話しする機会があって、「Imagine Cupで1次予選を通った段階で、本名を公開して活動しちゃってもいいんじゃないか」と伝えました。世界3位とかじゃなくてもいい。意欲と行動力、そしてその結果を示すことができる、というのが大事だと思います。「大会に出たからって何ができるの」という人がいるかもしれないけど、僕はそういうところでいい成績が残せるっていうことが実力の証明になると思います。
―― アルゴリズムコンテストや数学オリンピックでの実績は、就職活動でもインパクトがあるでしょうね。最近だと、夏にKLab主催の「天下一プログラマーコンテスト」というコンテストがありましたが、問題文が日本語だし、国内だし、とても参加しやすいコンテストだと思いました。Imagine CupやTopCoderに出るのはハードルが高い、と感じる人にも、チャレンジできるコンテストはありますよね。
高橋 出やすいですよね、天下一プログラマーコンテスト。でも、問題は手ごたえがあって、決勝に行くのは難しい。僕は、参加者が猛者ぞろいで勝てる気がしなかったので、ネタに走っちゃったんです(笑)。面白いコンテストでした。コンテストに出るのって面白いんですよ。
―― どんどんコンテスト好きのエンジンかかってきましたね、高橋さん。ぜひ、コンテスト出場の面白さを語ってください。
高橋 コンテストはすごく分かりやすい目標になります。だから、僕は「プログラミング初心者ほどアルゴリズムコンテストに出てほしい」んです。学習の序盤に、ただ参考書を読んでなぞるだけじゃなくて、アルゴリズムコンテストという目標設定をするのは、とてもいいことだと思います。
―― なるほど、モチベーションを上げる材料になりますね。でも初心者だと、コンテストに出るというのは実力的に難しいのでは?
高橋 そうでもないと思います。コンテストに出るためにどんなことが必要かというと、C言語でいえば、printf/scanf程度の標準入出力、if文、for文、配列操作くらいができれば、もう問題は解けちゃうんですよ。もちろん、良い成績を残そうとするのであれば、もっと高いスキルが求められるかもしれませんが。どちらかというと、それらを組み合わせるアイデアや考える力が必要。そこを楽しんでほしいですね。
―― 発想を楽しむ。アルゴリズムコンテストって、頭の体操に似ていますね。
高橋 まさしくそうです。“Hello World!”を出力するよりずっと面白い。
「どうやったらプログラミングの学習がもっと楽しくなるだろう」と考えると、例えば、数値計算などは初心者でも簡単にできますよね。だったら、それを組む速さを友達と競ってみたり、長いコードを組むときはできるだけ実行速度を早くしてみたりとか、競技にすることで、一気に楽しくなると思うんです。こうした話は、自分の連載でも熱く語る予定です。
―― それは楽しみです。ぜひ、読者の皆さんには高橋さんの連載も読んでいただきましょう(笑)。アルゴリズムを考える面白さは僕も分かります。高橋さんのツボが理解できました。
高橋 ただ、こういうことをいっても、実際にやってみる人というのは少ないと思うんです。だから、できるだけ問題や環境は準備してあげて、「ほら、これでやってみなよ」っていう状況を作れるようにしたいです。
そういう風に楽しんでほしいから、今はITmediaで連載しているわけですが、以前は2ちゃんねるでやっていました。大会の問題を日本語に訳してプログラミングスレに投下して……なんてことをしていました。みんな、楽しんでくれていましたよ。
―― なんと、2ちゃんねるで! 僕もあまりコンテストに出たことはないですが、主催している勉強会でハッカソン形式のプチコンテストをやりたいと思っているんです。今日、高橋さんとお話しして、コンテストにも出てみようという気持ちになりました。
高橋 ぜひ出てみてください。
―― では最後に、「アルゴリズムの楽しさ」とは何ですか?
高橋 ある目的があって、それを達成できるアルゴリズムを思いついたときには、やっぱりとてもうれしい。さらに、その後どんどん改変して、ブラッシュアップしていく過程は、なんというか……子供を育てるような気持ちというか、楽しさがあります。また、「自分がやったことの結果」が、コンテストだと明確に数値化されて見えるというのが、すごくやりがいがあって面白いと思います。
―― 競技の楽しさも不可欠なんですね。
高橋 1人でやってもつまらないわけじゃないんですが、競技でやった方が断然、面白いと思います。それこそ、短距離走とか長距離走とかと同じ。スポーツと変わらないかもしれません。自分がうまく解けなかったときでも、例えばTopCoderだと、ほかの競技者のコードが公開されるので、「ああ、こんな風に解けるんだ!」と感動できるのがとっても楽しいです。
みんな違う解き方をしていて、競技者同士で確認したり、コメントし合ったりできるんですよ。これが面白い。そういうことやっていると、「見たこと、組んだことはあるけど、名前は知らない」というアルゴリズムが多くなってきてしまうんです。よく人から「あ、ここは○○法でやってるんだ」とかいわれて、「あ、そういう名前なんだ」って、初めて知ることがあります(笑)。
―― 好きなアルゴリズムやデータ構造はありますか?
高橋 好きなアルゴリズムは、正直にいっちゃうと、ないです。あるアルゴリズムの枠に捕らわれちゃうのは、よろしくないと思っています。「○○法」っていっちゃうと、そこで思考が止まっちゃうんです。それをちょっと変えて発展させたものが、その先には絶対にあるはず。もちろん、ある程度アルゴリズムの分類はできますが、「どれが好き/嫌い」という話はあんまり考えない方がいいと思います。しいて好き嫌いをいうなら、「シンプルで早いやつ」が好きですね。
―― アカデミックに分類されたアルゴリズムを教科書的に学んで、理解して覚えていく、ということはあまりしていないのですか?
高橋 あまりしていません。でも、本当に上の方を目指そうと思ったら、そういう知識も必要になるので、最近はちゃんと勉強するようにしています。
これも工夫が必要。まずアルゴリズムを覚えて、次にそのアルゴリズムを使う問題を解いてみて、最後にそのアルゴリズムを使う問題そのものを考えてみる、というふうに勉強しています。「問題を考えてみる」というのは、「どういう場面でそのアルゴリズムは使えるのか」ということを、とても深く考えることができるんです。そこまでする必要はないのかも知れませんが、楽しいので、コンテストを開きたいくらいです(笑)。
―― 楽しみながらも、しっかりと理解する。理想的な勉強ですね。ありがとうございました。
いかがでしたでしょうか。取材をしていて、「実力派」という印象を強く感じました。普段から頭の中が高速回転していそうな……。でも、話し方や物腰は、とてもおっとりとしていて、温厚な人柄でした。
強く感じたのは、「実績」は強い武器である、ということでした。実力の証明になるし、その人の「カラー」になる。何より筆者が「良いなあ」と感じたは、「楽しむ」ことを、高橋さんがすごく大事にしているという点です。話していて、「楽しいから」「楽しくないと」という言葉が何度も出てくるのです。筆者も数多くの勉強会に参加したり、自ら取材したりしておりますが(次回の電設部学外勉強会は12月5日、池袋で開催予定です)、なぜやっているのかといえば「楽しい」から。そういう点で、強く共感するものがありました。
それでは、次回「学生スターエンジニアに聞く」をお楽しみに!
塚田朗弘(つかだあきひろ)
日本電子専門学校 高度情報処理科 3年生。
大学卒業後、紆余(うよ)曲折を経て日本電子専門学校に入学し、2010年3月に卒業予定。
学校ではチューターとしてオープンソースシステム科やITスペシャリスト科といった他科の実習室管理、実習補佐を担当する傍ら、非公式部活動「電設部」でIT勉強会プロジェクトのリーダーを務める。
IT勉強会プロジェクトでは、学生によるIT勉強会の普及と、IT勉強会への学生の参加を促進すべく奮戦中。
所有資格はテクニカルエンジニア(データベース)、テクニカルエンジニア(ネットワーク)、ソフトウェア開発技術者、ORACLE MASTER Gold Oracle Database 10g、UMLモデリング技能検定L3など。
ブログ:学内IT勉強会のススメ
Copyright © ITmedia, Inc. All Rights Reserved.