はじめに
私はエンジニア志望の修士1年生です。
きたる就活に備えて、勉強中です。模擬面接を行ってくださる方いらっしゃったら教えて下さい!
なぜLeetcodeを解いているの?
外資系のIT企業の面接対策ではコーディング面接がなされるということで、せっかく本選考まで半年〜1年あるので、早めに対策始めて、あわよくば外資系の内定もらおうぜというモチベーションで、Leetcodeを解いています。
こんな感じで4月中頃から解き初め、そして、先日解いた問題数が100問を超えたので、ここまでの振り返りと今後の勉強の方針を整理しようと思います。
Leetcode100問解いた感想
もともとeasyも解くのが怪しい(純粋な配列操作なら解けるが、木構造やLinkedlistなどは解けない)というような感じでしたが、100問解くと、以下のように変わりました。
- easyはだいたい10分以内には解ける。
- mediumは物によっては15分ぐらいで解けるものもあるし、解説を読んでも理解できないものもある。
- 大体どんな問題でもブルートフォースのアルゴリズムはすぐに思いつくし、説明もできる。
- Leetcodeを解き始めた時と比べて、問題を解く際のボトルネックが移動した。
- 最初は知識や経験が不足していて問題が解けなかった。
- 今はシンプルなアイデアを思いつけずに、複雑なアイデアを実装し始めてしまい、バグを埋め込んで、解けなくなってしまう。如何にシンプルなアイデアを思いつくか、その引き出しを増やすかが大事な気がする。
今後もLeetcodeを続ける?
部分的にはい
ただ、実務を行う上で、最近はCSの知識や経験が不足しているなと思い、そのような部分をケアしていきたい。具体的には、CS周りの本を読んで毎週1記事書くということを並行してやっていきたい。
ただ、この2週間ほどLeetcodeをサボっていて、インターンの面接を受けるために、一昨日ぐらいからやり直しているが、正直腕が鈍ったなと言う感じが否めない。
なので、Leetcodeも継続して行っていく必要がある。
今後の学習プランは?
まず、以下のCS周りの本を勉強して、アウトプットも毎週出す。
-
ネットワーク→
- マスタリングTCP/IP入門編
- マスタリングTCP/IP 応用編
-
セキュリティー→
- webを支える技術
- マスタリングTCP/IP セキュリティ編
-
Linux周り
- ふつうのLinuxプログラミング第2版
- データベース→おうちで学べるデータベースのきほん
- GC→?(いい本あれば教えて下さい!)
- OOP→?(いい本あれば教えて下さい!)
- testing→?(いい本あれば教えて下さい!)
並行して、10月までは毎週Leetcode7問を解くようにする。一日あたり1問。
最後に
モチベの波が激しく、うまく行かないことが多いですが、一つ一つ着実にレベルを上げていきたいです。