There are some good suggestions in here, I agree fairly strongly with what both rob05c and Dendrophobe have to say.
Only problem with Python is that it might seem quite daunting to newbies, also nobody seems to mention Lua. Lua is like Python and Javascript combined, it was also very helpful to help me understand how programming languages worked. Lua can also be embedded into many other languages like Java and C, which is why it's the most used scripting langauge for game programming Although not very powerful on it's own, it is super easy to use and makes use of keywords instead of special characters. I had great fun with Computercraft on Minecraft Faction servers being hired into the powerful factions as their programmer :D
I didn't mention Lua for a couple reasons. #1 its Objects are abysmal, and Object Oriented programming is important to learn. #2 everything is a map (table). That's fine for scripting, but not for learning. Learning data structures is important. #3 its library support isn't great. It doesn't need to be for its primary purpose, embedding. But learning, at some point you're going to want to write a GUI or web server. Lua has 3rd party libs for these, but they're not nearly as common or well-supported, and hence not easy. Lua is a great language for embedding (and disconcertingly fast), but it's not going to teach you a lot of fundamentals you really need to know. That said, if you want to write a WoW or LuaCraft thing, by all means, teach yourself Lua and do it. Having fun is the best way to learn. I agree, both Python and Ruby have a lot of features learners don't need to think about. But I'm not sure there's a better language. Basic comes to mind, but Basic has some dreadful stuff. Goto? On Error Resume Next? Do not want. There's a reason VB has such a bad rep. Alternatively, you can just dive into Java. Alternatively, start with the SICP and Scheme and get a reputation as a misunderstood genius (I'm kidding – don't do that).Python is that it might seem quite daunting to newbies