エンジニアの習熟度ロードマップを作成して分析した（主観的なロードマップです）

※自分の定義や考え方で作成しています。アドバイスなどあればコメント頂きたいです。
# はじめに
初学者から中級エンジニアにステップアップができず、苦悩を抱いている現在。自分に何が足りないのか分析しました。

# 私の苦悩

## 前提

未経験からエンジニアを始めて3年目に突入しました。入社直後にプログラムを学びための研修を受けたものの、その後は開発よりは運用保守エンジニアとして勤務してきており、小規模な開発を少しやったことがある程度です。
ただ、私自身は開発エンジニアをずっと志望しており、この3年間とにかく自己研鑽してきました。現在の環境で開発を担当させてもらえる！と思ったら、求められているのは自律的に開発できる力。（ちょっと期待値が高い）圧倒的に足りないです。。。なので、現時点を可視化するべくロードマップを作成しました。

ちなみに、開発を担当して3か月くらいUdemyをやりこみましたが、何か足りず。とにかく走りまくるじゃ足りないことを自覚しました。

# ロードマップ作成

結論から言うと、リファレンスを読む能力が圧倒的に足りないことだと分析しました。
以下、ロードマップです。
```mermaid
graph TD
classDef StrongPurple fill:#9F42FC,stroke:#9F42FC
classDef Purple fill:,stroke:#A533FF
classDef red fill:#F751F0,stroke:#F751F0

	H1-1(初学者エンジニア):::StrongPurple
	H1-2(中級エンジニア):::StrongPurple
	H1-3(上級エンジニア):::StrongPurple

	H2-1-1[コードを描いたことがある]:::Purple
	H2-1-2[アプリやツールを作ったことがある]:::Purple
	H2-1-3[ある程度アルゴリズムを組み立てられる]:::Purple
	H2-1-4[3つ以上の言語を描いたことがある]:::Purple
	H2-1-5[既存のソースコードを読むことができる]:::Purple
	H2-1-6[簡単な設計書を作成できる]:::Purple
	H2-1-7[アプリを公開できる]:::Purple
	H2-1-8[リファレンスを読解できる]:::red
	H2-1-9[適切な説明することができる<br/>リファレンスを参照する 若手orお客さんに対して]:::Purple
	H2-2-1[OSSへの貢献]:::Purple
	H2-2-2[高度なモジュール ライブラリ開発]:::Purple
	H2-2-3[言語開発]:::Purple
	

			H3-1-1[progate ドットインストール]
			H3-1-2[Udemy 初級]
			H3-1-3[Qiita読む]
			H3-1-4[スクール 研修]
			H3-1-5[図解して構造化してみる 組み立てる]
			H3-1-6[Udemy 中級]
			H3-1-7[PaizaでB問題]
			H3-1-8[会社で既存の設計書を読む]
			H3-1-9[公式リファレンスを読む]:::red
			H3-1-10[入門書]
			H3-1-11[書籍]
			H3-1-12[Qiitaでドキュメント投稿]
			H3-1-13[AWS GCP基礎資格取得]
			H3-1-14[AWS GCPの記事を読む]
	

	H1-1 -->H2-1-1
	H2-1-1 -->H2-1-2
	H2-1-2 -->H2-1-3
	H2-1-3 -->H2-1-4
	H2-1-4 -->H2-1-5
	H2-1-5 -->H2-1-6
	H2-1-6 -->H2-1-7
	H2-1-7 -->H2-1-8
	H2-1-8 -->H2-1-9
	H2-1-9 -->H1-2
	H1-2 -->H2-2-1
	H2-2-1 -->H2-2-2
	H2-2-2 -->H2-2-3
	H2-2-3 -->H1-3

	H2-1-1-->H3-1-1
	H2-1-1-->H3-1-2
	H2-1-1-->H3-1-10
	
	H2-1-2-->H3-1-4
	H2-1-3-->H3-1-5
	H2-1-3-->H3-1-7
	H2-1-3-->H3-1-11
	H2-1-5-->H3-1-6
	H2-1-5-->H3-1-3
	H2-1-6-->H3-1-8
	H2-1-6-->H3-1-12	
	H2-1-7-->H3-1-13
	H2-1-7-->H3-1-14
	H2-1-8-->H3-1-9
	
	H4-1-4[エンジニアとして自立 一人立ち]
	H3-1-9-->H4-1-4

	H2-1-1-->H4-1-1	
	H2-1-2-->H4-1-2
	H2-1-4-->H4-1-3
	
	H4-1-1[ソフトウェアを知る]
	H4-1-2[ソフトウェアの作り方を知る]
	H4-1-3[いろんな言語で応用できる]

```

