見出し画像

専門性が無いと悩んでいる私は何を実行すればよいのだろうか

気づけば3年目


気づけばエンジニアとして働き出して3年目になった。
まだ辞めずにエンジニアをしているので性格にあっているんだろう。
最近ふと考える。
「なにも専門性がない」

  • バックエンド1.5年

  • フロントエンド0.5年

気づけばどちらも中途半端な人間になってしまった。
バリバリ実装している同期・SNSの若手エンジニアを見て焦り続けている。
目を背けてきたが、実はもうエンジニアとして進むか、マネジメント側に寄るかの瀬戸際に立たされているのでは無いだろうか?
このまま専門性が何もなく、広く浅くしか分からない人間は、確実に将来とって変えられるだろうし、エンジニアとしての強みも活かせない。

私はそれを求めているのだろうか?
否、求めていない。
1つ専門性という軸を持ち横展開していきたい。

バックエンドエンジニア・SRE・データ基盤・フロントエンド、さまざまな領域に興味を持ったが実装することが楽しいと思えることはフロントエンドだった。それなら、フロントエンドの専門性を磨くために何を実施していけばいいのだろうか?

感じているモヤモヤと対処法

仕事しながら、「あれってなんだっけな」と思うことがよくある。
体感だが、この小さな不明点がかなり頭の中でノイズになっている。

一刻も早く現在の状況を脱出するために下記対策を取ろう

1. モヤモヤリストの列挙
2. モヤモヤリストの細分化
3. 費用が少なく効果が高いもの順に並べる
4. 上からひとつずつ実施する

1. モヤモヤリストの列挙

  • コンポーネントデザインの各要素の名前を明確に覚えていない。

  • 指定されたUIコンポーネントの実装が思い浮かばない

  • TypeScriptの基礎構文(ラムダ・関数定義)をググる必要がある

  • Reduxは読めるが書けない。

  • APIの叩き方が書けない(async/awaitを利用するんだな程度)

  • 対応に対する見積もりが細分化できない(実装イメージがついていない)

  • Jestの利用方法への知見が少ない

  • 自分のエンジニアとしての強みがない(専門性がない)

  • Nextを用いたSSR実装に知見がない

  • コードを読めるようになったが書けない

2. モヤモヤリストの細分化

  • コンポーネントデザインの各要素の名前を明確に覚えていない。

  • 指定されたUIコンポーネントの実装が思い浮かばない

    • 頻出ライブラリは何があるのか?

  • TypeScriptの基礎構文(ラムダ・関数定義)をググる必要がある

    • 基礎構文

    • 頻出メソッド

    • インターフェースについて

  • Reduxは読めるが書けない。

    • Reduxの利用パターン

    • 頻出メソッド

    • 活用例

  • APIの叩き方が書けない(async/awaitを利用するんだな程度)

    • 非同期でAPIをリクエストする理由

    • サンプルで叩けるAPIにどのようなものがあるのか

  • 対応に対する見積もりが細分化できない(実装イメージがついていない)

    • コンポーネント作成に必要な要素はなにか?

    • 1コンポーネントファイルの大きさはどの程度か

    • コンポーネントはどの粒度で作成するのか、理念は

  • Jestの利用方法への知見が少ない

    • 単体テストでどの部分までを担保する必要があるか

    • mock/stubの使い分け

  • 自分のエンジニアとしての強みがない(専門性がない)

    • 自分の中での相対的な強みは何か?

    • 周りと比べた時の相対的な強みは何か?

    • 相対的に強みが生きる場所はどこか

  • Nextを用いたSSR実装に知見がない

    • Nextがなぜ多用されるのか?

    • SSR/SPAの違い(再確認)

  • コードを読めるようになったが書けない

    • なぜコードが書けないと思ってしまうのか

      • 実装したことがなく、コンポーネント作成の一連の流れが身についていない

      • 文法が理解できておらず、ググる必要がある。またググるようでは書けると言えないと無意識に感じている

3. 費用が少なく効果が高いもの順に並べる

◾️大前提
・コンポーネントデザインの各要素の名前を明確に暗記する。
・自分の中での相対的な強みは何か?
・周りと比べた時の相対的な強みは何か?
・相対的に強みが生きる場所はどこか

◾️日々の実装編
・コンポーネント作成の一連の流れを理解する
・1コンポーネントファイルの大きさはどの程度か
・コンポーネント作成の理念を理解する
・TypeScriptの基礎構文・頻出メソッドインターフェース
・頻出ライブラリについて
・単体テストでどの部分までを担保する必要があるか理解
・Jestを利用して単体テストを実装する
・非同期でAPIをリクエストしてコンポーネント実装を進める
・Reduxの利用方法

◾️優先度低い
・Nextがなぜ多用されるかの歴史理解
・SSR/SPAの違い(再確認)
・Nextを用いたSSR実装に知見がない
・対応に対する見積もりが細分化できない

何を実施していくのか

前提として、自分に強み・専門性がないと感じるのは主観的な事実で判断していることと非常にバイアスが強いのだろう。
強みについては、別途記事にまとめてバイアスを自覚しようと思う。

今年度はフロントエンドエンジニアとして専門性を高めていく時期とする。
下記記事は今後に役立ちそうなので記載しておく。
もし、自分と同じ境遇の人がいれば役立ててもらえると嬉しい

まとめに

人生何かをするにはあまりにも時間が少ない。急ぎタイパを意識すると結局遠回りしてしまうことだってあるだろう。それなら戦略立てて今できる最善策を実施するしかない。一緒に頑張りましょう。


この記事が気に入ったらサポートをしてみませんか?