You want the best advice? Here it is:
Don't start with Java. In fact, don't bother learning it at all unless you have a specific need to do something with it (like translate something in Java to another language).
Better choices (in alphabetical order):
C/C++
Pascal
Perl
Python
Ruby
C or C++ will be thoroughly difficult languages to learn as a first language, but they're the languages that have been and will be the most solidly part of the IT industry for quite some time.
Pascal isn't the easiest language in the world to learn, but it's not the hardest, either. It's a compiled language, and leads easily into Object Pascal (also known as Delphi for those who use the Borland Delphi design environment) for object oriented programming. It tends to teach very good programming habits, but there aren't too many jobs out there for Pascal programmers these days.
Perl is the ubiquitous system administration language. If you're ever going to admin a unix system of any kind (AIX, Linux, *BSD, et cetera), you should learn it. It's also "the language that drives the web", as they say. It's really kind of a do-anything workhorse language, easy to use, easy to learn, and extremely flexible. Because of its flexibility, and tools like Perl's regular expressions engine, it's one of the most powerful languages around in terms of rapid, effective development. It doesn't produce executable binaries like C or Pascal, though, so if that's what you're looking for, you won't find it with Perl. Perl can do object oriented programming, but it doesn't have to.
Python is similar to Perl. It's a little more orderly to look at but, frankly, it makes my eyes bleed. Others swear by the "significant whitespace" feature of it, but I would really rather do without. It's not as ubiquitous as Perl, though it's getting closer. It's not nearly as necessary for the competent sysadmin as Perl, but it's useful. Some feel Python is much easier to learn and use than Perl, but I haven't had that experience with it. Like Perl, it does not compile to executable binaries. Python is an object oriented programming language, period.
Ruby is Perl for Python users, or Python for Perl users. It doesn't compile to executable binaries, and it is not as common/popular as Perl or Python: those two facts pretty much end the list of negatives for Ruby. Ruby is the easiest useful language to learn and use that I've ever seen. I love this language, and so does any other programmer that picks it up and plays with it for five minutes. It is a "pure" object-oriented language, more object-oriented than Python (which is in turn more object-oriented than Perl, C++, or Object Pascal). It's an extremely powerful language (similar reasons to Perl's power), and lots of fun (for programmers, at any rate).
I've made a lot of noise over executable binaries. Keep in mind that this is not a make-or-break feature of a language. For many tasks, binary compilation is important. For many tasks, binary compilation is actually a detriment -- such as the actual process of programming, because it becomes more difficult to test your code if you have to keep compiling it (for instance). Sometimes, people have sort of a bigotry about "compiled" versus "interpreted" languages, but ultimately what matters is whether the language is suited to your task.
Java, by the way, is on the wrong side of pretty much everything where the compiled-vs.-interpreted debate is concerned. It is bytecode-compiled, which means it's compiled to a sort of intermediary state that makes it less accessible than Perl or Ruby source code files, but it still requires a final compilation at runtime so that it does not get the same benefits as pre-compiled binaries like those created by C and Pascal compilers. Worse yet, Java requires a "Virtual Machine" to be running, else the bytecode won't compile and run, so there's this huge resource overhead from that slowing things down and mucking up your computer's performance in general.
If you want to get started learning programming with Ruby, I can point you at a couple of free, online resources:
[u]Programming Ruby: The Pragmatic Programmer's Guide[/u]
http://www.rubycentral.com/book/index.html
This is written by one of the best programming teams available, who wrote that seminal work of good programming practice, [u]The Pragmatic Programmer[/u].
Daniel Carrera's [u]Learning Ruby[/u]
http://www.math.umd.edu/~dcarrera/ruby/0.3/
It's a good starter/primer.
[u]Why's (Poignant) Guide to Ruby[/u]
http://www.poignantguide.net/ruby/
Another book online. It doesn't look bad at all, though I haven't looked at it in depth.
[u]Learn to Program[/u]
http://pine.fm/LearnToProgram/?Chapter=Contents
Yet another book online. This one is great for learning the very basics of object-oriented programming, and does it with Ruby as the example language. It's not so much about Ruby as about programming, though. Come to think of it, this might be exactly the one you need to get started. You'll need more than just this to be a competent programmer, though: you also need to start writing programs.
Another one:
http://www.ruby-doc.org/docs/ruby-doc-bundle/Tutorial/
Another one:
http://www.rubyist.net/~slagell/
I hope that helps.