はじめに
僕も成長の過程にいるのであまり偉そうなことは言えないのですが、
- 学生時代: (アルバイト)Androidアプリ開発やLaravel、Vue.jsを用いた業務支援サービスの開発
- 新卒1年目: PHPを用いた大規模な自社サービスの機能改善
- 新卒2~3年目: Vue.js、Railsを用いた業務支援(管理画面)の開発
- 新卒3~4年目: Vue.js、Railsを用いた新規サービスの開発
- 新卒4~6年目: React、GraphQL、Goを用いた新規サービスの開発
その他、細々と色々と経験してきましたが、ありがたいことに、新規サービスの開発に多く携わってきたりしました。
そんな僕がエンジニアとして成長するために必要だと感じることを7つのことをまとめてみようと思います。
1. 変化を認識し、試着してみる
技術の刷新は本当に早いです。
jQueryでDOMを操作していた時代から、たった10年しかたっていないのにありとあらゆるものが変わりました。
2022年現在であれば、VueやReactが人気だし何かいいことがあるんだろうな、JavaScriptではなくTypeScriptを使っているサービスが多いと聞くし、難しそうだけど、一度、**試着してみる(使ってみる)**かという気持ちが重要です。
2. トレンドを業務に取り入れる
業務はプライベートで使う技術と違って遊びじゃないんだから、1のように簡単に入れるわけにはいかないんだよ!
と思われるかもしれません。
実際に難しいです。
作られてきた大規模なサービスにいきなりReactを入れる。TypeScriptを入れる。みたいなことは本当に難しいことだと思います。
でも、業務時間ってめちゃくちゃ長いです。
新しいサービスや会社はどんどんモダンな技術を取り入れているというのに、レガシーなものをずっとメンテナンスし続けるということは自分の人生のほとんどの時間を使って市場価値が上がらないことをする。ということになりかねません。
なんとかして、業務に入れてやる!!
と考え出すと、脳ができる方法をめちゃくちゃ考えてくれます。
- 社内で新規サービスが立ち上がるときに真っ先に手を上げよう。
- 他に影響を出さず新しく記述するところだけ、TypeScriptで書けるようにしよう!
究極には、転職しよう!となるかもしれませんが、もしかしたら今の会社に所属しながらでもくぐり抜けてできるかもしれませんよ
脳をなんとかできないかという方に倒してみましょう。
3. エキスパートと一緒に仕事をしよう
特に自分が未経験の領域というのは、一人でやるのはかなり難しいです。
エキスパートを自分のチームに引き入れるのが一番手っ取り早いです。
僕の場合はReactでかなりつよつよエンジニアの方が社内にいたので、新規サービス立ち上げ時に半年~一年ほどサポートしてもらいました。
そんな人社内にいねーよ。というチームもあると思います。
社外で探してもいいかもしれませんね。
副業等でアドバイスやコードレビューにだけ入ってもらうみたいなこともいいんじゃないでしょうか?
ベストプラクティスから外れていっているコードを指摘してもらったり、勉強会にだけ参加してもらったりするだけですごく価値があると思います。
4. 勉強会を開催しよう
僕は面倒臭がりなので、一人でプライベートに勉強しようと思ってもだらけて、ゲーム始めたりします。
仕事している間や、何か作ってる間は楽しいのですが、勉強だと思うと急に面倒になるんですよねぇ、、
そんな人は、勉強会を開催してもいいんじゃないでしょうか?
あなたが危機感を感じているということは、誰かも感じている可能性が高いかなと思います。
誰かとやるとサボれなくなるのでおすすめです。
5. 非エンジニアや上司と信頼関係を築こう
会社に入ってきたばかりのペーペーが何を言っても響きません。
飲みに行くみたいな手もあると思いますが、本質的な信頼ではなく、仲良しこよしで仕事をしているわけではないので、他の方法で手っ取り早く信頼関係を築く方法があります。
業務を期待されていた150%でやってください。
口だけじゃなく、この人は完璧以上に仕事をこなす。ということが分かれば人は意見を聞いてくれることが多いかなと思います。
そうじゃないのであれば会社を変えましょう。
6. アウトプットする習慣とせざるを得ない状況を作る
アウトプットってやっぱり大事です。
知識の体系化に繋がるし、成果の一部にもなる。
わかっていても
僕は面倒臭がりなので、一人でプライベートに勉強しようと思ってもだらけて、ゲーム始めたりします。
が邪魔をするんですね。
だから、習慣とせざるを得ない状況を作ることが大切だなと思います。
僕の場合、
習慣: Zennに纏めながら調べる
みたいな感じで言語化しながら雑にまとめるという習慣をつけたりしてます。
せざるを得ない状況: Qiitaアドベントカレンダー
まさにこの記事がそうですが、Qiitaのアドベントカレンダーに乗っかって自分がせざるを得ない状況を作るというのはとても大切だと思います。
7. 後輩を育てる
育てるのはマネージャーの仕事だと思っているなら大きな間違いです。
テックリードは技術のリードをしている人でもあり、エンジニア一人一人をリードする立場でもあります。
それに後輩を育てるということはメリットも大きいです。
自分の知識が曖昧なところを言語化する必要が出てくるんですね。
なぜこのコードがダメでこのコードが良いのか。
自分が考えるアーキテクチャの理想系はどういう形なのか。
あなた自身のためにも後輩を育てるというのは避けてはいけません。
まとめ
実はフロントエンドに絞った話のみでアドベントカレンダーをしようと思っていたのですが、最後の記事はエンジニア全般に向けた記事になってしまいましたね(汗
お付き合いいただきありがとうございました