How to become a successful self-teach programming student.
Tags: react, webdev, learning, weblearning
Published: 2023-02-20 06:52:22

This year React js hits its 10th anniversary. 
It was React that made me believe that I could really be a Web and App developer. I have been working both as a Web developer and programming instructor, both scenarios with React, and to celebrate React's anniversary, I have decided to list my ideas on effective learning techniques for those who are taking their first steps on frontend development, or React. 
On the way, I would also share how React (an abstract tool invented in the mid 2010-2013) has affected positively my life.

I'll go straight to the point.

At the starting point of learning something new, there are many things that we ignore that will determine our success or failure in achieving our goal. 

1. We tend not to consider the pitfalls of the career we are setting upon. The difficulties of finding a job, the requirements, what the hiring process is like, and so on.

2. Most of us completely ignore our learning skills, style(s) and pace. What I'm trying to say is that not all of us learn from video tutorials, not everyone can read a paragraph and identify the main ideas on a single read, and certainly what seems easy for some people doesn't necessarily qualify it as "easy" in itself. We may find ourselves stuck in places where other people succeed effortlessly. That brings our next point...

3. Develop mechanisms to deal with frustration and protect motivation. The worst part of frustration is that it destroys motivation. We overcome sadness eventually (unless it's medical), but motivation is very difficult to re-build.

4. Give yourself the time to process the information. Not only will this ensure your learning the concept, but will also prevent frustration. Try not to compare your progress to anyone else's. However, do no think that you need to know 100% of a basic aspect before diving deeper into a more complicated one. That's not how it works!

5. Track down the source of your motivation.

Back in 2016, I started learning Javascript. I had already taken courses on HTML and CSS, and to this point I still have no idea what those courses were about. I completed them, but Javascript got really complicated for me. So, I concluded that I was a successful teacher at the time, and that I had no need for putting myself through that misery. It turns out that my motivation was only regarding salary expectations... no love for tech, or deeper meaning on how this could help humanity or anything, so I dropped out. 
Now, I am not saying that money shouldn't be a motivation, nor am I saying that if that's case you should quit. NO! What I am saying is, identify and strengthen the source of your motivation. This will be very helpful by the time things get tough.

6. Do not get emotionally attached to any blogger or YouTuber.
Very commonly do I find people who follow streamers in a worshipping kind of way. As if the guy/girl was infallible.
Be open, contrast materials, debate ideas, weight everything that you learn in light of what's considered as good/bad practice in web development, come to conclusions, and expose your ideas in those communities.

7. Find a Bootcamp or an institution to learn.
People can learn by themselves, it's true... and I am sure there are a lot of cases where people learned by themselves. However, as someone who learned English, and play the guitar by himself, I know that it would have costed me double or triple the time to get to where I am if I hand't gotten enrolled in an institution.

8. Create groups of study. It's important that you consolidate whatever little or much you know about something. You need to understand the API of a programming language, but also the concepts of such language. Nothing better to digest them than trying to teach them to someone else. If you can't define it clearly, then you'd probably still don't get it right.

9. As you are getting much stronger a programmer, create scenarios where to confront your ideas about everything. Write essays, articles, make lists of things, share your questions with other developers, hopefully, more experienced than you on your same field. 

10. Make your comfort zone uncomfortable. That means... practice something and stick to it till your feel comfy with it and can do it eyes-closed, but don't fool yourself thinking you got it all pinned down. Every time you feel comfortable, it's time to crank it up a notch.

11. Read a lot! Stick to your videos and streams, but make documentation your first option to understand any api. That requires practice, so as you're learning on this very beginning of things, start complementing your videos with documentation on Javascript or whatever it is that you're learning.

Finally...

I left a career with 10 years of experience. Had to send more than 200 resumes before getting my first IT job. Once I got my first job, I had to go through other 3 badly paid jobs to get to one with an attractive salary... and having a good salary on one hand, I had to decide to stay and get professionally stuck, or leave for a better job with a poor salary offer because it would get me closer to what I have on mind for me.

I struggled at the beginning and asked myself if it was even worth it many times. I had to ask for help when I was learning JavaScript, and deprive of other social events to spend more time studying. However, when I saw React for the first time, it was like love at first sight. It all clicked, and I was now in the position of helping those who helped me during the fundamentals of JS (Ironically).

Having learned React, and applied those very same tips herein written, got me my first job.

Learning programming is definitely one of the top five best decisions I've ever made; and React pushed me closer to it.