I think C or C++ is a good place to start, personally. A good chunk of the popular languages are based off C, so it makes it quite easy to learn more from there.
It kind of depends on what you would like to be doing though. Unfortunately you can't exactly say "Language A is best for Application X". Let us know some of the things you'd like to be programming, and we can give you further suggestions.
I will still advocate java or C# as a first programming language, as it abstracts a bunch of the complications of lower level languages (C, C++) and lets you focus on learning design principles.
That said, C and C++ are still great languages, and if you are willing to put it a bit more work from the get go it can be very handy for understanding what these higher level languages are actually doing and thus learning new languages in the future.
When I first started programming I used Java, but once I got in college it was all C++ from there. It's very straightforward, is easy to learn on your own and the concepts of C++ are very good for beginners of any programming.
The downside to C++ is that while you're learning a lot of the programs you might write will never be used again or are just for practice. Whereas, with other languages (such as css, html, php) you can begin at one point and grow off that initial beginning. Ex: making a web page, then an entire site, then enhancing features, etc. Basically, you get to see results to your hard work sooner.
In the end though, C++ is probably the best place to start. The things you'll need to program are a compiler (where you write your code and execute your program; I recommend visual studio if you can get it for free) and a book (I find its easier to learn from a book than if you download a PDF/web tutorials). For the book, I recommend the 4th edition of Programming and Problem Solving with C++ by Dale & Weems.
Programming requires a lot of understanding, patience, problem solving, organization and patience. It's definitely a good skill to pick up and allows you to better understand how a computer works too.
If you end up learning C++ and ever need help feel free to shoot me a msg.
C# is an excellent alternative as well, however not quite as open as Java is. I'd say either is worth checking out.
If only it still made sense I'd have said start with Pascal. It forced you to do things right. C is an amazing language but depends on you having the sense not to blow your own foot off, Pascal just plain would not allow that sort of silliness.
I'm surprised people have not made more of an issue of the procedural / object / event driven models the languages use. It makes quite an influence on how easy it is for a beginner to switch to another language.
I was going to suggest Pascal and then thought people would just laugh. Many of us cut our teeth on the original Turbo Pascal; it was rigorous enough to be a good foundation in programming, particularly when compared with the BASICs of the time, but simple enough not to be confusing. The original Mac OS was designed around Pascal, as were the Windows APIs.
Pascal reached it's Zenith with Delphi, which I guess still exists but is not exactly widespread nowadays. And if you want to try your hand at writing a compiler, Pascal is a good target language to start with.
Now, as a complete aside, let me suggest a language that no-one has mentioned - Smalltalk.
Oh man! I'm getting flashbacks to the early 90's... (perhaps telling of what the other areas of study were in my Uni days )
I went to uni on a joint science scheme, looking at doing Environmental Technology. Pascal was my first real foray into computing and was the biggest driver in me ending up in IT.
I still remember using 10 disks and pkzip with the span option to 'acquire' a copy to work on at home for the late night assignment specials. I still support a Delphi app today, powered by an Interbase back end. It gets the job done and with far less trouble than the more modern products we have. People forget just how much of a hold Borland used to have on the market and how much infrastructure still depends on it. Pascal, Turbo Pascal, Object Pascal then Delphi, that language just grew and grew.
For instant gratification I have to say that VB is hard to better. I compare the basic sorts and other functions I used to write in Pascal to the access db driven diary application I wrote in my two day VB 3 (yes I really am that old!) class at work.
I guess it's a question of what do you want to learn, how to program or how to use an API to get stuff done. Both approaches have their merits.
That must have been a posh TP. The first one I used (the first Turbo Pascal) comfortably fitted on a 360K 5 1/4" floppy disk, with room for a program or two.
I'd still rate Pascal as a better first language than any other. With a good foundation in Pascal the other Algol descendents (C, Java, C#, etc.) are far easier to get to grips with. Delphi, in particular, would be a great introduction to Windows programming and OO concepts.
If you want to be a web developer you can study PHP.
PHP is server side scripting, not really web development technically (although it is REALLY useful). Imo, the arsenal every web developer should have is HTML, CSS, and PHP. Pretty much anything can be achieved from here. It's definitely beneficial to know more on top of this however.