AtCoderとはなに?就職・転職で有利になるのは何色から?


今回は、プログラミングコンテストが開かれるAtCoderについて書きます。
「AtCoderは知ってるよー」って方は下までスクロールしていただくか、目次からお好きなところまで飛んでください。
それでは解説していきます。
AtCoderとは?
AtCoderとは、日本最大級のプログラミングコンテストが開かれるサイト
もしくは、それを開催している株式会社AtCoderのことを指します。
日本の中では、一番有名なプロコンのサイトなのではないかと思います。
様々なIT企業と連携し、それに沿ったコンテストも開催したりもします。
スキルによってレートが付き、そのレートによってランクが決まります。
そのランクはIT企業の面接で役に立つことも多いです。
AtCoderで学べることは「アルゴリズム」
AtCoderは、プログラミングの知識の中でも、「アルゴリズム」に特化しているといってもいいでしょう。
アルゴリズムって何?という方に簡単な説明をします。
突然ですが、同じ結果を出すプログラムでも、
- 「3秒」で結果が出力されるプログラム
- 「1年」で結果が出力されるプログラム
だったら明らかに前者のプログラムを採用したいですよね。
もっと具体的に、
- データ数Nに対して、N回の処理が必要なプログラム
- データ数Nに対して、N×N回の処理が必要なプログラム
この二つのプログラムについて考えてみましょう。
例えば、入力データ数が「1個」だった場合、どちらのプログラムも1回の処理で済むことになりますね。
しかし、入力データ数が「100個」だったらどうでしょう?
前者は入力データ数に比例して「100回の処理」でプログラムが終わります。
後者は入力データ数の二乗に比例して「10000回の処理」が必要になってしまいます。
この「10000 – 100 = 9900回」の処理回数の差は無視できるものではありません。
計算速度を意識したプログラムでは特に重要視される部分でしょう。
まあ、速さとトレードオフな(どちらかをとればどちらかができない)要素もあるので、単に速さをとるわけにもいきませんが、同じ結果を出力するまでに、「より良いプログラムの書き方」っていうのが存在するんです。
そのより良い書き方を学ぶことこそが、アルゴリズムを勉強することになります。
AtCoderのランクは就職や転職に有利に働くか?
「AtCoderのランクは就職や転職に有利に働くか?」
結果から言えば、有利に働きます。しかし、有利に働くのはアルゴリズム面での話です。
まず「有利に働く」ことの理由・根拠は、「AtCoderは国内最大級のプログラミングコンテストだから」というのが大きいでしょう。
AtCoderは日本国内において最大級の競技プログラミングのサイトです。
同時参加人数は3000人を超えることもあり、多くのIT企業が「AtCoder」に注目しています。
しかし、AtCoderなどのプログラミングコンテスト全般に言えることですが、試せる能力はアルゴリズム関係の話がメインになります。
例えば、「セキュリティ対策」に関する知識は測れないです。
当たり前ですが、測れる能力には限りがあります。
AtCoderやその他のプログラミングコンテストでも、アルゴリズム面での評価がメインになります。
AtCoderは、プログラミングのコンテストを開催している企業です。「もの作りのアイデアを競う」だとか、「製品を作る」という部分から少し乖離した、「複雑な処理を正しく記述する」だったり、「計算時間のかかる処理を、数学的/情報科学的にスマートに処理する」だったりを競うコンテストになります。
【競技プログラミングで測れる能力】
- 高速で正確なコーディング(プログラミング)力
- 量の多いデータや、複雑な計算に対し、高速に演算出来るプログラムを書く力
- パフォーマンスを改善する力
- 高度なアルゴリズムの知識を要する処理を記述する力
【競技プログラミングで測れない能力】
- 大規模なチーム開発などにおける経験やノウハウ
- コードの保守や運用に関しての知識やノウハウ
- セキュリティ対策に関する知識やノウハウ
- フレームワークやデータベースに関する知識
ほとんどの企業は、高度なアルゴリズムの知識を必要としません。
webサイトを作るにも、そのようなアルゴリズムの知識はほとんど必要としませんし、どちらかというとセキュリティや保守運用といった知識のほうが必要です。
一方、AtCoderのランクを重要視する企業は、専門的なアルゴリズムを必要とする企業の可能性が高いです。
- 画像認識:フィルタ技術など
- 深層学習:機械学習:誤差逆伝播法(バックプロパゲーション)に使う偏微分などの知識など
- 暗号通信:素因数分解(RSA暗号の原理)のアルゴリズムなど
このように、専門的な知識ばかりです。
そのような高度なアルゴリズムを必要とする企業に勤めたいのであれば高いランクを獲得すると、とても有利に就職・転職を進めることができるでしょう。

基礎的なアルゴリズムの知識は、多くの分野で必要になってきます!
AtCoderの色(ランク)とその評価
AtCoderではランクごとに色が付きます。
ランクはコンテストに参加するたびに変動するレートの400ごとに色がついていて、
黒色→灰色→茶色→緑色→水色→青色→黄色→橙色→赤色
という順番でランクが上がっていきます。
AtCoderの色(ランク)とその評価
AtCoderの社長であり、赤ランクでもある高橋直大さんが書かれている評価は、以下のことです。
- 灰色:参加すれば誰でもなれるので意欲以外の保証はなし。
- 茶色:学生で茶色なら優秀だがエンジニアとしてはちょっと物足りない。派遣とかで来たエンジニアが茶色あれば一安心。
- 緑色:大抵の企業でアルゴリズム力は十分。AtCoder的には決して上位ではないが、他社評価サイトなら最高評価。
- 水色:基礎的なアルゴリズム処理能力については疑いのないレベル。
- 青色:一部上場のIT企業でも、一人もいないことが結構あるレベルになる。
- 黄色:化け物。競プロの問題を解く機械だと思っておけば良い。
- 橙色:あたまおかしい。
- 赤色:もうなんか世界大会とかに招待されたりする。

AtCoderのランク人口・統計
AtCoderの現在のランク分布は↓以下から見れます
AtCoderへの参加の仕方と流れ
もし「興味を持ったので初めて見たい!」というのであれば、すぐ始められるので試してみることをお勧めします。
まずは、アカウントを作成する事からですね。
こちら↓が参考になると思います。
大会への実際の参加は、
- 参加したい大会のページに飛ぶ
- 参加ボタンを押す
- その大会が開催される時間まで待つ
- 時間になったら問題ページが見れるようになる
- 問題を解いて、プログラムを提出する
という流れです。
私が初めて参加したのは、AtCoder Beginer Contest、頭文字をとって通称ABCと呼ばれるコンテストでした。
プログラミング初心者向けの問題で構成されています。
制限時間は100分、全部で6問の問題を解きます。
私の個人的な印象は、
- 1問目:超簡単
- 2問目:なるほど簡単だ
- 3問目:あーまあまあいけるわ
- 4問目:アレーこれであってないかなー
- 5問目:ちょいむずいな
- 6問目:これ解き方知らんときついべや
といった印象の問題たちです。
ちなみに私は、プログラミングをちょっと独学したレベルの初心者です。
大会参加者は、その解いた問題に応じた合計得点や時間などで、順位がつけられます。
そして、そのパフォーマンスでレートが変化します。
これが、プログラミングコンテストの面白いところですね。
また、マラソン形式という、1週間かけて行われるコンテストもあります。
これは、難しい問題が多いので、慣れてきたら参加してみるのがおすすめです。
終わりに
AtCoderを開催しているAtCoder社の社長「高橋直大」さんは、世界的なプログラミングコンテストで優秀な成績を収めている方です。
高橋直大さんのブログはこちら