The Build-in-Public Method for Technical Learning
The Build-in-Public Method for Technical Learning
What Is It?
The Build-in-Public Method is a learning strategy where you document your learning process publicly—through blog posts, Twitter threads, videos, or open-source code—while you’re still learning the material. Instead of waiting until you’re an “expert” to teach others, you share your journey, mistakes, and discoveries in real-time.
This approach transforms learning from a passive, private activity into an active, social process that accelerates understanding and creates valuable artifacts along the way.
The Core Principle
Learn by teaching while you’re still learning.
Traditional approach:
- Learn privately
- Become expert
- Teach others
Build-in-Public approach:
- Start learning
- Document immediately
- Teach what you just learned
- Repeat (you’re now learning faster because you’re teaching)
Why It Works: The Science
1. The Protégé Effect
Research shows that people learn better when they expect to teach the material to others. Brain imaging studies reveal that preparing to teach activates retrieval and organizational cognitive processes that deepen understanding.
Key Study: A 2018 study in Applied Cognitive Psychology found that students who prepared to teach material scored 28% higher on tests than students who only studied for themselves, even if they never actually taught.
2. Elaborative Encoding
When you explain something publicly, you must transform your understanding into language. This transformation forces you to:
- Identify gaps in your knowledge
- Connect new concepts to existing knowledge
- Create mental models that are communicable
This process (called elaborative encoding) creates stronger memory traces than passive reading or note-taking.
3. Social Learning and Feedback
Building in public creates a feedback loop:
- You share your understanding
- Others correct misconceptions
- You refine your mental model
- You share the corrected version
This iteration loop accelerates learning far beyond solo study.
4. The Generation Effect
Creating original content (blog posts, code examples, diagrams) forces you to generate your own understanding rather than passively consuming others’. This “generation effect” significantly improves retention and transfer.
How to Implement It
Step 1: Choose Your Medium
Pick a public platform that matches your learning style:
For written learners:
- Personal blog (Jekyll, Hugo, Substack)
- Dev.to or Medium
- Twitter/X threads
For visual learners:
- YouTube or Loom videos
- Illustrated Twitter threads with diagrams
- TikTok or Instagram Reels (yes, really—technical content works here)
For code-focused learners:
- GitHub repositories with detailed READMEs
- Code examples with extensive comments
- Open-source contributions with documentation
For social learners:
- Discord or Slack communities
- Live streaming (Twitch, YouTube Live)
- Twitter/X with active engagement
Step 2: The 30-Minute Rule
After every 30-minute learning session, spend 10 minutes documenting:
- What you learned
- What surprised you
- What confused you
- One practical example
This creates a 3:1 learning-to-documentation ratio that’s sustainable long-term.
Step 3: The “I Just Learned” Framework
Use this template for rapid documentation:
# I Just Learned: [Topic]
## What I was trying to do
[1-2 sentences on the goal]
## What I learned
[3-5 bullet points of key insights]
## What surprised me
[1-2 things that were counterintuitive or unexpected]
## What I'm still confused about
[1-2 open questions—this invites community help]
## Example
[One concrete code snippet, diagram, or demo]
## Resources
[Links to what you learned from]
This framework takes 5-10 minutes to complete and creates immediately shareable content.
Step 4: Embrace “Beginner Mind” Authority
Your unique value isn’t expertise—it’s recency. You just learned this, so you remember:
- What was confusing
- What wasn’t explained well in the docs
- What mental model finally clicked
This makes your content MORE valuable to other learners, not less.
Step 5: Build a Learning Streak
Commit to documenting for 30 days straight. Even if you only learn one small thing, share it. The consistency matters more than the depth.
Why 30 days? Habit formation research suggests 21-30 days is the minimum for establishing a new behavior pattern. After 30 days, documentation becomes automatic.
Common Pitfalls and How to Avoid Them
Pitfall 1: “I’m not qualified to teach this”
Reality check: You’re not teaching experts. You’re teaching people one step behind you in the learning journey. They need YOUR perspective, not an expert’s.
Fix: Change your frame from “teaching” to “documenting your learning journey.” You’re not claiming expertise; you’re sharing discoveries.
Pitfall 2: Fear of being wrong publicly
Reality check: You will be wrong sometimes. That’s not a bug; it’s a feature. Public correction is one of the fastest ways to learn.
Fix:
- Add disclaimers: “I’m learning this as I go—corrections welcome!”
- When corrected, publicly acknowledge and update your post
- Frame mistakes as learning opportunities: “Update: I was wrong about X, here’s why…”
Pitfall 3: Perfectionism paralysis
Reality check: Published and imperfect beats perfect and unpublished. Always.
Fix:
- Set a timer: 10 minutes to draft, hit publish
- Use “draft” or “WIP” labels initially
- Remember: You can always edit or expand later
Pitfall 4: Comparing yourself to experts
Reality check: Experts have years of head start and full-time content teams. You’re competing in a different league: the “authentic learning journey” league.
Fix:
- Follow other learners, not just experts
- Track your own progress, not others’ output
- Remember: Consistency beats intensity
Pitfall 5: No audience initially
Reality check: Everyone starts with zero followers. Your early posts are practice. The audience comes later.
Fix:
- Write primarily for yourself (it’s still learning!)
- Share in relevant communities (Reddit, Discord, Slack)
- Engage with others’ content—reciprocity builds audience
- Focus on the learning benefits, not the reach
Practical Examples
Example 1: Learning Rust
Day 1 post (Twitter thread):
Thread: I'm learning Rust. Day 1 observations 🧵
1/ Coming from Python, the borrow checker is making my brain hurt.
But I think I get why it exists: preventing data races at compile time.
2/ Just spent 45 minutes debugging: "cannot move out of borrowed content"
Turns out I was trying to use a value after passing ownership.
In Python this would silently work. In Rust: compile error.
3/ The error messages are actually... helpful?
It suggested using `.clone()` or references.
Tried reference (&), worked.
4/ Still confused about: lifetimes. The syntax makes sense but I don't grok WHEN I need to specify them vs when Rust infers them.
5/ One thing that clicked: Rust makes memory management explicit.
Python hides it (garbage collection).
Rust shows it (ownership).
Neither is "better"—tradeoffs.
Resources I'm using:
- The Rust Book (official docs)
- Rustlings exercises
- This video: [link]
What am I missing? Any Rust devs have advice for a beginner?
Why this works:
- Documents real struggle (relatable)
- Shows the learning process, not just results
- Invites help on confusion points
- Creates conversation starter
Example 2: Learning System Design
Blog post: “I Just Learned: Database Replication”
# I Just Learned: Database Replication (And Why Twitter Uses It)
## What I was trying to understand
How do big systems like Twitter handle millions of database reads per second without the database falling over?
## What I learned
- **Replication** = copying data to multiple database servers
- **Primary-replica pattern**: One primary (writes), many replicas (reads)
- Writes go to primary, then async copied to replicas
- Reads can go to any replica (distributes load)
## What surprised me
Replicas can be "stale"—they might not have the latest write yet. This is called **eventual consistency**.
Twitter is OK with this! When you tweet, you might not see it on your timeline for a few seconds. That's replication lag.
## What I'm still confused about
How do you handle conflicts if writes happen while a replica is disconnected? Is there an automatic merge strategy?
## Example
Imagine a blog platform:
- Primary DB handles: new posts, updates, deletes
- 5 replica DBs handle: viewing posts (99% of traffic)
Result: 5x read capacity without changing the primary.
## Resources
- "Designing Data-Intensive Applications" (Chapter 5)
- This AWS article on RDS read replicas: [link]
Am I understanding this correctly? Database experts, please tear this apart!
Why this works:
- Concrete, relatable example (Twitter)
- Explains one concept deeply
- Acknowledges confusion (invites expert input)
- Creates searchable content for future learners
Example 3: Learning Kubernetes
GitHub repo: “kubernetes-learning-journey”
# My Kubernetes Learning Journey
I'm learning Kubernetes from scratch. This repo contains my notes, examples, and experiments as I go.
## Week 1: Core Concepts
- [x] What is a Pod? (./notes/pods.md)
- [x] Deployments vs. ReplicaSets (./notes/deployments.md)
- [ ] Services and networking (in progress)
## Experiments
- [./experiments/01-simple-pod/](./experiments/01-simple-pod/): Deploying my first pod (it failed 5 times, here's why)
- [./experiments/02-deployment/](./experiments/02-deployment/): Creating a deployment with multiple replicas
## Resources I'm Using
- Kubernetes official tutorials
- "Kubernetes Up & Running" book
- This YouTube series: [link]
## Questions I Still Have
- When do you use a StatefulSet vs. a Deployment?
- How does inter-pod networking actually work?
## Contributing
If you see mistakes or have suggestions, PRs welcome! I'm learning this in public.
Why this works:
- Creates permanent, searchable resource
- Shows progress over time
- Invites collaboration
- Documents failures (highly valuable!)
Advanced Techniques
Technique 1: The “TIL” (Today I Learned) Collection
Create a running collection of daily micro-learnings. This lowers the barrier to documentation and creates a valuable reference over time.
Format:
# TIL Collection
## 2025-11-08
- Python's `walrus operator` (:=) lets you assign and use a value in the same expression
- Useful in list comprehensions: `[y := x*2 for x in range(10) if y > 5]`
## 2025-11-07
- PostgreSQL `EXPLAIN ANALYZE` shows actual query performance, `EXPLAIN` shows planned performance
- Always use ANALYZE for real bottleneck debugging
Technique 2: The “Mistakes I Made” Series
Document your errors explicitly. This is some of the most valuable content for learners.
Example post titles:
- “5 Mistakes I Made Learning React Hooks”
- “Why My First Rust Program Leaked Memory (And How I Fixed It)”
- “I Broke Production Deploying Kubernetes—Here’s What I Learned”
Technique 3: The “Explain It to My Past Self” Method
When you finally understand something that confused you, write an explanation for yourself from one week ago.
Prompt: “I wish I’d known [X] when I started learning [Y]. Here’s what finally made it click…”
This creates content that’s perfectly targeted for beginners because you remember exactly what was confusing.
Technique 4: The “Progressive Elaboration” Approach
Start with a basic post, then expand it over time as you learn more.
Example:
- Day 1: “Quick note: What is GraphQL?”
- Week 2: “Update: I added an example of GraphQL vs REST”
- Month 3: “Major update: How GraphQL resolvers actually work”
This creates living documents that grow with your understanding.
Measuring Success
Short-term metrics (first 30 days):
- Consistency: Did you document 20+ of 30 days?
- Confidence: Do you feel more confident explaining the topic?
- Retention: Can you recall what you learned without checking notes?
Medium-term metrics (3-6 months):
- Community: Have you received helpful feedback or corrections?
- Connections: Have you connected with others learning the same thing?
- Artifact quality: Are your earlier posts now useful reference material for you?
Long-term metrics (6+ months):
- Authority: Are people starting to ask you questions about the topic?
- Opportunities: Have learning-in-public posts led to job offers, speaking invitations, or collaborations?
- Portfolio: Do you have a portfolio of learning artifacts that demonstrate growth?
Real-World Success Stories
Shawn Wang (@swyx): Coined “learn in public” and used it to transition from finance to Senior Developer Advocate at AWS. His blog posts documenting learning React led directly to job opportunities.
Ali Spittel: Documented learning to code on Dev.to, built an audience of 100K+ followers, became a Senior Dev Advocate at AWS.
Josh Comeau: Shared CSS and React learnings via interactive blog posts, now runs a successful course business teaching the same topics he learned in public.
Common thread: All started as learners, not experts. Built authority by documenting the journey, not claiming expertise.
Getting Started Today
Your 10-Minute Action Plan:
- Pick ONE thing you’re currently learning (5 seconds)
- Choose a platform (30 seconds—don’t overthink it)
- Write a “I just learned” post using the template above (8 minutes)
- Hit publish (30 seconds)
That’s it. You’re now learning in public.
Do it again tomorrow. And the day after. By day 30, you’ll be amazed at what you’ve built.
Conclusion
The Build-in-Public Method works because it transforms learning from a solitary, passive activity into a social, generative process. You learn faster because you’re teaching. You retain more because you’re creating. You build authority because you’re shipping.
The hardest part is overcoming the fear of being wrong publicly. But here’s the secret: everyone who’s ever learned anything was wrong many times along the way. The only difference between you and experts is they’ve already made their mistakes. You’re making yours now—and by documenting them, you’re helping everyone who comes after you.
Stop waiting to be an expert before you start sharing. Start sharing today, and expertise will follow.
Your future self—and the countless people who will learn from your journey—will thank you.