日本の未来を変えるのは、君たちだ。
昨年11月、東京・秋葉原で行われた「CODE FESTIVAL 2014」。その模様はこちらの記事でお伝えした通り(主催者側へのインタビュー記事はこちら)。今までにないフェス型プログラミングコンテストということで、話題を集めました。
そして2014年12月21日。CODE FESTIVAL 2014を勝ち抜いた上位30名が、中国・上海においてアジア決勝大会「CODE FESTIVAL 2014 -ASIA FINAL-」に参戦。昨年はアメリカのMIT(マサチューセッツ工科大学)で開催されましたが、日本の学生が上位を独占するという結果になり、日本のレベルの高さを実感することができました。
しかし、今年はそのMITよりもプログラミングコンテストが強いと言われている中国をはじめ、台湾、韓国、シンガポールの強豪学生プログラマーと対決。前回よりも熾烈な戦いが予想されます。
今回は、その戦いの模様をレポートいたします。
アジアNo.1は誰だ! 上海頂上決勝戦始まる
会場は中国・上海にある上海交通大学です。大きな正門をくぐり教室へ。
そこには、すでに中国、台湾、韓国、シンガポールから予選を勝ち抜いた、強豪プログラマーが待っていました。
コンテストの内容は、東京で行われた本戦と同じ。3時間で10問を解き、正解した問題数で順位が決まります。正解数が同じ場合は、正解までの時間が短いほうが勝利。問題を解く順番は自由となっています。
もちろん、お菓子や飲み物はしっかり用意されています。
そして現地時間午後2時、アジア決勝戦スタートです!
日本の猛者たちの真剣な表情。ディスプレイを見つめ、紙にメモを取り、キーボードを叩く。これが3時間続きます。
椅子に座らずにあぐらをかいて問題を解く人や……。
寝そべって解く人などスタイルはさまざま。みんな違ってみんないい。こちらは中国、韓国、台湾、シンガポールの猛者たち。基本的に日本のプログラマーたちと変わりません。黙々と問題を解いています。
いったい、どんな結果になるのでしょうか…?
コンテスト結果は日本人がワンツーフィニッシュ
さて、3時間におよぶコンテストが終了。いよいよ結果発表です。
3位は中国・北京大学のlichaoさん。7問正解です。
2位は日本のomeometoさん。8問正解です。
そして1位は! 日本のsnukeさん。8問正解で、時間差でトップとなりました。アジアの強豪を抑えて日本の競技プログラマーがワンツーフィニッシュ。おめでとうございます!!
5位までの入賞者と記念撮影です。おめでとうございます。
今回10位までのランキングが発表されましたが、そのうち日本人は7人。世界でも屈指の実力を誇るアジア各国の猛者がひしめくなかで、この成績は素晴らしいことです。競技プログラミングの世界において、日本がハイレベルであるということが証明されたといってもいいでしょう。
表彰式が終わると、懇親会です。ピザやチキンなどが用意され、会場のあちこちで国境を超えた交流が生まれていました。
プログラミングコンテストという共通の趣味があれば、言葉の壁なんて関係ありませんね。
この懇親会中に、3位のlichaoさん(中国)にお話を伺いました。2012年の情報五輪世界6位の方です。
「学校の先生に勧められて17歳のときに初めてプログラミングコンテストに参加しました。今20歳なので、プログラミング歴は3年くらいです。今回は自分の実力は出せたと思いますが、日本の学生のレベルはとても高いと思います。将来はリサーチの仕事や研究をしたいと思っています」
最後に参加者全員で記念撮影です。お疲れ様でした!!
学生競技プログラマーの素顔&本音に迫る
(左)komakiさん。前回のMITでのコンテストで日本人1位(総合2位)。現在修士2年。(真ん中)yokit9さん。女性で唯一アジア決勝戦へ進出。現在修士2年。
(右)CODE FESTIVAL 2014本戦優勝者のsemiexpさん。ニックネームは「準急さん」。現在大学2年生。
プログラミングコンテスト後、参加者のkomakiさん(左)、yokit9さん(真ん中)、semiexpさん(右)にお時間をいただいて、今回のコンテストについて、そして将来などについてお話を伺いました。
komakiさんは前回MITとの対戦で日本人1位、yokit9さんは今回日本からの参加者のうち唯一の女性、semiexpさんはCODE FESTIVAL 2014本戦優勝という実績を持っています。
ギズモード編集部(以下ギズ):今回はみなさん、どのような気持ちで大会に望みましたか?semiexpさん:今回は楽しむということをテーマにしていました。問題をぱっと眺めて、難しそうな問題にチャレンジしました。komakiさん:僕はいつも勝ちたいと思って参加しています。難しい問題を解いて勝ちたいという気持ちがあるので、今回のように難易度が高い問題が揃っているとその目標を達成しやすかったんですが、実力が足りずに上位に入れませんでした。yokit9さん:「自分の解けるところまで解ききりたい」といつも思っているんですが、今回は3問までしか解けなくて。時間的にあと1問は解きたかったんですが、ちょっと難しかったですね。ギズ:今回アジア各国からの参加者と戦ったわけですが、どう感じましたか?yokit9さん:中国は世界的にもトップクラスだと思います。semiexpさん:ロシアも強いですね。甲乙つけがたいと思います。ギズ:みなさんは、いつ頃からプログラミングを始めたのですか?semiexpさん:多分小学校2年生か3年生くらいですね。親がJava言語の本を買ってきて、それを見て始めました。競技プログラミングを始めたのは、中学2年生のときの情報五輪からです。komakiさん:僕は大学2年生のときにたまたま取った授業が実践的プログラミングというもので。競技プログラマーが多い授業だったので、やってみようかなと。そこで違う授業を取っていたら、競技プログラミングはやってなかったでしょうね。yokit9さん:私は大学の専攻が情報系で、プログラミングの授業があったので始めました。その後、先輩が競技プログラミングについて教えてくれて、その先輩より強くなりたいと思って始めました(笑)。komakiさん:プログラミングに興味はあるけれど、何も作りたいものがないという人は多いと思うんですよ。そういう人には競技プログラミングはいいかもしれないですね。semiexpさん:競技プログラミングは問題が与えられるので、直近の目標がありますし。ギズ:先ほど会場で韓国の学生さんにお話を伺ったら、競技プログラミングへののめり込み度で日本の参加者とのレベルの差を感じたそうなんです。そこが日本の強さの一端なのではないかと思うんですが、みなさんはなぜ競技プログラミングを続けていらっしゃるのですか?komakiさん:TwitterをはじめとしたSNSで横のつながりがあるのが大きいと思います。ひとりだと練習をしていてもむなしくなったり、やめてしまったりすることもあると思います。でも、そこでTwitterを見るとみんなやっているのがわかって、またやってみようかという気持ちになると思うんです。yokit9さん:AtCorder(プログラミングコンテスト運営サービス)が定期的に日本語で大会を開催してくれているのも大きいと思います。semiexpさん:AtCorderだとビギナーコンテストというものがあって、初心者でも出られるようになっていますし、日本語の問題なのでやりやすいというのはあると思います。ギズ:それぞれ今後の進路はどう考えていらっしゃいますか?semiexpさん:まだ大学2年生なのであまり具体的なものはありませんが、情報系の技術者や研究者になりたいと思っています。大学に残るつもりはあまりなく、先進的なことをやっている企業で働けたらおもしろそうですね。見えているところではなく、エンジンの部分などはアルゴリズムが重要だと思うので、競技プログラミングのスキルを活かせるのではと思っています。yokit9さん:私は、ソフトウェアの研究開発をする部署に就職が決まりました。私の就職先においては、開発に必要なスキルと、競技プログラミングに必要なスキルは別物と思っていますが、その中で活かせることもあるので、活かしていきたいです。komakiさん:現在就職活動中です。競技プログラミングのスキルが活きるような会社に行きたいと思っていまして。たとえば世界最高のデータベースを作ろうとしている会社や、データマイニング(統計学、パターン認識、人工知能などのデータ解析に技法をビッグデータに適用して知識を取り出す技術)を使って株価を調べて、機械の力で取引をして利益を得るというような、アルゴリズムを最大限に活用した会社に行きたいですね。ギズ:今回のようなプログラミングコンテストに参加している学生さんの中から、今後企業で革新的なサービスを開発したり、大学で研究をして新しい発見をしたりという人が出てくるのではと期待しているのですが。komakiさん:アルゴリズムの力で今までできなかったことをできるようにしようという会社が結構あって、僕はそういうところに行きたいと思っています。競技プログラマーの中にもそういったことに興味のある人は結構いますね。ギズ:今後、新しい人たちが競技プログラミングの世界に入ってくると思われます。そのような人たちに期待していることはありますか?komakiさん:最近は中高生でプログラミングを始める人が増えています。その中高の間にアルゴリズムを会得した上で、大学生の期間を迎えると、やりたいことも見えてくるかもしれません。中高のときに会得したアルゴリズムの力を使って大学時代にイノベーションを起こすような企業を作るという人も増えてくるのではないでしょうか。僕自身が大学から始めたので、もっと早くプログラミングを始めていれば、いろいろなことができたのではと思うことがあります。semiexpさん:もっと競技プログラミングの人口が増えていくと、楽しくなると思いますね。yokit9さん:人口が増えれば、こういった楽しいコンテストもたくさん開かれるようになったりすると思うんです。ギズ:実際にプログラミングコンテストを見ていると、すごい人がたくさんいらっしゃいますよね。もっと一般の人にそのすごさを伝えられれば、全体が盛り上がると思います。komakiさん:競技プログラミングであったり、競技プログラマーがもっと注目されるために、世の中のプログラマーの仕事がどんなものなかということを広く知ってもらう必要があると思います。かなりできるプログラマーは、働き方も自由で給料もいい。ただし、そうなるためにはちゃんと大学や自分で勉強をして、プログラミングの知識はもちろん、コンピュータの知識もある。そういった知識の積み重ねでスキルアップをしているんです。そういったことが広く認識されていくと、どんなスキルが必要で誰がそのスキルを持っているのかということになり、競技プログラマーの人たちがすごいと言われるようになるかもしれませんね。――インタビューが終わったあと、yokit9さんの特技のひとつ、ルービックキューブを見せていただきました。最近あまりやっていないからということでしたが、それでも速い!
当初、ルービックキューブの揃え方がわからず、1手順ずつメモをして自分なりに解法を作っていったそうです。その粘り強さと探究心が、競技プログラミングにも活かされているのではないでしょうか。
競技プログラマーのスキルが活かされる時代がやってくる
今回、競技プログラマーの生の声を聞くことで、ひとつわかったことがあります。
それは、彼らは秘めた力を持っているということ。競技プログラミング自体は、プログラミングのスピード、正確さ、発想力を発揮するもの。例えるならば、詰将棋をいかに早く解くかということに似ています。
詰将棋をいくら突き詰めていっても、ただ詰将棋が早く解ける人にしかなれません。しかしその積み重ねがあれば、ほんとうの将棋をやったときに、さまざまな戦法で相手を追い詰めていくことができます。
競技プログラミングも同じ。プログラミングのスピード、正確さ、発想力は実際のプログラミングにも絶対に役に立つはずです。
今後、彼らがほんとうにやりたいことが見つかったとき、これまで培ったプログラミングのスキルが活かされることでしょう。実際に、リクルートホールディングスが主催するプログラミングコンテンストの参加者が、さまざまな企業にプログラマーとして就職をしていることからも、競技プログラマーのスキルを必要としている企業が増えてきているということなのでしょう。
2014年のCODE FESTIVALはこれにて終了。しかし、すでにCODE FESTIVAL 2015を待ち望んでいる方も多いのではないでしょうか。
今年参加できなかった人も、次回があればぜひ参加してみましょう。あなたの未来の扉が開くかもしれません。
source: CODE FESTIVAL 2014
(三浦一紀)