Nowadays there are some researchers who claim that the English language would be the ultimate programming language you would learn. I apologize, since the post title was created with the intention of being a bit of click bait to catch your attention, trying to allude to that claim.
The purpose here is not that, far from it: it is to discuss, among the many programming languages that exist, which one would be the last you would learn. We have dozens (maybe a couple of hundred?) of programming languages, each with its own particularities and paradigms, but mainly with different levels of adoption and use within the industry.
Therefore, it would be reasonable to tell someone who is just starting that they should learn the most widely used, popular, or adopted programming language and that this would define their career for many years. In “many” cases this is quite true, but in many others, which I have witnessed (and been part of), it does not work that way.
Which programming language to learn?
To start programming you need to learn a language, there is no way around that. And at that moment, someone new who wants to enter the field faces an infinity of languages and wonders which one to learn. They will search the internet for answers but often end up with more doubts because, as I mentioned above, many will say to learn the most popular language because it will guarantee you a job; others will say that the easiest language to learn is the best (and there are “many” languages that are “easy” to learn); and so on, each person will give you N reasons to learn one language or another.
Since you are on the internet it could not be different, I will give you one more reason to learn programming language X. Just kidding, my objective here is not to convince you to learn one language or another but to show that, for the language you choose to learn first, there are many possibilities; it will not be the last one you learn nor even the one you use throughout your entire career.
Language does not determine your thinking, but it can influence your thought patterns
There are many discussions about whether spoken language influences our thinking or not and I do not want to enter that debate, because it would be a long, complex discussion and does not fit here (Linguistic relativity).
The point I want to discuss is how much a programming language can influence your logical thinking or not and if that could indeed be a limiter in your initial choice, leading you to choose another or other programming languages throughout your career until you arrive at a language in which you feel comfortable and that “meets your cognitive needs.”
If it is true (and let us take it as true) that a language will influence the thought patterns and the logical mode you develop, then it is reasonable to say that the language you choose to learn first may not be compatible with your way of thinking and the way it tries to shape your logical thought may limit you so much that it becomes a terrible barrier for you (perhaps a discomfort), bringing unnecessary cognitive overload.
Thinking in this way, a programming language similar to your way of thinking or closer to how you think would be a better choice and probably simpler to learn and specialize in.
Many languages, no choice
As I have already mentioned, there are many programming languages. What we need to consider here is that each one will have its peculiarities and these can also influence the way you think or block you. Another important point: if you have already studied some languages, we can “define” groups of syntax and paradigms in order to group and identify similarities with what our cognition would already be “used to” or what seems more comfortable for you.
In other words, if we separate programming languages into groups, we can assess whether that group satisfies our cognitive needs on various levels. The SonarQube team suggested a type of metric called Cognitive Complexity, which measures how complex a code is. If we extrapolate this idea to our objective here, which is to choose a language given the influence it would have on our cognition, we should choose the group and, consequently, the language that contains the lowest cognitive complexity for us.
This implies that this language or group may not be the most popular or the most used.
Therefore my point here is not to cling to one language initially but to explore the existing options and see which one fits your way of thinking best.
Considering this idea of language groups, for example C and Java, they have differences, particularities and distinct paradigms; however, in terms of syntax, they share many similarities.
Experiment, do not stick to one language
To conclude, and I think you have already understood my point, experiment with different languages, try to separate some languages into groups based on characteristics you know or those I mentioned above and try to understand in which of them your cognitive effort is lower, the one in which you feel most comfortable.
If you do not know where to look for programming languages, you can start with the TIOBE site, which has a list of the most popular ones, or the Alphabetical List of Programming Languages.
You will certainly see that there is a whole world out there and, for those already in the field, I suggest doing this as well. Knowing other languages can open paths and perceptions that you did not have before within your own language or, who knows, help you find the last language you will learn 😉.
Thank you and see you next time!