I'm gonna have to come down on the other side of the coin and say: don't learn Java. Instead, learn whatever excites you.
Personally, I learned a ton while programming games in high school. Mostly C and C++, nasty and hardcore stuff that really put a long distance between the programmer and the intended outcome. So, in the vein of doing fun things with code, let me introduce to you:
Processing (
http://processing.org/)
Free and open-source language with a terrific runtime, lots of goodies baked in like sound, graphics (2d & 3d), animation; built on Java so it'll run on Mac / Windows / Linux / mobile phones. Download the runtime and check out the examples, modify the code, see what you can come up with!
Oh, did I mention that reading and tinkering with someone else's code is a great way to learn about programming?
OK, continuing with the introductions:
PyGame (
http://www.pygame.org/news.html)
It's a Python library for making games. Lots of games to download from their site, try out, and modify.
I really like game programming, because it doesn't have the constraints of boring "business" software, but they have their own set of challenges, and I love the immediate feedback loop and visual aspect of games. Not to say that I don't totally geek out on algorithms and database storage engines like CouchDB, and write all kinds of "business" software. Just have fun with what you do, that's the most important part. As long as you're having fun, it's all good.
OK, final introduction:
If you want to mess around with web stuff, try PHP. It's not the flashiest thing on the block, but it's dead simple to set up and try on a free web hosting account. Academics hate PHP, but they can stuff it.
Obviously, the Amanita folks are madly skilled with Flash, which rocks. I dunno if I'd recommend it for your first time programming, as it's a wickedly complex thing to mess around with. At least, that's been my experience.
Oh yes, and programming books are great. Online tutorials will get you a good distance down the road, but there's something about the heft of a dead-tree book, and being able to write in it and toss it in your bag to study when you're away from the computer. When you start writing programs in your head away from the computer, then you're really programming.
Have fun, write games, and there's time later to learn awesome stuff like algorithms and computing theory and boring junk like Java and web frameworks.