AtCoder の何が楽しいか (やらない人向け記事)

更新日時:

最近「 AtCoder のどこが面白いのですか」と聞かれることがある。反語ではなく疑問で聞かれる。私もとっさには答えられないので、この記事にまとめておく。できるだけ簡潔に書いてみる。

そもそも AtCoder とは

本文

私の理解では AtCoder の面白さは 2 種類に分類される。 1 つは 模擬試験 のような面白さ、もう 1 つは 筋トレ のような面白さである。

模擬試験のような面白さ

コンテストが始まると、いかに早く問題を解き、いかに正確に実装し、どれほど多く得点するかだけを考える。誰もが知っているものに例えると、これは模擬試験のようなものである。模擬試験でいかに高い点数を叩き出すかは、それ自体面白いことである。 AtCoder の特徴は、提出すると即時採点され、得点すると即順位表に反映されるところである。だからオンラインゲームのような側面も持ち合わせており、さらに加熱する。終わった後には詳しい解説が配られ、世界トップクラスの選手による解説放送もある。河合塾の東大オープンかよと言いたくなる。

ところで、大学院は、歪んだ世界である。研究の評価は出来レースだし、コネとカネ(研究費)が重要である。こういう場所で正気を保つためにも、プログラミングコンテストはとてもよろしい。実力が反映されて順位がつくことを時々やらないと、自分を見失うと思う。大学院程度だとコンテストを引退する人も出始めるが、むしろ院生こそやるべきである。もちろん興味があって楽しいと感じるなら、である。物事を始めるのにいつだって遅すぎるということはない。

筋トレのような面白さ

模擬試験で高い点を叩き出すためには、日々勉強を続ける必要がある。解けなかった問題を復習するのが主な勉強であるが、関連事項を文献や論文で調べたり、私のように反省文書いてまとめたりすることも勉強のうちであろう。日々の勉強のスタイルは人それぞれだが、これを苦痛に感じない人がコンテストを楽しめていると思う。ゆえに、思うにこれは、筋トレのようなものである。毎週フィジカルチェックがあるので、しっかりトレーニングすると。

筋トレをすると健康にも良いが、コンテストはプログラミングそのものにも良いことが多い。普通にプログラム組むならミスなく高速に組めるし、場合によっては研究にも役立つ。しかし、それらは主目的ではない。基本的には筋トレ愛好者はそれ自体が好きだから筋トレをするのであり、健康増進が主目的ではない。それと同じでコンテスト愛好者はそれそのものが好きである。問題解決そのものが生きがいと言って良いのかも知れない。

最後に

そこまで努力して何になるの、 1 位ではないと無意味ではないのというかもしれない。

私がこのツイートを見たのは、プロゲーマーさんの Twitter だったと思う。しかしまさにこの通りだと思う。実力だけが反映される世界にいると、こういう見方を自然と獲得する。

コメントする