In the recent years programming has become more and more popular. I think this is quite counter-intuitive, since most young people actually have less and less knowledge of computers. Nevertheless it seems that due to easier access to computers, the power of the Internet and other things like smartphones, it is easier to attract somebody to programming.
A question that often comes up is "what should be the first programming language?". After all that seems odd, since most programmers never thought about it - they just learned some language. Maybe they sticked to it, but most likely they also learned others. Maybe their first language is their favorite, maybe not. Maybe they still earn money with their first language, maybe not. In the end everyone will find out that a programming language is just a tool.
So what is the best first language then? Anyone who thinks seriously about programming should learn C. Of course it does not have to be the first language, but eventually one will find out that knowing C very well, actually helps understanding a lot of concepts. No matter if one sticks to a managed language, if somebody knows how memory allocations work and how instructions get executed, it is easy to understand trivial languages that build upon those things.
- JS runs in the browser and this will result in a very easy way to share work (even across platforms)
- JS has a C like syntax, which means that any transformation from this language to C/C++, Java, C#, ... will be easier than from a language without a C like syntax
- JS is quite popular, so finding tutorials and help is easy
- And finally JS is the trend language of the last years, so it is certainly a good starting point
Needless to say that JS allows programming for any environment (client, server, ...) and is a great abstraction. With the help of the browser it is really amazing how fast a novice can create something that could be shown.
Finally another language that I could recommend (and now it comes...): Java! Why? Maybe you expected C# here, but in my opinion Java is in a certain way more strict with OOP than C#. Of course one should only start with Java to end with C#, however, in my opinion this is important - you need to learn how to walk before you can start running.
This is all quite personal. I myself started with Perl and looking back, I wouldn't do it again. Nevertheless it was an interesting language and it had a lot of interesting concepts. The beauty of it is, that I can now appreciate these concepts, with my knowledge about all the other languages like C/C++, PHP, Python, C#, Java, ... you name it! Therefore: Don't think about it for too long. Just pick a language, learn it and then pick another one if you wish.