To answer your question you have to ask yourself what your goal is. If you are truly interested in the craft of programming, and want to invest your time into the practice virtually every day my recommendations will be different. If instead you wish to use programming as a means to an end (i.e. in scripting applications such as Unity or Maya, or building basic mods) then, again, I would suggest a different route. If you are wanting to become a programmer just to say "I am a programmer" and because you have misconceptions about the sheer amount of work and dedication it takes to be a true developer in this world - then my recommendation would simply be to not try.
The first things you will need have nothing to do with programming. You must be a person who is able to take large ideas and serialize them into concepts that can be instructed of a computer. You need to be able to learn what your client's needs are, and to understand the utility of what you write has. Often times clients do not really need what they ask for - a good developer will be able to extract the true motivations of a person, and have the honesty required to suggest the proper solution. You need to have excellent (far above average, if average is to mean what one would find on their Facebook wall) written communication skills. You will need to be able to learn quickly on your own and with little direction from others. These skills aren't always something we're born with - and often times, programming itself can help you hone them. But don't ever think that these are unnecessary to become a good developer.
Finally what you will need, and what you may develop during your initial learning, is a love for the craft. Many developers (and I exclude those who do not program professionally, as I do not expect them to put the same emphasis on programming as someone who derives a paycheck from it) these days are not developers for the right reasons - and their egos and carelessness manifests itself into poorly conceived code and hardly workable solutions. The quality of most code is completely lacking, yet nobody seems to care much. A building's architecture and elegance is visible to everyone - but a poor piece of code will only directly affect the developers (though it will, invariably, and I stress this, affect the users).
Once you understand this, and understand that this is a rather serious industry that is slowly being destroyed by developers who shouldn't be - where you should start depends on your goals.
If you want to immerse yourself in development, I'd suggest to start with C++. C++ is a pretty decent language for modern development, and is used very commonly for game engines. C, it's predecessor, is also widely used for low level and embedded development. Microsoft is going to enable C++ developers more than ever with Windows 8 - so it's not a dead language at all. The reasons why I suggest this language have more to do with the way you write it and interact with the computer using it. It isn't a trivial language to learn, but it emphasizes some of the most important aspects of communicating with a machine. You will spend a lot of time in the console - and this is expected. Even though you can set up a GUI in C# in minutes, would you really understand and appreciate the process if you didn't have the proper background? C++ can give you that background, and provide a very marketable skill in the process.
From C++ you can move into pretty much anywhere. If you like embedded development, you practically already know C. If you want to move to Windows application development, C++ itself is good, although currently C# is the better language for that (again, Windows 8 may change this). C#, ontop of the ASP.net platform and ASP.net MVC framework, is a good choice for web application development. You'd pretty much be free to choose your path at that point, and you'd have the knowledge and experience to make the right choice.
If instead you wish to be a scripter and simply have the capability to interact with the software written by others - C# isn't a bad choice. C# is a very decent and modern language - though I doubt that as a scripter you would be exploring the many paradigms it exposes though it's versatile syntax. However, it will give you a good background for the basic concepts of programming, and would open yourself up to Unity development. Moving from C# to a "true" scripting language is trivial.
I would venomously advise against VB/VB.net. It is a terrible language that encourages ignorance and teaches bad practices. It is targeted quite specifically for non-programmers, and as such, it suffers. I would also advice against Java. Java is a decent language, but it's quite simple and bland. It's clearly designed for average developers who aren't interested in the advanced and powerful paradigms exposed by a language like C#. That's not to say that many great developers don't use it - they certainly do. But I simply wouldn't recommend it as a language to learn first.
Again - if you do not have the intention of taking this seriously, then simply don't bother. You started this thread, which is an indication that you want to explore it - and I encourage that. My last comment is simply trying to emphasize the time requirements it takes to be a good developer. Anyone can learn how to write garbage code in a matter of days. But it takes true dedication and effort to get to the point where another developer would take you seriously.