「AtCoder の色(灰~緑)とレベルの関係について」という記事を書いた理由

目次

追記 その 2

私は、競技プログラミングは

  • 論理的思考力
  • コーディング力
    • 頭の中のロジックを実際のコードに落とし込む力のこと
    • コーディングのスピードや、「簡潔なコードを書く(無駄な処理は欠かない)」といったものも含む

の向上につながると思っており、

  • プログラミング言語に関する知識
    • 今まで知らなかった言語機能を知ることができる
  • アルゴリズム・データ構造に関する知識
    • 「どんなアルゴリズムなのか」だけでなく、「実際に実装する」ところまで学べる
  • 時間計算量に関する知識

なども身につくと考えています。

そのため、

  • 趣味/仕事問わず少しでもコードを書く人
  • 情報系の学生

などには競技プログラミングを一度やってみてほしいと思っていました。

その中でも AtCoder は、他のコンテストサイトなどと比較して

  • 日本語なので、とっつきやすい
  • 初心者向けのコンテストが(ほぼ)毎週開催されている(コンテストが少なすぎず、多すぎるわけでもない)
  • 比較的多くの言語が使える
  • 参加方法の解説記事が多い
  • 問題の解説 PDF・解説放送・有志の解説などが充実している
  • 過去問を探しやすい(AtCoder Problems で精進が捗る)
  • プログラミングをあまり知らない人でも、APG4b があり、AtCoder でプログラミングに入門できる

といったメリットがあるため、

  • 趣味/仕事問わず少しでもコードを書く人
  • 情報系の学生

には積極的に AtCoder を布教していきたいと考えていました。

しかし、

  • 競技プログラミングを「趣味」として楽しめる人でなければなかなか続かない
  • AtCoder 界隈のレベルが高いので、数学やパズルなどにある程度適正がないと厳しい(ついていくことが難しい)
  • 自信を喪失しても、なんだかんだ精進し続ける必要がある
  • AtCoder 界隈の雰囲気はそこまで悪いわけではないが、怖い発言をする人もいる

といったことに改めて気付かされ、「AtCoder は、情報系の学生やプログラミング初心者には積極的におすすめできるものではない」という結論に至りました(気づくのが遅すぎたかもしれません)。

やはり、「ある程度適正があって競プロ(AtCoder)を楽しんでくれそうな人」以外に競プロ(AtCoder)をおすすめするのは、リスクが大きすぎました(個人の考えです)。

それに伴い、私がこの記事で主張していたことは、ほとんど意味がないものになってしまいました。お騒がせして申し訳ありませんでした。(一応内容は残しておきます)

ここから下は、以前の私の主張です(一部修正)。今の考えは上で述べたとおりです。ご注意ください。

「AtCoder の色(灰~緑)とレベルの関係について」という記事を書いた理由

この記事は、以下の記事に関する記事です。まだ読まれていない方は、そちらを先に読むことをおすすめします。

AtCoder の色(灰~緑)とレベルの関係について

さて、上の記事は私が 2020 年 1 月に書いた記事なのですが、先日、Chokudai 氏(AtCoder 社の社長)からこのような発信がありました。

なるほど。そのように考えていると。(この一連のツイートが私の記事に向けて書かれたものであるという保証はありませんが、以下では私の記事に向けて書かれたものであるとして話を進めます。)

このツイートを読んで思ったこと

Chokudai 氏の記事は、企業の採用担当者などにも読まれます。

企業としては「これぐらいの実力を持った人が欲しい」と期待して「AtCoder ◯◯ 色」の肩書を持った人を採用したいわけですから、色の実力が過剰に評価されてしまう状態を避けたいのだと思います。

そのため、Chokudai 氏の記事には「AtCoder 社が公式に『保証』できる実力」しか書くことができないのでしょう。

記事の追記 の最後の部分は、消しておきます。情報発信、ありがとうございました。

ただ、私の記事では「AtCoder 公式」の情報がほしい方は Chokudai 氏の記事へ誘導しています。また、はじめの

AtCoder の色とレベルの関係(灰~緑)について、思うことを書いていきます。

という部分で、「この記事は私の個人的な考えですよ」と言っているつもりでした。

分かりづらかったようなので、あくまでも個人の主観が大きく入っている旨を記事に追記しました。

私が「AtCoder の色(灰~緑)とレベルの関係について」を書いた理由

後日追記:この段落の主張によって競プロ界隈の方々が萎縮してしまうのは避けたいので、この段落を撤回させていただきます。

どうしても見たい方のみどうぞ

私がこのような記事を書いたのは、競プロ界隈において灰色~緑色が軽視されているように感じたからです。

私自身は競プロ歴が 1 年にも満たない若輩者ですから、今まで競プロ界隈がどのような雰囲気だったのかは知りません。

しかし、競プロ界隈(主に Twitter)には、

  • ◯◯ 色まではチュートリアル
  • ◯◯ 色に市民権はない
  • ◯◯ 色になってようやく人権を得た

といった発言に代表されるような「レート至上主義」があるように感じました。

