
みなさんこんにちは、Kanonです。
先日行われたAtCoder Beginner Contest280で、ついに茶色コーダーになることができました!!

正直、もっと早く茶色になれると思っていたのですが意外と時間がかかりました…
が、時間がかかっただけに結果が出た時の喜びもひとしお。
プロフィールのアカウント名が灰色->茶色になったのを何度もニヤニヤしながら眺めています。
ここからは競技プログラミングを始めたきっかけ、茶色コーダーになるまでやってきたことと、今後の目標。
そしてこの記事によると、どうやら競プロ界隈では色変すると自分の推し作品を紹介できるようなので、これらについて書いていきたいと思います!
私について
こっちを見て欲しいです。
競プロを始めたきっかけ
いくつかの理由が重なり合って、2022年7月ごろから始めました。
- 転職活動を始めるにあたって、コーディング試験対策
- 転職活動抜きにしても、自身のコーディング能力を証明する何かが欲しかった。将来的に再び転職する可能性は0ではないと思うので、どう転んでもいいように若い今のうちにしっかりコーディング力をつけておきたいと思った。
- コーディング力だけでなく、数学的思考能力や論理的考察力も自分には足りないと感じていたので、これらを向上させたかった
初めは転職活動を始める上で競プロを意識し始めたのですが、転職活動は2022年9月で思ったよりもあっさり終了しました。
(転職活動についてはまた後日記事を出す予定です)
しかし、転職活動を抜きにしても、AtCoderの問題を解いていくことで普段の業務の中でも自分の思考能力が向上している実感を持つことができました。
最初はC問題で詰まっていることが多かったのですが、数を重ねることで今度はD問題で悩むようになり始めます。
こうして徐々に成長を重ねていくにつれて、「自分の頭でじっくり考える」「こうだから、そうなる」という明確な根拠の上で実装を行い、そしてACを出すことができるようになると問題を解くことに快感を覚え始めました。
この「自分の頭でじっくり考える」「こうだから、そうなるという根拠を持つ」ことが業務の中でもできるようになり始めると、自信を持って実装やお客様と会話ができるようになっていきました。
さらには毎日コーディングを欠かさなくなったことにより、競プロを始める前と後で自分のコーディング速度が向上している実感も得ることができました。
それはどちらかというと、コードを書く時間よりは読む時間が短縮されたように感じています。
書く時間も、もちろん明確に向上していました。
しかし、他人の書いたコードを読み、実装内容を把握する時間がより短くなったように感じています。
その理由について自分なりに考えた結果、「競プロの解答コードを読む機会が増えたことで、他人のコードを読む機会が増えた」「自分が論理的に思考できるようになったことで、他人のコードの根拠を探すようになったから」の2点が影響してるのではないかと思います。
とまあこんな感じで自分の成長が実感できたことにより、どんどんのめり込んでいくことになりました。
正直、今回の転職活動を経て、資格はあまり役に立たないと思い始めており、やはり役に立つのは1に実践能力があることを証明することで、2にそれを裏付ける資格があるということだと思いました。
それにおいて、競プロは実践能力の証明でもあり裏付けでもある以上に、自分自身のステータス向上に寄与してくれるのでとても意味があると感じています。
茶色になるまでやったこと
前提として、
- 毎週ABCにだけ出続ける
- 毎日コードを書く(ACを出す)
意識していたのはこの2つだけでした。
特に毎週ABCにだけ出続けるというのは、ARCなどの問題は出題傾向が違っていたり難易度にも差があったりするので、ABCにだけ的を絞って学習を進めていこうということでした。
自分はアルゴリズムを専門に扱っているというわけでもないので、正直ABC以外のコンテストやAOJとかにまで手を広げることは考えていません。
最初は数学の知識も足りていなかったので、レーティングの上がり方は微々たるものであったり、時には下がったりもしていました。
が、レーティングの上下を意識してしまうと結果を焦り、それによって学習も雑になると思ったので、レーティングは意識しないことに努めました。
そして、先にあげた2つだけを守って学習を進めていきました。
「わからない問題に出会うことが重要。わかる問題は既に"解っている"のだから、自分が"解っていること"を確認できればそれでよし」
「わからない問題について、しっかり問題の解説を読む。なぜそうなるか?をきちんと理解することが最も大切」
何を勉強するにしてもそうですが、この切り分けが学習を進めるにあたってこの二つがとても大事だと思っています。
勉強時間としては、1日1時間を毎日続けていきました。
茶色になるまでは約5ヶ月ほどかかったので、所要時間は150hほどだと思います。
7月: 問題解決のための「アルゴリズム×数学」が基礎からしっかり身に付く本
まずやったことは数学とアルゴリズムについての基礎知識をつけることでした。
高校時代は文系で、しっかりと数学をやるのは大学入試以来だったので約10年近く数学からは離れていました。
であれば必然なのですが、最初競プロの問題(ABCのB,C)あたりをやっていく上で数学の知識が完全に消え去っていることに気づき、こりゃいかん…と思い助けを求めたのがこちらの書籍でした。
こちらの書籍は数学的知識とアルゴリズムの解説だけではなく、練習問題もついているのでまずはこちらの本をこなしていきました。
3,4周ほどこなしたあとも、数学の内容でわからないことなどがあった際にはこの本に帰ってくるという辞書的な使い方もしています。
8〜9月中旬ごろ: 競プロ典型90問の★2,3の問題を解く
理論が入れば次は実践。
ということで、実力アップのためE869129さんが企画された競プロ典型90問に取り組みました。
Pythonで取り組んでいたいので、解説と模範解答のコードはこちらのブログがとても参考になりました。
このE869129さんは先に紹介した『問題解決のための「アルゴリズム×数学」が基礎からしっかり身に付く本』の著者と同一人物です。
E869129さんは『競技プログラミングの鉄則』という書籍も書かれています。よければこちらもご参考に。
余談ですがこの頃から、競プロのコミュニティに参加するようになりました。
そこでこの競プロ典型90問の存在を教えていただきました。
E869129さんのこの記事でもおっしゃられているように競プロ界隈のコミュニティは優しい方が本当に多いです。
コミュニティ内で質問をしても丁寧に教えて下さる方がたくさんいて、問題が解けなくて絶望するということはありませんでした。
ただ、教えてくださっている方が大学生や高校生だということを知った時は、別の意味で恐怖しました(笑)
もっと頑張らないと思えましたし、上には上がいるんだなぁと世界が広がりました。
謙虚に、しかし真摯に自分の能力を上げていこうと気持ちを引き締め直すことができました。
9月中旬ごろ: Educational DP Contestを解いていく
通称EDPCと呼ばれるこの問題。
いつのコンテストかは忘れたのですが、公式の解説方法の中ですぬけさんがこのコンテストの存在について言及していたことで存在を知りました。
このコンテストについてはけんちょんさんがQiitaで解説をしてくださっており、そちらを参考にさせていただきました。
9月中旬ごろ〜12月: AtCoder 凡人が緑になるための精選50問詳細解説
佐野さんの解説本。
ABCの問題から典型パターン50問が選び抜かれています。
この本の素晴らしいところは、Pythonで解説コードが書かれているところと、圧倒的内容のわかりやすさです。
玄人競プロerにはくどい説明になるかもしれませんが、私のようなひよっこにはこれくらい丁寧に書いてくださっているのがとてもありがたいです。
価格も100円と破格です。
最初の一周は解説を見ながらコーディングをしていき、何周も繰り返して解説を見ずにコードを書ける状態にしていきました。
この本を始めて、解説を見ずにコードが書けるようになってきたあたりからレートがぐんぐん伸び始めました。
次はこちらを見ながら演習を進めていこうと思います。
相変わらず破格で素晴らしいです。
これからの目標
来年中(2023年)には緑コーダーになりたいです。
茶色でようやくひよっこを脱出できて、緑でようやく一般人かなと個人的に思っています(※勝手な見解です)
最終目標は水色くらいになれればいいかなというのが正直なところです。
青になれるほどの頭脳を持ち合わせていないでしょうし、実務で青レベル(ひいては水色レベルでさえ)を求められることは今のところなさそうです。
ただ最低でも緑には到達しておきたいです。
推し作品紹介
さて、ここからようやく本題に入れます(違う)
ラノベと漫画から3作品ほど推しを紹介させてください。
(本当はもっとたくさん挙げたい)
紹介しきれないので、1作品を除いて私の大好物である恋愛モノと青春モノに絞って紹介しようと思います。
ライトノベル
君は僕の後悔

