DEV Community

Cover image for Best learning technique
Lazizbek Ergashev
Lazizbek Ergashev

Posted on • Updated on

Best learning technique

A few years ago, a friend explained me how he learned technical concepts, and that has completely changed how I learn things. I wish this learning approach is more commonly used in classes.

When we're taught new things, it's very easy to be taught the solutions directly. For example, we might jump straight to learning how to use git or Kafka or neural network without understanding what problems git or Kafka or neural network solve in the first place.

I found myself learn things much faster through problem solving, which involves the following steps:

  1. Understand the problem: when it arises, why it's important, who this problem affects. For example, if I want to learn git, I would start with understanding the challenges of version control, such as how to revert back to a previous version and how I can compare two different versions to see how they differ.

  2. Attempt to come up with a solution myself. For example, to be able to revert back to any older version of my code, I'll likely have to make copies of my code at different points in time. How do I organize the different copies? How do I keep a log of changes? How do I let users compare the two different versions? What if two people work on the same codebase and create conflicting changes?

  3. Implementing this simple solution, even if it's just a simple solution that doesn't scale. This will likely lead me to realize so many other challenges.

  4. Compare it with the solution I want to learn, which will give me so much more appreciation of this technology.

Just a random thought for Monday. I'd love to hear if you have any recommendation for a good way to learn technical concepts!

Latest comments (18)

Collapse
 
robsonmuniz16 profile image
Robson Muniz

Nice Content, thanks for sharing it!

Collapse
 
ozovalihasan profile image
Hasan Özovalı • Edited

Teaching/explaining a concept to another one is a great way to learn it. But, the other one must be eager to learn it and ask questions about it.

Collapse
 
lazerg profile image
Lazizbek Ergashev

Agreed

Collapse
 
vdorot profile image
Viktor Dorotovič

It's not directly related to software, but I recently discovered Elizabeth Filips on YT and she talks about the learning process for more chaotic people:
You’re Not Stupid: How to Easily Learn Difficult Things

Collapse
 
lazerg profile image
Lazizbek Ergashev

Great video. Thank you for sharing !

Collapse
 
ericdarley profile image
Eric Darley

Great suggestions for real-world problem-solving. Thanks Lazizbek!

Collapse
 
aderchox profile image
aderchox

I agree, sometimes it is hard to find the problem! But solutions are everywhere! I usually try using the tool to better understand what problem(s) it solves.

Collapse
 
the_ash_lad profile image
the_ash_lad

This are nice

Collapse
 
jorgetovar profile image
Jorge Tovar

Space learning is key. First read about it, implement it in a project (focus mode) or do some related work, then rest for a few minutes (diffuse mode), and do this 3-5 times per day then do this consistently for many days (pomodoro technique). Try to recall what you have learned at the beginning of each session.

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard
Collapse
 
lazerg profile image
Lazizbek Ergashev

Exactly !

Collapse
 
hanyu profile image
anaisdurrieu

This reminds me of a few studies I read about learning from erroneous code. It helps a lot with understanding different types of errors and how to handle them.

Collapse
 
alexlevn profile image
Alex Lee • Edited

I also realized the same thing, if you want to learn something, just do a real project on that technique, when you understand a bit of the basics, then go back to theory & learn more

Collapse
 
ilhom profile image
Ilhom Musayev • Edited

Very nice post

Collapse
 
adiasrim profile image
Mirsaid Akhmedov

Once you understand the purpose , Few more things that can help (specially when it comes to learning new tech/platform):

  • With the overwhelming sources of information available , sometimes its better to start with resources like stack-overflow to get the precise questions answered quickly.

  • Getting familiar with the tech jargons used in documentation early-on helps to absorb the content faster.

Collapse
 
lazerg profile image
Lazizbek Ergashev

Of course 👍

Collapse
 
abrusdev profile image
Android Developer

When I'm learning and evaluating a new tool for possible usage, I try and keep my own needs in mind and frequently ask myself, "What use cases is this tool NOT suited for?"

By doing this, I avoid getting caught in the hype where the people describing the tool only talk about things it's good at. This is a simple technique, but it's amazingly effective and has saved me lots of time (and avoided lots of mistakes).

Some comments have been hidden by the post's author - find out more