「異能」ともいえる際立った能力や実績を持ち、周りから一目置かれるエンジニアの素顔に迫る。今月は、競技プログラミングのコンテストを開催する「AtCoder」の社長である高橋直大(なおひろ)氏。chokudaiというハンドルネームで知られ、自身も現役の競技プログラマーである。今回は、競技プログラミングとの出会いやその意義を中心に聞いた。

(聞き手は大森 敏行=日経 xTECH/日経NETWORK)


前回から続く)

 僕は1988年7月生まれで、現在は30歳です。最初にコンピューターに触れたのは、幼稚園のときに学研の「まなぶくん」という学習教材が入ったコンピューターを使ったときです。足し算、引き算、かけ算などが学べるコンピューター教材で算数に触れたのがたぶん最初です。あと、家にパソコンがあってコンピューターゲームをしていました。

[画像のクリックで拡大表示]

 中学時代にも、軽く触れたことがありました。中学と高校は、筑波大学附属駒場中・高等学校(筑駒)です。中学生のとき技術科の授業で4ビットマイコンを1人に1つ与えられて、「1学期中に80バイトのオリジナルプログラムを書きなさい」という課題が出されました。機械語を直接書き込むのです。

 僕は本来はマイコン世代ではないので、2000年代前半の段階でそこに触れた経験は結構珍しいと思います。筑駒は進学校で賢い生徒が多く、自分の学力は低かった。成績は下から10人のレベルでした。ところが、そのマイコンの授業では、自分は明らかにできるほうに入っていました。そのときにこうした分野に適性があるのかなと思えたのが、プログラミングに向いていると考えたきっかけの1つです。

 中学のときには、富士ゼロックスの「情報塾」というプログラミングを体験する1日のイベントにも参加しました。Javaでゲームを作ってみようというものでしたが、そこでも結構すいすいとプログラムを書けました。

 中学時代に、友達がコンピューターのタイピングの速打ちをやっていたこともあります。楽しそうだったので自分も一緒にやってタイピングが結構速くなりました。その頃から、将来はプログラミングやコンピューターが仕事になるのかなと考え始めていました。

 中学から高校2年までは、野球部で野球をやっていました。ところが高校2年で肘を壊して、野球部をやめることになってしまいました。それを契機に本格的にプログラミングを始めることになりました。筑駒にはパーソナルコンピュータ研究部があって、そこに仲のいい友達がいました。自分もパソコンが好きだったので、そこに入りました。

 手始めに、米マイクロソフト(Microsoft)が主催するイマジンカップ(Imagine Cup)というコンテストに参加してみました。最初に参加したときは、1次予選を通過したものの2次予選には出ていません。当時は、まだプログラミングがほとんどできなかったからです。

 1次予選は、プログラミング力があまり要りませんでした。パズルゲームを与えられて、簡単なコマンドを並べて効率良くロボットを動かそうという問題でした。あくまでゲームの延長で、そんなにプログラミングの自覚なくやっている感じです。2次予選はプログラミングが必要だったので、そのときは参加しませんでした。

 東京工業大学がやっているSupercomputing Contest(SuperCon)というコンテストもあり、筑駒のパソコン研究部から毎年出ていました。3人チームで出るコンテストです。パソコン研究部にはプログラムが書ける人が4~5人いましたが、僕は全然書けない側でした。自分は人数合わせで参加した感じです。

 予選プログラムは、他の人は忙しくて書いてくれなかったので、C言語を勉強して、600行くらいのプログラムを一から書きました。今見ると本当にひどいコードです。andでif文の条件を並べることも知らないので、if文が8重のネストになっていて、その中にfor文があり、インデントが14段くらい並ぶすさまじいプログラムでした。関数というものを知らないまま書いていたので、main関数が600行くらいありました。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が2020年1月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら