BLOG

ファインマンテクニックとは|4ステップのやり方と実践例

「教科書を読んで分かった気になったのに、問題を解くと手が止まる」「暗記したはずの内容が、試験当日に出てこない」。資格試験や受験の勉強で、多くの人がぶつかる壁です。原因は記憶力ではなく、自分が本当に理解しているかを確かめる手順がないことにあります。

ファインマンテクニックは、学んだ内容を自分の言葉で誰かに説明してみて、説明が詰まった箇所を見つけ、そこを学び直す勉強法です。物理学者リチャード・ファインマンの学び方にちなんで名付けられました。特別な道具は要らず、紙とペンがあれば今日から試せます。

この記事では、テクニックの4つのステップと具体例に入る前に、土台となる学習の原則を整理します。原則を知っておくと、なぜこの方法が効くのかが分かり、資格試験の勉強でも仕事の学び直しでも、自分の状況に合わせて応用しやすくなります。

この記事を書いた人

wesionaryTEAM 編集チーム

株式会社wesionaryTEAMのプロジェクトマネージャーとエンジニアで構成する編集チームです。業務システム開発、AI導入支援、DX推進の案件で日々得ている知見をもとに、検討中の方が判断に使える情報を、事例と数字を添えてお届けします。

学習の原則

まず、学習の重要な原則から始めましょう—私たちの学習へのアプローチと経験に大きな違いをもたらすシンプルな考え方です:

1. 積極的な関与

誰も直接私たちの脳に知識の種を植え付けることはできません。積極的に関与しない限り、学習は起こりません。これは、メモを取る、実践的な経験を得る、積極的に耳を傾ける、深い質問をするなど、余分な努力を意味します。学習は単に吸収するだけでなく、行動することです。そして当然ながら、実践を通じて学ぶことは、単に聞くだけよりも楽しく感じられます。

2. モチベーション

モチベーション—特に内発的モチベーション—は学習に不可欠です。何かを学ぶための強い個人的な理由を持つことは必須であり、特に忍耐力と限界が試される瞬間において、学習を刺激的なものにします。
モチベーションは、道が険しくなっても学習の旅を続けさせる燃料のようなものだと考えてください。

3. 基礎の理解

多くの人が早く学びたいと考えますが、基礎をスキップしようとすることは、武器なしで戦場に向かうようなものです。基礎的な概念を理解する時間を取ることで、学習はより速く、より効果的になります。

4. 既存の知識

関連する概念についてある程度の馴染みがあることで、学習曲線は大幅に改善されます。それは家を建てるようなものです—屋根から始めることはできず、まず強固な基礎が必要です。すでに知っていることを振り返り、それを新しい知識の足がかりとして使用してください。

5. フィードバック

スキルや概念を習得したと思っても、改善のためにはフィードバックが必要です。それは小さな調整かもしれませんし、大きな方向転換かもしれませんが、適切なフィードバックなしでは学習は不完全なままです。フィードバックは、学んだことを洗練し、完璧にするのに役立ちます。

6. 反復と結びつき

私たちの脳は、新しい知識を既存の知識と結びつけることに長けています。新しい知識を既存の知識と結びつける能力を養うことで、より大きな全体像を把握することができ、それは非常に充実感をもたらします。これにより、長期的なメンタルモデルが形成されます。しかし、私たちの脳は使用しない知識を忘れることにも非常に効率的です。
だからこそ、反復が重要なのです。学んだことを定期的に練習して、それが定着するようにしましょう。
上記の原則は概念的学習とスキルベースの学習の両方に等しく適用されますが、今日は特にファインマン・テクニックを使用した概念的学習に焦点を当てていきます。

ファインマン・テクニック

もし新入生レベルまで簡略化できないのなら、あなたは本当には理解していないのです。
—リチャード・ファインマン

数多くの学習テクニックが利用可能ですが、ファインマン・テクニックは概念を学ぶための最も効果的な方法の一つです。

このシンプルながら強力な学習方法について、詳しく見ていきましょう。

1. トピックを選び、まず基礎から学ぶ

学びたいこと、よりよく理解したいことを選びましょう。物理学の概念でも、新しいプログラミング言語でも、進化論でも何でも構いません。重要なのは、一度に一つの概念に焦点を当てることです。

2. 誰かに教える

子供や、そのトピックについて予備知識のない人に教えるかのように説明してください。シンプルな言葉を使い、専門用語を避け、小さな理解しやすい部分に分解するよう心がけましょう。説明が簡単であればあるほど、あなたの理解は深まります。
教えることで、自分の考えを整理し、本当に理解していることと単に暗記していることを区別することができます。

3. ギャップを特定する

説明する中で、理解が不完全な部分や、単純化するのが難しい部分に気づくでしょう。これらのギャップは、より注力が必要な領域を示しています。これらのギャップや質問を書き留めてください—それらは、どこを掘り下げるべきかを示す宝の地図のようなものです。

