エンジニアのキャリアについてはいろんな方のいろんな戦略があると思っていて、私なりに考えたことをせっかくなので記事とさせていただきました。
未経験
、30代
、家庭持ち(子持ち)
あたりのわたしと属性が近い方の参考になれば幸いです。
これはあくまでわたし個人がキャリアについて雑に感じたことを書いたポエム記事です。世間一般的な意見とは異なりますのでその点についてご承知いただければと思います。何かご意見・ご指摘などあれば気軽にコメントください🙇
筆者について
- 今年で33歳になりました。
- 未経験から転職して今年でエンジニア4年目になりました。
- サーバーサイドエンジニアです。
- 既婚で今年初めて子供が産まれました。(現在育休中)
筆者のキャリアについて
- 1年くらい独学(主にRubyとか。スクールには行ってない。)
- 2020年に異業種営業からエンジニア転職(Javaを使った中小独立系SIer)
- 2022年にモバイル向けソーシャルゲームの自社開発に転職(KotlinとかGoとか)
- 今(エンジニア4年目になりました)
いわゆる未経験転職組です。サーバーサイドが主戦場ですがプライベートではwebフロントやインフラとかも触っています。少し前までブロックチェーン追いかけたり最新技術を触るのが好きです。
もし、未経験からのエンジニア転職についてご興味がある方は稚拙ですがnoteにまとめてあるのでよければこちらもご覧ください👀
とりあえずやりたいこと、やっていることを書き出してみる
キャリアについて考えるときに自分がやりたいと思っていることと実際にやったほうがいいことは違うなと思っていて、これはその人のフェーズやらスキルやらなんやらで変わるんじゃないかなと思います。
そして、その中かから何を優先して学んでいくか、経験していくかがキャリア戦略なんじゃないかなと思ったので雑に書き出してみました。
この図の中で優先順位をつけると
- (A)やりたくてやっていること(Goとか)
- (B)やりたいわけじゃないけどやっていること(DevOpsまわりとか)
- (C)やりたいけどやれていないこと(ブロックチェーンとか)
- (D)やりたいわけじゃないのでできれば避けたいこと(マネジメントとか)
という感じです。
書き出して思ったのは
- やりたくてやっていることが思ったより少ない。
- やりたいけどやっていないこと、やりたいわけじゃないけどやっていることが思ったより多すぎる。
ということで、以下もう少し詳しく考えていきたいと思います。
A. やりたくてやっていること
冒頭にも書きましたがわたしは30代のキャリア転職組み家庭持ちなので、あんまり余裕ないです。これからこの条件で転職しようとしている方はそれなりに覚悟したほうがいいと思います。20代単身の方と比べたときに圧倒的に精神負荷が高いですし時間の捻出が難しいです。自分より若く、経験年数が上の優秀な方がこの業界にはわんさかいます。
なのであんまり寄り道するわけにもいかず最も優先するのはやっぱりお金です。いくら楽しいからと言ってお金にならないことをやっている余裕はないのです。
市場価値を追う
じゃあどういうことをすればお給料が上がるのかを考えたときに市場で求められているスキルを習得するのが一番てっとり早いと思ってます。今で言うとやっぱりGoとかになるのかなと思います。
言語で言うなら本当はKotlinとかもっと書きたいなと思ったりもしますが、やっぱり今技術的に採用される母数を考えるとGoをやっておいたほうがいいよな...という感じになってしまいます。(もちろん、Goは素晴らしい言語でGoを書くことは楽しいと思っています。)
技術だけで給料上がるの?
では技術だけ追っていればお給料は上がっていくのでしょうか??実際は組織、チームでどのような価値が出せるのかを評価されることが多いと思いますし、マネジメント経験がある人材の方がそういったロールで給与テーブルが高いんじゃないかなとは思います。
なので本当にお給料のことだけを考えるとマネジメントやプロジェクトの進行経験とかそういった部分に振った方がいいのでしょう。
ただ、わたしは技術を学ぶのが好きですし、エンジニアとしてキャリアを構築していきたいと考えているので需要が高そうで、自分がやりたいと思った技術を最も優先してキャッチアップしています。
B. やりたいわけじゃないけどやっていること(やろうとしていること)
わたしは今のところごりごりコードを書いている方が楽しいと思っているのでインフラまわりやDevOps的なことをやるよりはアプリケーションのコードを書いてたいかなと思っています。
ただ、エンジニアとしての市場価値を考えたときにネットワークやセキュリティのようなサーバーエンジニアとしての一般教養的な知識やアーキテクチャ的なことを知っていたほうが市場価値は上がると思っています。また、サーバーエンジニアとしてインフラやDevOps的な部分は避けられないのとここもできた方が市場価値は上がると思っているので優先してキャッチアップしています。
ただ、やりたくないというほどには思っていないです。最近はKubernetesをいろいろ触って学んでいましたが本当に良くできていてキャッチアップもとても楽しかったです。
市場で求められていそうな技術が多い
わたしは採用の専門家ではないので間違っているかもしれませんがそれなりの経験年数のサーバーエンジニアで最近の技術トレンドもキャッチアップできている人というのはそれなりに求められているものが多いと思っています。特にわたしのような経験年数が浅く、CSなども大学で学んでいるわけではないのでエンジニアとしての一般教養というか基礎力みたいなのは身につけておかないとスタートに立てないのではと感じています。そうすると結果的にやらなきゃいけないなということが多く、例えば
- ネットワークの仕組み
- 認証・認可の基本的な知識
- セキュリティ
- DBの基本的な運用知識とパフォーマンスチューニング(採用で一番聞かれる気がする)
といったことは身につけておきたいですし、これに加えて市場のトレンドなども追っていると必然的にこの領域のやらなきゃいけないことが多くなってくる。
C. やりたいけどやっていないこと
ここは、わたし個人がやりたい・興味があると思っていることだけどあんまり積極的に取り組んでいないことです。
やりたいと思っている言語たち
エンジニアのみなさんならそうだと思うのですが新しい言語を学ぶのは楽しいですよね?世の中にはたくさんのプログラミング言語がありますがこれを片っ端から学んでいくには時間が全然足りません。それよりも、もっと優先してやらなければいけないことはたくさんあります。
例えば、わたしはGo一強なのもつまらないと思っているのでサーバーサイドkotlin
の採用ケースがもっと増えればいいなと思っています。また、学習ハードルという壁があるにしてもRust
の採用ケースが増える未来もあるなと思っています。他にもScala
やHaskell
のような関数型プログラミング言語
をもっと学びたいなとも思いますし、web開発には欠かせないうえにcloudflareのようなエッジコンピューティングでも使用されるTypeScript
はもっとレベルを上げなければならないなとも感じています。Flutter
でwebもモバイルもなんらサーバーも書ける世界線もあるなとは思っているのでFlutterもやりたいです。
これらの言語を全部やりたいと思っていますが、そんなわけにはいかないので今は他の優先事項を優先して学ぶことは控えています。
最先端の技術たち
直近の業務でブロックチェーン
を触るプロジェクトがあり、半年くらいブロックチェーンの技術を0からキャッチアップしていたのですがそれがめちゃくちゃ面白く、できれば今でも追っていたいと思っています。
他にもChatGPT
が一瞬で広がり、開発者だけでなく一般の人も巻き込んだ社会現象になったり、AppleのVision Pro
は超未来的でわくわくが止まらないし、最先端の技術は胸が躍ります。
ただし、これらの技術を追うのはそれなりに覚悟が必要で、生半可に手を出して成功できるようなものでもないなと思っていて、興味本意で触る程度ならいいですが本職としてやっていくにはそれなりのパッションが必要だなと思っています。
なんだか楽しそうなエンジニア活動
つよつよな先輩エンジニアの方々はみんなOSS活動をしていたりしますよね?また、個人開発のサービスをリリースして成功しているエンジニアの方々も多く見かけます。また、競プロをやっている方々やISUCON
のようなコンテストを楽しんでいる方々も多いですよね。
みなさん楽しそうです。これらの活動はエンジニアとしてのスキルも上がりつつ取り組める活動だなと感じていて、とっても羨ましいのでわたしも何かやりたいなーと最近思っています。
D. やりたくないのでやっていないこと
これは、とても個人的なことになりますが今までチームマネジメントなどの経験がなく、また、あまり人前が得意な方ではないのでマネジメント的なキャリアは避けたいなと考えています。
ただ、テックリード
やリードエンジニア
と呼ばれるようなロールは、そのロールでないと関与できないタスクや領域があるんじゃないかなと思っていて、また、ずっとメンバーのままでいいですというのも目標がないようであれなので直近の具体的なキャリアとしてはテックリードのようなプロジェクトをリードできるようなエンジニアを目指しています。
マネジメントは早めに経験した方がいいよというアドバイス
上記のようなことを言うとほぼ100%言われるのが「マネジメントは早めに経験しておかないとキャリア詰みますよ?」とか「下にどんどん抜かれるから年を取るごとに開発から離れた方がいい」というようなアドバイス。
まあ、わかるんだけど年を取るごとにマネジメント職にシフトしていくのが嫌でエンジニアの専門性に惹かれたのに結局マネジメント職の話かいみたいな気持ちになります。
少なくとも、今後コードを書き続けていってキャリアが詰むような人生は歩むつもりはないのだけど(それでキャリアが詰んだらその程度の努力だったという自己責任)、最悪詰んだら詰んだでそのとき考えようと思います。
マネジメントやらなくてキャリア詰むリスクよりもせっかくエンジニアになったんだから最大限楽しみながらキャリア構築する楽しみのほうが勝ると今のところは思っています。
まとめ
すごい雑に思ったことを書いてきましたがこの記事が誰かの参考になれば幸いです。
- Aの領域(やりたくてやっていること)は意外と少ない。
- Bの領域(やりたいわけじゃないけどやったほうが市場価値が上がりそうなこと)が多い。
- Cの領域(やりたいけどやっていないこと)が多すぎる。
- Bの領域をAの領域に移していくことが必要。
- Cの領域をAの領域に移していくことが必要。
- Dの領域をAの領域に持っていくのはとても大変。
- Dの領域(やりたくないこと)をやっている時間などない。
私のような転職組みは特にそうだなと思うのですがせっかく苦労して入った世界なのであえてやりたくないことをやるよりもやりたいことをやって楽しみましょうよという話でした。
今回は以上です🐼