毎週1.2万人が参加!AtCoder高橋直大に聞いた「#競技プログラミングは役に立つ」?
近ごろ、ますます勢いづいている「競技プログラミング(競プロ)」。
ソフトウェアエンジニア界隈や情報系学生なら、一度は耳にしたことがあるはず。
プログラミングを用いたコンテストの中でも、ものづくり的なアイデアを競う部分を排除し、純粋に技術のみで戦うこの競技ですが、少しハードルが高く感じられる面もあります。
また過去には競プロに関する議論がTwitter上でたびたび巻き起こり、「#月刊競技プログラミングは役に立たない」というハッシュタグが定期的に現れていたことも。
実際のところ役に立つのか、役立てるためにはどうすればいいのか。今回は「世界最高峰の競技プログラミングサイト」を掲げるAtCoderの代表取締役 高橋直大さんに直接聞いてみました!
毎週12000人がコンテスト参加? AtCoderの魅力とは?
以前にもましてAtCoderが盛り上がっていますよね。 Twitterでコンテストのたびに関連ワードがトレンド入りしてますし、この間はAtCoderの問題がキッカケで「余弦定理」がトレンドに入っていたとか。
最近だと、毎週末に12000人が競い合ってます。
すごい!めちゃくちゃ増えてませんか? 2年前は2000人ぐらいしかいなかったような…。
例年だと4月ごろに増えやすいんですが、今年はおそらく新型コロナウイルスの影響で特に増えていますね。
コロナウイルスで、ですか?
外出自粛です。 AtCoderって「家からみんなでワイワイ盛り上がれるゲーム」として、在宅とめちゃくちゃ相性良くて。
高橋さんがよくおっしゃっている「ネトゲ」ですね…! でもどちらかというと、競プロって「難しい問題をじっくり頭を使って解く」イメージがあるんですが。
確かに、アルゴリズムや数学的知識を要求するという意味で、難しい部分もありますが…。 実際にハマっている人に話を聞くと、「パズル的な面白さ/楽しさ」に魅力を感じて参加してくれている人が多いです。 実際そこがAtCoder社の一番の軸でもあって、多くの人に競プロの楽しさを知ってもらいたいと思ってやっています。
あとは「スキルアップ」や「就職・転職」のためにやっている、という声も大きいです。
確かに、ゲーム感覚で楽しめて、さらに役に立つなら嬉しいですが…?
就職・転職でAtCoderは役立つか
実際のところ、就職にどう役立つんですか?
まず、新卒採用だと「競プロ」をやっていることはかなり強みになると思います。
新卒採用って難しくて、「学生がすでに何らかのプロフェッショナルである/業務内容に精通している」というケースは稀じゃないですか? となると、業務の知識は入社してから身につけていくことになるので、採用時点で業務の知識を見ても、あまり意味はないですよね。
そうですね。 「即戦力」なんて言いますけど、真に「即戦力」というのは理想でしかなさそうです。
つまり、戦力になるまでの学習速度、成長曲線や、一人前になってから発揮できる実力が知りたい。 この点について、競技プログラマはかなりのポテンシャルを秘めていると言えます。 「自主的にコンテストに参加し、継続して成長していける」というのは、それだけで1つのサインになっていますから。 新しいスキルを学ぶための学習意欲を高めたり、習慣化したり、ということが出来ている。
なるほど…。 それでは「転職」ではどうでしょう?
転職となると、どうしても業務経験が重視されがちなので、新卒ほどの強みはないかもしれません。 ただ「新卒時の就活で失敗して、正当に評価されないような職場で、こき使われている」といった場合には、役立てることができると思います。
「競プロ自体が業務で役立つ」ことはないんですか?
業種によりますが、もちろんあります! 例えば「検索システム」や「負荷の高いゲームのバックエンド」などでは直接アルゴリズム力が問われますし、そうでなくともコードを書く際に、自然とそれぞれの処理の計算量をきちんと意識できているというのは重要です。
「ざっくりと"重そう/軽そう"は分かるけど、具体的な計算量までは…」という人も多そうですね。
競プロをしっかりやると、必ず計算量を意識して問題を解くことになるので、パズル感覚で楽しみながら計算量と仲良くなれます。 そういった部分を評価してもらえる企業さんへの転職では、武器として役立てられます。
競技プログラマを求めるIT企業
「競技プログラマを評価する企業」というのは検索システムを持っているところやゲーム系など、業種によるということなんでしょうか? それだけだとかなり限られてくると思ったのですが。
それが実は、「業種よりも企業マインドの面が大きい」んですよね。 ゲーム系だと顕著なんですが、一番はじめにスポンサーになってもらったスクフェスで有名なKLabさんだと、「アルゴリズムの能力についてももちろん大切だし、加えて毎週末コンテストに参加してコードを書くのが好きという人がそもそも貴重で、高く評価できる」と。
逆に、あまり評価しないゲーム系企業はどういったところなんでしょう。
「自分でアイデアを形にして、プロトタイプを作り出せる力」を重視している企業さんですかね。 そこで求められる力は、AtCoderでは全く測定できないので、あまりマッチしないかもしれません。 そういった企業さんで「きちんとバックエンド職が評価されているのかな」と少し心配になったりもしますが…。
「どの企業が評価してくれるか」というのは何を見たらわかるんでしょうか?
AtCoderでコンテストを開催している企業さんや、AtCoderJobsに求人を掲載している企業さんには高く評価されると思います。 就職希望先がこの中にあるなら、AtCoderに取り組むのはかなり有力な選択肢です。 企業側からしても、コンテストを開催すると、優秀なコンテスト参加者とコンタクト可能なので、「一回開いたら十数人の内定者が取れました!」という企業さんもあったりします。 採用コストも低いし、取れる人も優秀だし、とてもいいですよね。
しかも、参加者もどんどん増えているんですもんね。
そうです。 それに対して、コンテストを開催する企業さんはそこまで増えていません。
採用チャンスというわけですね! 開催企業が増えれば、コンテストも増えて採用にもつながって、みんな嬉しいですね。
AtCoderの始め方・続け方
面白そうだし役立ちそうだから、「今から競プロを始めよう」と思ったらどうすればいいでしょう?
まずはチュートリアルを参考に週末のコンテストに参加ですね。 色々な言語が使えますし、プログラミング自体そもそも未経験という場合でもAtCoderにC++の入門用教材があります。
その場でジャッジしてもらえて、教材として使いやすいですね! でも、何度もコンテストに参加するのって大変じゃないですか?
一発で実力を測りたいということであれば、「第三回アルゴリズム実技検定」が外出自粛を受けて特別に6/6まで無償提供中なので、この機会に是非挑戦してみてください!
続けていくと、レートや色(ランク)が気になると思うんですが、注意点はありますか?
当人のバックグラウンドによるので、自分の目標をきちんと定めることが大切ですね。
例えば、ガチガチの文系出身なら「茶色でも十分すごい」と言えますが、数学が得意という人ならもっと上を目指して欲しいです。
上を見たらキリが無いですが、化け物レベルの人たちと同じ問題に挑戦できたり、回答を見て勉強になるというのもいいところですよね。
Twitterを中心としたコミュニティの力が強くて、解説ブログもたくさんありますし、有志によるツールも充実しています。 有志たちの力を借りて、純粋培養競技プログラマたちが、業務での開発に関する知識について学べるコンテンツなども用意できればいいなと考えています。
AtCoderを通してIT業界をより活性化できるといいですね。
もっと楽しいコンテストを開いて、たくさんの人に競プロを広げて、副次的に世に役立つような貢献ができればなと思います!
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから