【緑色変】算数の教養がほとんどなかったプログラマがAtCoderを4年やって緑になれた話
こんばんみんみん。
バーチャル幼女プログラマーという肩書でインターネットをやっているきりみんちゃんというものです。
競技プログラミングのAtCoderというサービスに日々取り組んでいるんですが、この度めでたく緑レートになることが出来ました。
いわゆる色変エントリというやつです。
で、誰?
3年前にこんなエントリを書いた者です。
VTuberをやったり絵を描いたりしてる社会人エンジニアです。
専門分野はAndroidでしたが、最近はフルスタックエンジニアを目指してフロントエンドやバックエンドなどをやっています。
現在のAtCoderコミュニティの中心層は理系の学生やもともと数学がかなり好きなタイプの人たちです。
一方きりみんちゃんはプログラマでありながら数学にコンプレックスがあり、それどころか小学2年までしか義務教育を受けていないため、中学、高校レベルの基礎的な数学の教養が全くありませんでした。
そしてAtCoderが自分のように数学やアルゴリズムなどに苦手意識を持ってるエンジニアが数学やアルゴリズムを学び直すのにいい題材なんじゃないかなと感じ、問題に取り組むとともに布教活動をしたりしてきました。
そんな自分がAtCoderに真面目に取り組んでどうなったかというのを書いていきたいと思います。
ふりかえりとレート推移
長かった…。
1年目にレート750くらいまで上がったものの、その後コロナ禍のメンタル低迷とリンクするようにレートが落ち、一旦灰レートまで落ちました。
その後もメンタルやAtCoderのインフレに左右されながら上がったり下がったりして、2022年に一度緑直前まで行くも、また下がって、そこから体調を崩してしばらくお休みしたりして、満を持してようやく緑にたどり着くことが出来ました。
緑への色変エントリは多くありますが、ここまで長期間かけて紆余曲折の末に緑になったという人はあまり見ない気がしています。
緑のレベル感について
これは多くの人が色々な言及をしているテーマですが、自分が感じた緑レートというレベルについてです。
だいたい常に参照されるのはAtCoder社長のChokudaiさんのエントリです。
変な言い方をすると、この文言に騙されて「まあ現役プログラマだし緑くらいにはすぐになれるやろ」と思って緑を目標に始めたところがあります。
しかし、実際にはこの基準は数学的素養がある人の話で、算数が苦手なきりみんちゃんにとっては緑は相当に高い目標でした。
更に教本や過去問などが増えたことなどにより、参加者の知識レベルもインフレが進んでおり、今では緑どころか茶レート帯でもかなり様々な複雑なアルゴリズムの知識が求められるようになっています。
肌感としてはきりみんちゃんが始めた4年前と比べて最低でも一色分はインフレしていると思っていて、実際には水色の説明である以下の文章が実態に近いんじゃないかなと思います。
実際、1年目に緑近くまでレートが上がった時と比べると、今の自分は比べ物にならないくらい多くの知識、経験が身についていると感じています。
とはいえ、直近ではあまりガチガチの数学問題の出題が少なくなっている印象があるので、その点では数学苦手勢にとっては楽になった面もある気がします。
勉強したこと
正直4年もやっているので、もう何をどう勉強してきたのかあんまり憶えていない部分も多いのですが、一応振り返ってみたいと思います。
過去問解き
ABCのC問題まではほとんど解きました。D問題も茶diffから緑diff下位のものはだいたい解いています。
とはいえ、直近はあまり精進(競プロ学習のこと)は出来ていなくて、主に毎週のコンテスト参加とその復習によって勉強しているという感じの状態でした。
典型アルゴリズムの学習
詳しく書くと長くなるので過去エントリを参考にして欲しいのですが、D問題までで出題されるようなアルゴリズム、データ構造は一通り学習しました。
算数、数学に関しても元々が0に近かったところから、それなりに勉強しました。それについては以下のエントリでも触れているので気になる方は参照してください。
読んだ本
出ているAtCoderの教本は一通り読みました。
改めて考えると競プロの教本はずいぶん増えたなぁと感じます。
1年目の時は競プロ初心者向けの教本はほとんどなかったわけで、そりゃインフレもするよなぁという気持ちです。
ちなみにE8さんのアルゴリズム×数学本と鉄則本では地味にレビュアーもやらせて頂きました。
感じたこと
AtCoderの成績はあくまでAtCoderという一つのゲームの成績でしかなく、エンジニアの能力全てを測れるものでは特にありませんが、とはいえやはりエンジニアとしてAtCoderで緑になれたことは一つの自信になるかなと思います。
実際、AtCoderをやることでコーディングの速度は上がった気がしますし、業務でのちょっと複雑な実装への耐性も上がったと思います。
うーん、なんかいざ緑に到達すると意外に何を書いたらいいのか分からないですね。長く掛かり過ぎたせいで、AtCoderへの愛憎感情みたいなものはだいぶ薄れてしまったようです。
その辺のことはだいたい最初に貼った過去エントリで書いてしまっているしね。
算数、数学の素養がないモグリの社会人プログラマでも時間をかけて勉強すれば緑になれるんだよということで、誰かの励みになれたら嬉しいな、と思うかな。
今後について
一旦目標を達成したので、一段落という気持ちではあります。
とはいえ毎週コンテストに出るのは純粋に楽しいので、今後も都合が合えば出続けると思いますし、最近はそれほど勉強に時間を取っていたわけでもないので特に何も変わらないかもしれません。
水色を目指したいという気持ちがなくもないですが、正直さすがに頭打ちかなーという気もしています。
欲を言えばレート1000くらいまで行けたら嬉しいですね。
最後に
今まで応援してくれたたくさんの方々、本当にありがとうございます!
今回の色変でもたくさんのお祝いのメッセージを頂き嬉しかったです。
きりみんちゃんが長いこと緑になれなくてモヤモヤさせてしまっていた方々、大変おまたせしました。
AtCoderに限らずいろんなことにチャレンジしたり学習したりする楽しさを少しでも伝えられたらなと思います。
まだまだ体調やメンタルは本調子じゃない部分もありますが、今後とも応援よろしくお願いします!