Skip to the content.

AtCoder、エンジニアとしては最低限どのぐらいできればいいの?

というのを、AtCoder の社長である chokudai さんの twitter をもとに考えてみた記事です。

TL;DR

tweet をいろいろ引用してみる

太字は筆者によるものです。

2017/03/27

AtCoder、ABCのBまでは出来ないとさすがにエンジニアとしてはNGで、C問題はまぁ出来たほうが良い、D問題まで出来ると十分過ぎる、って感じ

tweet

直前に開かれたコンテスト

ABC が 4 問で、頻繁には開かれてない時代。B 問題までは最近 (2024/04/09 現在) もそんなに変わらず、言われたことをそのまま実装すれば AC できる問題がほとんどな印象。C 問題はちょこちょこ難しいのがあったり。D はものによるが、かなり難しいものも多い。

2017/04/04

AtCoderのABCのBが解けない人、IT系で高給取りがいてもまぁおかしくないと思うけど、プログラマだったら流石に・・・って感じだなぁ。要求されていることが、「仕様を正しく読んで常識的な実装をする」というだけだから、これができないと何が出来るのかわからない

tweet

直前に開かれたコンテスト

ABC の開催頻度が低く、直前に開かれたコンテストは 1 つ前に紹介した tweet と同じ。

2020/03/09

(「義務化するとつまんないよね」って話が前段にあった上で)

といいつつも、ABCの難しいB、かんたんなCくらいまでを、「ITエンジニアになるなら必須」 という風にするのは辞さないつもりではある。 もちろんプログラムを一切書かないポジションならいらないけど、そうでない限りはここを必須にするのは必要かな、と認識している。

tweet

直前に開かれたコンテスト

ABC が 6 問になり、今ぐらい、つまりほぼ毎週開催されるようになってからの話。4 問時代に比べると若干 C 問題の平均難易度は落ちてる感じはあるが、そこまで大きく変わってないぐらいという肌感覚。

「プログラムを一切書かないポジション」というのが個人的にはちょっと謎。管理職だとしてもプログラム書けない IT 管理職なんて信用できなくない?とは思う。少なくとも話はロクに通じないんじゃないかなという。パワポエンジニア的な?よく知らないけど。

ということで、むずかしいB代表みたいなのを貼っておきます。これくらいです。 https://atcoder.jp/contests/abc157/tasks/abc157_b

tweet

難しい B 代表とあるが、B 問題で一番難しい、と言っているわけではないことに注意。競技プログラミングに 1 週間ぐらい真面目に取り組んでいればすぐ解けるぐらいの難易度感。これよりも算数力とか実装力を求められる問題は多く存在する。

2020/07/07

「茶色に慣れたらOK」はレベルが高すぎる、という主張はまぁわからなくもないんだけど、だからといってAtCoderのA,Bが解けたらOK、はちょっと論理的思考軽視しすぎじゃない?とは思う

tweet

まぁなんか「他の勉強を始めても大丈夫」くらいで言えばABCのA,Bだけ解ければ十分はその通りなんだけど、じゃあアルゴリズムの勉強をもうしないで良いのがそのラインかって言われたら、ちょっとそれはないかなーって気はする。

tweet

直前に開かれたコンテスト

ということで、茶色は結構厳しいけど、灰色だけで十分かって言うと微妙で、+α 何かしらのスキルが欲しいよね、みたいな話になっている。

2021/09/27

「1か月AtCoderやった!B問題まで解けるようになった!レートついてないけど競プロおわり!」 みたいな人が大量発生するのは、良いAtCoderの捨て方だと思うし良いと思うのよね。競技を楽しむ目的じゃなく、スキルアップ目的なら、その辺で切り離すのが最適な人多そう。

tweet

まぁもちろんそこから先が無駄とか言うつもりは全然ないけど、効率がめっちゃ良いかと言われるとそこまでかなあ、ってくらいの印象

tweet

直前に開かれたコンテスト

ABC が 8 問になってた時代。でもまあ、A-E ぐらいの難易度は 6 問時代と何も変わらないものと思ってよい。

2022/06/06

(FE がある程度のアルゴリズム力を担保できるぐらいアルゴリズム偏重になったよねって話が前段にあった上で)

でもまぁ、ABC-Bくらいまではプログラム触る人全員に解けてほしいよね、って言うのは自分は昔から発信してるし(昔はABC-Cって言ってたけどなんか最近の問題見るとBかも)、基本情報の内容もまぁABC-B,Cあたりのレベルなので、「プログラミングに関して」は自分の想いとかなり一致している

tweet

直前に開かれたコンテスト

FE の午後が ABC-B から ABC-C っていうのはかなり同意。同じ感じで、AP の午後のアルゴリズムが ABC-C から簡単な ABC-D ぐらいな感じ。

B まで解けるとどのぐらいの実力なのか

AtCoder 内の rating/performance で考えてることにする。例えば、2024/04/09 現在で直近の ABC348 では、A, B 2 完の場合に出る performance は 140-215。

ただし、これはコンテストの難易度と参加者のレベルによって大きく変わることがあり、例えばそのひとつ前のコンテスト ABC347 では同じ A, B 2 完でも 168-811。

でも下限値はあまり変わらなさそうで、147 前後。これは AtCoderInfo からの以下の引用と符合する。

Rating 147以上 (灰色)

AtCoderにおける分布(2023/11/20現在)
実レーティング分布: 上位43.332%
内部レーティング分布: 上位62.252%
※実レーティング分布は、AtCoderのレーティングランキングにおける実際の分布を表します。内部レーティング分布は、参加回数が足りないユーザのマイナス補正を除いた場合のレーティング分布を指します。レーティング分布は、アクティブユーザではなく、全ユーザから計算しています。

期待できる能力

灰色と茶色の間に1つ色を付けるとしたら、レーティング補正の影響で、147以上400未満となります。そのため、147という中途半端な値で分類しています。
FizzBuzz問題などの、コーディングテストにおける初歩的な問題は、あまり苦戦せずに解くことが出来ます。業務上最低限必要なコーディングスキルはあると言えます。
ただし、AtCoderではChatGPTなどの生成AIを禁止しておらず、これらを用いてもこのレーティングに到達することは簡単であるため、監視付きのコーディングテストを用いるなどで、生成AI頼りのコーディングでないことを確認する必要があります。

ということで、やはりこれぐらいがエンジニアを生業とする最低ラインな感じ。