What programming language should a beginner learn?

For beginners, the question is not so much about the programming language but about the tools that will allow you to solve a given problem and thus to do computer programming (i.e. ask a machine to execute a task in a certain way).

Logic is therefore very important. You have to be able to write by hand the essential steps that allow you to arrive at a given solution (we say write an algorithm in the scientific/computer jargon), for me, this is the most important part of the learning. Being able to break down a complex problem into small, easy-to-solve problems is the ultimate pleasure, especially when it works, you become like a little god (immortal in what you can do). So who are Guido van Rossum, Bjarne Stroustrup, James Gosling and Patrick Naughton in front of you? Simple people who understood what you know now (basics of computer programming).

Logic is like time, it gets out of hand, so be sure to practice regularly to keep your mind flexible.

Now that you are satisfied with your algorithm, you don’t need to repeat it on other problems with your neurons (it is tedious and boring).

The solution is to ask a computer to do it for you, which is where programming languages come in. Basically, they follow the same principles. Once you have learned the basics, you can easily choose a technology to your liking (you have to store around), inevitably you will find one/two that will steal your mind. For me, it’s the programming language python that has gained my interest. I like python because it’s beautiful, a bit like a good cup of coffee that you drink in the morning while watching the sun rise (the pleasure).

There is no language for beginners, but languages that allow you to develop tools that meet your expectations. Depending on your expectations, I recommend several groups of languages to get you started in development. The main reason is that programming languages are tools to meet needs. Here are my suggestions:

  • If you want to create websites, then there is html, css, javascript and php.
  • If you want to create software, then Python is a good choice (even if some people doubt it, but I don’t).
  • If you want to add a database, then there is MariaDB.
  • If you want to integrate software with website and database, then there is Java, HTML, CSS and MariaDB.
  • If you are working in a field where numerical analysis is intensive, then there is Julia and the languages of which Julia allows direct import of codes, Mathlab, Mapple and an infinity of languages. The importance in choosing a language is the presence of libraries that meet your needs.
  • If it is out of pure curiosity or you have no idea, then Python is a good choice.

Personally, I advise you to start with the easiest, and most requested. Web development. In order: html, css, javascript. From there, you can continue on “front-end”: Angular, vue, node, react, etc. or on “back-end”: PHP, C#, MySql, MS-SQL, etc.
I know that many people will tell you about other technologies (Python for example), but it will take you more time to be efficient and to pretend to pass job interviews, or to take on freelance projects.

There is often a misconception of computer learning by classifying difficult languages vs. easy languages, or beginner language and pro language. However all (high level) languages have similar principles and are fairly equivalent in performance, and often evolve by borrowing syntax and programming methods, and are accessible (as long as they are open and documented). Even if they have different learning difficulties there is no decisive advantage with one or the other.

From this point of view there is no one language that “must” be learned. However, in terms of motivation, learning a language that doesn’t have many libraries or api is quite boring. In this case we find in first place python, javascript, but also java (with android) (or swift for apple). But more than a language, you have to appropriate an ecosystem (ide api etc) and a “culture”, and many fashion effects can lead to a lack of pragmatism to become a dev.

The preliminary question is thus in which goal do you wish to learn programming? it is necessarily necessary to initially consider the opportunities which you have (or wish to have), to learn a language does not replace the practice of dev and the comprehension of the trade which is related to the dev, to learn the python does not have value in being, so much the applications can be vast and correspond to different trades, with the final the language which it is necessary to learn and that which “falls to you”.