The languages that I have used, with some comments:
BASIC: Fun when I was 10. Not very useful.
C: Frustrating to get used to, but it's the paradigm that many language syntaxes are built on. If you learn C, you can learn anything else (and breathe a sigh of relief when you use a more advanced language and don't have to worry about malloc()-ing everything anymore). C was my introduction to compiled (vs. intepreted) languages.
C++: Slightly less frustrating than C. Slightly.
Fortran: Hated every second of it. The only reason this language still exists is the massive amounts of legacy code being used by the aerospace industry. It is clumsy and pedantic. Fortran fans extoll the virtues of Fortran for mathematical calculations; however, every mathematical calculation I can think of would be easier to implement in C. And that's saying something.
JavaScript: Limited to web design, and confusing as all get-out. It seems features were added pretty much randomly, whenever Netscape felt like they were needed. Very inconsistent (but very necessary, if you do web design).
Java: Everything is an object. Programming in Java feels like playing with LEGOs! Good if you want to learn OOP principles fast. Less confusing to learn than C++. However, as noted by everyone else, Java is going out of style.
Perl: Perl's highly-flexible syntax is a blessing and a curse. You can write your own programs in a few short lines, but good luck trying to read anyone else's. Very useful if you do text-processing. I have always loved Perl's regular expression engine, and used it extensively. Perl is useful for Web applications as well as standard command line stuff, and can draw GUIs well enough.
Python: Had to use it for a class, didn't really get into it (I was on a Perl kick at the time). But it's quite useful; does everything Perl can do, with a much more consistent syntax.
Lisp/Scheme: Lisp is a programming language from another planet. It is what's known as a "functional language", which is a drastically different paradigm than the procedural style of C-like languages (i.e., most of those listed above). It is an implementation of Church's
Lambda Calculus, which means that functions execute according to parenthetical nesting, rather than proceeding down one line at a time. It's a highly mathematical structure, and I found it very beautiful, but it took a bit of thinking to figure out how to do things, because I was used to the more procedural style of other languages.
PHP: As mentioned, this is for web design only. Not recommended as a first language. It's also rather inconsistent, especially across versions, which is frustrating when designing web applications that might end up running on PHP 4, 5 or 6. The language is slowly approaching a structure that makes more sense, but most web hosts are a few versions behind. The worst thing about PHP is that it can't make up its mind whether it should be strongly-typed or not; in many ways, it would be more useful if it were. As it is, types get converted between each other on the fly, and often with unpredictable or undesirable results (is some variable an empty string or a zero, or a string containing the character '0'?, etc.). On the other hand, it seems to be pretty easy to throw things together with PHP, until you run into a situation where you actually care what type something is and/or how something is being interpolated.