Introduction
Hello there! Every programmer faced this and/or will face it somewhere in their career. As a developer, you will rarely just use one programming language. Maybe you want to learn a new one just because you are curious and it seems fun. Sometimes you have to because of your job. You will find tons of programming tutorials for different languages that have titles like "Learn Javascript/Python/xzy in x hours" where x is often <10 hours. I can guarantee you that this is not possible. Never. For example, if you want to learn JavaScript this will take you your whole life. Maybe beyond it!
Learning a new programming language is like learning a new language like English, German or Spanish. You have to practice it. You are never finished. But you are able to communicate and express yourself to others.
Let's see which approaches you can take to learn a new programming language and which ones i really like.
Different approaches
Documentation
For most of us the first thing to check. Some languages really have great documentation. For example, the Typescript docs are really nice, handy, and on point.
Whole Course
I think we all did that at least once. You are thrilled to learn a new language or a new framework and 10 seconds later you are on Udemy (or any other course site) and search for the highest-rated course for it. 1 year later. Your Udemy site looks like a freaking graveyard for courses half of them half-finished and some are not even touched.
I really like courses but the problem with them is that they often are really long. I mean this is good because this means they cover all important topics but in a world of changes and social media we are programmed to look for other courses/languages and ways to learn something really quick. Our attention span is as short as it can be. Also, it highly depends on the teacher of the course. I really enjoy courses from ZTM. Andrei is a super great teacher!
YouTube Videos
YouTube Videos are omnipresent. And they are super for learning a specific topic. I dont use it to learn a new language. I use it more for things like "How to implement authentication is Flutter" etc. So more specific things and features. Videos are great as references or to get a crash course for a specific language or framework. For that specific case, i can recommend Brad. To get a quick overview of something this is my first contact point.
Solve logic puzzles
This is one of the best ways to learn a new programming language! Out there you can choose between multiple sites to solve logic puzzles with different programming languages like Hackerrand, Codewars, Leetcode, etc.
And why it's so good? Because you actually have to practice it, google things, go to the documentation, and see how to implement loops, data structures, etc. in this specific language. Simultaneously you learn the new language while also learning to solve logic puzzles. This is highly effective!
Own Project
The ultimate way! This is my favorite and most likely the most fun to learn a new programming language/framework. In addition to this method, you can actually learn multiple new things at once! For example, while you learn JavaScript you can learn Terraform to create your infrastructure and with that, you also learning AWS because you have to know what infrastructure you need and how to use it. Also you this will most likely be the most fun because you can pick a project you really like and maybe this could lead to something bigger. Maybe you develop the new Google, Instagram, or Spotify. Who knows!
Personal Opinion
Practice, practice, and.. practice! Don't fall into the trap called tutorial hell and just watch videos and tutorials. If you want to learn a new programming language you actually need to practice it and build stuff with it. You need to fail and to understand WHY you failed and WHY this error appears. And then you solve it. Solving logic puzzles for getting your hands dirty and learn the basics and then pick a project you like and build something with it. That's the way I prefer! And use the courses and videos more for references.
Conclusion
Learning a new programming language is exciting and one of the best things in the world of programming in my opinion! I hope you find this helpful for your journey and if i missed something or you want to share other ways to learn a new language please feel free to drop it into the comments!
Stay connected to me and my content on Twitter.
I love to improve myself every single day even if it's just a tiny bit!
Stay safe and healthy guys!
And as always: develop yourself!