Embrace the power of teaching to learn better
You’re learning a new programming paradigm, trying to understand functional programming and JavaScript. It’s going well and you’re completing tutorials and courses with ease but something is missing. Somehow, you’re having trouble making things stick in your mind and really using your new knowledge.
The most powerful way to master a new skill completely is to teach it to others. It’s not a technique to be taken lightly and is not easy to master, but it’ll supercharge your learning in a powerful way and help you become an expert in your subject of choice. Unfortunately, teaching takes a lot of time. You can’t share every last bit you learn. Rather, you should use this technique for subjects that are important to you or that you need to work on.
When you’re doing something, it’s a lot easier to fudge the bits that you’re not sure about. Indeed, everything will probably work fine even if there are a few parts that you completed by trial and error. When you’re teaching, you can’t skip steps: everything must be clearly laid out for the person learning. The process of teaching will help you how to structure your thinking and see where are the gaps in your knowledge so you can fix them.
You don’t need to know a lot to teach: you only need to be a step ahead of your students. Also, your English doesn’t need to be perfect, even if it’s not your first language. You’ll get better as you go along, and if your writing is clear and structured, the knowledge you’re sharing will still be useful to someone else. I’ve been blogging for over two years and my English has greatly improved if I dare saying so, but there is still a lot I can do to improve.
If you’re ready to jump in and teach what you know, how can you do it? There are many ways to teach that will give you the full benefits of this technique:
- You can write blog posts, guides, and tutorials.
- You can share your knowledge one to one at work or on open source projects.
- You can record podcasts, screencasts and short videos.
- You can give talks at your local user groups and at conferences.
Interacting with people is what makes teaching great. When you’re teaching, your students won’t have the same background as you: their questions will help refine and stretch your understanding of the subject. Everybody has their own strengths and their own way of approaching a problem, and you’ll learn from them as well.
So, go out and find people with whom you can share knowledge, volunteer to mentor people and don’t hoard all you’ve learned. You own knowledge will grow in leaps and bounds, and sharing knowledge is a joy in itself.
I’ve received an interesting question from a reader of the blog last week about evaluating your skills.
Working on the same kind of project with the same old technologies you’ve already mastered is easy and comfortable. You’ve been telling yourself that you should move on to a more modern web development stack or learn a new library for a while, but you’re having trouble just getting started. It’s easier to dream about how cool it would be to learn that skill, or to keep debating which skill to learn next. Meanwhile, your pile of brand-new books is starting to collect dust…