This truly depends on what you plan on doing with the language once you learn it or are learning it.
All true programming langauges will help you with the basic fundamentals of programmig, learning to think like a programmer in a logical way. In most cases learning any computer any language will assist you in learning more languages in the future.
However, I disagree with some of the previous answers saying "learn <insert languge here>". There will always be a langauge that is more suited for different applications. If your passion is that you want to make web pages or do something with Internet technology there are langauges more suited for that which wont be useful if you want to make PC video games for the commericial market.
Even colleges will teach the basics at first such as a PASCAL, COBOL, FORTRAN, C/C++, etc. As you make your way through college and steer your classes based on your desired career you will begin to learn more advanced programming using the langauges typically used in that field.
So ask yourself what you want to accomplish with learning a programming langauge as there is not a general langauge best for everything.
When I was 12 years (early 80's) I had an interest in video games and I began learning BASIC as that was part of DOS and no other place to start. BASIC helped me understand programming however, I only used it for 1 or 2 years before I moved onto C. C langauge is what other companies we starting to use and so I moved on to it. I have been making video games for 18 years, the last 12 professionally and I have used C/C++ during that time. Overall, I know very little about BASIC and would rate my level as a 3 or 4 on a ten point scale. Being an expert at BASIC or Visual Basic wouldnt help me in my career.
Most people today think by learning the easiest and/or newest langauge out there (.Net or C#) is the way to go, and they are wrong in my opinion. In particular, Mircosoft tends to make things easier and easier to develop applications by providing things like functions or procedures for you so you. What are you learning really? Your learning how to program their way and when they make a change you follow their path without a clear understanding of what is going on behind the scenes.
Just like today people are use to using operating systems like Windows XP and have no idea what DOS is or where Windows actually evolved from. I am not saying everyone should use DOS as it is way passed it time. The point is learning the easiest langauge and relying on game engines, programming SDK's, scipting type languages, or anything where some other programmer has done everything for you will never make you the best programmer. It will only make you a "slave" to what they decide is the right way.
Of course, all this is just my opinion and others may disagree I just know how I evolved and what worked for me many years ago. I have no college degree and only attend college for 1 semester back in 1991.
Note: I am not saying anything negative about going to school I just went a different path and I am drawing my opinions from real world, hands on experience.
Lastly, one thing you can do is look for job postings on the Internet and see what employers are requiring for specific positions. A game companies will generally have C/C++ & DirectX requirements where companies doing e-commerce will require langauges such as Java, .Net, and HTML
HTML/JAVA = Web pages and basic internet development
C/C++/Visual Basic = Application development
This link might help to: