唐突だけど2年ちょい頑張ってようやくここまでたどり着いたよ。
#自己紹介
どこにでもいる普通のプログラマ27歳。
中学3年の時の「高校の体験入学」で教えてくれたプログラミングに感動し、プログラマになることを目指した。その時の情熱みたいなものは今も心の中で燃えてるよ。
#始めたきっかけ
仕事中、「私のプログラミング能力は一般的にはどんなもんなんだろうか?」と思ったことがスタート。
最初はPaizaでプログラミングのテストがあることを知って転職への影響や市場価値を計るためにスキルチェックしまくった。早い段階でAランクに到達し、スカウトもバンバン来たが転職すること自体興味なし。(最終的にはSに到達)
他に無いかなとその辺うろついてたらAtCoderに出会ったよ。
#AtCoder上での頑張り度合い
https://kenkoooo.com/atcoder/#/user/watarimaycry2
コンテスト時間中の頑張りは、Twitterで「#競プロクソ考察」で検索
以下の流れで今に至る。
・メインはJavascript、処理コストやデータ構造の都合でNGならサブでJavaでやろう。
・もっと問題解きたいな。過去問埋めていこう。
・Javascriptユーザ少ないみたいだしJavascriptのACランキング上位目指すか。
・Javaも本気出すか。
(↑は↓の問題をノーヒントで解けた直後のやつ)
https://atcoder.jp/contests/abc059/submissions/16637447
精進自体仕事中でもできるんだが、Javaで埋めてる時は本当に疲れた。
#JavaとJavascriptを使ってる理由
仕事で使ってるから。技術向上のついで。
なんか別言語で仕事せざるを得なくなったら、その別言語でAC埋めしまくるかも。
#仕事で役立つ?
web開発系なので競プロで学んだ典型アルゴリズムの構築とかは活かせてないが、以下の副産物は得られた気がするよ。
・基礎体力
・即効性の高いプログラミング力
・考察力
・言語特有の知識力
直近例
偉い人にサーバのCPU使用率のログ解析、抽出を急ぎで頼まれた。
競プロやってなかったら半日かかってたかも。1時間ちょいで終わらせた。
・問題
クエリがいくつか与えられる。
与えられるクエリには日付情報Di、時刻情報Ti、CPU使用率Ciが記載されており、予め用意した配列上にCPU使用率を加算していく。
できた配列の結果をCSVに出力すること
・配列の形
|hh:mm| 0:00 | 0:05 | 0:10 | … | 23:50 | 23:55 |
| day | - | - | - | - | - | - |
| 0 | | | | | | 10000 |
| 1 | | 50 | | | | |
| 2 | | | 10 | | 80 | |
| 3 | | | | | | |
・クエリ(本当はもっと複雑な形)
7/20 17:25 50.53%
7/20 17:40 72.27%
・・・
・条件
クエリの総数は不明
Di Tiは昇順ソート済み
TiとTi+1の差は5以上(差自体は5の倍数だが、必ずしも差が5ぴったりとは限らない)
・解法
時刻は12進数の考えで左から「時刻 * 12 + (分 / 12)」番目に加算しよう。
共同とはいえ、解法を思いつけた時は楽しかったな~
社会人なので夜中までやるのはしんどい。参加できる時はやってるよ。
CodeForces問題埋めも再開しないとだな。
#続けられる理由
理論的な理由は不明。
「プログラミングを使って何かやること」が苦で諦めがあったり挫折とかは何度もしたけど、「プログラミングをすること」自体が苦になったことは無い。
初めて触れた時の感覚が残ってる間は、少なくともモチベーションは下がらないと思う。
個人的に「相互にライバル意識を持つ存在」がいたらいいなとか思ってるけど特にいない。
#次の目標
30歳までに青色に行く。行けるかどうか知らんけど。