文系SIer出身SEのAtCoder入緑までの軌跡
はじめに
世間的にはAtCoderで入〇〇したら記事を書く、みたいな風潮があるようなので、安直ですが書いてみました。
自己紹介&スペック
1970年後半生まれ、文系4大卒、経済学部で数学は数II/Bまで。
情報システムとかプログラミングは基本、独学で学んでいます。
普段は典型的な業務プログラミング(DBにSQLで入出力、CSVファイル読んでPDFに~、リクエスト/レスポンスベースのWebで~って感じの典型的なSIerです)
AtCoderとの出会い
なんか世間で流行ってるみたいで、自分も20年この業界で生き残ってるんだからいけるだろ、とか思って挑戦してみました。
ぶっちゃけ茶色とか緑くらいなら余裕やろ、とか舐めてました。
灰色期(3カ月くらい)
初めての参加で300後半出たので、茶色ボーダー400突破は楽勝かな、と思ってました。
実際、問A、Bはプログラミングの基礎文法が分かってれば解ける問題ばっかだったので、楽勝ムード漂ってました。
既定の13回チャレンジ終わる頃には茶色だろうと。
実際4カ月18回目くらいで茶色に到達しました。
ここからが本当の地獄だ…。
茶色期前半(1年くらい)
入茶して、灰色に戻ることはありませんでしたが、しばらくパフォーマンスは低迷して低空飛行が続きました。
毎回、頭がきれいにリセットされるので、上ぶれ下ぶれを繰り返して、1年くらいは一進一退が続きました。
後にして思えば、原因は明白で、対策らしい対策をしてなかったからでした。
地頭はいい方だと自負してたので、業務で培った経験と合わせれば、対策不要だろうと思ってましたが、問C、Dくらいになると、それだけでは突破できないんですねー。
1年ほどして、そのことに気付いてから、対策のために会社でアルゴリズム勉強会を設立しました。
業務時間中に30分くらいで問ABCとか典型を解いて、30分解説してのスタイルです。
講師を買って出たのは自分で無理矢理勉強するスタイルを作るため、というのが一番大きくて、実際、ネタ探しのために典型問題や解法を学ぶのは非常に効果がありました。
茶色期後半(1年くらい)
勉強のかいあって、3回に2回くらいは緑パフォが出せるようになりました。
DPとか二分探索、累積和、DFS、BFSなんかも我流じゃなくって、理論と解法に裏打ちされた解法で解けるようになったのがこの頃です。
6問→8問になったのもこの頃ですね。
とにかく新しいネタを見つけて覚えて、「あ、これ●●ゼミで解いたやつだ!」状態になってからは、自分がレベルアップした感があったのを覚えてます。
ただ、解けても問C、Dまでで、問E以降はまったく歯が立たない=理解の範疇を越えてたので、この辺が自分の限界だろうなという感触はありました。
緑~今
というわけで、問E以降は解けないので、大きな上ぶれがなく、地道に問ABの早解きと、問Cを落とさないことを注意して、ようやく緑に到達しました。文章にすると短いですが、初挑戦から3年かかってますね。
多分、理数系学生さんとかに比べると明らかに時間かかってる方ですね…。
これからですが、上は目指さないにしても、鈍らない程度に参加していこうと思います。
まとめ&勉強法
茶は経験だけでもいける。
緑は地頭や経験だけでどうにかなるものではない。
対策として、解法をきちんと学んでくのが大事。
何が分かるのか、分からないのか、問題の言語化とか…。
仕事でも一緒ですね。