知らないと後悔する最強のエンジニア勉強法

# はじめに

**この方法を教えると誰もが早くに出会いたかったと口を揃えて言いました**

こんにちは。Watanabe Jin(@Sicut_study)です。
今回はエンジニアがすべき究極の勉強法について完全解説していきます。

世の中には多くの勉強法が存在したり、インプット中心、アウトプット中心など色々な考え方があります。
ここでは実際に私が運営している[プログラミングコーチングJISOU](https://projisou.jp)で実際に用いている<font color="red">**科学的根拠のある最高の勉強方法**</font>について徹底的にご紹介します。

また勉強法についての一般的な理論を紹介している記事や本は多数存在しますが、エンジニアに特化して紹介しているものはおそらく日本には存在しません。
この記事をしっかりと理解して、実践していくことで今までの勉強の何倍ものスピードで成果が得られるようになりますし、この考え方はすべての**学ぶ**という行動で利用できるもので人生をより豊かにしてくれます。

この記事を読んで多くのエンジニア人生が変わることを願っております。

※ この記事は書籍「最高の勉強方法」の内容に、エンジニアの私がやってきた考え方を加えたものになります。
勉強法についてさらに詳しく知りたい方は書籍も最高ですので読んでください。

科学的根拠に基づく最高の勉強法 
https://amzn.asia/d/9YfCXrn

# 多くの人が間違った勉強法をする理由

日本は教育がものすごく遅れているのをご存知でしょうか？
GHQが来ていらい教育方法というのは変わっておらず、いまだに学校では机と椅子が用意されて、教科書を読んで定期テストで実力を図るという教育を採用しています。

では海外をみるとどうでしょうか？
ハーバード大学では机のない授業が増えており、グループワークなどのアクティブラーニングがしやすいように椅子だけになっています。
つまりインプット中心の学習からアウトプット中心の学習になっているのです。

人は体験や経験をすることで新しい気づきを得たり、知識を知恵に変えることができるようになります。

私はこれまでに多くのエンジニアを見てきましたし、私自身も新卒でエンジニアになりました。
同じ状況で同じタイミングで学習を始めた2人をみたところ、1年後にはものすごい技術力の差になっているというのをよくみかけます。

私もエンジニア1年目はAIの数学部分を研究する部署にいたためほとんどプログラミングを書くことはありませんでした。そこから2年目でWebエンジニアになり、プログラミングというものに触れました。
同じタイミングで入った同期とは1年間の差があり、DBがわからない私に対して他の同期はRailsでアプリを作って案件に貢献していました。

**私はこの1年間の遅れを取り戻さないといけない、むしろ超えていきたいと考えてアウトプットを中心とした学習を行いました。**

結果、1年と少しの勉強で同期とは圧倒的な差をつけて転職をいち早くすることに繋がりました。

https://qiita.com/Sicut_study/items/fc521bcb7a4634a019d3

1年の差を埋めるだけではなく、さらに引き離すことができたのです。
もちろん他の同期はプライベートで学習をしています。

<font color="red">**勉強方法1つだけで1年後の成長は圧倒的に変わることが証明された瞬間でした**</font>

そこから私が勝手にやっていアウトプット中心の学習方法を言語化してJISOUで誰にでも再現性を持って成長させることができるかを検証しました。

結果的には、プログラミング未経験で3ヶ月でReact+TypeScript+CI/CDのアプリを作れたり、高校生が2ヶ月でNext.js+TypeScript+CI/CDのアプリを作れるようになりました。

https://qiita.com/AK_React/items/5e0353be8acf3200dc7b

https://qiita.com/shunii/items/ef814a4239cb4638d463

そこから多くの人が再現性をもってどんどん成長していくことから、 **この勉強方法が最強なのでは？** と考えるようになりました。
あとで話しますが<font color="red">**この方法は科学的根拠のある最強の勉強方法だったのです**</font>

それに気づいたのはこの書籍を読んだことがきっかけでした

科学的根拠に基づく最高の勉強法 
https://amzn.asia/d/9YfCXrn

話は戻りますが、なぜ同じタイミングで勉強を始めたのに大きな差が生まれるのでしょうか？
**最も大きな理由はエンジニアの勉強方法をしらないこと**という結論にたどり着きました。

**勉強方法に関する記事を投稿する人はものすごく少ないです**
自分のやっている勉強方法について記事を書こうとすると言語化をする必要があります。
人は自分のことしか考えません。数時間かけて誰かのために記事を書こうとする人はものすごく少ないのです。

また多くの人が「自分の勉強方法は一番自分にあっている」と勘違いしています。
結論から言うと、そんなことはありません。他の方法を試したことがない、そもそもやり方を知らないのが原因なのです。

JISOUでアウトプット中心の勉強方法を徹底的に教えると「インプットが苦痛になった」「他の分野に応用したらうまくいった」「勉強方法を知って人生が変わった」というような意見をいただくことが多いです。

ここでは以下の章立てで最強の勉強方法について解説しています。

1. よくない勉強をしているかチェックする
2. やっていはいけない勉強方法
3. 最強の勉強方法
4. 勉強のモチベーションについて

この記事をしっかり理解しながら実践していくことで、圧倒的な成果が出せるようになるはずです。

# 1. よくない勉強をしているかチェックする

私がJISOUでやっているカウンセリングでやっている**簡単に自分の勉強方法が良いか悪いかを判断できる方法**があるので紹介します。

:::note info
1ヶ月前の自分を思い出してください。
いまの自分と1ヶ月前の自分はどの程度成長しているかを言語化してください。
:::

この質問でこの部分で成長しましたとスラスラ言えるのであればその勉強方法は効率が良い可能性が高いです。
よくない勉強方法をしている人はインプットの割合が多く、1ヶ月間何を勉強仕方さえも思い出せない人も多いです。

またこの質問を答えるにはアウトプットが必須になります。
目に見える形で成果を出せていないと言語化することが難しいからです。

多くの人は振り返りというのをしません。振り返りをしないと自分の1ヶ月の行動が目標を達成する上で効果を出しているのかを知ることができません。
毎月振り返るという週間をつけてうまくいかないなら仮説検証を繰り返すことで成長が加速的になります。

# 2. よくない勉強方法

ここからは科学的によくない、または効果的に使うことが難しい勉強方法について紹介していきます。
もしこの中の勉強方法を利用してプログラミングを学習しているのであればやめたほうがいいです。

## 2-1. 繰り返しやる

SNSをみると時々「Progate4週目やります」というような発言を見ることがあります。
同じような感じで参考書を〜週目やりますなどもあります。

この繰り返し同じものを学習するのはかなり効果が低い学習方法です。

コロラド大学の大学生たちを対象とした研究では繰り返しやることに学習効果がないということを裏付けるような結果がでた実験があります。

https://www.sciencedirect.com/science/article/abs/pii/S0361476X08000477

注意としては「短期的には繰り返しやることの効果はあります」
しかし長期的に見ると繰り返しやってもやらなくても変わらないため、**1週だけ学習をしてアウトプットするほうが長期的に考えた場合効果があるのです。**

なぜ2週目以降があまり効果がないのかというと **「流暢性の錯覚」** が起きるのが原因です。
流暢性の錯覚とは簡単に言うと、「わかった気になってしまう」という現象です。
実際にはしっかり記憶して、深く理解していないのに、自分の知識や習熟度を過大評価してしまうのが効果が低い原因となります。

このあとのよくない勉強方法すべてに通ずるのですが、
<font color="red">**効果的な勉強にとって大切なのは、ある程度積極的に自分の脳に負荷をかけることです**</font>

多くの人は辛いことをやりたいとは思いません。だから比較的簡単なインプットばかりをしていしまうのです。

話は変わりますが、**TikTokなどのショート動画がなぜここまで流行っているのでしょうか？**
短時間で多くの情報をインプットできるのが理由なのです。つまり情報を得ることは脳に負荷をかけるどころか、情報を得ることでドーパミンを出して快感を得ることができるわけです。

これはエンジニアにも多く当てはまることで、「Udemy中毒」に陥っている人にいままで多くあってきました。「Udemyの講座をたくさんやってます」と自信満々にいうのですが、ほとんど技術力がありません。これも典型的なパターンだと思います。

話を戻しますが、「繰り返しやる」というのは勉強しても成果がでずらいアンチパターンだと思うのでやっている人がいたら辞めるようにしましょう。

## 2-2. ノートに書き写す

プログラミングをノートに書く？そんなばかな？と思った方。
私もそう思いました。しかし世の中にはノートに書いてプログラミングを学習する人が存在します。

ノートに書くことはノートを作ることの達成感があるため「勉強した気になる」勉強方法です。

これもアメリカの高校生180名に実験をして効果が低かったという論文が存在します。

https://pcl.sitehost.iu.edu/rgoldsto/courses/dunloskyimprovinglearning.pdf

この勉強方法の難しいところは、**ノートに要約するスキルが効果に大きな影響をもたらすことです**
要約をうまくできるのであれば一定効果はありそうですが、自分が要約がうまいかは判断することは難しいのでやらないようにしたほうがいいと考えます。

## 2-3. 好みの学習するタイルに合わせる

「勉強方法は人それぞれだから自分の好みに合わせるのが一番効果的」

こう考える人の世の中には一定数います。
しかしいまのところこの意見に関しては科学的根拠がないとされています。

<font color="red">**大切なのは自己流でやらずうまく行っている人の勉強方法を素直に試すことです**</font>

人は素直に実行することができない生き物です。
やり方を学んでも多くの人が試すことをしません(この記事を読んでいる99%はやらないのが現実です)
仮にやったとしても、途中で自己流が入り気づいたら違う勉強方法をしていることも多いです。

なぜそんなにも自分のやり方に自信を持つのでしょうか？
もしあなたが時間を無駄にせず早く成長したいと考えるなら、うまく行っている人のやり方を徹底的にパクる(TTP)べきです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/69b01664-82a1-4f44-7393-7d21d6fa1100.png)

