若手エンジニアが劣等感を抱かないために〜目先の技術力ではなく成長角度で測る〜

# はじめに
周りを見渡せば自分より優れたエンジニアは無限に存在します。

「自分よりも知識がある。」「自分よりも経験を積んでる。」「自分よりも・・・」

他人と比較をしている以上、自己肯定感の低下は否めないでしょう。

しかし、それは正しく自分を評価できているでしょうか？

この記事の目的は、目先の技術力ではなく**自らの成長角度を基準に客観的な評価をすることで、本質的ではない比較から身を守る**考え方を提案したいと思っています。

## 対象読者
- 若手エンジニア
- 未経験からスタートしたエンジニア
- 学生エンジニア

# 同期といえども経験年数は異なる
新卒で会社に入社して、まず意識する対象は「同期」でしょう。全体研修を終えてそれぞれ部署に配属をされ、すぐに圧倒的な結果を出す人が現れます。

すると大抵の人は焦りや遅れなどネガティブな感情を抱いてしまいます。

**しかしそんな時は一度、GitHubの履歴を覗いてみてください。**
![スクリーンショット 2023-06-28 10.07.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071889/c06a2de9-13dd-4e79-b2d7-ccf0ce5c06c6.png)

もしかしたら、自分よりも2年・3年早くプログラミングを始めているかもしれません。

劣等感を感じた相手が自分よりも数年早くプログラミングを始めていたら、それは自分の学習効率が悪いわけでもなく、自分に技術力がないわけでもありません。

**単純にその人に比べてエンジニア歴が浅いだけです。**

技術力とは以下の関係で成長していくと考えています。

:::note info
**技術力 = 成長角度 × 学習時間（経験歴）**
:::

つまり、どれだけ自分の成長角度を高く保っていても、若いうちは経験歴が大きく変わればその時点で追いつくことは困難であるということです。

エンジニアという職業は特殊で、自分より年下でも歴が長かったり、逆に自分より年上でも歴が浅かったりします。

そのため、正しく自己評価を行うためには目先の技術力を比較しても意味が無いと考えています。目先の技術力で比較してしまうと、「歴の長さ＝エンジニアとしての技術力」という単純な結果になってしまうからです。これは若手エンジニアにとっては大きな落とし穴です。

# 若い時こそ経験歴による差が顕著になる
当然といえば当然です。

プログラミングを始めて1年目の人は、2年目の人に比べ経験歴が2倍違います。

しかし、これは一時的なもので当時1年目だった人が5年目になれば、当時2年目の人は6年目になります。この時の経験歴の差はたったの1.2倍です。

つまり、**経験歴による差を感じるのは若い時に限った話である**ということです。

自分自身が歴を重ねれば重ねるほど、当時感じていた経験歴による差の影響は無くなっていきます。

**だからこそ、若手エンジニアは目先の技術力で比較して劣等感を感じる必要は全く無いのです。**

では、何を基準に自らを客観的に評価するのがいいのでしょうか？

私は**成長角度**を評価軸にすることを提案します。

# 成長角度を軸にする
改めて技術力は以下の関係で成長することを説明しました。

:::note info
**技術力 = 成長角度 × 学習時間(経験歴)**
:::

そして経験歴は早く始めただけ差が生まれるため、若い時ほど経験歴による差が技術力の差に直結しやすい現状があります。しかしその差は一時的なもので、長年エンジニアをしていれば最終的には大した影響はありません。

つまり私たちが意識するべきなのは**成長角度**であるということです。

![技術力.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071889/b9798833-4adc-d850-07f7-bc2a709d93e0.png)

上の図のように、若いうちから成長角度を高く保ち続けることで、当初大きく感じていた技術力の差が少しずつ埋められ、ある時期を境に逆転できると考えています。

:::note info
**私たちが意識するべきなのは、目先の技術力ではなく長期的な成長角度**
:::

# 成長角度を正確に測り、高く保つには
そうは言っても、成長角度という抽象的なものを正確に測ることは困難です。

また、どんなエンジニアでも多かれ少なかれ成長はしています。

「成長角度を意識する」と言うのは簡単ですが、実際に差別化できるまでの高い角度を保つことは非常に困難なことであると認識しています。

ではまず、「成長角度」と言う抽象的な概念を言語化するところから始めます。

## 成長角度とは？
私は成長角度を**最終的に目指すエンジニア像に向けた歩幅の大きさ**であると考えています。キーワードは「目指すエンジニア像」と「歩幅の大きさ」です。

重要なことはどれだけ歩幅を大きく進んでいても、目指すエンジニア像が正確に設定できていなければ蛇行して目的地までの到達に時間がかかってしまうと言うことです。

キャッチアップ力はあるのに、全てが器用貧乏に陥ってしまう人が当てはまります。

「目指すエンジニア像」と言う長期的で大きな目標を軸に掲げることによって、蛇行する事なく真っ直ぐ歩くこととができるようになると考えています。**そして、その軸を基準に1歩の歩幅を大きくしていくことで成長角度は高まっていきます。**

:::note info
**成長角度とは、最終的に目指すエンジニア像に向けた歩幅の大きさである**
:::

## 成長角度を高く保つためには
成長角度という抽象的な概念を言語化したところで、その角度をどのように高く保つかを考えます。

ここでは大きく二つの方法を提案します。
1. **定期的に目指すエンジニア像を見直す**
1. **学習する方法を学習する**

