2010年代頃の競技プログラミングと就職活動

garasubo
·

ふとTwitterで見かけたスライドで2010年代頃の競技プログラミングに関する記述がめちゃくちゃなものを見かけた。おまけにその資料が一部の人から絶賛されていて、これは良くないなと思ったので、実際にその当時競技プログラミングをゆるくやりつつ多くのガチで取り組んでいた友人たちを眺めた実体験についてまとめてみる

AtCoder誕生以前

今、競技プログラミングという言葉から真っ先に想像するのはAtCoderであるが、AtCoder社の設立は2012年6月で、その1回目のAtCoder Regular Contestの第一回目が設立のちょっと前になる4月に開催されている(サーバーの不調で中止になったようだが)

それ以前は基本的にTopCoderで行われていたSRMとか、ACMが主催しているICPCのことを総称して競技プログラミングと呼んでいた。主流はAtCoderで言うところのABCやARCのようなショートコンテスト型であったように思うが、Topcoder Marathon Matchのような長期型のコンテスト(いわゆるマラソン型)も存在していた

自分は当時東京大学の学部生であったが、こちらの記事などで競技プログラミングの語源となったとされている「東京大学競技プログラミングクラブ」であるが、私が在学していたときにはすでに存在していなかったのか、存在を聞いたことはなかった。東大における競技プログラミング勢は教養課程前期の「実践的プログラミング」という今も存在する全学自由研究ゼミナール(ようするに選択授業のようなもの)の参加者だったり、理学部情報科学科のような特定の学科に固まっていたり、その他サークルに散らばって存在しているかというような状態であった。

2024-07-14追記

そういえばJAGという団体が主催してるICPCの合宿や模擬予選というのもあり、自分は参加していなかったがガチ勢はかなり参加していてそこで大学間のつながりとかも出来ていたと記憶している

追記ここまで

競技プログラミングの認知度としてはかなり低く、(理学部情報科学科のような例外を除けば)工学部のある学科に進学した友人が「自分、レッドコーダーなんですよー」といっても全く理解されなかった、というエピソードを聞くくらいの状態だった。当然、就職活動における影響力もなく、Google Code Jamのような例外はあるものの、日本の有名企業がコンテストを開くこともなかった。

この当時から競技プログラミングってエンジニアのキャリアとして役に立つものかどうか、みたいな議論もなんとなく発生していて、いわゆる一部の競技プログラミング勢が「月刊競技プログラミングは役に立たない」と揶揄する議論もこのころ発生した

AtCoder誕生後

AtCoderが設立されると代表が競技プログラミングで数々の成績を残して有名だったchokudai氏の知名度もあり、多くの日本人競技プログラミング勢がそちらのコンテストに参加するようになった。TopCoderなどの海外コンテストは日本時間だと参加が難しいことが多く、自分も結構積極的に参加した。

とはいうものの、設立直後のAtCoderにはレーティングシステムもなく、コンテストの開催頻度もバラバラで、AtCoder Irregular Contestなどと揶揄されるほどであった。2014年に開かれているARC 030で参加者も300人に満たない状態で、TopCoderやっていた人がそのままやっている程度だったので、知名度が伸びてきているとは言えなかった

CODE FESTIVALの開催

競技プログラミングへの風向きが一気に変わり始めたきっかけとなったイベントがリクルート社主催で行われた大型イベント「CODE FESTIVAL 2014」だったと思う。

これはリクルート社が自社のエンジニアの新卒採用を見据えたイベントで、コンテストのプラットフォームはAtCoderのものを利用している。

当時、リクルートはかなり大規模にエンジニアの採用活動をしており、このCODE FESTIVALを含め、いくつか大型のイベントを主催していた。

このあたりから他の日本企業も採用目的のプログラミングコンテストを行うようになってきたように思う(例: ドワンゴからの挑戦状日経主催の全国統一プログラミング王決定戦

競技プログラマーは就職できたか

私は2016年に大学院を卒業してそのまま就職した。周りの同期の競技プログラミング勢はというと、自分の観測範囲だけでも2人のレッドコーダーがGoogle社の内定を決めていた。それ以外の人だとリクルート社傘下のIndeedがCODE FESTIVALなどのイベントを通し、その給与水準の高さもあり人気を集めて多くの人が就職していた。

かくいう私もIndeed社に入った人間の一人で、競技プログラミング勢とそうでない人が半々くらいいたという印象だった(風の噂によると意図的に半々くらいで取るようにしたらしいが真偽はわからず)

その後、自分はIndeed社を2022年で退職しているが、では競技プログラミング勢が活躍できたかというと、個人的な印象でいうと非競技プログラミング勢と大して変わらない程度かなあと思っている。自分の代以降もレッドコーダークラスの競技プログラミング勢が入社してきているので、少なくとも競技プログラミング勢が使えないよね、みたいな空気にはなっていない

とはいうものの、CODE FESTIVALは2018年を最後に開催されておらず、Google Code Jamも終了し、AtCoderがよく主催しているようなタイプのショートコンテスト型の競技プログラミングによる採用活動はやや低下傾向に見える。

おそらくはショートコンテスト型で測れる能力がアルゴリズム力や瞬発的コーディング力などに限定されるため、プログラミング人口増加も相まって、そのコンテストの上位者と中位者の間に業務遂行能力にそこまで大きな差がないケースが多くなってきたからではないかと推測している。要するに一昔前だとコンテストで100位程度の実力だと業務遂行に差が出るレベルでコーディング力が不足していることが多かったが、最近だと100位くらいでも十分なコーディング力を有していることが多い、みたいな状況になりつつあるのかなあと思っている。AtCoderだと現在は通常のコンテストに数千人以上の参加者が集まっており、かつての100位と今の100位では重みが全く違う。

AtCoderの状況を見る限り未だに多くのスポンサードなコンテストが開かれているので競技プログラミングへの期待感は多くの企業で高いように思う。一方で高順位者のみスクリーニングする、みたいなことはやりにくくなっていて足切り程度にしかならないのだろうな、という評価になりつつあるのだと思う。このことは、AtCoder Beginner Contestの賞金が上位者のみではなく問題を解いた人からランダムで与えられるようになった(しかもAtCoder社の方針として)という変化からもAtCoder社自身も自覚しているのでは、と思う。

2024-07-14追記

ABCの賞金についての方針はABCがそもそもレート2000以下を対象としたものなので高順位争いをするのはおかしい、という話によるものだったそうなので、このような意図があったというのは必ずしも正しくないかもしれません

追記ここまで

まとめ

2010年代初頭、競技プログラミングは認知度も低く就職活動で活用されることも極めて稀であった。しかし、AtCoder登場以降流れが変わるイベントが多数発生するようになり、現在でも多くの企業が注目する存在となった。

一方で、レッドコーダーのようなあまりに高い競技プログラミングの実力は多くの企業で必ずしも必要とされているわけではなく、今は最低限の基礎力をつけているかどうかの確認と自社のブランドイメージ向上のため競技プログラミングを活用するという流れが主流になりつつあるのかなと思う。

@garasubo
泥水をすすり生きる