素直にやらない人のやっていることは、「数学の公式を自分なりに使ってしまっている状態」です。
円の面積を求めるのに3.14でなく3.15でやっては絶対に答えは求まりません

まずは習ったことを素直にやって、うまくいかなかったらそこで教わった人に質問したり、このようにしたらうまくいきそうですがどう思いますか？と質問をするようにしましょう

**ネットにエンジニアの勉強方法が少ないことも大きな問題です**

もしあなたが過去にやってうまくいった失敗した勉強方法があればそれは多くの人の参考になりますのでよければQiitaに投稿してみてください。

# 3. 最強の勉強方法

ここからは実際にJISOUで使っている勉強方法を紹介していきます。
この方法は「学ぶ」ということであればすべてに応用が可能なので、できるようになることで人生がより豊かになるスキルだと考えています。

## 3-1. アクティブリコール

**アクティブリコールとは、勉強したことや覚えたいことを、能動的に思い出すこと、記憶から引きだすことです**
アクティブリコールの効果を示す研究報告はたくさん存在しています。

https://journals.sagepub.com/doi/10.1111/j.1467-9280.2006.01693.x

https://pubmed.ncbi.nlm.nih.gov/21252317/

私はQiitaで幾度となくUdemyで学習したあとは、動画を見終えたあとにしっかり自分でアプリをつくらないと時間を無駄にすると言ってきました。

