It might also be a good idea to wait for Will (m125 boy) to drop by and comment. He know everything about computers.
One of the mods says I know everything about computers! It must be true! Yay!
Honestly, I think Java is a lousy language to start off with. I think it is lousy in general, only having an advantage in the "write once, run anywhere department." Too bloated. If I can't run a simple program on my p233, somebody needs to clean up their code. There is no serious number crunching going on with most things.
If I were to learn programming from scratch, I would learn asm first, just to know how things work at a very basic level. You learn about registers and such. How a computer processes data. Memory access. You don't even have to get all that into it. Just understand the basics enough so you can see the abstractions on top of it. Oh yeah, Stay away from x86 asm if you do go this route. Go with mk68k. Much easier. x86 is hell without a compiler to hide the strange querks in the kludged arch from you.
Next, I would learn a higher level procedural language, like BASIC or Pascal. I would avoid BASIC because it will get you into bad habits. Pascal makes it harder to write bad code than most languages, so it is a good teaching language.
Now, for the modern programming stuff. Learn an Object Oriented language, like Java (EEEKKKK!!!!), C++, or ObjC (showing my MacNESS right there). I think C++ will get you further in the end, but hey.
Of course, if you just want to learn how to do simple programming and you aren't that serious about it, take a Visual Basic class. It will probably be much easier for you and you will end up learning more about programming techniques.
Besides, I have never seen a Java class for the beginner to programming.
(This incoherant rant brought to you by the letter ∂ and the number
e)