AtCoderで入茶

茶色ぐらいでと思ったけど、次のステップに進むためのマイルストーンには違いないので書いておきます。
AtCoderのプロフィールはこちら。

今年2022年になってAtCoder始めて、現時点でコンテスト参加11回。言語はいまのところPython3です。C++かRustにしたいと思って別途勉強中。

職業はウェブ系のソフトウェアエンジニアで、バックエンドサーバーを書いたり、CI/CD含むクラウドインフラを作ったり、IoTネットワーク構築したりといったことが主な業務範囲です。
本業の正社員の仕事以外に副業を複数やっていて、子供が1人いて、そこそこ多忙といえると思います。でもほぼリモートワークだし妻は専業主婦だしで時間のやりくりもある程度柔軟に可能、という暮らし方です。

AtCoder始めた直接のきっかけは覚えてないのですが、中長期的な動機は明確で2つあります。
(1) いまの業務に活かしたい
(2) 転職時にコーディングテストがネックにならないようにしたい

(1)いまの業務に活かしたい

私のいまの業務(本業・副業ともに)はIoT/モビリティ領域のサーバー・ネットワーク担当で、多数の機器を適切に管理して必要なタスクにスムーズに割り振ること、およびその結果データを整理して解析することです。
そうした業務の中にアルゴリズムの知識が必要になってくることはあって、「リアルタイムでデータ集計時の計算効率化」「機材・タスクの最適なマッチング」「ルーティング(経路探索)の指示」「P2Pネットワークのグラフ構造の設計」など改善したいこと、やりたいけどやれてないことがたくさんあります。それを具体的に着手するにあたって、アルゴリズムの知識が少ないことがネックに思っていました。

私は高等教育でプログラミングを習ったことはなく(大学の専攻としては経済)、プログラミングについては独学・自己流で、あまり体系的な知識はなくやってきました。
(プログラミング自体は10歳ぐらいからやっていて途中ブランク長いものの「未経験」とはいえないのでそれはいつか書きたい。)

なので自分の現在位置の実力を客観的に把握したくてAtCoderを始めています。LeetCodeやCodeforcesなどの他のサービスも登録していますが、日本語で解けて国内での知名度もあるAtCoderから。
AizuOnlineJudgeは以前少しやりかけたけど続かずでした。

(2)転職時にコーディングテストがネックにならないようにしたい

約3年前に転職活動をしたのですが、コーディングテストで与えられた設問を解けず、落ちるという経験をしました。
それがきっかけで、コーディングテストを課す候補の他の一社を途中で辞退するということもしてしまったんですよね… 受けてたらパスしたか落ちたかはわかりませんが先の件が精神的にショックだったのは確かで。

そのときの悔しさをいまでも覚えているのと、次に転職する機会があって入りたいところがあったときに、コーディングテストが障壁になることは絶対避けたいと思っています。
スキルはもちろん必要ですし、決まった課題を一定時間内に解くという形式と場に慣れたいという気持ちもあります。

勉強の仕方

AtCoderのAtCoder Beginners Selectionを一通り終えた状態から第1回に参加し始めました。
AtCoder Problems をブックマークしていて、時間があるときにちょこちょこ解いています。ただしまだEasyで25%, 全体で10%ぐらいの進捗。
あとは 問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本 を読んでいて、3章まで解いている状態です。
コンテスト終了後には公式解説読んで振り返りは軽くしています。公式解説以外だとかつっぱ競技プロ が良いです。できる人の解くテンポがわかります。
正直ここまではすでに持っていたプログラミングスキルだけでこれた感じがあります。ただしこれ以上ランクを上げていくにはアルゴリズムをしっかりマスターしていかないと伸び悩むのが明らかだと感じています。

AtCoderは自分の客観的位置を把握できてスキルアップが実感できるツールとして使えればよいと思っていますが、やるからにはランクアップは目標です。次は緑になったという記事が書けるように頑張る。


この記事が気に入ったらサポートをしてみませんか?