AtCoder
2024年1月から始めたAtCoderで緑色になったので、いわゆる入色記事・色変記事を書いてみたいと思います。
記事を書くのが遅くなったため、緑色からまた茶色に戻っていますが、まあそれはそれ...
始めたきっかけ
- 「世界一流エンジニアの思考法」で、「一流エンジニアは基礎がしっかりしている」と書いてあり、アルゴリズム的なことをしっかり学んでみようと思った
- 「米国のテック企業は入社時にコーディングテストがあり、エンジニアとして働くにはAtCoder換算で茶色〜緑色くらいは必要」とのことなので、そのレベルには達しておこうと思った
- 会社の若手社員さんが始めていて、面白そうだった
- 休憩時間に鉄則本(競技プログラミングの鉄則)を読んでいて、勉強熱心だなあと思ってちらっと読ませてもらったところ興味を引く内容だった
- ポッドキャスト rebuild.fmで話題に出ていた Rebuild: 352: There's a Fifth Way (naoya)
- Rebuild はよく聞いていて影響を受けやすいのです...(影響でメカニカルキーボードも買ったり)
方針
- 言語はPythonにした
- 仕事では主にSwiftを書いていますが、Swiftは競技プログラミングではマイナーなのと、仕事とは別の言語を使いたいという理由で不採用
- AtCoderはPythonで参加している人が多いので、過去問の解説などが充実している
- 機械学習関連で以前触ったことがあるので、もう少し詳しく使ってみたい & 将来役に立ちそう
- はじめはレーティングなどを気にせず「参加する」ことを目標にした
- ローカルにPython環境を整えて、A問題・B問題レベルまでやった程度
- 数回参加してみて、なんとなく緑色まで行けそうな感触があったので、いったん緑色到達までは続けることにした
参考書
お世話になった本を書いておきます。競技プログラミング関連は、わかりやすい本が出版されていて、これから入門する方にはいい環境だと思います。
アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門 Amazon
AtCoder公認本だけあって、始め方からの解説が丁寧で良いです。アカウントの作り方〜数種類のアルゴリズムの紹介、過去問と解説もあり、基本的なところはこれ一冊でいけるのではと思います。
最速で緑になる 基礎・典型50問詳細解説 Amazon
過去問を解くにあたって、「どうせなら頻出問題から着手するのが効率がよいだろう」ということで、こちらの本を参考にさせていただいた。
図入りの解説、Pythonでの回答例もあり、問題集として良いと思います。
競技プログラミングの鉄則 Amazon
上記二冊を読み終わり、もう少しアルゴリズムの種類を掴んでおきたいときに読んだ本。アルゴリズムの説明が図解付きでとても丁寧。すごく良い本だと思います。入門者には難しいアルゴリズムもあるので、そこはスキップしても良いかもです。
感想
- 緑色到達は1年くらいかかると思っていたので、予想よりも早く到達できた
- 大学が情報学部だったので、その点で有利だったのかもしれない(とはいえ、学生だったのはだいぶ前の話ですが)
- 企業がコーディングテストを実施する理由が何となくわかった
- 必ずしも「競技プログラミングができる == 仕事のプログラミングができる」 ではないと思う。しかし、デバッグ速度が早くなったり、実行速度に気をつけるようになる効果はあると思った
- DBのindexは、なぜSELECTが速くなるのかとか INSERTは遅くなるのかとか、想像がつきやすくなるのでは
- そういう意味でも、会社の若手社員さんたちには競技プログラミングやってもらいたい
- 茶色は「学生や派遣社員などが茶色のレーティングを持っていたら、とても喜ばしいです」レベルとのことなので、みんなそのくらいできると良いですよね
- 次の目標は迷い中
- 緑色(レート800)の次の水色(レート1200)到達は相当難しく感じられる