Udemyは数十時間かけて講座を終わらせるものです。実際にアプリを作るので動画が終わった頃には達成感もあるし、成果物もあるので多くの人は次の講座を購入してしまいます。

しかし、ここでアクティブリコールをすべきなのです。実際に動画の内容を思い出しながら1つ簡単なアプリを作るようにすると学習効果は最大限活かすことができるようになります。

Udemyの使い方を間違えている人(勉強方法を間違えている人)は、1ヶ月前にやった講座でどんなアプリを作ったかさえ思い出せないので、それはスキルはもっと身につかないなと思います。

## 3-2. 分散学習

試験の直前に焦って勉強をしたあと、数日後に驚くほどに内容を覚えていない。そんな経験はあると思います。
人間は覚えたものをすぐに忘れるように脳ができています。日々過ごしている中で得る情報のほとんどは不要なものなのでこのような仕組みになっています。

**分散学習とはある程度まとまった学習を一夜漬けで行わず、時間をあけて学習することを言います**
同じ時間をかけるのであれば、分散学習をするほうが効果的なのです。

分散学習に関する論文は100年以上前からものすごい量のものが存在します。
みなさんもご存知のエビングハウスの忘却線もその1つです。

JISOUでも実際に分散学習を取り入れており、CI/CDの指導に特に効果的だなと思っています。CI/CDはプロジェクトの最初に1回しかやらないため、なるべく早いタイミングで経験させて以降何度もパイプラインの設定をさせています。多くのメンバーが抵抗なく用意できるようになりました。

## 3-3. 連続的再学習

**連続的再学習はアクティブリコールと分散学習を組み合わせた学習法です**

この効果を述べた論文は以下です。

https://www.researchgate.net/publication/258845409_The_Power_of_Successive_Relearning_Improving_Performance_on_Course_Exams_and_Long-Term_Retention