### 定期的に目指すエンジニア像を見直す
一つ目の提案は、定期的な目指すエンジニア像を見直すことです。これを聞くと「目標が変わってしまってもいいのか？」と感じるかもしれません。確かに進む方向が変わってしまうと、今まで歩いてきた道のりの軌道を修正する必要が生まれます。

**しかし、全てにおいて最初に設定した目標設定が最後まで正しいことはあるでしょうか？**

日常のタスクでも、当初に見積もって設定した目標通りに事が進むケースの方が少ないと思います。

つまり、大きな軸は持ちつつも定期的な軌道修正は必要であるという事です。そして、その軌道修正の作業こそが自らの振り返り・反省の機会になり、客観的な自己評価をするいい材料になります。

時には先輩エンジニアに自らの目標と根拠をぶつけてみるのもいいでしょう。自分よりも数年先輩であれば、見えている景色や得ている経験が大きく異なります。より広い視野を持った人に目標の妥当性を相談することで、確かな軌道修正ができる事があります。

:::note info
**目指すエンジニア像は定期的な見直しと軌道修正が必要**
:::

### 学習する方法を学習する
二つ目の提案は学習する方法を学習することです。

一つ目に紹介した「定期的に目指すエンジニア像を見直す」行為は、**正しい目標設定をするため**の目的で行います。それに対して、「学習する方法を学習する」行為は、**目標に対しての歩幅を最大限まで広げる**目的で行います。

ここでは私の過去の経験談をもとに、如何にして学習法を学んできたかを紹介します。

#### エンジニア1年目・大学2年次
当時は実務経験もなければ、1からアプリケーションを作り切ったこともなかった私は以下のような学習法をもとに成長をしました。
- 毎月ハッカソンに出る
- 毎日朝活で読書する
- 個人のブログサイトを作り、ひたすらアウトプットをする

テーマは「**とにかく量をこなす**」ということでした。プログラミングを始めて間も無い頃は見えている視野が狭いので、効率的な学習は不可能です。最初はがむしゃらに取り組んでいました。

#### エンジニア2年目・大学3年次
1年目にがむしゃらに取り組んだことで技術領域の得意、不得意も明らかになり視野が広くなった実感がありました。そこで、次は実務の経験を積むためにインターンシップを開始しました。

- インターンシップでフロントエンド領域を実務レベルまで伸ばす
- ハッカソンよりも大きな規模のピッチコンテストに登壇する

2年目のテーマは「**軸になる領域を業務レベルまで伸ばす**」ことです。

#### エンジニア3年目・現在
エンジニア3年目にもなると実務でもしっかり勝負できるレベルになってきたので、次は外部への発信を積極的に行うようにしました。

- Qiitaの記事を毎月投稿
- 技術イベントでのLT登壇

3年目のテーマは「**学生の枠を超えて、社会人エンジニアの土台に立つこと**」です。

この通り各成長段階によって学び方を意図的に変えるようにしています。そして、常に今最適な学習方法は何かと探る習慣を徹底しています。

:::note info
**自身の成長段階に最適な学習の方法を常に模索する習慣が大切**
:::

# 他人との比較はプラスにならない
成長角度を高くすることは、目標とするエンジニア像に向けての歩幅を大きくすることであると説明しました。ここでお気づきの方もいるかも知れませんが、この自己成長に他人は一切関わっていません。

私が技術力の成長に対して他人との比較がプラスにならないと考える理由は以下の2点です。
1. **前提が異なる**
1. **目指しているゴールが違う**


## 前提が異なる
何かを比較する際には常に**前提を揃えることが重要**です。前提が異なれば正確な比較はできず、ふんわりとした結果しか得られません。

エンジニア同士を比較することはこれに等しいと思っています。

冒頭で述べた通り年齢が同じでもベースになる経験は人それぞれ違いますし、目標とする先も異なります。

比較対象の前提が違う以上正確な比較はできないため、どうしても目先の技術力で比べてしまいます。その結果、漠然とした焦りと劣等感のみが生まれネガティブな感情が芽生えます。

:::note info
**そもそも前提が違うので比較なんて不可能**
:::

## 目指しているゴールが違う
100人いれば100通りのキャリアや考え方があると思います。キャリアは自分の強みとの掛け算によって組み立てられるため、人それぞれ強みが異なれば成長の方向性も異なってきます。

つまり、**同じAという選択肢も人によって正解かどうかが異なる**ということです。

必ず正解になる選択肢はありません。その人にとって正解でも別の人に100%当てはまることは確証できません。

目指しているゴールが違う以上、他人と比較することはこの選択肢を誤る危険性を孕んでいると考えています。「誰かがこんなことをしていたから、自分も早くやらなくては」と焦ってしまった結果、自分の目指すゴールから遠ざかってしまうことが想像できます。

**私達は常に自分自身のゴールと比較して目の前の選択をする意識を持つべきです**

:::note info
**ゴールが違えば正しい選択肢が変わってくる**
:::

# まとめ
以上、エンジニアの成長について私の考えを紹介しました。この記事を通じて伝えたいことは以下のとおりです。
- 目先の技術力より成長角度を意識する
- 長期的な目標が大切
- 成長角度を高めることは目標への歩幅を大きくすること
- 他人との比較からプラスな要素は生まれない

私自身まだエンジニアとして未熟なためこれからも試行錯誤を繰り返しながら目標とするエンジニアに近づけるように精進していきたいと思います！