Learn software engineering at your own pace. My story.
Tags: javascript, selftaugh, node, beginners
Published: 2023-10-20 04:22:59

## Introduction

Good day, everyone! My name is **Tony**, and I am a Vietnamese programmer with over 5 years of experience collaborating with both domestic and foreign colleagues and clients. I am currently working for **@Betamind**, a **young** and **very eager** startup company, and I am extremely grateful for the opportunity. I was a chemical engineer before that, so how did I become a programmer?

**There is just one solution: total self-study/teaching**. So, how can I master the most challenging aspects of programming, such as algorithms, BigO, OOP, web/app development, and even English? If you're curious, please join me on this fascinating voyage!

![Unsplash](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bzcw5pkhfymmdl7wx56r.jpg)
> Photo by <a href="https://unsplash.com/@nickmorrison?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Nick Morrison</a> on <a href="https://unsplash.com/photos/macbook-pro-near-white-open-book-FHnnjk1Yj7Y?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>

  

## Why I choose Self-taught

I initially wasn't going to select this career because of the pay. The demand for it in Vietnam at the time I was interested in was pretty low, and most of the other students were studying chemistry. One day, I was asked to create a website for a buddy so I went home and worked on it for a few days. Oddly, the more I worked on it, the more intrigued I became, and without even realizing it, I had begun my passion. I developed a deep love for programming in this way.

 > _Just follow your passion, success will follow you_


But telling me, who knows nothing, to create a website that people all over the world can access is a huge problem. All of the tutorials at the time were merely the tip of the iceberg, and they were insufficient to satisfy me. What I wanted was to learn its fundamentals, but to do so, I had to spend money to attend programming training centers, which were highly expensive. I recall paying between $500 and $1,000 for a three-month course. That was an excessively huge sum that was unaffordable for someone like me who had no income. In the end, I decided to self-study; the hurdles were numerous, but we'll reserve it for the next section.

One of the best things about self-study is that you can control your own time and learning pace. You can self-study whenever you want and at any pace. However, the most difficult thing is self-discipline. If you don't have that, it's easy to lose motivation.

The final reason, I think you've probably guessed... is that I don't feel suitable for my current field of study. I started to feel uncomfortable with test tubes and pipettes, but I began to realize that I felt very suitable with computer-related subjects So since 3rd year, I have been silently self-studying with more determination and a higher goal than ever. The main goal is to be able to to work as a programmer when graduated.

![Image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/teta3yuwb6rd91lk9c1n.jpg)
> _Photo by <a href="https://unsplash.com/@sloppyperfectionist?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Hans-Peter Gauster</a> on <a href="https://unsplash.com/photos/stack-of-jigsaw-puzzle-pieces-3y1zF4hIPCg?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>_
  

## The path doesn't seem paved with roses 

There is **no easy** path, and self-study is fraught with challenges that readily discourage individuals fresh to this discipline. Let's get started with the primary four issues.

**The first issue is disorientation**. When you enter a totally new field, the first thing you notice is confusion, and I am no exception. I had no idea where to begin, what to learn first, or what to do next. I was so buried in the immense ocean of knowledge that I had to take a year off from programming before I dared to return. I began by looking for classes online, but the never-ending teaching of free courses frustrated me even more.

**The following issue is a lack of fundamental knowledge**. Not knowing what to learn first inhibits you from gaining basic information, concepts such as OOP, objects, algorithms and so on. When you don't comprehend what the instructor is saying on the video.

**The next factor is a lack of guidance, which fully demotivates you**. This, in my opinion, is pretty hazardous since it depresses us, leads us to give up, and makes us afraid to try something new again. We are entirely ignorant of many notions because they are inadequately articulated or because they are built upon earlier concepts that we are not familiar with. Without a teacher, self-study makes it more challenging to ask and respond to questions, and after the initial tentative steps.

**Ultimately, there is a lack of the right mindset**. If you are used to studying with someone pushing you, this is not the method for you. If reading this far you still feel like you can change that, then join me in finding the solution in the next section.

## In it, to win it.

Yes, you heard correctly; to succeed, you have to be involved. Once you do, you will discover a solution to the issue. Here are my six suggestions for the aforementioned problems. If at all possible, post your thoughts in the comments so that we can hear from a variety of interesting people.
Here I will tell you how I learned to become a full-stack JS developer with full knowledge and experience as a full-time student. Let's go.

**Decide to study a foreign tongue**. When I first started learning programming, there were relatively few comprehensive Vietnamese publications, including courses, but there were a ton of excellent English learning resources, so I chose to learn English instead. I must first conquer English before I can master programming. I got a respectable 850 TOEIC after a year of practice, and I'm still getting better every day. Your first step into a vast knowledge trove is learning English.

**Learning materials**. Following mastery of English, the next step is to select learning resources; this is what I chose. Udemy offers the highest quality courses at the lowest prices. Coursera is a good option if you want to study more intellectually. I chose Udemy classes based on course stars, and they did not disappoint. They teach in an incredibly extensive and in-depth manner, clearly discussing difficulties. The projects, if completed, can be utilized as a portfolio. The following are some classes that I have taken and am highly interested in:

  - https://udemy.com/course/the-complete-javascript-course/  - the best course about JS I've learned so far
  - https://udemy.com/course/the-ultimate-react-course/ 
  - https://udemy.com/course/js-algorithms-and-data-structures-masterclass/
And so much more, you can discover by yourself...

**Roadmap - the road to victory**. You cannot go without a map. After understanding where to get the material, what we need to answer is what to study and why. That's when the roadmap comes in. It helps us determine where we are and what we need to learn next. Search for the roadmap through Google or your predecessors. The search method is also very simple like: "JS roadmap", "Developer Golang roadmap", "Web-dev roadmap"

![ReactJS roadmap](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a5sjedcwhaxxff61wj17.png)

**Now is the time to put everything we've just learned into practice so that we can truly master it**. The easiest method to learn a new language or library is to create and carry out projects on your own. The way I typically put it into practice is that after each course, for instance, HTML and CSS, I would go to Google and look for appropriate designs before starting to follow them to build fantastic websites. You can adhere to the top outcomes. Below are some of the sites I practiced with:

- https://superknife0512.github.io/Anvolio-project/
- https://superknife0512.github.io/Bakerfarm-project/

**Look for opportunity to intern and land a job that pays well**. After completing a few demonstration projects, I took that action. Instead of working for yourself, you should join a company. You will encounter challenging and complex initiatives in the business environment, and that is when we mature. Additionally, working for a company can help you locate smart, seasoned colleagues who can serve as your mentors while you continue along your journey of self-study. But how can we get an interview if we are only self-taught and lack any credentials? Let me discuss that in the following post because it is a different story.

**Join a group**. You could even start mentoring others in that group of folks. Self-study is not an easy path, and it will be simpler if someone is beside you. Also, remember to Google anything you are unsure of before asking :D

## Conclusion

That was all I did to learn how to program on my own. Even though it has been over five years, I continue to build on that foundational knowledge to continually advance my expertise. I wish you much luck as you continue on your self-study path. After finishing it, you'll feel incredibly deserving of the outcomes you got. Please leave a remark or email me at phanhuutoan.dev@outlook.com if anything is confusing. See you in the following entry.