アクティブリコールを間隔をあけてひたすら繰り返すという勉強方法ですが効果は絶大です。

## 3-4. 最強の学習法「ファインマンテクニック」

ファインマンテクニックではアクティブリコール、分散学習、フィードバックを組み合わせた最強の学習方法で2011年ごろに生み出されました。

https://www.amazon.co.jp/ULTRA-LEARNING-%E8%B6%85%E3%83%BB%E8%87%AA%E7%BF%92%E6%B3%95-%E3%81%A9%E3%82%93%E3%81%AA%E3%82%B9%E3%82%AD%E3%83%AB%E3%81%A7%E3%82%82%E6%9C%80%E9%80%9F%E3%81%A7%E7%BF%92%E5%BE%97%E3%81%A7%E3%81%8D%E3%82%8B9%E3%81%A4%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-%E3%82%B9%E3%82%B3%E3%83%83%E3%83%88%E3%83%BBH%E3%83%BB%E3%83%A4%E3%83%B3%E3%82%B0/dp/4478105723

紹介されているやり方は
1. 紙の一番上に理解したい概念や問題を書く
2. その下の余白を使ってその概念や問題を、他の人に教えるかのように説明してみる
3. 自分が明確な答えをかけるほど理解していなかった場合には、元の教示に戻って答えを見つける

私はこの方法をJISOUで利用しています。

0. 最低限のインプットをする
1. 実装をTODO単位で細かくして問題として出題する
2. 実際にコーディングをして問題を解く
3. 自分がわかっていないところを振り返ったり、ネット検索する

インプットを最小にしていきなり問題をときます。そして細かい単位で理解度を実装しながらチェックすることで効率的に学習することができるのです。

そしてここに使うのが「精緻質問」と「自己説明」というテクニックです。
問題を解くたびに自分に対して「なぜ」「どうして」などを感じながら学習を進めていくことになります。このように感じながら学習を進めていくことで知識に深みが生まれます。
そしてわからなかったことやつまづいたことを「自己説明」することでより理解することにつなげます。

JISOUでは「自己説明」に加えて、エラーが発生したらQiitaに投稿して「他己紹介」もしています。
誰もがその記事をみて理解できるような記事をかけるくらいまで理解が進むので更に実力になります。

毎週何十本の記事が少ないメンバーで投稿されています。

https://qiita.com/organizations/jisou

# 4. 勉強のモチベーション

ここまでで「やり方」について紹介してきました。
しかし「やり方」を知っていても**やらなかったら意味がないのです**

ここまで読んでいる人も「勉強した気になって」実際に試す人はほとんどいないのが現実です。
最後に勉強のモチベーションを保つ方法について紹介します。

## 4-1. モチベーションは高める必要はない

モチベーションを高めたいと思っている方は多いかと思いますが、<font color="red">**モチベーションを高める必要はないと考えます**</font>

むしろモチベーションを高めることは悪だとすら思っています。
<font color="red">**モチベーションは高めるものではなく一定に保つものなのです**</font>

モチベーションをあげないといけないということは、モチベーションの低い高いに影響されてしまっているわけです。本当に成長する人はモチベーションには左右されません。

どんなに疲れても感情に左右されなければ毎日少しでも勉強することができます。モチベーションに左右されないということは「やることがあたりまえ」となっているのです。
**感情のコントロール**の技術は練習によって身につきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/b2e85695-dddd-6631-0185-bc8f2241cb17.png)


例えば筋トレをすると最後の1回はもうあがらないと思います。しかしそこで自分に負けず1回をやることができれば成長することが可能です。つまり自分の「もう上がらない」という感情に勝利しているわけです。
**自分に勝つ経験を積むことで感情のコントロールが可能になります**

勉強も同じで「やりたくないな」と思ったときにこそ「やる」という選択肢を取ることができれば、それは心の筋トレにつながってくるのでやってみてください

## 4-2. 自己関連付け

人間は、自分に関連した情報のほうが覚えやすいという特徴があります。
山手線の駅をすべて覚えていたり、世界の国を覚えていたりする人いますよね

まったく興味がない私からすると覚えるなんて到底できないことです。

いまエンジニアとして勉強していることがなぜ大切なのかをしっかり関連付けすることが大切なのです。
そこに必要なのは「なぜ勉強しているのか？」「目標は何か？」ということを定期的に思い出すことです。

このような名言があります。

