I personally taught myself to program, going from C to a bit of C++ to VB to C++ to Java to ASP (with Javascript and VBScript, both), to now Scheme (a LISP dialect).
That being said. Any programming text that starts with C++ or Java or any other language is going to start with basic functional programming. Not even touching on Object Oriented code. For functional programming, pretty much any language will suffice. Visual Basic or VBScript are probably your best bets due to accessibility. Javascript might be a better choice, as the syntax is closer to that of C/C++/Java.
After you've started getting the hand on writing code in whatever functional language you choose, then start worrying about Object Oriented programming -- but at the start, don't worry about GUI displays or MFC or ATL or anything more than simple text output. Just get down the way of THINKING about programming. For that reason, I would almost certainly recommend staying away from Java. As someone else said above, it's far easier to go from C++ to Java than vice versa -- after all, it's a lot easier to learn NOT to worry about something than it is to learn TO worry about something.
You might even want to take a look at Microsoft's new C#. Nah, forget I said that.
So I would recommend starting with JavaScript, do some client side scripting. There are a lot of tutorials on that. After that learn some basic C -- the two will seem very similar, just adding a compile step. From there, go on to C++ -- the jump from C to C++ will just require you to add OO to your repertoire, and maybe make a few other adjustments. From there, the jump to Java or VB or any other language should be easy.
Good luck!
Andrew
PS: There are TONS of free compilers available on every platform. Borland has released theirs for free, and Microsoft has a cheap introductory version -- you just can't sell the finished program. There are other compilers also available. Good luck. Check out lcc-win32 , from Bloodshed, I think it is.