There are a number of reasons to learn C++, but as a first language it's an awful choice. A language that is conceptually simple but powerful enough to support enough high level abstractions for you to, you know, actually learn how to program is what you need. Scheme is IMHO ideal (and MIT agrees) but if you'd rather learn something cool and modern or whatever, Ruby or Python are reasonable choices. Stay away from Perl until you know how to program properly otherwise you'll learn bad habits. Oh, Smalltalk is worth a look too. There's a neat implementation of it at
www.squeak.org.