Other good languages for learning to program include Lisp, SmallTalk, ObjectiveC, and Perl.
Perl is good because it has a very low bar to entry and encourages regular use by being very accessible, providing a very shallow learning curve. A shallow learning curve is important, of course, because it doesn't discourage the user, and Perl is a good programming language for ease of learning where something like C# isn't because Perl doesn't depend on drag-and-drop development to make the learning curve shallow (nor is it a mess of nasty the way VisualBasic is). Despite being shallow, though, the learning curve goes on forever. There's always more to learn.
SmallTalk is good because it's essentially the canonical object oriented language. If you want a relatively entry-level language to learn, but want it to be object oriented, SmallTalk might be for you. The downside to SmallTalk, of course, is that nobody uses it for real world applications. This isn't because there's anything wrong with SmallTalk: quite the contrary, SmallTalk would be excellent for many things. It just didn't get the hype that things like Java have gotten, so it has largely fallen by the wayside.
Objective C is a good language to learn for a number of reasons. For one thing, it's one of the best implementations of object oriented programming available. It essentially grafted SmallTalk-style object oriented programming onto the C language. The more common OOP language based on C is, of course, C++, but C++ is a messy kludge with some very schizophrenic issues. It's still a darn sight better than Java in many ways, though. In any case, Objective C also benefits from being a direct extension of C, rather than a reworking of C like C++ and C# are, so that even though it is not nearly as widely used as C++ it still teaches you a language (namely, the C programming language) that is fundamental to everything. The kernels to Linux, Windows, and MacOS X are all written in C, and it's hard to beat skill with C with the added benefit of a good schooling in object oriented programming. Additionally, pretty much all application programming for MacOS X is done with Objective C (using the Cocoa IDE). There's also a Linux implementation (called GNUstep) of the Objective C environment on which MacOS X is (in large part) based as well. This, along with Perl, is one of my favorite languages.
The Lisp family of languages is exceedingly good for learning programming because it is based on very elegant, well-structured design. In this manner, it is somewhat similar to Pascal, though there aren't too many people who would call Pascal "elegant". Lisp has more focus on the elegance, and Pascal on the structure, I suppose: both are quite valuable. Learning how to program in Pascal teaches you how to structure your programming, and learning how to program in Lisp teaches you how programming should look when it's done well. It's very difficult to get the point across without just telling you that you have to experience the difference for yourself, I guess.
There are people who swear by Python as a good starting language, but I disagree. It teaches structure better than Perl, I suppose (since Perl is the Swiss Army chainsaw of languages: you can do anything and everything with it, including patching your kernel in five lines of code, or lopping off your own leg with one misstep). Perl allows you to use or not use structure as you wish, and thus places the burden of learning good programming structure on other sources (like a good book about programming practice). Python teaches structure, but it teaches the structure of Python specifically, which for my tastes at least is worse than learning no structure at all. If you want a starting language that teaches structure, go with Pascal instead.
PHP offers one of the lowest barriers to entry to the language, and one of the shallowest learning curves, of any language worth learning. I say "worth learning" because something like JavaScript or VBscript is [b]not[/b] really worth learning: what you need to know about either in any given circumstance you can figure out while you're doing it, if you have programming skills in general, and you can safely forget it the next day. PHP is nearly that simple, but much more powerful, and as such is a lot more suitable for use as a first language than something like JavaScript. I wouldn't recommend it as a first language, though, because it is essentially guaranteed to teach you bad habits that you'll later have to unlearn. Take it from someone that has made the mistake of learning more PHP than anything else: unless PHP is pretty much all you'll use, ever, you should definitely learn something else first. It's quick and easy, but these are not always the best characteristics for a language to have.
Keep in mind that I'm not exactly a guru with any of these languages. I don't consider myself a programmer at this time: I just have programming skills. I know quite a bit about the theoretical benefits and detriments of various languages, though, as I do about a lot of other things, because I've spent more time learning the principles and capabilities of technologies than I have about the specific implementations of these technologies. This is the way of life for a dedicated consultant.