2023に給料を上げたいソフトウェアエンジニアの勉強方法
来年こそ年収1000万以上狙いたいなら自分はこうする
面接の種類多すぎるので全部準備すると時間かかるので同じ面接タイプの企業を複数受けるのがコツです。
同時に勉強する勉強する
大半給料の高い面接はコーディングテストあるのでleetcodeは必ずやる。leetcodeの練習は続くのが大事で1ヶ月に300問をやるぞというより1ヶ月に30問をやった方が覚えるしモチベーションが続く。
一日中leetcodeやるのは効率悪くなるのでドメイン知識のインプットしながらやっていく。学校の授業も一日中ずっと数学をやるのではなく複数科目をやっているのと同じ理由です。Spaced and Interleaved practiceの意識が大事
LeetCode
最低限100問やってIDE補完やdocumentationなしでLeetcode mediumを解けるぐらいにしとく。
シニアレベルをもらうのに面接中より良いパフォーマンスを出さないといけないのでやっておいた方が良いこと:
面接は30~40分しか時間ないのでLeetCode Timerで時間を測る
多くやるより深く理解した方が面接中に役に立つ。なので一問解いて他の回答ないか調べるのも大事。DPの問題はtop-downとbottom-up両方やる、BFSで解けるものはDFSも考え
ちょっとわからないのがあればCSの基礎に戻る。(MIT 6.006はおすすめ)
ドメイン知識
ここはバックエンドエンジニア・プラットフォームエンジニア・SRE・DevOpsのソフトウェアエンジニアにおけるドメインの知識の話になるがフロントエンドの場合はJavaScript/DOM/Webなども勉強しとく必要があります。
面接が近くなったらドメイン知識の問題集や勉強の仕方(随時更新)の問題集をやります。まだシニアレベルのオファーを取りたいなら確実に理解力を深めないといけないのでおすすめの本:
Designing Data-Intensive Applications - Martin Kleppmann
一本だけ読むならこれ!ある程度データベース触っているとあーこう動いてるんだ感動する
日本語訳あり
データベースの話からスタートしさらにアプリケーションをスケールさせていくには分散システムの話が始まりより面白くなる
High Performance Browser Networking - Ilya Grigorik
2章のTCPや3章のUDPだけ読めば十分
無料本
Systems Performance: Enterprise and the Cloud, 2nd Edition - Brendan Gregg
パフォーマンスチューニングの本ですがそもそもチューニングをする前にOSの仕組み理解しないとできないのでそれをよくまとめてくれてる
日本語訳あり
linux上にcontainer作れるようになる
セキュリティーの本ですがビビらずコンテーナーの話はよの本より簡潔にまとめられてると思います
1時間の面接内にドメイン知識だけやる企業とドメイン知識+コーディングの企業があります。
ドメイン知識+コーディング: コーディングが15~30分かかるのでドメイン知識も15 ~ 20分しか無いので短い時間に幅広く知っているのをアピールしないといけないので答えは簡潔に素早く
ドメイン知識だけやる: 50分ぐらいもあるので深く答えていく。一つの答えに対してまた深掘りされるので基礎が固まってないと優勝できない
ChatGPTによるモックインタービュー
ドメイン知識のように一問一答の面接はChatGPTを使うと良さそうです。デフォルトではなくまずはChatGPTに面接官になってもらいましょう。
他のロールの場合はbackend engineerを置き換えてください。
なんと次はフィードバックをいただきながら第二問を投げてくる
最後に全体のパフォーマンスも聞いてみよう。
なんとまだシニアエンジニアにはまだ慣れないので勉強が必要らしいです。
面接
海外企業で面接
「移住しないよ」思うかもしれないがそう移住しないからこそリスクフリーで練習になる。コーディング(leetcode)とドメイン知識が武器だけど実力を試したいので最初はシンガポール法人の企業を選ぶ: TikTok/ByteDance, Shopee, Grab。コツはコーディングをドメイン知識を実施している会社を選ぶこと。シンガポールはビザの発行しやすいしヘッドカウントも相当多いので面接に呼ばれやすい。どちらでも同じような面接スタイル(コーディング、ドメイン知識)になるのでいい経験にはなると思う。
より面接の対策をしたい場合は
- Shopee Software Engineer Interview Questions and Processes
- Grab Software Engineer Interview Questions and Process
- Bytedance Software Engineer Interview Questions and Process
相当いいオファーもらったら移住考えてもいいじゃん?
国内企業で面接
本番だ。海外企業面接で落とされたら弱み知れるのでそれを補強する。
PayPay, Woven Planetを受ける。opensalaryを見ると相場的には
PayPay
L2 ミッドレベル): 850 ~ 1000
L3: 1100 ~
L4:1500 ~
Woven Planet
Software Engineer ll (ミッドレベル): 1000 ~
Software Enginer lll(シニアレベル):1300~
交渉に力を入れるとミッドレベルでも1000を余裕に超えることがあります。詳しくはThe Pathをご覧ください。
どちらも最後に行動面接っぽいのがあるがここまできたら準備する。詳しくはそれぞれの記事を参考にしてもらえれば
まとめ
LeetCode + ドメイン知識だけ勉強してそれが面接プロセスに入っている企業を狙う。システムデザインには時間使わず行動面接は進んだら用意するので相当なショートカットになる。
転職の前には信じがたいが確実に年収は上がる
以上の勉強方法でオファーなどを獲得した話をThe Pathにまとめているので興味ある方はぜひ!
この記事が気に入ったらサポートをしてみませんか?