This is a question I see over and over again that seems to spark a debate amongst veteran Developers. It is a valid question in my opinion. When I started Programming in the early 90’s there wasn’t a lot of options available to you. I started with Visual BASIC because it was the only book at my local library targeted at teaching Programming to kids in an interesting way.
The first programs that I wrote were barely programs at all. They had no graphics and you could only use them in the Command Prompt. The reason why I took an interest in Programming was because I wanted to learn to make games. Although I wouldn’t get into programming anything graphical until much later, my games ranged from “Guess My Number” to a Battleship-ripoff to my “Magnum Opus” which was a text-based Adventure game.
The reason I rambled on about my early experiences with learning how to program was to illustrate a point. I didn’t set out to specifically become a C Programmer or even a Visual BASIC Programmer. I had a problem to solve: I wanted to make my own Computer Games. The reason why I picked Visual BASIC was mostly out of necessity, but also because it helped to achieve my goal faster and in a more direct way.
If I had picked up a book on C++ or Assembly language, I would have spent an inordinate amount of time learning and figuring out the minute details of how Computers work and use memory. More importantly, my 9 year-old brain probably wouldn’t be able to stay interested long enough to finish a game since I would be spending time debugging and fixing memory leaks.
To come to my answer to the question of which is the best programming language to learn first after a long-winded discussion I would say that it’s the wrong question to ask. Even if you know you want to be a Developer, learning a Programming Language is and end in of itself. The better question to ask is what problem do I want to solve?