How often did you tell yourself that you want to learn a specific skill and you either stopped while learning it or learned it but never managed to apply it in your workflow?

I bet you encountered both situations more than once. In this article, I’ll cover my method on how I learn new skills efficiently and actually remember the stuff I read.

In this post, I’d like to share my thoughts and experiences in learning new skilly. While my examples are mostly centered around programming and software development, I’m sure that you can apply the most of the principles in other topics as well.

Learning By Doing

You’ve never heard of that idea, have you? Of course you did. Like probably everyone else. Nevertheless, I find it difficult to derive a practical approach.

One thing that helps me personally very well here is learning under the pressure to immediately apply what I have learned. As a result, I only learn what is absolutely necessary. This usually sticks very well through immediate application.

Imagine learning to skydive right before jumping out of an airplane. I bet you’ve never been learning as efficient as in that particular situation.

While this is a very efficient approach, it is certainly not what we would like to see in everyday life. Firstly due to the stress involved, but also due to the lack of an overall view.

A great way to create a similar environment is to set goals for what you’re learning which requires to apply the newly learned skills. For example, let’s say you’d like to get a grasp on relational databases. Of course, you can dig through books or online courses, but I recommend to try and think of an idea where you can both implement the learned expertise.

To stick to the database example: this could be a simple app to document your cd collection. By directly applying new skills, you’ll gain a deeper understanding of the topic and a good feeling of what’s important and what may not right away.

My Learning Routine

While the whole learning by doing approach makes a lot of sense, you’ll probably miss some important or interesting facts. To prevent overly complicated solutions, I created my own learning routine. The main thought of it is not to learn anything, but to learn how to look something up when it’s needed.

When you’re reading non-fiction, let’s say a book about a new programming language, you probably won’t try out every part of the printed syntax. However, chances are that you might stumble across a situation while coding when you think “hey, I think I read about something that could really help me here”. And at this point, you’ll be able to look it up again and implement the code as you like. You don’t have to learn any detail of whatever you’re learning.  Most of the time you will find a Pareto distribution of the relevance of what you have learned and the effort involved. Assuming you learn one thing 100%, then you will have learned 80% of the knowledge with 20% of the effort. Details are often nice to have, but mostly not absolutely necessary. Use this to set your focus accordingly.

I use the following steps for learning a new topic:

  • Gather information. These can also be thicker books, but be sure to use a few different sources.
  • Go through the tables of contents of your sources and match them
  • Use your summarized tables of contents to define an overview of exactly what you want to learn.
  • If possible, think of an overall goal that you can use to track and monitor your learning progress. If necessary, you can also create a separate goal for each sub-topic.
  • Be consistent during learning. Try to learn a little something every day, instead of fewer larger blocks. Only half an hour a day is enough for this.

That’s all I’m using. How you divide up your time is of course left to you. However, the example of 30 minutes per day should make it clear that even short times can bring great progress, after all, this brings you to 30 hours per month.