Using Teaching for Deepening Your Own Knowledge

In this post I’ll describe a technique, or rather a mindset I’ve been using for the last couple of years to intensify my own professional learning.

The technique in question is simply to teach, or more generally, to share the knowledge I have, or that I’m trying to acquire in order to get feedback on my learning progress and also to deepen the knowledge.

This can be in the form of actually teaching classes at a university or training course, or simply in the form of giving a talk at a meetup or writing a blog post. The exact method of sharing knowledge doesn’t matter that much in my experience - do whatever feels right and is possible for you currently.

In my experience, when planning to share knowledge, I even prepare topics which are clearly inside my comfort zone a bit more diligently and in a deeper way. First of all, you never know if someone will come up with a tricky question and you don’t want to stand there without a somewhat prepared response. But more importantly, in order to properly convey certain concepts so they can be learned and absorbed by listeners/students etc., it pays off to explore several approaches to phrasing and describing a topic and coming up with that requires a high level of comfort and deep understanding of the subject matter.

I’m also not sure teaching is necessarily the perfect word in this context as I’m not only talking about “traditional” forms of teaching people directly, but also passive ones, such as technical writing and being active in helping onboard new co-workers for example.

I deeply believe, that using opportunities to share your knowledge have great benefit not only for the people you are sharing this knowledge which, but also for yourself. Often a receiver of some concept will ask seemingly strange questions, without being influenced by their previous knowledge, which might trigger a bit of an a-ha moment for you as well, even if the topic at hand is an old hat for you.

The cool thing about a blog such as this is, that you can experiment with new technologies for your own learning, but then also publish your results. This has 2 great side-effects - one is that other people can potentially benefit from your solution and it’s description, but also that you’ll get some feedback from people who are already comfortable with whatever you were playing around with.

There is a bit of a downside of publishing one’s dabbling in new technologies and topics of course and that’s that there will likely be criticism. In my experience it doesn’t matter how often it’s mentioned that the code, or description in question is “just an example”, or if there is a disclaimer that it might not be the best solution, there will always be people who will take the chance to put you down when they see an opportunity for it.

My suggestion in such cases of really badly worded criticism and feedback is to not let it get to you (easier said than done), but instead to try and distill the bit of actionable feedback from it and try and learn from that. It also often helps to thank people for their feedback, even if they outright insult you or your work in their criticism. By not engaging with them on a personal level, but instead thanking them for taking the time to read and criticize your work, you’ll take the wind out of their sails and more often than not people provided more useful feedback afterwards.

Getting started with public knowledge sharing can be daunting, but you can start small. For example, you could create a blog somewhere and write a couple of short articles about things you already know well. You don’t even have to publish, or share them anywhere if you don’t feel comfortable, but maybe show them to some friends and get feedback first. Once your posts are online and you feel they provide some value, it’s a lot easier to actually show them to a wider audience.

Another good starting point in terms of sharing knowledge are local meetups. The entry barrier is usually rather low - there often aren’t that many people in the audience and the expectation isn’t a perfectly tuned talk (YMMV - some meetups are huge, but there are usually niche ones as well). From my experience organizing several tech meetups in the past, organizers are always looking for people motivated to give a talk, so you’ll do them a favor by suggesting one.

Also, if public speaking isn’t your strong suit (yet?), another opportunity is to propose a coding exercise, such as a coding dojo or something similar, where you prepare an interesting code example, which people have to replicate together during the session. That way you don’t have to prepare a whole talk, just the example and a couple of moderator cues.

The exact way to share knowledge isn’t that important in my opinion, the core benefits (deeper learning, feedback) are similar between the different modes of doing it. So again, start with whatever feels right and comfortable for you.


This is a post I wanted to write for some time, as the described “technique” helped me deepen my learning and to share knowledge at the same time for the past years. I hope I was able to convey some of the benefits and tips for starting out.

There are plenty of different ways to teach the things you know to other people and I believe the benefits both for the community at large and for yourself are worth the effort. :)