結論
ついに入茶することができました。
茶色には意地でもなってやると思っていたので達成できて満足でございます。
この記事ではCS出身でもなく、数学力のないおっさんでも、LeetCodeをやれば茶色までは持っていけるぞというものを記すものになります。
※レーティングが上がり始めたのはLeetCodeを実施したことが起因しています。
キャリア背景
地方国立大学理系を卒業後、半導体ICのテストをするエンジニアとしてキャリアスタートしました。(2012年ぐらい)
CとかC++とかPerlを書くことが多かったです。2016年ぐらいまで。)
いまはWEBアプリケーションエンジニアとして働いていますが、設計よりのことばかりやっています。(リソース空いた時にコーディングしてるぐらい)
本格的にコードを書く機会は無くなっていましたが、業務アプリケーションのソースコードは普通に読めます。
茶色というレベルに対して思うこと
-
ここについては明確に言いたいのですが、灰色(自分)でもFizzBuzzレベルは楽勝で解けます。
-
C問題レベルのものが楽勝で解けるレベルでないと茶色には100%到達しません。
-
レーティング推移を見てもらえるとわかるように、ブランクはあったとはいえ、LeetCodeなしでは茶色には届かなかった。
-
数学力がある人だったら何の苦労もせずに茶色ぐらいは突破していくと思いますが、私はそうではありませんでした。
- クラスにいたであろう勉強しないでも模試の数学満点取れるような人たちいますよね。アレには遠く及びません。
LeetCodeで何をしたか
- Interviewで頻出の問題を解いた。
- Easyで解けなかったものは内容を理解できるまで確認した。
- だいたい解けていたんですが、binary treeの問題を初めて見た時に???ってなりました。
- Mediumは計算量が膨らんでもいいので自分で解く。その後にいろんな人の回答を見て「ふむふむなるほど」まで行う。
- 理想としてはここから自分で実装できるように復習するべきですが、問題数をこなして「ふむふむなるほど」を多数得る方針にしていました。
- その結果、AtCoderの問題を見るとこれはDP、これはDFSでやればいけそうという勘所はつくようになりました。(実装できるかは別問題)
LeetCodeの何がよかったか
- 問題の形式や、他者の回答を確認する方法が自分の好みに合っていた。
- AtCoderは数学的思考のプロセスが必要になることが多いと感じる。LeetCodeはどちらかというと業務寄りのプロセスかなと感じた
- コーディングインタビュー対策になる。
- Easyに着手し始めるときにWEB上でコーディングしてSubmitできるので、お試しとしての体験がよかった。
今後について
目標としていた入茶は達成できたので、タイミングが合うときに参加するぐらいで楽しもうかなと思います。
※土日の夜の時間を使うという点で嫁にも迷惑かけてきましたので...好き勝手させてくれてた嫁には感謝してます。
LeetCodeは続けつつ、システムドメインの学習とか個人開発に力を寄せていこうかなと思います。
入茶に苦しんでいる人がいたら、おじさんでもいけるんだぞということを希望としてがんばってください!