If you open any forum for beginners in programming, this question will likely be at the top, as it is asked just about every day. The most common answer is almost always: "It depends on what you want to do. If you want to code games, it is going to be one programming language, websites - completely another family of languages, if you decide to work on mobile apps - a third language, etc." As simple as that is, you get overwhelmed with an answer to the very first question you had. And it only gets worse from there. After reading about different languages, you discover that there are also libraries, frameworks, etc. The result is: you don't know where to start, and each next question only gets you deeper down the rabbit hole. Sound familiar? Then let's together figure out how to navigate in the tech field.
When talking about programming, I usually divide all of the topics into the categories: problem-solving and language knowledge. There are endless debates on the topic of what is more important, what to ask at interviews, and what to learn first.
Have you ever heard what they ask at the first tech interviews at MAMAA(Meta, Apple, Microsoft, Amazon, Alphabet) companies? It is usually some algorithmic task. Have you thought about why? Because problem-solving skills tell more about you as a programmer than knowledge of languages or frameworks, like React or ASP.NET.
You can think of your problem-solving skills as a required base level that is needed independently of what language or technology you are going to choose.
So if you are just starting in programming and have never coded before, start with problem-solving. Start from the simplest possible puzzle to bigger and more sophisticated ones. You need to understand "how a computer thinks". This usually takes anywhere from a few weeks up to a few months. After this time you already understand what programming is and what it means to write code.
The Matrix | Warner Bros.
Focusing on problem-solving means that once you learn any language construction, play around with it, learn the simplest algorithms for this structure. At this stage, your mission is to train basic problem-solving skills, not to dive into frameworks and libraries. Try to stay away from them until you understand what that heck "coding" is.
You must code a lot at this stage. As soon as you learn a new construction or concept - it is necessary to have 5-10 exercises on it.
One of the biggest problems at this stage is that practical tasks that you find online on random websites include language constructions that you have not learned before. You need to build your education process so that once there is a new concept, it doesn't come with 10 side-concepts that you have never heard about. This is why we created Codeasy - to help you to navigate programming theory with practical tasks that are based only on the previous lessons. The main focus goes to train your basic problem-solving skills through C#. You can try it yourself!
The Matrix Reloaded | Warner Bros.
After you get a grasp of what programming is and learn the basic constructs like variables, conditions, loops, simplest data structures, and types - it is time to go back to the question: what is the best programming language for me?
Look closer to the front-end type of programmer. This includes but is not limited to :
In this case, a data analyst, statistician, or machine-learning expert could be a way forward. Consider these languages:
Here are some pointers on the programming languages:
And please remember: the choice of programming language is NOT final. Software developers usually never stick to one language throughout their careers. Once you know one language, it becomes much easier to switch to the next one because tons of concepts and approaches are shared between languages.
Elena Eliachevitch / Getty Images
Problem-solving skills and programming language knowledge are two categories of skills you need to learn. Problem-solving skills are essential, so start with mastering them with any programming language; don't look for a perfect one. It will help you to understand what programming is. Once you grasp the basics, ask yourself what type of programs you enjoy developing the most, and choose the language accordingly (see the categories above). If salary is a significant factor for you, consider also checking vacancies and salaries. Market demand can shift your choice quite a bit.
Best of luck with your language choice!