超高度IT人材の宝庫、「AtCoder」の実態とは?
2019/11/26
世界トップクラスのプログラマー高橋直大氏に登場いただき、高度IT人材の採用と育成について考える本連載。今回は、高橋氏が代表を務める、競技プログラミングコンテストを開催するAtCoderの実態と、今後の展望について語っていただきます。
AtCoderって何?どんな人材がいるの?
AtCoderは、本連載で紹介してきた「競技プログラミング」の大会を、オンラインで開催する日本のサービスです。
世界中から極めてレベルの高いプログラマーが集まり、毎週土曜日に約5000人の参加者が同時に、自身のプログラミング能力や、アルゴリズム構築能力を競い合っています。
さて、そんなレベルの高いAtCoderですが、参加者はどんな人たちなのでしょうか?
プログラミングのコンテストに、毎週土曜日の夜9時から参加する…というと、極めて勉強熱心で、スキルアップに情熱を注いでいるような人たちを、皆さん想像するのではないかと思います。
もちろん、そのような参加者も多くいます。ですが、実は、AtCoderのユーザの大多数は、勉強やスキルアップだけを期待して競技プログラミングに参加しているわけではありません。実は、かなりのユーザが、AtCoderを「ゲーム」だと思ってプレーしているのです。
問題が与えられ、アルゴリズムを考え、プログラムを組む、という一連の流れを、ゲームとして楽しむ。そんな人が多数存在するのがAtCoderであり、競技プログラミングの世界です。
実社会に求められる「教育性」と、モチベーションを保つ「娯楽性」の両立
AtCoderの参加者に、「AtCoderに参加している理由は何ですか?」とアンケートを取ると、以下のような結果になりました。
https://twitter.com/chokudai/status/1187208275026034688
やはり、アルゴリズム学習などのスキルアップを期待しているユーザは数多くいます。ですが、面白いコンテストが開催されるから、という項目にも、かなり多くの票が入っています。これは、重要な要素です。
一見しただけでは、競技プログラミングに娯楽性があるようには見えにくいかもしれません。ですが、「数学パズル的な要素」「競技性」の2点で、娯楽性を確保しています。以下、これらについて解説していきます。
まず、第一に面白いのは、「数学パズル」の要素です。情報科学の世界は数学が大量に存在し、「それらを数学的に解決していく」ことに面白さを感じる人が多くいます。この部分の面白さは、本連載の第1回でかなりしっかりと書いたつもりです。
このパズルが面白いと思えれば適性がありますし、そうでない人は、あまり競技プログラミングに向いていないかもしれません。第1回を読んで面白さを感じた方は、ぜひ競技プログラミングに挑戦してもらえればと思います。
ちなみにAtCoder社員の半数近くは、競技プログラミングの世界大会の決勝大会に進出経験があります。そしてAtCoderの問題は、コンテスト上位参加者が投稿した問題の中から、社員が厳選したものを出題しています。そのため、国内だけではなく、海外でも「AtCoderの問題の面白さは世界一だ」と評価する人が多くいるというレベルです。
次に「競技性」についてですが、コンテストという場を用意し、順位表を提供するといった、競技の場が整えられていることが、面白さを生む要因の一つとなります。
計算ドリルの問題を解くのが好き!という方は、あまり多くないと思います。しかし、そういった方でも、100マス計算競争をしてもらうと、結構楽しんでくれる人が多かったりします。
これは、100マス計算のタイムを競うという「競技性」をはっきりさせたことで、タイムを競い合う競争要素や、実力の上昇をタイムで実感できるなどのメリットが発生し、楽しく取り組めるわけです。
AtCoderでも、競い合いの面白さを感じてもらうため、さまざまな要素を用意しています。例えば、コンテストに参加するごとに、「レーティング」という実力指標が更新され、自分の実力の変化を分かりやすく見られるようにしています。また、一定レーティングごとに色を変えることにより、名前の色で、その人の実力がすぐに分かるようになっているのです。
その他にも、「解いた問題数」を増やしていくことに楽しみを感じたり、Twitterなどでライバルを見つけ、勝敗を楽しんだり、世界のトッププログラマーが競い合うコンテストの提出時間を見て、その速さに興奮したり、ある種のネットゲームとしての地位を確立しているのが、競技プログラミングなのです。
とても正直に言ってしまえば、競技プログラミングは、アルゴリズムやプログラミングを学ぶ上で、最も効率が良い方法ではありません。モチベーションが十分に保てるのであれば、学習書で勉強したり、作りたいものを決めた上で、それにあった応用分野を勉強したりする方が役に立つ、という主張は、その通りだと思っています。
しかし、高いモチベーションを保ちながら、これからの社会に必要なスキルを勉強し続けられる人は、決して多くはありません。競技プログラミングは、「実社会に役に立ち、そこそこ楽しめるネットゲーム」という、二つの要素を持っているからこそ発達してきた文化です。昨今の若者が、続々と競技プログラミングを始める理由はここにあります。
AtCoder人材に熱視線を向ける企業たち
さて、そんな人材の揃うAtCoderですが、これらの人材を、各種IT企業から見るとどうなるでしょうか?
本人たちはネットゲームとして楽しんでいるAtCoderですが、企業から見れば、「毎週土曜の夜からコンテストに参加し、それ以外の日も、授業や仕事以外の時間に熱心に勉強をしている、極めて高度なIT人材」となるわけです。
実際のところ、彼らがどういうモチベーションで取り組んでいるかはともかく、能力的には他を圧倒するとんでもない能力を持った人材が大量にいます。AtCoderの上位30%ほどである「緑色」(前出の画像の800~1199点)の人材は、他社転職サイトのアルゴリズムスキルチェックだと、上位1~2%に匹敵します。
競技プログラミング参加者の高いモチベーションから生まれる高い能力が知られてきたことで、AtCoderには多くの企業が注目しています。競技プログラミングで成果を出すプログラマーを、高度IT人材として、リクルーティングしよう、という動きが活発になっているのです。
これまでにAtCoder上でコンテストを開いた企業は20社以上存在します。今や、競技プログラミング、およびAtCoderは、IT人材市場にとって、無視できない存在に成長してきているわけです。
リクルートやドワンゴ、サイバーエージェント、KLabなどのウェブ系企業、MUJINやCADDiなどの勢いのあるベンチャー企業などの、いわゆるIT企業はもちろんのこと、DISCOなどの製造業の企業や、ヤマト運輸などの一見ITに関係ない企業も、コンテストを開催し、人材獲得に乗り出しています。
大規模なコンテストやプログラミングのスキル検定サービスも開始
さて、AtCoderでコンテストを開催した企業は数多くありますが、実はAtCoder社では、広告費を使ったことはほとんどありません。
これまでAtCoderでコンテストを開いていた企業は、口コミやTwitterなどでAtCoderを発見した、技術系の話題に極めて敏感な企業だけでした。
つまりAtCoderの優秀な人材は、そうした企業に就職・転職していき、そうでない企業には優秀な人材が集まらない、というのが現状です。
そこで、AtCoder社は、今年4月、電通から資本提携を受け、共同で競技プログラミング事業に当たることになりました。もちろん問題やコンテストシステムはAtCoder社が100%コントロールしていますが、電通が加わることにより、これまでリーチできなかったさまざまな企業に、AtCoderの提案ができるようになりました。
日経新聞社が開催した「全国統一プログラミング王決定戦」はその一つで、決勝が行われた会場に全国各地から500人が集結する、非常ににぎやかな大会となりました。このコンテストは非常に評判が良く、すでに第2回の開催も決まっています。その後、電通ホールで開催された「第1回日本最強プログラマー学生選手権」にも同じように人が集まりました。
プログラミングのコンテストシステムが活用できるのは、実はウェブ上でコンテストを開催するときだけではありません。AtCoderのコンテストシステムの肝は、「提出されたプログラムの正誤を判定すること」です。そこで、このシステムを活用し、本年12月よりプログラミングのスキル検定サービス「アルゴリズム実技検定」を開始します。
これは言うなればTOEICのプログラミング版で、アルゴリズムを設計し、早く正確なコードを書くという実践力を問う、他に類のないサービスです。プログラミングのスキルを等級で可視化することができるので、例えば就活時のスキルレベルの判定基準に用いたり、教育に利用したり、さまざまな活用方法があります。電通と協力することで、このようなサービスが標準モデル化されることを期待しています。