Things I wish I know before I start to learn how to code.(The most effective way to learn)
Tags: javascript, react, codenewbie
Published: 2021-09-03 00:43:15

Have you been stuck in tutorials hell? Have you ever been curious that why you learn so much but know so little? Have you ever feel like you waste so much time staring at the screen?

I have been there. And I will tell you how to get out of that loop.

###A typical way of learning
These days that knowledge is easily accessible. You are just one click away from gaining any knowledge that you want to know. From learning how to code, marketing skills, how to draw or even how to cook. We are blessed that we all have access to this information compare to decades ago that learning is a hustle. I still remember when the time that my mom has to drive 2 hours to buy me a book about how to learn English. It was tedious.

The good thing about putting so much effort into getting anything is you will know its value. The opposite is true as well.

###The problem
This is 2021, the way people learn something is just video-based learning or maybe an ebook or even a simple blog that you are reading right now. The downside of this type of learning is once you get used to it. You are in autopilot mode. You keep watching video or tutorial and thinks that your brain absorbs that information that you need. It might be true, but most of the time people do not question themselves. I mean, you don't test yourself. You will forget what you don't use. That's how it works.

I will use coding or programming as an example. Because it is easy to fall into this trap. The majority of people who spend their time watching tutorials will end up knowing nothing much. The more time you spend watching tutorials or online courses the less you know. Don't get me wrong, everyone needs to have some guidance and a good instructor is the best way to get started. I have been there where I spend weeks trying to understand one concept. But I ended up knowing less than 20% of what I expected to learn. I have running in this loop over and over until I told myself that I need to break this loop and start to figure something else.

I did tons of research about the best way to learn anything. And I came up with some solutions that seem very interesting. The main idea here is called "Active Recall". It sounds conceptual and when I first heard this I was like "What?". But it is very simple.

"It doesn't matter what you learn, you just need to recall it from your brain to make sure you know it". This is my definition of this concept. If you want to know more about this concept I suggest read the book called "Make it Stick" by Peter C. Brown.

##Solution
###Active Recall: The best way to learn anything
In the programming concept, active recall means you need to apply what you learn to build something. The reason is when you have to build something you need various kinds of knowledge to complete your project. So when you try to build something you need to start with what you already know, then stack it up along the way of what you don't know. But learning while doing will make it stick to your head much more than just learning for the sake of learning. In this way will make sure you learn A and you use A. It's simple as that.

The majority of people who start learning how to code will try to learn as much as they can regardless of the situation. Because they want it now, they want to know that NOW so that they can do what they wanted to do. They think that more is better, that not wrong. But it depends. If you eat so much but your body can't absorb any nutrients then what's the point of eating, apart from the extra calories that you get. The fact is that you won't get anything now. The only way that will make you deeply know what you try to understand is by implementing that knowledge into something that requires that set of concepts. Let me give you step by step.

###Learn concept
It could be books or docs or video tutorials. But the point here is "concept". If the video is 2 hours long, I'm pretty sure that the concept is less than 30 minutes. So what exactly is a concept. The concept is how things work. For example, let's learn React. The core concept of React is JSX, props, hooks, virtual DOM, state, components. That's it. You just need to know how these things combine and function. Some courses are 6 hours long to explain all of these things. But the fact is you don't need to spend that much time.

###Build stuff!
Now after you know some concept start to build something. Like literally anything. Or to be more specific anything that interested you. Start from what you know. STOP when you don't know. SEARCH for it. Continue. and repeat. That's the correct loop that you want to be stuck in not tutorial hell.

###Go back to Document
All of the programming concepts or frameworks got documents. If any of that doesn't have one then you should stay away from it. When you are stuck with something, even little things, open the docs. It will help you refine your knowledge so next time when you come across this topic again you will be confident of how to solve it. I have to admit that reading docs take time to get used to. I still find it very intimidating, it's not easy to read. But it's the only place where it's the core concept lived. If Elon Musk build Tesla and wrote how it works in his blog, then the only place where you should find an instruction is in his blog not elsewhere. You will have to get used to how to read the documentation because when you became a software developer you will have to read it. Like lots of it. So if you are comfortable with reading official docs then you are good to go.

Please note that these are all my personal experiences. There might be right or wrong based on your experiences. If you have any questions, my DM is always open.

Thanks for reading my blog!