Share What You Learn (even if you're not an expert)
Date Published: 12 April 2017
A lot of people, myself included, suffer from imposter syndrome. That feeling that you're really not good enough to be doing whatever it is you're doing. Maybe it's writing a blog. Maybe it's public speaking. Maybe it's just answering a question in front of a group, team, or class. Imposter syndrome is a real thing, and it's incredibly common, so first off, realize that most people feel that way at least some of the time.
Hopefully knowing about imposter syndrome will help you recognize and overcome it, because it can really hold you back. Learning and teaching are both extremely rewarding, both in terms of helping you grow as a person internally and in terms of how they can help your career and provide extrinsic rewards. As you consider that, think about these three related points:
One of the absolute best ways to learn something is to teach it.
Most high growth or new subjects have exponentially more beginners than experienced practitioners.
One of the best times to teach something to those who are beginners themselves is immediately after you've figured it out for the first time.
Put these three things together and you can see that they compound one another. In management-speak, they have synergy. Teaching something you're trying to learn helps you understand it better. If you're going to teach something, teaching beginner-level topics related to high-growth subjects has a very high ROI, since there are so many potential students. And since you're just learning it yourself, you're in an optimal position to teach it to this audience.
You spend a little time learning something, and stumble through a few things that weren't obvious to you, maybe weren't clear in the docs (if your subject even has docs), etc. If you don't do something with that knowledge, odds are you won't retain it. If you need to do the same task in 3 months' time, you may need to start over again, with that frustrating feeling that you've done this before. To avoid this problem, maybe you take notes. Maybe you have a notebook, or OneNote/EverNote, or just a folder in DropBox. Maybe you throw your sample into a GitHub repo or Gist or CodePen. Or maybe you write a blog post or article about it, or share it at a user group, open space, or conference. All of these are better ways to retain and cement your newfound knowledge than doing nothing, but some have much more value than others.
Spending a little bit of time to organize your thoughts and write a brief article that someone else can follow will not only help you retain what you've learned, but will help you better understand it. Sharing it in this manner, whether as an article or a presentation or a YouTube video or DevIQ solution, will also make it available to others, and to Future You. I can't tell you how many times I've been saved by Past Me when I've been searching for something online that I've totally forgotten I'd run into and solved in the past:
This is just one recent example. I honestly use google to (intentionally) find my old posts on subjects all the time. It's a great resource.
But I'm Not an Expert
Sometimes it's just a matter of tone. Sharing your own experience, perhaps with an eye toward helping Future You (or others like you), comes across as far more humble than trying to lecture others about The One Way To Do Things. You can get pretty far in your teaching career by just sharing what has worked for you, and you'll also find that people really appreciate hearing about things you tried that didn't work. Helping others learn from, and hopefully avoid, your mistakes is very gratifying.
If you really want to learn something, find a way to teach it to others. In my wife's veterinary program, they were taught "See one, do one, teach one" as a way to quickly and effectively learn new medical techniques. It works very well, and will reward you not just with direct knowledge retention, but also by improving your personal brand which can lead to future opportunities you otherwise would have missed.
PS - You can get one developer tip from me each Wednesday here.
Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.