valid,invalid

関心を持てる事柄について

競技プログラミング始めた

今年の1月にAtCoderを始め、3ヶ月強ゆるく続けてきてようやく緑コーダーになりました。始めて半年以内には到達したいとぼんやり思っていたので良かった!!

動機

職業プログラマとして働いて5年以上経つわけだけどいまだに胸を張って「プログラミングが得意です」と言い切れない煮えきれなさがあり、これはなんだろうと考えていました。

ここでいう"プログラミングが得意"ってそもそもなんやねんというのはあるが、自分の中では「課題を見つけたり解決したり、ビジネスロジックをじっくり議論して考えつつ特定言語やフレームワークの上で実現していくスキル」、事業会社でWebサービスを開発していく中での中核となるスキルとは別で、前提条件と課題が与えられたときに論理的・数学的な思考によって手段を発想してスッとコードに書き起こせるような能力をイメージしています。

もちろんそれだけがプログラマとして必要なスキルではないことは承知しつつ、そういうことができる人を見て「この人プログラミング得意だな」と感じているので自分の中ではそのへんの欠乏感がありました。

そう思いつつ数年が経過した折、Quipperに競プロ勢の方が入社(現在青コーダー)し、社内で毎週競技プログラミングの練習をしているのを見かけて「これじゃん」と。

言語

最も手慣れたRubyで書いている。Rubyでこれまで使ったこと無いビルトインの機能を使ったり、業務で書くような可読性寄りのコードを書いたら計算量多すぎてTLEしたりして面白い。

「同じロジックを書いてもC++ならACするがRubyだと通らない」みたいなこともたまにあるようだけどその域には達していないのと、どんな言語でもACできないことは無いので言語は言い訳にならない。

公式や野良の解説は主にC++なので、文法を読める程度にしたりSTL (Standard Template Library) をさらっと眺めて写経したりしたがまだコンテストで使えるレベルではない。

今後

プログラミング得意ですと言えるようになるためこれからも続けていくが、そろそろ真面目に数学やアルゴリズムを学習していかないと伸び悩みそう。

当面は「2020年内に水色コーダーになる」のを目標とする!!