The best way to learn is to teach.

You've heard many people say this. But is it true?

I knew teaching had benefits. For example, if you teach, people will know you exist. People may be able to learn from your experience. But learn? I was skeptical.

But I realized the statement is true. You learn best when you teach. I can vouch for it after teaching frontend development for many years.

This article explains my thoughts on why teaching others help you learn.

To understand why teaching helps you learn, we have to first talk about learning. You can't teach something when you haven't learned it.

The learning process

Let's say you want to learn JavaScript. All you know is you're on one side of a cliff. The endpoint is on the other side of the cliff.

You don't know how to cross the gap (yet).

When I tried to learn JavaScript, I read through countless books and tutorials. I even looked at source code to see how people coded. I also searched for best practices.

Each material I come across acts as a tiny foothold for me to get to the other side. Some materials are easy to understand; some are hard.

Sometimes the footholds were too wide apart. I miss my step, I fall into the valley, and I try again.

Sometimes I hit a wall. I don't understand articles I read. I fall into the valley, and I try again.

After trying enough (and losing enough lives), I toned up my leg muscles. I can jump a little farther and higher than before. I try the articles I couldn't understand again.

And sometimes I succeed in getting past the stage I was stuck at.

And I get to the other side.

Only to realize there's more to go...

But that's okay. There's always more to go. That's what makes learning fun.

Teaching helps you gain perspective

I didn't know how far I've gone until I started teaching JavaScript. I thought I knew very little. Not enough to be "an expert" yet anyway.

But it turned out that I knew a lot. Enough to even make a super comprehensive course on JavaScript.

So here's a side benefit to teaching.

When you learn, you focus on moving from cliff to cliff. You have no idea how far you've gone because you don't stop to think.

But when you teach, you stop.

You pause, you look backward, and you realize how far you came. You gain perspective, and this perspective gives you a confidence in your abilities.

You know more than you give yourself credit for.

The teaching process

When you teach, you try to help someone cross the cliff you crossed.

One way to teach is to direct people to resources you went through. They will face the same difficulties you face. They'll hit walls; they'll miss their steps. Hopefully, they'll gain enough strength to move past the obstacles themselves.

But this isn't teaching. This is simply... pointing people to the resources you used. You can help shorten their learning curve, but you're not teaching. Not yet.

To teach, you walk backwards. You stand beside the student and help them through the gap.

You can point them to a tutorial while you wait for their questions. Sooner or later, they'll ask questions that surprise you, like "Why this and not that?".

Sometimes, one is better than the other. Sometimes, both ways are possible. And you learn there's another way to cross the cliff.

Sometimes, you think of a better example to help them cross the chasm easier. When you do this, you build another foothold for yourself.

That's why you learn when you teach—you build more footholds.

Maybe one day, when you've answered enough questions, you build so many footholds that you fill the gap.

That's when your knowledge is rock solid.

There's no need for footholds anymore. You can simply walk across. Students you teach can walk across too.

Who can you teach?

You don't need to be an expert to teach. You can teach anyone who wants to cross the cliff you crossed.

It's best to help immediately because you know how it feels to go past the cliff. You know danger spots where students need to be aware of.

Sometimes people will ask you questions and you go, "I don't know".

That's okay. You may not be able to fill up all the gaps yet. But you know you're missing a piece. You can fill it up later by doing more research.

Sometimes you won't be able to fill up the gap immediately. There are too many things you don't know about.

That's okay too. Maybe you'll find the block of stone you need as you progress to another cliff. It'll be plain as sight.

When you see it, you can go back and fill it up.

That's another reason why you learn when you teach—you see gaps in your knowledge.

Want to learn to teach better?

Some developers are horrible at teaching. They'll throw resources your way and ask you to figure it out yourself. Others talk in alien FOOBAR language that you'll have a hard time understanding.

Don't blame them. They're doing the best they can. Maybe they're not interested in teaching. And that's okay.

You can teach well if you want to.

I know a thing or two about teaching after writing tutorials for years. I want to share these things with you.

Will you be interested?

If yes, I'd love to hear:

Why you want to teach What are your greatest obstacles to teaching

Can't wait to hear from you in the comments below :)