**「何かを覚えるためには、それに意味を与えなければなりません。なぜこれが自分に関連があるのかを言ってください。なぜ、自分に関連があるのかを言えれば、おそらくそれは覚えるでしょう」**

## 4-3. アカデミック・セルフコンセプト

小学校のときに周りと比べて走りが早ければ、多くの割合でスポーツを続けます。
「リーダーシップ」があると言われたら、率先してリーダーになります。

**アカデミック・セリフコンセプトは自分自信に対する理解度のことを表します**
自分は〜という人間だという考え方が人生に大きな影響を与えてることになります。
これは様々な要因によって形成されます。

勉強している人に対して努力を褒めることや進捗や達成度に対するフィードバックを送るなどの介入を行うことで勉強のモチベーションを向上させることができるわけです。

「自分は文系」というような悪い考えに囚われている人がJISOUにも来ますが、正直文系だろうが理系だろうが関係ないということを気づかせるのもコーチングのポイントになっています。

## 4-4. 自己効力感

**自己効力感とは、ある目的を達成するために必要な行動を、自分がどの程度うまくおこなことができるかのという個人の確信度の程度で、「自分にはこれができる」という間隔のことを指します**

自己効力感が高い人は、学習のモチベーションを保てますし、目標を設定して計画を立ててコントロールすることができるようになります。

<font color="red">**自己効力感は成功体験によって向上するので小さな目標を立てて成功体験を積み重ねていくことが重要になります**</font>

JISOUのカリキュラムは実装が細かい単位で問題となっています。
これにも理由があり、細かい単位で成功体験を積み重ねるということにつなげています。

勉強に挫折する(燃え尽きる人)は「最終的な目標」ばかりをみてしまい、そこまでの道のりの長さに絶望して行動を止めてしまいます。
このような経験がある人は「今日1日を本気で生きる」ということをやるのがおすすめです。
長期的に見るのではなく短期的な目標を立ててこなしていくほうが自己効力感は上がってくるのです。

おすすめは**セルフモニタリング**です。
**その日にやったことを日報として書くことは簡単にできる取り組みになります**

「今日の積み上げ」というタグがSNSにはありますが、あれは案外理にはかなっているのです。

## 4-5. 自己決定理論

**自己決定理論は自分で決めたことならモチベーションにつながるという考え方です**

「内発的動機づけ」「外発的動機づけ」という2つの考え方がありますが、「自分がやりたいからやる」「好きだからやる」という内発的動機づけはモチベーションを保つのは容易です。

「ドラクエ」「モンスターハンター」など熱中して何時間もゲームを遊んだことがあるはずです。
世界にはゲームに熱中する人が年々増加しています。
ゲームは強制的にやらされているのではなく、自発的なものです。ゲームをプレイするとレベルがアップしたり、アイテムが手に入ったりと達成感や成長を感じられます。

学習のモチベーションを高めるには、外からの報酬ではなく、知識を深めたり、新しいスキルをみにつけることでの成長などを目標に設定することが大切です。

# おわりに

人は何に後悔するのかというアメリカの研究があります。

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2394712/

そこで一番多くの人が後悔していることは**教育・勉強**に関することでした。
「もっと勉強しておけばよかった」「違う分野を勉強したら良かった」など勉強に関することで多くの人は後悔をしています。

**なぜ人は勉強に関して後悔することが多いのでしょうか？**

<font color="red">**人は機会がなくてできなかったことよりも、機会が与えられており「自分でやろうと思えばできたのに、やらなかったこと」に後悔するのです。**</font>

ここで紹介した内容は科学的にも正しいとされている勉強方法です。どうしても効率悪く勉強したいという人でなければ、絶対にやるべきです。

私が代表をしているプログラミングコーチングJISOUでは、科学的根拠をもとにアウトプットでぱっぱと成長するような環境を用意していますので、この記事を読んで気になった方はHPを除いてみてください。

https://projisou.jp

ここまで読んでいただけた方はいいねとストックよろしくお願いします。
@Sicut_study をフォローいただけるととてもうれしく思います。

また明日の記事でお会いしましょう！

Xでもエンジニアに関する情報発信しています👇

https://x.com/Sicut_study

# JISOUのメンバー募集中！
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか？
興味のある方は、ぜひホームページからお気軽にカウンセリングをお申し込みください！
▼▼▼

https://projisou.jp

# 参考文献

科学的根拠に基づく最高の勉強法 
https://amzn.asia/d/9YfCXrn