競プロで結果を出すために vol.1

実は競プロやってます

競プロ = 競技プログラミングのことです。

本記事では詳しい競プロの説明はしません。非常に優秀な方がもっとわかりやすく説明している記事があるからです。

競プロの何やってるの?

自分はAtCoderしかやってません(2021/07/25現在)。本当はもっといろんな種類やりたいです。しかし、社会人ということもあり時間がたくさんありません。ですので、日本語で一番やりやすいAtCoderから始めました。

実務ではあまり計算量やデータ構造、パズルを解いて快感が得られる機会が少ないので刺激欲しさに始めました。

競プロをやる理由

一番の理由は自分が尊敬する方々が仕事でのパフォーマンスに競プロの経験を生かしていたからです。実は私、大学生の時から競プロの存在は知っていました。しかし、あまり熱心に活動しなかったためパフォーマンスは高くありませんでした。

そして、社会人になって今いる会社に入り、競プロを社会人でもやっている人がいることに驚きました。そしてその経験を業務で発揮している方が実際にいました。

その方は自分が入社してすぐに転職してしまい、今ではコミュニケーションをとることができません。しかし、最後にお会いした時に『自分は競プロで何回も挫折した。でもやってよかった』とおっしゃっていました。その言葉を聞いて『自分もこんなふうにアルゴリズムやデータ構造を考慮したコーディングをしてみたい。一味違うプログラマーになりたい』と強く思いました。"ただコードを書くだけのプログラマーになりたくない"という想いだけがモチベーションになっています。

もともと数学が好きだったこともあり、解説を読むだけでもテンションが上がります。

現状と今後の話

現状

今は社内で競プロ部を復活させ、ひっそりと活動しています。部活と言っても勤務時間内でできないので完全に有志で行っています。ほとんどが個人での精進です。『バチャコンができたら楽しいのではないか』と考えています。いつかこの部活が存在する意味を証明したいです。

また、AtCoderのアカウントを新規で作りました。大学生の時のアカウントを忘れてしまったので作り直したというのが本音なのですが...

2021/07/25現在のパフォーマンスはご覧の通りです。

f:id:You-saku:20210725002217p:plain
2021/07/25現在のAtCoderパフォーマンス

ご覧の通りダメダメです

今後

ひとまずは茶色を目指します。そしてできれば緑色になって少しでもアルゴリズムを考える能力を身につけたいです。知識だけでなく、実際に使えるアルゴリズム力が欲しいですね

そのためにAtCoder Problemsというのを解いています。 コレは過去問が解ける便利サイトでkenkooooさんが作成したものです。
このサイトは問題を難易度別に分けて表示してくれる機能(Boot camp for Beginners)もあります。解答率も表示してくれるのでモチベーション維持にもなります

f:id:You-saku:20210725003216p:plain
Boot camp for Beginners

最後に

今回は自分が競プロをやる理由や現状を紹介しました。いつかこの記事が良い思い出になったら嬉しいです。競プロをやるといつも思いますが、やはりプログラミングは楽しいです。

AtCoderで目標達成したらAtCoderでの更なる挑戦はもちろん、CodeforcesTopCoderなど海外のコンテストも参加していきたいです。また、Kaggleを始めとする機械学習コンペも挑戦してみたいです。