Hard to say where the best place to start would be. I started with languages that we're not object oriented back in '89.
I'd hate to tell you just right into C++ if you've never written a line of code, it might be a little over bearing. There's also a lot that can be done in C, especially in Linux. That would be a good start, it can do multithreading and if you use linked lists, that would be a good exercise in learning to malloc and free your own memory. It's hard to learn something without difficult goals that are applied to something real world. Internships are a good thing to get your feet wet if you can find a good company. IMO, experience is critical in this field. Once you get comfortable with many languages, new languages will come easier.
I am doing mostly web development now, I haven't done anything in a real programming language in a while. Sometimes there are a few odd ball projects that come in. Last I did was a 3 phase monitoring project that I had to cross compile the code to run on a Power PC. But frequently, I'll have to script in Perl, write some Javascript, write a little HTML/CSS, then get into some ASP, spend some time on database design, etc, etc. I've done some .NET as well, C# is pretty much a mix of C and Java. I try to stay away from VB/.NET and ASP as much as possible. But they are easy to understand.
I see Java jobs everywhere. The reason they're probably constantly looking for someone is that they might be having trouble finding someone to maintain the big heaping pile. This is called a WTF. Personally, I hate Java. There is too much over head, it's too slow and sometimes you can run into some strange bugs.
Pete