Like many, when I first saw the Head First series by O'Reilly launched, I winced. I thought to myself, "nah, there's no way to make learning Java that fun and use that degree of levity". And hey, I am probably one who could be easily labeled as an O'Reilly fanatic.
I have been through just under half of both of the Learning Java titles from O'Reilly, and got burned out and lost on each one. I was plodding my way through Sun Microsystems Press Core Java 2: Volumes I and II when I happened upon an article by someone named Kathy Sierra on java.net. It was titled Have your developers seen a real customer in the wild?, and it was a great read.
I read the reviews for both Head First Java and the Sun Certified Programmer & Developer for Java 2 Study Guide (Exam 310-035 & 310-027) book by Kathy and Bert Bates. It sounded too appealing to pass up.
I have been going through the book for about a week now, and it is great. Anyone with exposure to programming in at least one language will find this to be an inviting bridge into Java. Well, maybe not anyone, but most people. The approach of the book helps you to internalize Java, to "think" and "speak" in Java.
There is apparently quite a little stir about this being a dumbing down of Java, etc. Kathy even has a weblog entry about it, aptly titled What's so bad about making it easier to learn Java?. (You go, Kathy!) I can say personally this is the first Java book that approaches the ease-of-use and skill-building content that I first came upon in books of Visual Basic. Is it harder? You bet. Java is a more capable and powerful language, thus the commensurate learning curve to mastering that power is proportionately larger. However, that doesn't mean that the learning process for the language needs to be dry, turgid tomes that ramble for three or more chapters before having you write an example that shows you in concrete form the esoteric and abstract concepts with which are you are currently being mentally hosed down.
Think about this; did you learn your spoken language that way? No. See the first part of Programming Perl for a wonderful analogy of programming and natural language learning; my copy is at the office so I don't have it in front of me to give the exact reference.
I don't really have time these days to pontificate any further, and as late as it is I am not sure how cogent any of this is. Head First Java is a great book if you want to learn Java in a way that will allow you to internalize it and prepare for deeper learning of the language. That's all for now.