AtCoder社は初級から中級への教育に集中してほしい。ABCの毎週開催を希望

ポエムである。

プログラミング検定PASTが意味ないという結論は変わらない

AtCoder社の提供するプログラミング検定PASTは単なる情弱ホイホイである

でAtCoderのPASTを叩いたのは他でもない、 その前日のコンテストで本当に面白くない問題でタコってしまい、 猛烈にレートを失ったからだ。 個人的な感情の発露である。

しかし、言ってることが間違ってるとは思わない。 競技プログラミングが、英語などに比べて検定に向かないことは 本人たちも自覚してるだろう。

ABCには価値がある。それ以上はAtCoderの仕事ではない

一方でおれはAtCoder社のことを完全に否定しているわけではない。 レート2000未満向けに行われるABCというコンテストには大変な意義があると思っている。

PASTの問題サンプルは、このABCに出題されるレベルの問題から構成されており、 おそらく実際の試験もその程度になるだろうと予測される。 難易度設定としては正しいのだが、そもそも競技プログラミングというのが検定に向かないというのと、 AtCoderの問題はなおのこと向かないというのは前述のとおりだ。

なぜABCには価値があるかというと、 AtCoder社長の高橋氏は、レートのレベルを以下のように定義している。

  • 800-1200(緑色):優秀な学生レベル
  • 1200-1600(水色):優秀な社会人プログラマレベル
  • 1600-2000(青色):ふつうの企業には滅多にいないレベル

実際にやってみて確かにそう思う。 私は、水色以上の人となら一緒に働きたい。

AtCoderのレーティングは、ある程度のところまでならば、一種のフィルタリングとして機能すると思う。 例えば、茶色コーダーの人が有能な確率は極めて低いだろう。

水色は特に、実用的なコードを書くという点では申し分ないレベルであり、 稀ではあるが、このレート帯でグーグルに合格したソフトウェアエンジニアも存在する。 従って、このレベルに上がるためには、アルゴリズムについて一定の理解がないと厳しいとはいえ、水色はそう高いレートではない。 これが何を意味するかというと、たとえグーグルのソフトウェアエンジニアでも、 当たり前ではあるが、必ずしもレッドコーダーレベルのアルゴリズム力が 必要とされる仕事ばかりではないのだろうということだ。

AtCoderはAtCoderJobsという、コンテスタントと企業を結びつけるサービスを運営しているのだが、 ここでの募集要項は大抵が、緑以上か水色以上である。 青以上となると稀で、黄色以上はほとんどない。 つまり、多くの企業が、アルゴリズムとコーディング力のフィルタリングとしてAtCoderを活用するという意味では、 その程度で十分だと考えているのだ。

なので、実用性という意味では、2000以下のコンテストで十分であり、 その中で鍛えて、800以下の人をまずは緑色にすることが社会的にはもっとも価値があり、 緑色を水色に上げていくことが次に価値があるのだ。 その中から気概のある人間は、自然と上に登っていくことであろう。 また、競技プログラミングで鍛えたアルゴリズム力を活かして、 他の領域に活躍の場を広げる人も出てくるだろう。

その火付け役として、AtCoderは価値があるといえる。 そして私も、この点は大変評価しているのだ。 実際、もしAtCoderがなかったらタイムゾーンや言語の問題があって、 競技プログラミングを始めなかったという人は多いはずだ。

黄色以上は海外コンテストでやればよい


では、2000以上の世界とは何なのか。 2000-2400は黄色、2400-2800は橙、2800-は赤色と呼ばれる。 赤色はレッドコーダーと呼ばれて、全競技プログラマの憧れの的となるのだが、 その実、ただのプログラミングパズルマニアであり、競技プログラミングマシーンである。 セックスマシーンであるAV男優が概ねセックスしか取り柄がないように、 競技プログラミングマシーンも概ね競技プログラミングにしか取り柄がない。 極めて狭い領域で尖っているだけなのである。

このような人間がアルゴリズムを活かして活躍出来る領域というのは、極めて限定される。 存在はするが、そういう仕事がある会社の方が珍しいだろうと思う。 その筆頭がAtCoder社であることは皮肉でしかない。

だから、数の理屈でいうと、彼らを増やすことには社会的な価値は少ない。 そもそもが、別に、彼らを増やすのがAtCoderである必要すらないのだ。 これらの仕事は、海外コンテストのCodeforcesやTopCoderに任せてしまい、 その上で、AtCoderはABCに専念するというのが良いだろうと思う。

AtCoderの教育力は評価出来る

AtCoderの解説は大変クオリティが高い。 Codeforcesでは、非常に雑なエディトリアルしか出さないから 解読が難しいという場合もあるし、LeetCodeではそもそもエディトリアルが 存在しない。

一方でAtCoderは懇切丁寧な解説と、解説動画まで出す。

PASTの開催を見込んでか、最新のABCでは解説のクオリティをさらに上げてきた。

https://d33wubrfki0l68.cloudfront.net/58abef1bbfd2c3376e5f740d0116ab7c8f1cc1ba/0248f/images/1575256418.jpg

教育という点では間違いなく、AtCoderが一番なのである。 これは、社長の高橋氏がAtCoderを単なる日本発競技プログラミングサービスではなく 教育も目的として捉えていることに拠ると考えられる。

https://d33wubrfki0l68.cloudfront.net/83629fed577b500ec0c138811de7c396f2279a91/740f8/images/1575256438.jpg

真に、日本のプログラマの能力向上を目指しているのだろう。 それだけに、銭ゲバとしか言いようがないアルゴリズム検定PASTは残念なのだ。

ABCを毎週やってほしい

今私がAtCoderに対して感じてる不満は、ABCの開催が毎週ではないことだ。

私は昨日のコンテストでもABCでEまで解けたし、Eまでならそれなりに解けるというレベルになったが、 このレベルだと、ARCやAGCは適正とはいえないし、実際に事故ると3桁パフォが出るということもあるから出たくない。 もし私がARCにもAGCにも出てなかったら、もうとっくに水色に到達してるのだ。 その意味でも、ABCで満点がとれるようになるまではABCだけで鍛錬するというのが私は良いと思う。

私のように感じている人は多いと思う。

実際に、AtCoder社にとってもっとも負荷が高いのはAGCのはずである。 世界のトップレベルもWAに追い込み、面白かったと言わせるような問題を作るのはかなり厳しい仕事のはずで、 作問者はそこに一番力を使っているはずだ。

だから、典型問題であふれるABCを毎週開催することは、そこまで難しいことではないし、 なんなら、ABCレベルであれば別にレッドコーダーの人がやるまでもないことだ。 実際、yukicoderなどで作問をしてる人はほとんどがレッドコーダーではない。

ABCが毎週あって、今回のようなクオリティの解説を出し続けば 今以上に盛り上がってくると思う。 たぶんもう社内での議論にはなってるだろうと思うけど。


このエントリーをはてなブックマークに追加

See also