How to learn to code in the modern world
Tags: codenewbie, beginners, webdev, motivation
Published: 2020-08-25 13:56:39

Learning how to code is not that simple as it seems. The Internet is full of tutorials, blogs, videos, courses, and the overflowing of the information created a problem. There is so much content that you don't know where to start.

I started to learn how to code ~10 years ago. The 2010 year doesn't sound like some ancient times, but it was like it somehow. There were no hundreds of tutorials, no YouTube tutorials, no online courses with mentors. Just a bunch of websites with articles and specs. A few of these websites haven't been updated since the beginning of the 2000-s, so it was outdated. I remember the tutorials "How to add background music to your website?" or "How To Add Flying Letters On Moving Cursor," which were fun to do.

So in a way, when you have just a few decent websites, it was easier to learn. I just had to have my internal filter to sort out the right things and useless flying letters. That was the hardest part because you don't know how to do it when you are new to it. I had to practice a lot and make mistakes, and I had no one to ask for help. Everything by myself. My favourite way of learning HTML and CSS was to open any existing website, open its code and try, copy-paste some parts, and figure out how it works. It required a lot of time and a lot of patience. But I did it - I learned something, and it was enough to get my first frontend developer job.

These days we have a lot of different ways to learn how to code. You can join a course with an individual mentor. Or watch video tutorials. Read blogs. Bootcamps. Internships. 
It's excellent, don't get me wrong. I wish I had it all ten years ago instead of the flying letters. But I am trying to put myself in a beginner's shoes, and I'm feeling lost.

##How to start? 
The good and bad part about web development (especially frontend) - it's always changing. New approaches, new technologies, new frameworks. It's impossible to stay up-to-date about everything. But don't be hooked by excited and popular things. Remember to learn fundamentals. 

For example, I want to learn frontend. I know about React's popularity that it's an essential skill to be hired. But it would be wrong to start learning frontend immediately with React. I need to know the basics, and I need to build a fundamental base of my frontend knowledge. Learning HTML, CSS, JavaScript - that is where I go.

Because when I know Javascript - everything else (frameworks, builders, different tools) would be easier to understand. Of course, you can start with React immediately, but you will have situations when you don't know what to do. Don't rush this process.

But then I come back to that problem of overflowing information.

##What to choose?

My personal opinion, if you can - start with online courses. Choose some solid, proven course or school. Please read the reviews, ask about it on social networks, do your research about it. I recommend courses and schools because, in most cases, their authors care about the quality of the content. And sometimes, they can give you a personal mentor to help with any question. Some of these schools help with finding a job after the course - that's a great benefit. But it would help if you were ready to dedicate a lot of your time to study, meet all deadlines, visit online lessons and webinars. But it is worth it as it saves a lot of time searching for the right tutorials.

The downside of these courses and schools - it can be expensive, and not everyone can afford it. But it's okay!

Again, I'm trying to put myself into this situation and see how I would deal with it. And it means that I will need to do proper homework and build my internal detector of good and bad tutorials.

##How to find a good tutorial?

First of all, don't start the tutorial without reading it!
Please read the article, check comments (maybe someone is saying that it's a wrong, outdated approach), check how popular this post is. Take a look at the author of this tutorial - how many years of the experience he has in the industry and what company she works for. Is it just a single post from this author, or does he write regularly? 

Of course, sometimes good tutorials stay hidden and not that popular, but it can be a risk for you when you have no idea about the topic. So maybe you can check other tutorials with proven outcomes and feedback.

I also recommend checking how the author reacts to the comments about the article. Accepting the feedback is hard, but very important for anyone who wants to teach. Because your work is not finished once you post your article - you need to work with questions and use empathy and patience. I respect everyone who tries to reply to as many questions as possible, and it doesn't matter if you have 10k followers or 0. Try to see the person behind all these words and letters, if you can feel it - that's great.

Don't try to complete as many tutorials as you can in one sitting. Check a few other posts and videos about this topic. Collect different opinions. Try them all in practice to see the real difference. Then let it sink in. Give it time to understand what you've just learned. If you can wake up the next morning and remember what you learned yesterday - it would be a sign that you can pick up the next tutorial.
Another great thing about the modern world - communication. Even if you don't have friends-developers, mentors, or colleagues, you can always ask on social networks. Just don't be afraid or shy; we all were there - at the beginning of the developer journey. And most of the developers know your feelings, and they are happy to help and make this world a better place.

Don't forget to share your progress, your wins, and your mistakes. Because you will see the community support, and it will give you a massive boost of motivation and energy! Try to help others with similar problems!

## Wrapping up
* There is too much information on the Internet, and you need a compass to navigate into it. 
* Apply for a course or a bootcamp if you can. 
* Research articles and tutorials before jumping into them.
* Don't rush the learning process; be patient.
* Use the power of the Internet and ask about your problems. There are no stupid questions! Share your progress; get feedback! 

## -
Thanks for reading and feel free to comment!