There is a school of thought that it couldn't matter less which programming language is chosen as one's first programming language. The official position of a well known internet community dedicated to programming is that:
- No programming language is designed to be beginner friendly.
- One will not use their first language to develop things worthy to be published, instead one will only use it to learn basic concepts, therefore arguments such as "to do X you may use Y, but A is instead used to do B" only provide cognitive overload for beginners.
- There is no reason to believe that the choice of the first programming language impacts the effects of learning in any way, so the whole discussion is groundless. (Mods say they will only consider differing opinions on this point if scientific papers are brought to support them)
Therefore, the said online community bans asking questions like "Which programming language should I pick to learn how to program?" and if such a question is asked then it bans giving any answer other than "It does not matter; pick absolutely any, flip a coin if you like, and stick to this choice".
Intuitively I find this position surprising? I would say that:
- Some languages have significantly more gotchas than others. C or C++, in particular, have numerous unobvious rules which, if violated, result in UB. It can easily happen that a program starts misbehaving after a seemingly innocous modification in code is made because of hard to spot UB introduced somewhere else. This seems to be a horrible and a very frustrating experience for beginners.
- A person interested in doing a particular thing might want to be able to scratch their first, even very rudimentary programs in this field. For example, contrary to what is claimed above, a person interested in doing gamedev might be far more interested to scratch their first simplistic games in Unity3D than learn lots of stuff that is too abstract and too unintersting for them because due to the lack of domain knowledge they chose ASM as their first language (since they were not told which lang is good for gamedev, but instead they were told to pick any random language).
Is there any reason to believe that the choice of one's first programming language matters at all?