競技プログラミングにはまりそうです
昔からAtcoderと呼ばれる競プロのサイトに興味はありましたが、なかなか手を出せずにいました。
育児休暇中に少し時間を確保できたので、毎週開催されているプログラミングコンテストに出てみたところ、けっこうおもしろいと感じました。
大学時代はプログラミングとは無縁の研究をしていましたが、社会人となりプログラミングを触る部署に配属されたことで、自分自身もっとプログラミング力を付けたいと思っていました。
ソフトウェアエンジニアとして製品を作るという観点で申し上げると、アルゴリズムであったりコーディングスキルというのは数ある能力指標のほんの一部であり、ただコーディングができるからといって凄腕のエンジニアであるとは限りません。また、製品開発で必要とされるコーディングスキルと競プロで争うコーディングスキルは、大きく差があると感じております。
ではなぜこのタイミングで競プロをはじめようと思ったのか。
単純に面白いと感じたからです。また、昔から負けず嫌いの性格である私は、能力を競うというのが刺激的で、ワクワクします。
今後会社人生で出世していけばいくほどマネジメントよりの業務が多くなり、コーディングをする機会が減っていくことが予想されます。頭の体操という面でも、継続的に続けていきたいと思いました。
目標
レッドコーダーと言いたいところですが、現実的に考えてまずは水色コーダーを目指したいと考えています。
水色コーダーは下記の水準で、ある程度の実力の証明になりそうです。
Rating 1200以上 (水色)
AtCoderにおける分布(2026/6/15現在)
実レーティング分布: 上位7.03%
内部レーティング分布: 上位10.85%期待できる能力
アルゴリズムの絡んだ開発が特技と呼べるような水準です。アルゴリズムの豊富な知識に加え、典型的な課題の言い換えも把握し始めており、多くの複雑な問題をアルゴリズム的な処理に落とすことが出来ます。
かなりのコーディング速度があります。課題を見てからロジックを考えるまでが早いので、上流工程において、ロジックをイメージしながら会話をする能力も高い事が想定されます。
例えば巨大なデータベースなどを扱うサーバサイドエンジニアなどは、常に計算量を意識する必要があるため、これくらいのレーティングを持っていると良い事が多いです。
普通のITエンジニアの業務としては、あまり必要としないレベルの問題を解き始める水準です。ですが、アルゴリズムを用いた研究開発という視点においては、ギリギリ参加可能な水準です。
競技者として自信を持ち始めるのがこの色です。大学対抗のチーム戦プログラミングコンテストの各大学トップチームなどにも、この色のユーザは多く存在しています。一方、競技未経験でも、アルゴリズムに関連した業務を行っているITエンジニアであれば、これくらいのパフォーマンスをいきなり出せることもあります。
勉強方法
基本的にはQiitaの参考記事にしたがって勉強していきたいと思います。
指標がわからない初心者にとっては非常にありがたい記事です。
基本的なライブラリ、アルゴリズム、データ構造などを理解するともに、良質な過去問をこなしていきたいと考えています。
また、毎週開催されるコンテストにはできるだけ出場したいと考えています。