4. 単純化して繰り返す

特定したギャップに戻って見直しましょう。それらの領域をより深く掘り下げ、学び、欠けている部分を埋めていきます。そして、もう一度教えてみますが、今度はさらに単純化します。目標は、他人だけでなく自分自身にとっても、説明が完全に明確になるまで洗練させることです。トピックを最もシンプルな言葉で自信を持って説明できるようになるまで、このプロセスを繰り返します。

例を見てみましょう

例えば、JavaScriptのクロージャについて学びたいとします。

1. 本、チュートリアル、オンラインリソースから基礎を読んで理解します。構文と基本的な使用例に慣れましょう。

以下が例です:
「クロージャとは、自身のスコープ、外部関数のスコープ、およびグローバルスコープにアクセスできる関数です。」

function outerFunction(outerVariable) { return function innerFunction(innerVariable) { console.log(`Outer Variable: ${outerVariable}`); console.log(`Inner Variable: ${innerVariable}`); }; } const newFunction = outerFunction("outside"); newFunction("inside"); 

2. 誰かに教える
プログラミングの背景知識のない人に教えるかのように説明します。子供や、コードを書いたことのない友人に教えているつもりで説明してください。「レキシカル環境」のような専門用語を避け、シンプルな言葉で説明します。
例:「箱を想像してください。外側の箱の中にメッセージがあり、その中にもう一つ箱を入れることができます。内側の箱は自分のメッセージと外側の箱のメッセージの両方を見ることができます。JavaScriptのクロージャはそのようなもので—関数の中にある関数が、外側の関数の変数にアクセスできるようにします。」

3. ギャップを特定する
教える過程で、説明が難しい部分や、なぜそれが機能するのかを完全には理解していない部分に遭遇するでしょう。
例えば:

  • なぜ内部関数はouterFunctionの実行が終わった後でもouterVariableを覚えているのでしょうか?

  • この動作は他のプログラミング言語とどのように異なるのでしょうか?

これらの質問を書き留め、トピックを再度探求して理解を深めましょう。

4. 単純化して繰り返す
ギャップを特定した後、研究して欠けている部分を埋めます。そして、説明をさらに単純化して、もう一度教えてみましょう。
修正後の説明は次のようになるかもしれません—冒険に出かけることを想像してください。出発前に、あなたの親(外部関数)が特別なバックパック(クロージャ)をあなたのために用意します。このバックパックの中に、重要なアイテム(外部関数からの変数)を入れます。そして、家を出た後(外部関数の実行が終わった後)でも、バックパックを開いて親が入れてくれたアイテムを使うことができます。
そして、ここが魔法のような部分です:どれだけ遠くに行っても、家を出てからどれだけ時間が経っても、バックパックの中のアイテムはいつでもあなたが使えるように存在します。バックパックはプライベートで—あなただけがアクセスでき、あなたに固有のものです。

JavaScriptの用語では:

  • 親(外部関数)が実行され、バックパック(クロージャ)を準備します。

  • 子(内部関数)は、親の実行が終わった後でも、親の変数と共にバックパックを持ち運びます。

ファインマン・テクニックは、積極的に関与し、アイディアを結びつけ、定着する方法で主題を理解することを強制します。これは単なる学習ではなく、習熟を目指すものです。

ですから、次に新しいことを学ぼうとするとき、それを冒険だと考えてください。適切なアプローチがあれば、その過程は目的地と同じくらい価値のあるものとなります。
楽しい学習を!


この記事は、2025年1月に当社のエンジニア Surendra Sedai が執筆した内容を日本語に翻訳したものです。
英語版はこちらをご覧ください。
https://articles.wesionary.team/learning-about-learning-with-feynman-ec715ca40f0f


業務システムの開発をご検討の企業様へ

自分の言葉で説明できるまで理解することは、システムをつくるときも同じくらい大切です。当社は、つくる前に「何を、なぜつくるのか」を一緒に言葉にするところから、業務システムの受託開発をお受けしています。何をつくるべきか、費用と期間はどれくらいかは、無料の見積り相談で担当のプロジェクトマネージャーが直接お答えします。

この記事の監修者

永田 一郎代表取締役

ヤフー(Yahoo! JAPAN)のエンジニア出身。スタートアップ、大手事業会社にて18年以上にわたり、toC/toB向けの新規事業開発、業務DX化など、多種多様なプロジェクトに従事。エンジニアとして自ら開発に携わる一方、体制構築やマネジメント、事業設計、仮説検証にも関わり、事業の立ち上げとグロースを幅広く体得。これまでに三回の事業売却を経験。共創でより効果的にプロダクトをつくり、アイディアをマーケットで検証できることを確信し、共創プラットフォームを提供するため wesionaryTEAM を創業。