Switch to: pl

Learn by teaching

Learn by teaching

One of the most effective ways to learn is teaching, or at least to prepare for teaching. There are a few reasons why.

Simplifying knowledge is essential

Presenting knowledge clearly with your words requires deep understanding. So if I asked you to explain to me some concept now, you would have to:

  1. think if you understand it enough and enrich your knowledge about the subject,
  2. process and organize the knowledge so that you can present it logically and understandably.

This fact is used in classical education in two ways:

  1. Good teachers ask students to explain concepts with their own words. That is educative for both sides - a student needs to process the knowledge, and the teacher gets feedback on what was remembered and how it was understood.
  2. Making good notes, summaries and cheat sheets may help, because it requires you to simplify knowledge and find out what is essential.

Prepare to be asked hard questions

When you teach face to face, someone can always ask you a thought question. It can be frightening but also very motivating. Preparing yourself for all the hard questions is a process of deep learning, because it is easy to fool yourself that you know everything, but not so easy to fool others. It is also a good simulation of a test.

Make sure and explain why it is important

When you write, it is easy to present something that maybe is interesting, but only theoretical or insignificant. When you stand in front of a group and talk about something not important for them, you feel it immediately.

When I talk to a group, I generally start by explaining why this topic is important. If it is not to them, I realize it quickly and I feel ashamed. If I continue, I will quickly see it on their faces, and finally it will be expressed in a dialog with the group (programmers are very practical). Teaching helps you understand what is important and for whom.

Creating examples

One thing I find especially challenging when I teach programming is making good examples. I know a feature and I am using it, but a good example is much more. It needs to be simple, in the right place for what you present and it needs to grab the essence of what you are teaching.

Making good examples is explaining why it is useful and practical, so it is an excellent tool for learning. When I learn about something new, I ask myself how I can use this knowledge and then I try to use it this way. Whenever you learn something new, ask yourself: “Why am I learning this? How might it be useful?”.

In practice

To teach effectively we need to process and understand this knowledge on many levels. A few ways you can use for learning:

  • Imagine a person you teach and explain what you have learned to this person as clearly as possible.
  • Share what you have learned with someone - it can be a friend who is interested in the topic. You may also look for an opportunity to be a proper teacher.
  • Write notes or summaries for both yourself and others.
  • Write an article or a book about the topic. When you write for the public, it always motivates you to explore this topic well and eliminate all uncertainty.

Explain to a child

Explaining to your peer is a good practice, but explaining something to a small kid is a much more of a challenge. A kid will question nearly everything with “Why?”. It is hard, because we take many things for granted, but it is also an excellent practice. If you can confidently explain a topic to a doubtful child, you truly understand it. If you do not have a child willing to be taught what you are learning, you can always imagine it. Just be fair and keep asking yourself inconvenient questions.

Feynman Technique

There is a technique based on what we have learned in this article, called the Feynman Technique. The name comes from the famous physicist Richard Feynman - Nobel winner and a great teacher, who is known for using it for learning himself.

Feynman Technique steps:

  1. Write the name of the concept at the top of a blank piece of paper.
  2. Write down an explanation of the concept on the page, using simple language. Pretend you are teaching someone else (for instance, a new student). This should highlight what you understand, but more importantly, pinpoint what you don’t quite know.
  3. Review what you have pinpointed you don’t know. Go back to the source material, re-read and re-learn it. Repeat Step 2.
  4. Simplify your language and, where possible, use a simple analogy. Make it as clear as possible.

3 examples of using this technique in practice here. This technique is time-consuming, so it is not always the best option, but it is great if you want to learn something in depth, or if you need to prepare for teaching.

Another great technique Richard Feynman is known for is to-learn-list, but we will discuss it in a different article.


I am passionate about teaching (and learning) how to learn better. If you want to support me, any feedback will be highly appreciated. Sharing with others who might profit from the article will be helpful as well ;)

What do you think about the article?
Marcin The author of the Effective Kotlin and Android Development in Kotlin books, founder of the Kt. Academy and Learning-Driven, programming trainer, speaker at international conferences, experienced developer.
comments powered by Disqus