I've read over the answers given and most have merit -- so, here's my opinion and hopefully not a rant. :)
Number one, the big question is what do YOU want to do? What type of programming are you interested in? Web based, scientific big iron number crunching, embedded, industrial control, mobile apps, you get the idea. This choice will often help narrow the field of languages (maybe even making the decision for you) and changing here means possibly changing your target choice.
There is so much activity in the language arena these days if you try to stay up on them all (heck, or even a few of the most active ones) you will never write the first useful line of code, let alone finish an application. In all likelihood your chosen language will have some sort of morph before you get to the end of any reasonably sized app anyway.
As previously mentioned, being a good programmer is really about how you think; the actual language is a secondary consideration -- (so here goes with the meat of my opinion, lol) ... aside from the causal perusal of languages and how they address issues, my opinion is to chose a language, or group of related as in the case of C#, T-SQL, HTML, etc., and get really good to the point where you can think about the problem and not about the details of the language -- as it would be at this stage your creativity and energy is channeled directly at the problem to be solved.
just my 2 cents ...