【AtCoder】40過ぎのおっさんが茶色まで2年かかった話
2020年1月からAtCoderを始めて、入茶まで2年かかりました。私は国内SIerに勤める20年選手で40代のおっさんです。会社では開発をそれなりにこなしてますので、競プロは少し位できるだろう?とタカをくくっていたのですが、参加してみた所、アルゴリズムの知識は全く無い事に気付かされました。
そして改めて勉強し、入茶するまで2年かかってしまったのです。
AtCoderを始めるまで
LinkedIn に 自己紹介を載せて、何年も放置していました。そうした所、ある日 GAFAから採用プロセスのお誘いが来ました。その中で、リクルータと1時間位の面談をしました(全部英語でしたね…難しかったです)、そこで採用プロセス内にコーディング面接というモノがある事を知りまして、その縁で競プロの存在を知って始めました…という経緯です
AtCoderを始めてから
AtCoderコンテストの時間帯は子育て世代には都合が悪い?
1年目 ABCコンテストの開始が夜9時開始ですので、丁度寝かしつけの時間帯にぶつかります。子供と即行で風呂に入って出て、ひと休み中にABCコンテストのA問/B問の1~2個位を解いてから中断。寝かしつけをする日々が続きました。(当時はそのせいで)Rateが伸びないんだろうな、と思い込んでいました。そのため、1年目は本格的な勉強をしていませんでした。
2年目 とある事情で単身赴任的な環境になりまして、競プロのコンテストに集中して取り組む事ができました。しかし、改めて本気で取り組んでみても、全く解くことができませんでした。そもそも競技プログラミングの様なアルゴリズム系の問題を解くスキルは持ち合わせて無かったのです。
やったこと
(皆さんの色変記事と同じですが)
【作業環境を整える】 … Visual Studio C++で臨みました。
【テンプレート】 … マクロや最小構成のプログラムを用意
【過去のABC問題を解く】 … 時間がある日はやりました
【ABC後に反省と復習】 … 結構効果があった気がします
【灰→茶の色変記事を沢山読む】…先輩の軌跡は大変参考になりました
【デバッグ環境を整える】 … ログ出力を整えました
【作業ルーチン確認】 … コンテスト前に毎回やる作業をチェック
【勉強結果の記憶補完】 … 以下節のローカルWikiを立てました
勉強結果の記憶補完
おっさんは、久々の勉強で内容をあまり覚えられず。記憶補完としてローカルでWikiを立てて、勉強した内容をまとめていきました。例えば、
【文字→数字変換】 (言語: C++ です)
string n="123456";
// 1文字
int num1 = n[0] - '0';
// 2文字以上
int num2 = stoi(n);
とか
【二分探索】 lower_bound / upper_bound / binary_search
【閉路有無判定】 Union-Find木
みたいな感じです。実際はソースや使い方を書いていき、情報はもっと多いです。そして目次から即引けるようにしました。
まとめ
結局は、何で2年かかったかというと、SIerの職務経歴の長さから楽勝だと想像してノー勉強で望んだからだと思います(途中から、予想外に難しい!…勉強しないと無理だ。と思い、勉強を始めました)
競技プログラミングは、SIerで一般的にプログラミングしているような業務向けUIや速さを厳しく求められてないプログラミングとは異なると思います。どちらかというと研究所の計算や、業務向けであってもエンジン部分の様な高速化が求められるプログラミングに当たる部分だと思います。違いを理解せずに取り組んでいた事で、2年かかってしまいました。
結局の所、お誘いを受けた面接は、競プロの実力がダメ過ぎて受けてないです。半ば諦めていますが、折角始めたのでおっさんでも勉強し続けている所はお見せしたいと思います。直近の目標は次の緑色ですね。
-----------------------------------------------------------------------------------
以上簡単ですが、初の色変記事とします。読まれたのか良くわからないので、noteへスキか Twitterへイイね をお願いいたします
この記事が気に入ったらサポートをしてみませんか?