🔰 概要
プログラミング全般(ソフトウェア開発全般)の共通した勉強手順に関してです。
✅ プログラミング全般の勉強手順

STEP1: 勉強する内容に関しての目的の成果物を決める
例1)
- Reactを勉強してある程度できるようにしたい
- そのためには
- Reactで実際にアプリケーションを作ってデプロイする
例2)
- Dockerを勉強してある程度使えるようにしたい
- そのためには
- Dockerでローカルの環境構築を行う
- docker-composeでローカルの環境構築を行う
- docker-composeをデプロイ先で使う
例3)
- GraphQLを勉強してある程度の概要をつかみたい
以上の例のように、勉強したい項目に対しての実際に成果物(アウトプット)をまず決めましょう。
STEP2: 成果物に必要な知識を集めて手順通り作ってみる
成果物が決まったらその成果物を作るために必要な知識を集めます。
- Google検索
- ChatGPT
- Kindleの書籍
- Udemy
- Youtube
こういったリソースを利用して、成果物を作るために必要な知識を集めましょう。
この際に実際に何かしらのハンズオン形式のもので一旦軽く真似して作ったりするのも選択肢の1つです。
もしくは、必要な知識を調べながら実際に自分が出したい成果物を作っていってしまうこともおすすめです。
例)
- 目的: Dockerをできるようにしたい
- 成果物: Dockerで環境構築やdocker-composeを利用して環境構築を行う
- 手段1: 実際に調べながらDockerで環境構築を行なってしまう
- 手段2: Dockerに関する基本的な概要をKindleで読んで真似をする
STEP3: さらに使っていくことでより網羅性と理解度を深める
例)
- TypeScriptを勉強しても、TypeScriptの基本的な部分しか定着しない
- より網羅性を広げ深めるには?
- 1)実際にポートフォリオにTypeScriptを使って3ヶ月など書く
- 2)実務で1~2年TypeScriptを使う
例のTypeScriptのように、最低限の基本的な部分を自習したら、それ以降は実際に何かしらの目的のための手段として利用していくことでさらに網羅性と理解度が高まります。
例)
- Reactができる
- パターン1) 自習で少しReact触ってみたことがあるレベル
- パターン2) 実務でReactを2年使っている
- かなり高いレベルでReactの網羅性と理解度があるレベル
- その結果として
- Reactを軸に市場でバリューが出せるようになる
- 月単価~万円の案件を取れる
- エンジニア転職で武器になる
- 自分でアプリケーションを作る際に学習コスト0で高いレベルで作っていける
✅ プログラミング全般の勉強手順に関するコツ

「実際に使う」ことにメインフォーカスをあてる
- NG: 本で勉強して終わり
- OK: 何かを作る目的(仕事含む)で必要な状態で、本などを手段としてインプットしてから、実際に使っていく
勉強するために勉強をするのではなくて、実際に使う必要性がある状態で勉強を必要最低限することが重要になります。
プログラミング(ソフトウェア開発)は勉強で内容を広げたり深めようとすると無限にできてしまうので、勉強を無限にしていても、終わらない現状が起こります。
なので、アウトプットを出すための最低限の勉強を行なって、実際にアウトプットしながら網羅性と理解を深めていきましょう。
シンプルに表現するなら「何かを作っていれば勝手にそれら周辺の勉強がされます」
ゆっくりだけど、結果的に早かった、が理想
例)
- Reactを半年~1年実務で使っている
- 技術スタック的には、ReactとTypeScript周辺だけなので、進捗が遅いように思える
- 一方でインプットにメインを置く人はその期間で、いろいろな技術項目を知っている状態になっている
- どちらが、市場で評価される、または、アウトプットのために何かを行えるか?
- 単一領域だけに特化した技術スタック的には少ないパターンのほうが、市場でバリューが出る傾向にある
- 理由
- 一定の深さがなければ、技術領域が横展開されていても、使い物にならないため
- Reactだけのパターンでは、React周辺だけだが、それを武器に何かができる
- 個人開発でReactをスムーズに使える
- 実務でフロントエンド開発が他のエンジニアと比較しても問題なくこなせる
- また一定の深さの1領域があることで、横展開がしやすくなる
実際に1つの事柄をしっかりと時間をかけてアウトプットを多く行うほうが、結果的に早くなる確率が非常に高いです。
浅い(知っている程度)領域が複数あるよりも、深い領域が1個または数個あるほうが市場でも評価されますし、具体的なバリューとなりやすいです。
実際に試行錯誤しながら手を動かす
- Aという機能を実装したい
- Bという技術を使えるようにしたい、概要を理解したい
- Cの言語が書けるようになりたい
繰り返しになりますが、プログラミングの勉強では「試行錯誤しながら調べて実際に手を動かしてアウトプットを出していくこと」が重要になります。
最初は調べてばかりで進まないことが多くても、それを反復しているうちにそこに対してすぐに手が動くようになりますし、学習の転移が起こって未知の事柄も調べて素早く理解していく力が上がっていきます。
✅ 具体的なアクション
- 普段のソフトウェア開発に関する勉強をこのリソースに書いてある内容に意識的に当てはめて行う
- 例)
- TypeScriptを勉強したい
- 最低限のインプットをして、何かしらのアウトプットベースで中期タームで実際にTypeScriptを実際に使って書いて網羅性と理解度を強くする
- 実際に中期タームでTypeScriptを使っていく