競技プログラミングというものが存在するのは以前から知っていましたが、実際に始めたのは2025年5月のことです。気づけば1年4か月ほど経っていました。ここまで続けてみて感じたことを、今回は書いておきたいと思います。
なぜAtCoderを始めたか
きっかけは、何かしらのアウトプットの場が欲しいと感じるようになったことでした。文章を書く場としてこのブログを始めていましたが、それとは別に、手を動かして形に残せるものも欲しいと考えていたときに、競技プログラミングを思い出しました。
資格の勉強は範囲が決まっていますが、競技プログラミングは「与えられた問題をどう解くか」という、もう少し自由度の高い頭の使い方を求められます。
その違いを一度体験してみたい、という軽い気持ちで始めました。特別な目標を立てたわけではありません。
どう取り組んでいるか
毎日夜に1時間、休日はそれに加えて昼にも1時間ほど、無理のない範囲で問題を解くようにしています。使用している言語はPythonです。
解けない問題に当たったときは、時間を区切って一度離れ、解説を読んでから改めて自分で書き直す、という進め方をしています。順位やレートを追いかけるというより、「前回よりも少し楽に解けたか」を自分の中の基準にしています。
進め方の参考にしているのが、『アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門』と、『競技プログラミングの鉄則』の2冊です。前者は過去問を使いながら考え方の順序を丁寧に解説してくれ、後者はテクニックごとに整理されているので、行き詰まったときにテーマから探し直す形で使っています。
続けて気づいたこと
続けてみて感じたのは、業務のコードと競技プログラミングの問題とでは、求められる考え方の順番が違うということです。業務では「壊れないこと」を優先しますが、競技プログラミングでは、まず「動くかどうか」を先に確かめる場面が多くあります。
この順番の違いを意識するようになってから、普段のコードを書くときにも、一度シンプルな形を作ってから整えていく、という進め方を試すようになりました。
もう一つの気づきは、わからない問題を前にしたときの自分の反応です。以前は答えが見えないと焦る感覚がありましたが、今は「今日はここまで」と区切りをつけやすくなったように感じています。
今後について
AtCoderは、今のところ資格学習ほど明確な期限があるわけではないので、他の学習との兼ね合いを見ながら、無理のないペースで続けていくつもりです。
このブログでは、今後も学びの記録の一つとして、気づいたことがあれば書いていきたいと思っています。

コメント