今、理系学生の間でプログラミングが密かなブームになりつつある。といっても、アプリやWebサービスを作るような一般的なプログラミングとは違う。アルゴリズムを駆使し、難題を解く早さを競う「競技プログラミング」だ。
2014年11月8日〜9日に東京・秋葉原の「アーツ千代田3331」で、世界初とうたうプログラミングの祭典「CODE FESTIVAL 2014」が開催された。今どきの学生は何を目指して競技プログラミングをしているのか、そもそもなぜプログラミングを始めたのか。メインイベントであるプログラミングコンテストの主催者や参加者の大学生らに話を聞いてみた。
対ビッグデータに役立つ? 「競技プログラミング」の世界とは
プログラミングコンテストとは、与えられた問題に対してプログラミングで計算を解き、その早さや解答数を競う大会だ。
今回のコンテストの参加者は大学1年生から博士過程までの学生で、約700人の参加者から予選を勝ち抜いた200人が会場に集結。制限時間3時間という本戦(決勝戦)でプログラミングの腕を競った。成績上位の30名には、中国で行われるアジア大会への出場権が与えられる。
このコンテストは共同開催社の「Atcoder」がメインとなって企画している。その代表取締役の高橋直大さんはまだ26歳と若いが、競技プログラミングの解説書を出版するなど、アルゴリズムと競技プログラミングを日本で広めるために奔走する、業界の第一人者だ。彼は個人や企業が扱うデータ量が増え続ける“ビッグデータ時代”において、今後プログラマーに求められるのは「アルゴリズム」を使いこなせる能力だと話す。
「プログラムの計算スピードって、組み方によって1万倍……いや本当はもっと全然違うんです。上手な人が組めば0.1秒で終わるけど、下手な人が組んだら1億年たっても終わらない、そのくらいの差が出ることもあります」(高橋さん)
確かにコードが書けたとしても、プログラムの実行速度が遅くては実用に耐えないものになってしまう。大量のデータを扱う際に、どう効率的に処理するかというのは時に大きな問題となる。
競技プログラミングは、普通のプログラムでは長時間終わらないような計算処理を、アルゴリズムを工夫して実用的な処理時間におさめていくスキルを磨けるため、ビッグデータ時代に必要とされる人材の宝庫ともいえるだろう。実際に高橋さんも学生のときに複数のWeb企業から声がかかったそうだ。
「『このプログラミング言語が書けます』というのは、今後スキルとして大きな差が出にくくなるかもしれません。言語というのは勉強して覚えれば、誰でも書けるようになるわけですから。アルゴリズムに必要とされるのは、計算量の省略といった数学的アプローチ。今後はこれができる人が重宝されると思います」(高橋さん)
大会に参加する学生たちは、そういった目的のために競技プログラミングをやっているのだろうか。高橋さんに聞いてみると、意外な答えが返ってきた。
「いや、あまり目的とか考えていないと思いますよ。ただ暇だったり、ただ楽しいからやっているだけという人が多いと思います。就職のためとかそういうこともないですね。実務に直接結びつくかというと、そうでもないですし。どちらかというと『働くのはめんどくさい』と思っている人が多いんじゃないでしょうか(笑)」
本当にそうなのだろうか。コンテストに参加した学生に話を聞いてみた。
Copyright© 2014 ITmedia, Inc. All Rights Reserved.