『ひげひろ』の作者・しめさば先生の作品です。
登場人物たちの心理描写が神がかっています。
なれる!SE

私のバイブルです。私も室見さんのような上司と梢さんのような後輩が欲しい…
時々ボソッとロシア語でデレる隣のアーリャさん

2020年ごろからラノベ業界は「ライト文芸」よりの作品が流行っている気がします。
そんな中でいかにもラノベっぽい"ラブコメ"がこちらの作品。アーリャさんがとにかく可愛いです。
マンガ
甘神さんちの縁結び

個人的には『五等分の花嫁』の後継枠として次のブームになると思っている作品。
舞台が京都なのもまたいいです(近場なので聖地巡礼しやすい)
朝姫推しです。
女神のカフェテラス

『涼風』『君のいる街』...etcとマガジンラブコメ枠の殿堂入り作家・瀬尾公治先生の作品。
アニメ化も決まりましたね!楽しみです。
紅葉と流星推しです。
アオノハコ

久しぶりに刺さったジャンプのラブコメ枠作品です。
『五等分の花嫁』の影響でここのところの新作ラブコメはマルチヒロインが中心でしたが、この作品は王道?のトライアングルラブです。
雛が幸せになってほしいのですが、どうも千夏とくっつきそうなのが悲しい…orz