I see a lot of recommendations for Visual Basic here. I personally have no experience with it, but I've always kind of stayed away from it because of this Edsger Dijkstra[footnote]important computer scientist and Turing Award winner[/footnote]: "the teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery."[footnote]http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD898.html[/footnote]
In order to recommend a good language, I think it might help to know what someone actually wants to get out of it, and what s/he would like to make. If you spend a lot of time on the internet, it is probably interesting to make a website. If you really like mobile phones, maybe you'd prefer to make an app for that. If you like a particular game, you might be able to make a mod for it and there are also game editors to make simple games "from scratch".
I think that as long as you are smart enough, one of the big "dangers" in learning to program is just losing interest. Therefore I would always recommend that you do something that is fun to you. If you don't mind doing something with no real practical applications, you could also participate in programming games such as Robocode [http://robocode.sourceforge.net/].
You can learn the basics of programming from almost every language, so I think it is more important to consider what you want to do. If you don't really have ideas about that, I would suggest taking a language/environment that is specifically designed to teach you to program, such as Greenfoot [www.greenfoot.org/].
If you can avoid it, I would probably stay away from low-level languages such as C and C++ (unless you need them for something you really want to make), because they can be fairly verbose compared to higher-level/scripting languages like Python, Ruby and Scala.