avatarSayan Manik

Summary

The article outlines five strategies to accelerate the learning process in programming, emphasizing the importance of balancing theoretical and practical learning, spaced repetition, teaching others, tracking questions, and the necessity of rest.

Abstract

The article "How to Learn Programming Faster Than Your Peers" suggests that while programming skills are in high demand, the traditional educational approach of memorization is ineffective for learning to code. It advocates for a strategic learning approach, starting with a 2:1 ratio of theoretical to practical learning, which should shift towards more practical application over time. The concept of "Learning in Gaps" using spaced repetition is recommended to enhance memory retention. The Feynman Technique, which involves teaching concepts to others, is proposed as a method to deepen understanding. Keeping track of questions that arise during learning is advised to ensure they are addressed post-session. Lastly, the article stresses the importance of adequate rest and recovery to maintain cognitive function and overall well-being.

Opinions

  • The author believes that the conventional method of learning by memorization is insufficient for programming education.
  • A proper balance between active (theoretical) and passive (practical) learning is crucial, with an initial focus on understanding basic concepts before increasing practical application.
  • The article criticizes the approach of binge-learning a topic without breaks, suggesting that spaced repetition is more effective for long-term retention.
  • Teaching concepts to others, as per the Feynman Technique, is seen as

How to Learn Programming Faster Than Your Peers

You Can Also Use This Strategies to Learn Anything

Photo by hitesh choudhary from Pexels

Undoubtedly software is the king of this century. Wherever we see around us, we see some software applications ready to make our daily lives easy. With the increase in software uses around the globe, jobs in programming or coding is increasing rapidly.

While some people learn coding at an early age, others are not so fortunate. They become familiar with programming in college. Even some also start to learn to program in their 40s.

Throughout the entire school life, a kid is taught what to learn but never taught how to learn. In most cases, students memorize their lessons and pass each grade one by one.

So, at college, they work hard and try to apply the same formula. They spend a lot of time learning by tutorials, watching so many videos. But they don’t do anything more than that. They hope that putting blood, sweat, and tear in that will help them get a good job.

But hope and reality are two completely different things. Hoping is not a good strategy. So, if you are just going to sit down for eight hours and blow through textbooks or watch YouTube tutorials for five hours, no matter how good the tutorial is, no matter how good the book is, unless you have a specific strategy, you are not going to be as efficient as someone who understands basic principles.

So let’s dive into five learning strategies

Proper Ratio of Active VS Passive Learning:

So what’s active learning & what’s passive learning?

Suppose you are reading a book or watching a tutorial to gain some ideas about a new topic or subject. It’s called Active Learning.

On the contrary, you are practicing whatever you learned or solving some coding problems or making some applications. This type of learning is Passive Learning.

So, in short, Active learning is theoretical learning & Passive Learning is practical learning.

If you continue watching tutorials only or keep reading a book on a particular subject, there are chances that you are going to forget whatever you learned, very soon.

On the contrary, if you dive into passive learning without knowing the concepts, if you open code editor and try to write codes without knowing basic syntax, your growth is going to slow down.

So if you are starting your new self-taught coding journey, it’s advisable to maintain 2:1 ration of passive learning and active learning. At first, you need to learn basic concepts more and more. Later on, the ratio may turn to 1:1 or 2:1 or whatever. As days pass on, the ratio of passive learning should increase.

Many students, including me, make these mistakes and make their coding journey terrible. So, it’s high time to make a proper balance between active learning & passive learning.

Learning in Gaps:

One of the major mistakes that I made at the beginning was to finish a complete course as soon as possible. Suppose you want to learn Spring Framework in Java in a 10-hour long tutorial. So, in the morning, you are all set to start your learning. Time passes on & you complete each video one by one. At the end of the day, you have finished almost 70–80% of the tutorial.

The very next day, when you want to remember what you learned the previous day, you see most of the things have gone out of your mind.

Instead of following the above strategy, follow a specific strategy named Spacing. In this technique, you watch videos on one or two subtopics and then experiment with it.

Teaching Concepts:

There is a famous technique of learning anything named after famous physicist Richard Feynmann.

  1. Choose a concept you want to learn about.
  2. Pretend you are teaching it to a student in grade 6.
  3. Identify gaps in your explanation; Go back to the source material, to better understand it.
  4. Review and simplify (optional).
Richard Feynman.Image Courtesy: https://www.atomicarchive.com/

In fact, you can apply the same technique to learning coding also. The best way to test your knowledge is to write a blog post about it and explain that. One of the best ways to learn is to join Facebook groups. There are lots of Facebook groups on various frameworks, languages, programming concepts, or coding contests where people of the same level or higher level come and discuss a particular topic.

It may seem that you have grabbed all the core concepts of a particular subject. But when you discuss with others of the same level they may question something which may make you think about your learnings.

Keep Track of Questions (you have when learning):

When you are watching a tutorial or reading books, you are really making a good momentum and you really don’t want to stop at the exact moment to search for the queries on Google. It happens all the time. The problem that a lot of people have when they are done with the tutorial or the book, is that they get frustrated after completing the course and still have so many doubts about that particular topic.

An effective way to solve this problem is to keep a notebook and write down the queries. It may be on papers or some text editor — that doesn’t matter. After the completion, if you don’t understand a particular topic on the book or the instructor doesn’t clarify all the concepts clearly, you simply go to Google and search the keywords. Sites like StackOverflow or official documentation are always there to help you.

Rest and Recover:

I see a lot of people who are working or studying for a long time, let’s say 10–15 hours and sleep for 4–5 hours to be the biggest achiever. I really appreciate them, their hustle culture a lot. But taking time off to sleep, hang out with friends, and do other normal things are so important.

Studies show that when you get sleep deprivation, your IQ drops about 10–15 points. This also happens with stress by the way. Also, scientists have seen that people who have gone into a long sleep deprivation have also felt the same feeling of being drunk.

Besides if you always indulge yourself in work, work, and work, your family life may get hampered. Socially you may be regarded as an awkward guy who hardly has social skills.

That’s why it’s famously said,

All work and no play makes Jack a dull boy.

Conclusion:

In a field like programming, it’s very necessary to keep yourself updated regularly. Languages or framework that is useful today will soon become obsolete. That’s why it’s very necessary to learn the process of learning. And in fact, knowing how to learn is one of the greatest skills that you will acquire in life.

Programming
Education
Productivity
Recommended from ReadMedium