Jeremy,
Welcome to the ranch.
Your question is one that no doubt will generate a wide variety of subjective responses.
I'm basing my own (subjective) response on the premise that you have had no previous programming experience.
Your first challenge will be syntax. This being the case,
you should first learn the basic programming constructs i.e. sequence, decision and iteration. My belief that this is best done through a procedural language. From this foundation, study "classic" algorithms and learn how to express these algorithms in code.
Personally, in my teenage years I started out writing simple programs using (Gee-Whiz) GW-Basic. I then studied Pascal, then my all time favourite language, C. In university I was exposed to Pascal, Fortran and C. In my immediate career after university I mainly held positions that required me to write applications using C and Cobol. I then moved on to jobs on the OS/400 platform using C, RPG IV and CL.
In the past 9 years, my current position has led me into the OO field, where I have been mainly using Java. However, I was only able to move into this arena with reasonable (productive) ease after going through a rather rigorous study regime (both self-study and company sponsored) in basic OO principles first up.
I suppose the point I am trying to make is that the advantages in using a language such as Java (or any other OO language) arise when you utilise the OO features of the language.
Please do not think that you have to undertake the rather long-winded path that I have taken. As Svend stated in his response, Java can be a good first language as long as you study OO principles in parallel as well. I just feel that if you have had no previous programming experience, then all the OO type stuff can weigh you down in the initial stages.
Of course, having said that, having no previous programming experience can also mean that you have no "luggage" carry over from other languages as well and thus no preconceived ideas on what you expect from the language.
I would also like to add that I have been studying the Python language over the past 12 months and this language is ideally suited to both the procedural and object-oriented approaches to programming and is fast becoming one of my favourite languages (besides Java :-) and C). This may be a good language for you to consider as well.
Jeremy, as you can see, there is no real easy answer to your question. Do some more research based on the responses to your post, download, install and try out some languages and google, google, google - there's plenty of good information out there.
Good luck in your endeavours.
Regards,
JD
[ January 30, 2007: Message edited by: John Dell'Oso ]