DEV Community

Cover image for Learning to learn. Part 2 - a three-step framework for learning new technical topics
kethmars
kethmars

Posted on

Learning to learn. Part 2 - a three-step framework for learning new technical topics

In the first article of this series, I gave some general advice on learning technical topics(especially new programming languages). This piece of writing tries to go more specific by demonstrating a framework I've used to acquire new development knowledge.

Find your favourite way of learning

People are different. Some of us grasp new concepts quickly whereas others need time to process what they hear. Some of us prefer to see animated videos with analogies, others retrieve all there is from one complex wording. This is why it's important to understand your capabilities and preferred learning styles.

If you're reading this article then you've probably also read technical books, followed blog articles and video courses as tutorials. If you haven't done that, then at least you've written some lines of code, using knowledge from official documentations.

What is my preferred way of learning?

The aforementioned resources all represent different kinds of learning and it's important to ask from yourself: what is my preferred way of learning? Just think about it - which of the following statements describe you (when trying to learn a new programming language):

  • I dive into coding right away
  • I prefer to read books to get the theoretical foundation
  • I like watching video tutorials when someone else explains the concepts and does the coding
  • I enjoy acquiring knowledge from short, straight-to-the-point blog articles
  • Usually, I head straight to the documentation
  • I find a nice boilerplate and see what's been done there

All of the aforementioned approaches are cool. Depending on how much you know about the topics and what your end goal is, different ways of learning may apply.

My framework for learning technical materials

Now that you've analyzed which kind of learning styles you prefer, I've got another exercise for you. Think about one technical topic you'd like to learn. Ask yourself:

  • What's my goal with learning this topic?
  • How much do I know about the topic or anything related to it?

Mixing ways of acquiring knowledge contributes to creating different kind of connections related to the subject.

Based on the answers, I usually create a list of resource types to acquire the necessary knowledge. It includes at least two different types of learning for the topics + practical part. Why two? Because mixing ways of acquiring knowledge contributes to creating a different kind of connections related to the subject. Also, from different sources, you may learn different things. And practical part...well - I (and hopefully You too) learn those topics in order to put them to use.

Three simple steps to learn any technical topic

Example 1

Goal: Learn React to understand how it works and be able to write an SSR React website from scratch.

How much do I know: I know Javascript and VueJS which supposedly is quite similar to React

How to acquire knowledge: As I know the language React is written in and a framework similar to it, I'm confident some easy boilerplate will do to understand the syntax and basics. In order to get a deeper understanding, I'll also read some book. I will start building the website based on the knowledge from boilerplates. While building the project, I'll also read the book.

Example 2

Goal: Learn GoLang in order to be able to create a simple REST API based on Go

How much do I know: Server-client communication, how to write Node and PHP

How to acquire knowledge: This time my goal is to get hang of the syntax and get the API working. For that, a more practical type of learning can be used. I will find some nice article about creating REST APIs in GoLang which is short and straight to the point. After finishing with the tutorial and understanding the very basics, I'll take a look at example boilerplates in Github and build on top of them.

Obviously, it does not have to be that strict and even I don't always follow the plan, but it's the framework I've been using for a while and so far, it's helped. Also, an important part here is the quality of resources - prefer quality resources and adapt to them, even if you'd like to use some other way of learning. It's better to learn slowly but correctly.

Advice

Don't use learning for procrastination

When learning, please always include some active part. When reading, take notes. When watching videos, follow along by writing code etc. I know from my own experience that learning is a great form of procrastination - You think to be learning but actually forget everything a week later.

Do not forget to mix a different kind of learning

When you like to read (whether they're books or articles), also try watching videos. On the other hand, if you prefer just hands-on coding, find time to get theoretical. Different ways of learning help you better understand and acquire new topics. Plus, as you have different resources, you may obtain various approaches to your goal.

Always have a pet project to utilize the new learnings

I'm not tired of repeating - practical part is vital. When you learn something, implement it. And what could be a better way of practising than actually building something you like.

Bonus - pair programming

Apples

If you have this opportunity, try pair-programming with a person already familiar with the topic. It gives you a chance to follow along, ask questions and code under positive observation. Also, the other person can improve his knowledge by teaching. Win-win!


That's it for this time. I hope you got something useful out from this article. In the next article, I'll be sharing some tips on how to validate the resources I use for learning.

Oh, and please do share your own ways of learning!

Top comments (8)

Collapse
 
jatfield profile image
jatfield

Great advices! Procrastinating by learning is a mistake I'm prone to commit. You feel like you're achieving something, but if you're not using what you learned, you're likely to forget it. Skimming through resources and sites like these is great, you might find some real gems of knowledge, but finishing the nth course, book or tutorial won't get you ahead (see: you can't learn everything) in any meaningful way.

Collapse
 
kethmars profile image
kethmars

Thank you Jatfield for your comment! I agree with you completely.
It's great to go through new courses, but it becomes useful only after starting applying what you've learned.

Collapse
 
juanfrank77 profile image
Juan F Gonzalez

Easily a gold post right here. Ticks all the right boxes for me and I love that your framework is quite specific and it goes on the details on how to apply it.
I wholeheartedly agree with that learning and getting some knowledge feels like success and you're accomplishing something when in reality knowledge without practice is just a waste of time.
Thanks for sharing I'll be looking forward to the next article and getting some more on the insights on this topic.

Collapse
 
kethmars profile image
kethmars

Thank you for the kind words, Juan!
The most important thing is to realize that it happens and then start taking the countermeasures :)!

Collapse
 
nawfal07 profile image
Nawfal07

Thanks for the useful advices, looking forward to reading the next article

Collapse
 
bedoebied profile image
Abdulrahman Ebied

Thanks for this simple and quick advices, going to try it asap!

Collapse
 
kethmars profile image
kethmars

Thank you! Feel fee to share your results ;)!

Collapse
 
yiannistaos profile image
Yiannis Christodoulou

Thank you so much for these useful advices, kethmars.