Teach to Learn — The Feynman Method for ML

If you can’t explain it simply, you don’t understand it yet. You’ve memorized a description of it.


The Mechanism

Richard Feynman’s technique is not a productivity trick. It is an epistemological test. The act of explaining a concept to a non-expert forces you to convert your knowledge from recognition (you recognize it when you see it) to generation (you can produce it from first principles).

Recognition is necessary but insufficient for ML mastery. You need to be able to:

  • Derive the math when you need to

  • Debug when things go wrong

  • Design architectures for novel problems

  • Read new papers and know whether they’re credible

None of those require you to have read more content. All of them require generative understanding. Teaching is how you build it.


Where to Publish Outputs

You need two venues: private (for drafts, failures, and rough thinking) and public (for accountability and feedback).

Private: Obsidian Vault

Your Obsidian vault is the primary writing surface. Every Wednesday Feynman exercise goes here. Every paper explanation. Every mental model update. This is where ideas live before they’re refined enough to publish publicly.

Structure:

/mental_models/
    backpropagation.md
    attention_mechanism.md
    regularization_tradeoffs.md
    ...
/paper_explanations/
    attention_is_all_you_need.md
    bert_pretraining.md
    ...
/concepts_i_got_wrong/
    (this folder is important — document your corrections here)

The /concepts_i_got_wrong/ folder is not for shame. It is evidence that your understanding is evolving. In Month 13, it is proof that you approached this empirically.

Public: GitHub

Every sprint produces at least one committed artifact. The GitHub repository is the public record of your build output.

Structure your GitHub repository to tell a story:

ml-mastery-13months/
├── phase_01_foundations/
│   ├── linear_algebra_from_scratch/
│   ├── probability_exercises/
│   └── README.md (what you learned, what surprised you)
├── phase_02_classical_ml/
│   └── ...
├── lab_notebooks/
│   └── (anonymized or summarized versions of key entries)
└── README.md (the portfolio overview — written in Month 12)

The GitHub README is not written in Month 1. It is written in Month 12, when you can look back across 13 months of commits and articulate what you built.

Public: Blog (Substack or Medium)

The minimum: one post per phase. That’s roughly one post every 4-6 weeks. Not a research paper. Not a tutorial. A genuine explanation of something you understood this phase that you couldn’t have written 6 weeks ago.

Why Substack over Medium: Email subscribers are more valuable than SEO traffic. Substack builds a list you own. Medium’s algorithm controls your distribution. For a learning project, Substack’s simplicity and ownership model is correct.

Why public blogging matters beyond accountability:

  1. It forces you to reach a standard of clarity you wouldn’t reach in private notes

  2. It creates a timestamp record of your understanding (Month 3 post vs. Month 10 post is visible evidence of growth)

  3. It occasionally attracts feedback from people who know more than you

  4. It becomes part of the portfolio pitch in Month 13

One post per phase minimum. If you write more, excellent. But one per phase is the floor that serves the roadmap.


How to Test Your Understanding

The test is simple and adversarial: Can you explain this concept to someone with a CS background but no ML experience?

Not to a fellow ML engineer who will fill in gaps from shared context. Not to yourself in your notes. To a CS generalist who will ask “but why?” at every step.

If you encounter a step in your explanation where you say “and then you just…” — stop. That “just” is covering something you can’t derive. Find it. Understand it. Come back.

The rubber duck protocol for concepts:

Place a real or imaginary rubber duck on your desk. Explain the concept out loud to the duck. At every step, the duck asks “why?” You answer until you can’t. Where you can’t is where your understanding stops.

This sounds childish. It is also one of the most efficient ways to locate the exact boundary of your understanding, which is the only thing worth locating.


Where to Share Without Being Annoying

You don’t need to broadcast every blog post to every community. You need to place it where people who would benefit from it can find it, without spamming.

HuggingFace Forums (discuss.huggingface.co): Share posts that are relevant to specific tools or models. The community is generally collegial and technically serious. Don’t post everything; post what’s genuinely relevant.

r/learnmachinelearning: Good for conceptual explanations aimed at learners. If your Wednesday explanation post would have helped you 3 months ago, it’s appropriate here.

Twitter/X: The ML community on Twitter is active and meritocratic. Short threads that explain one concept clearly get disproportionate reach. Don’t cross-post every post — distill each into a 3-5 tweet thread when the concept warrants it.

LinkedIn: Lower-signal but professionally useful. Post when you complete a phase or a significant project. One post per phase is appropriate here.

Rule: never post something you can’t defend. If someone asks you a follow-up question about your post, you should be able to answer it or say “I don’t know, I’ll investigate.” You will not always be right. Being wrong publicly and correcting yourself is fine. Being caught having posted something you didn’t understand is not.


The Teach-to-Learn Flywheel

You explain a concept publicly
        ↓
Someone who knows more than you reads it
        ↓
They correct an error or add nuance
        ↓
You update your mental model with better information
        ↓
Your next explanation is more accurate
        ↓
You attract higher-quality feedback
        ↓
Your understanding deepens faster than isolated study allows

This flywheel is slow to start — your early posts will get minimal engagement. It accelerates around Month 5-6 as you accumulate content and a small audience of people who are on similar journeys.

The flywheel is also its own intrinsic motivation system: when someone comments on a post with a genuine insight, or asks a question that reveals a gap you hadn’t noticed, that is qualitatively different from studying alone.


The One Post Per Phase Commitment

At the end of each phase, you will write one post that answers: “What is one thing I now understand that I couldn’t have written about 6 weeks ago?”

This post should be:

  • Specific (not “I learned about transformers” but “I understand why multi-head attention lets the model simultaneously attend to different representation subspaces”)

  • Honest about the difficulty (“I found the positional encoding unintuitive for two weeks before this clicked”)

  • Reproducible (if there’s code, link to it on GitHub)

  • Useful to someone one phase behind you

That post is not for an audience of thousands. It is for the version of you who existed 6 weeks ago. Write for that person.