It's a common confusion to choose what languages to learn and the right path to take and to be honest reading guides and articles online can be overwhelming when deciding. Sometimes thinking about how complex some of the concepts can be scares you so much and you just want to and be like "Maybe this programming thing isn't for me🤷🏾♂️". Well, here's my take on the subject.
There are few things to consider before you even start learning to code.
So the first question (and probably the most important) you want to ask yourself is why am I choosing to go into programming? What excites me about it? What puts a smile on my face when I think of it? This is usually very important because it helps to a great extent to ease how you get started and where to begin.
So are you going into programming cause you want to build awesome games? Want to build stuff that do what you tell them to? Want to build amazing mobile applications? You want to make stuff work in your browser? Etc. Have you identified a problem and you want to solve it? Or you just want to do it for fun and see how it goes? Or you want to make some money? These are the hard questions you need to ask yourself. They help define what you should know, what you should learn and how you should learn it.
Many people choose to get into programming for the initial excitement and buzz, but lack a clear vision of where they are headed. This is crucial cause when you lack a definitive concept of what you want to do with what you've learned, even the easiest of things become overwhelming tasks. You tend to easily get frustrated when stuff are not working and you each day of frustration inches you closer to quitting.
You really want to avoid spending a whole year of your time learning how to solve problems using a programming language when you're not quite sure what you hope to do with it going forward. Are you learning it so you can get a job and make money? Are you learning it cause you want to build the next billion dollar idea? These are crucial parts to consider before ever taking a single course.
Being excited about what you do is an easy way to get really good at it and not being particularly pumped about it is an easy way to fail. So you just got to love it. The thing about love is, even when it gets tough you just want to get it to work cause in the end it really excites you. And if doesn't, well it's probably a sign that you should thread carefully and be sure it's something you want to do.
Now that you've asked yourself all the basic questions and you're at least 87% sure you want to learn how to code, it's time to get started. But not yet...
Before you actually start learning a language, there are few things to still consider
The world of programming is ever changing (as a matter of fact the World is ever changing). As a result, you want to be sure that you're making the right choice and not choosing something that is totally irrelevant to the modern world. For example, you don't want to find yourself learning a language that no one cares about anymore (not calling any names). You want to be sure it's relevant to the world you exist in and to relevant to your plan going forward. For example, if you want to land a big paying job, what languages are relevant to help you land this kind of job?
You want to pick a language that helps you achieve your intended goal. You've identified what you want to do and now is time to identify what languages and concepts help you achieve it. For example, you don't want to start learning a language better suited for Game Development when your goal is to build apps for the web. So this is the part where you spend time researching and understanding the field you're going into and the languages that are better suited for it.
This is tricky as you can easily mistake this for me telling you to learn them all. But no. Take time and research about the relevant languages that would help you with you goal and take it a step further by knowing what they can do. Read articles that explain their capabilities and find gallery of softwares designed with them (use these softwares if possible). This might seem unnecessary, but it gives you a better understanding of just how powerful the languages are and better insight into whether or not they can do what you have in mind and achieve the things that excites you. This is also the part where you learn about the general concepts of how they work and how they do what they do and just how difficult it would be to learn it. Enough said.
Now we know why we want to code, we have an idea of what the plan is going forward, we know which Languages are relevant, we know which of the relevant ones help us with our goal and we understand just how they work. Let's jump right in or not...
Even after understanding all of the above, picking a language can still be overwhelming, but then our decision is easier. Cause now we've cleaned up a whole lot of things and we understand things better. Now it's just a case of starting.
There's no "God programming language" which is to say one has it's edge over the other. We know what we want to do and we just have to choose one that best does it for us.
The thing most people starting out in programming fail to understand is that a lot of the concepts are the same regardless of the language. So learning one eases the process of learning another.
This is the part where it's now totally up to you, you just start learning cause you know what you hope to achieve. This way You're able to choose what you're somewhat sure of and you know just exactly what you're going into. Some people would say some languages are better suited for beginners than others, but the truth is there's really no sense in spending 1 year learning a "beginner" language that has nothing to do with your goals and pursuits. They say no knowledge is wasted, but in my opinion this is a case of time wasting.
A better approach will be to learn about the core concepts of programming like earlier stated. Understanding the general idea around variables, conditionals, loops, data types, functions, etc. If you already have a general understanding of these concepts, using them in any programming language, beginner friendly or not, is easier and you're able to understand what they do better and faster than someone who's just hearing them for the first time when they're taking coding lessons.
My personal opinion.