この「レート至上主義」が競プロ界隈の治安を保ち続けてきたのかもしれませんが、(私はあまり心が強くないので)嫌だなぁ、という感覚を抱いていました。

しかし、競技プログラミング/AtCoder の問題が面白い・解くのが楽しいと感じていたので、なんとか水色までたどり着くことができました。

ただ、私と同じような感覚を抱いた人たちは、競技プログラミングがどんなに楽しくても、「界隈の雰囲気が嫌い」という理由で AtCoder をやめてしまうかもしれません。これはあまりにもったいないことです。

確かに、茶色・緑色コーダーは暖色コーダーと比べると、どうしても見劣りしてしまうかもしれません。採用側が「◯◯ 色以上の人がほしい」と緑より上の色を指定するのは、仕方のないことです。

しかし、参加者側がその事を気に病んでほしくないのです。他人と比較して自信を失ってほしくないのです。

茶色・緑色を持ち上げすぎるのは良くないのかもしれませんが、貶めすぎるのも良くないと思うのです(たとえ冗談でも、それを冗談と受け止めることができる人だけにしてほしいのです)。

Chokudai 氏の記事中の茶色の説明

コーディング試験でおなじみ FizzBuzz は簡単に組める水準です

AtCoder(競技プログラミング)の色・ランクと実力評価、問題例

という部分も、灰色・茶色の自信を失わせていると思いますし(実際に私がそうでした。AtCoder 茶色というのが FizzBuzz が簡単にかけるための十分条件であり、必要条件でないことはわかりますが……)。

AtCoder の色(灰~緑)とレベルの関係について」 は、茶色・緑色の人たちが「成長している」という実感を持ってもらい、自分に自信を持ってほしいと思って書きました。

「緑からは趣味の領域」という言及について

競技プログラミングが趣味じゃなかったら何なんですか? 仕事ですか? 義務ですか?

個人的には、「AtCoder 緑」になるためには、精進が必須だと思っています(一部の天才は知りません)。そして、精進をするためには時間が必要です。

この精進によって得られる実力というのは、大部分が「競技プログラマーとしての実力」です。「(一般的な)IT エンジニアとしての実力」は、なかなか上昇するものではありません。

しかし、茶~緑までであれば、競技プログラミングで身につけた技術を、比較的簡単に実務に役立てることができると思います。

  • プログラミング言語に関する知識が増える
  • 短い処理ならスムーズに書けるようになる
  • 計算量に関する知識が増える(1000 要素を持つ配列を 3 重ループで回すのは 1 秒以内に終わるのか、といったことがわかるようになる)
  • 論理的に考える力がつく

といった感じです。もちろん、競技プログラミングで学んだデータ構造・アルゴリズムが実務に役立つときもあると思います。(個人の考えです

しかし、そこから先は、「IT エンジニアとして成長しているか」と問われると微妙です。どう考えても競技プログラミングの知識が増えているという状態です。

緑~水、またそこから先については、「IT エンジニアとしての実力を向上させる」という意味では非常に「費用対効果が悪い」と考えます。

私自身、水色になって身につけることができた、実務に役立つ(かもしれない)ことは

  • 計算量に関する感覚(感覚で「やばい」処理がなんとなくわかるようになる)
  • 大量の添字を落ち着いて扱えるようになる
  • 高校数学の復習ができる(log や組み合わせなどに対する苦手意識が薄まるかも)
  • DP をスムーズに書けるようになる

くらいです。(個人の考えです。また、青色や黄色など、より高度な人材が求められる現場では、この限りではないと思います)

ですから、「コーディング技術を向上させる」といった、「競プロはあまり楽しくないけど何らかの目的でやっている」という人であれば、「茶~緑で十分だ」と言っているわけです。

時間は有限ですから、その貴重な時間を競プロ以外の勉強に当てても良いのではないでしょうか。

もし競プロを楽しいと感じることができるのであれば、ぜひ上を目指して頑張って欲しいと思っています。この段階になれば、もう「競プロが趣味になっている」と言って良いのではないでしょうか。

※ここでも「IT エンジニアとして役立つかどうか」ということを書いていますが、あくまでも私個人の考えです

まとめ

とにかく私の記事で言いたかったのは、「記事の『まとめ』」の 2 つ目「灰色とか茶色とかでも落ち込む必要はないよ」ということです。

各色のレベル感については(今の所)大きくずれているとは思いませんが、おかしな点があれば、コメントで教えていただけると嬉しいです。

追記

ちょっと言葉が刺々しくなってしまったので。

まず、このような(謎の)お気持ち表明の記事をご覧いただき、ありがとうございます。そして、一連の記事をご覧になって不快な思いをされた方々、大変申し訳ございません。

特に最後の

あと、最後の「適当なこと言わないでほしい感がある」というのは言論統制に近いと思うのですが。怖いですね。

という文章は、冷静さを欠いていました。本当に申し訳ありませんでした。

また、私としては、自分の記事に嘘はできる限り入れたくありません。もし記事に不適切な点があれば、遠慮なく指摘していただけると幸いです。

Avatar
fiore

自称C++er。

comments powered by Disqus