✅ 概要
アウトプットベースでのインプットを行って勉強していくことが、ソフトウェアエンジニアの勉強方法として必須となります。
✅ アウトプットベースのインプットとは?
Google検索のAIによる抜粋ではこう書かれています。
Output-driven means focusing on the results or outputs of a task, project, or process, rather than the time spent on it.
すごく大雑把に説明すると、何かしらの成果物を出すことにメインフォーカスを置くことにです。
そしてそのためにはインプットが必要となるので、目的の成果物を作ることをするために、勉強すると言えます。
勉強のために勉強するのではなくて、成果物を出すために必要なインプットを集める考え方になります。
例)
- 会員登録機能を作るために、OAuthを調べて実装する
- 非同期処理のいいねを作るために、Ajaxを調べる(Or フロントエンドとAPIの分離について調べて実装する)
- デプロイをするために、デプロイする手段(EC2, nginx, DNS)を調べて実際に実装する
✅ アウトプットベースの勉強のやり方

STEP1: 目的のターゲット(ゴール, エンドポイント)の設定をする
大中小と分けられます。
例)
- 目的のターゲット: 転職
- そのために必要こと: ポートフォリオ作成, 仕事への応募などの勉強
- 目的のターゲット: ポートフォリオ作成
- そのために必要なこと: ポートフォリオ作成方法を調べる, モダンな技術スタックを調べる, など
- 目的のターゲット: CRUDの実装
- そのために必要なこと: データベース, API, フロントエンドからのリクエストとレスポンスなど
「まず目的の成果物を決める」 = アウトプットを決めるということがSTEP1です。
STEP2: そのために必要な情報を集める
- 技術的な事柄であれば、実際にGoogle検索したり、ChatGPTに聞いたり、ハンズオンのものを真似して実装してインプットを行う
- 転職の仕事応募などであれば、成果物に必要な情報収集をYoutubeやGoogle検索やChatGPTを利用して行う
さらに具体的な例もあげておきます。
- Docker, docker-composeで環境構築ができるようにしたい(目的のアウトプット)
- Kindle Unlimited(や、udemyやGoogle検索で出てくるハンズオン系記事など)でdocker, docker-composeの書籍を見つけて真似していく(アウトプットのためのインプット)
- 実際にDocker, docker-composeで環境構築を行う(アウトプット)
- それでもできない場合には、インプットを別の方法からアプローチする、またはChatGPTや検索で不足部分を調べながら目的の成果物を出す
STEP3: インプット情報をベースにアウトプットを出す
少し上に書いてある情報と重複はしますが、アウトプットのためのインプットが行えたら、実際にアウトプットを行うために試行錯誤をしてまだ足りない部分は適宜インプット(ChatGPTから補助など)を行なってアウトプットまで持っていきます。
ほとんどのケースにおいては、成果物を決めてそこに情報を集めて成果物を出そうとしても、インプットが足りていないことが多いです。
厳密には、インプット(本や動画)では細部までは埋まらないので、多くのケースでは成果物を出すために最低限のインプットが整ったらそこからは検索やChatGPTを利用してさらに詳細な部分のインプットを埋めながらアウトプットを出すフローになります。
例)
- AWSの本を1冊読んでも、AWSで構築などはできない
- 実際に読みつつ、調べながら、実装をしてなんとか目的のアウトプットを出す
- Dockerのハンズオン動画を1つUdemyでやっても、Dockerを自分なりにカスタマイズして環境構築などはできない
- 実際に、Dockerの最低限の情報が集まったら、実際に自分で環境構築をしながら適宜不明点を調べながらやる
主に、この「調べながやる」というのが反復や技術力の向上によって「ほとんど調べずにできるようになる」「調べるケースにおいても、理解するスピードが圧倒的に早くなる」といった現状が起こります。
いわゆるその状態がそこに領域において市場価値が高いソフトウェアエンジニアです。
- 最初のケース: 調べながらスピードが遅くて、かつ、不正確
- 技術力上がってきたケース: 調べるのが早く理解度も高く、かつ、正確
「調べながらやって遅い」というのはどのジャンルでも最初は全ての人がそうなので、最初は調べながら遅くてもアウトプットを出し切るというのが重要なマインドセットになります。
それを数ヶ月単位で反復していると、スピードも正確性も上がり、別の領域への展開(学習の転移)も起こり始めます。
✅ アウトプットベースのインプットはいろんなケースに応用可能

基本的にインプットベースでインプット(勉強のための勉強)をしていると、キリがありませんし、どこにもたどり着けないケースが非常に多いです。
例): インプットのインプットをしているケース
- ビジネス書をいっぱい読んで意識高い語彙を知っているだけの意識がたかいIT系のサラリーマン(年収は普通)
- ビジネス系のYoutubeや自己啓発などをいっぱい見ているが何も進んでいない意識だけ高い人(年収は普通)
- 英語の勉強をしているが、一向に英語ができるようにならない人
- 技術書やUdemyの講座をいっぱい買って所有しているが、ただ技術的な事柄を知っているだけのアウトプットが伴わない低収入なソフトウェアエンジニア
これをアウトプットベースでのインプットに変更すると、こうなります。
- 営業で年収1000万円稼ぐために(アウトプット)、実際に必要な行動を書き出して毎日実行、ビジネス書で参考になる箇所を1日15分ノートに書き出して(インプット)実践
- 1ヶ月後に個人のビジネスを行うために(アウトプット)、Youtubeで1日1時間の情報を集めて取り組むビジネスを決める(インプット)
- TOEICで900点を超えるために(アウトプット)、毎朝30分オンライン英会話をして移動中にはリスニングを行う(インプット)
- プログラミングで年収で1000万円超えるために(アウトプット)、必要な情報を集めて、それを実務ベースで埋める、そのために調べながら実装(インプット)を行う
言い換えると、「ゴールを決めて逆算して必要な事柄をタスク化して、そのタスクをこなすためにインプットを行う」などとも言えます。
勉強のために勉強をするのではなくて、「Aをするために、必要な知識を必要最低限集めて実際にAをしようとする」といったニュアンスです。
「アウトプットをしようとすると、必要なインプットは勝手に集まってくる」というマインドセットを知っておくと役に立つことが多いです。
✅ 具体的なアクション
- アウトプット(成果物)を決める、決めている状態になっている
- かつ、その成果物の期日を決める、いつまでにやるのか?
- それをタスク化して、そのタスクをやるためにインプットを行うマインドセットを意識的に持つ
- そしてその日々の作業に割り振りながらインプットを適宜必要最低限行う