# 最後に
これ以上複雑な図をmermaidJSで作成すると、整えられない。と感じました。
整え方をご存じの方いらっしゃいましたら教えて頂きたい！


mermaidJSのソース

```
graph TD
classDef StrongPurple fill:#9F42FC,stroke:#9F42FC
classDef Purple fill:,stroke:#A533FF
classDef red fill:#F751F0,stroke:#F751F0
classDef ss fill:#F7CECC,stroke:#CB7F7C

	H1-1(初学者エンジニア):::StrongPurple
	H1-2(中級エンジニア):::StrongPurple
	H1-3(上級エンジニア):::StrongPurple

	H2-1-1[コードを描いたことがある]:::Purple
	H2-1-2[アプリやツールを作ったことがある]:::Purple
	H2-1-3[ある程度アルゴリズムを組み立てられる]:::Purple
	H2-1-4[3つ以上の言語を描いたことがある]:::Purple
	H2-1-5[既存のソースコードを読むことができる]:::Purple
	H2-1-6[簡単な設計書を作成できる]:::Purple
	H2-1-7[アプリを公開できる]:::Purple
	H2-1-8[リファレンスを読解できる]:::red
	H2-1-9[適切な説明することができる<br/>リファレンスを参照する 若手orお客さんに対して]:::Purple
	H2-2-1[OSSへの貢献]:::Purple
	H2-2-2[高度なモジュール ライブラリ開発]:::Purple
	H2-2-3[言語開発]:::Purple
	

			H3-1-1[progate ドットインストール]
			H3-1-2[Udemy 初級]
			H3-1-3[Qiita読む]
			H3-1-4[スクール 研修]
			H3-1-5[図解して構造化してみる 組み立てる]
			H3-1-6[Udemy 中級]
			H3-1-7[PaizaでB問題]
			H3-1-8[会社で既存の設計書を読む]
			H3-1-9[公式リファレンスを読む]:::red
			H3-1-10[入門書]
			H3-1-11[書籍]
			H3-1-12[Qiitaでドキュメント投稿]
			H3-1-13[AWS GCP基礎資格取得]
			H3-1-14[AWS GCPの記事を読む]
	

	H1-1 -->H2-1-1
	H2-1-1 -->H2-1-2
	H2-1-2 -->H2-1-3
	H2-1-3 -->H2-1-4
	H2-1-4 -->H2-1-5
	H2-1-5 -->H2-1-6
	H2-1-6 -->H2-1-7
	H2-1-7 -->H2-1-8
	H2-1-8 -->H2-1-9
	H2-1-9 -->H1-2
	H1-2 -->H2-2-1
	H2-2-1 -->H2-2-2
	H2-2-2 -->H2-2-3
	H2-2-3 -->H1-3

	H2-1-1-->H3-1-1
	H2-1-1-->H3-1-2
	H2-1-1-->H3-1-10
	
	H2-1-2-->H3-1-4
	H2-1-3-->H3-1-5
	H2-1-3-->H3-1-7
	H2-1-3-->H3-1-11
	H2-1-5-->H3-1-6
	H2-1-5-->H3-1-3
	H2-1-6-->H3-1-8
	H2-1-6-->H3-1-12	
	H2-1-7-->H3-1-13
	H2-1-7-->H3-1-14
	H2-1-8-->H3-1-9
	
	H4-1-4[エンジニアとして自立 一人立ち]
	H3-1-9-->H4-1-4

	H2-1-1-->H4-1-1	
	H2-1-2-->H4-1-2
	H2-1-4-->H4-1-3
	
	H4-1-1[ソフトウェアを知る]
	H4-1-2[ソフトウェアの作り方を知る]
	H4-1-3[いろんな言語で応用できる]

```