I have repeatedly voiced my frustration with learning Java. I’ve bought more Java books and read more online tutorials than you would probably think necessary: Beginning Java Objects, Java: How to Program, Thinking in Java, Thinking in Java, Effective Java, Java for ColdFusion Developers, Introduction to Programming using Java, and The Java Language Tutorial off the top of my head.
Am I a complete idiot? No. Each of these books helped me along a bit—Beginning Java Objects is the only one that had a helpful pedagogy and I’m actually almost done with it, after reading every page—but none of them really taught me the language. Some were well adapted to applet production, which I’m not interested in, and some were well-suited to understanding object orientation, which is but a small facet of the language. None of them really got me from start to finish with an understanding that readied me to tackle actual Java programs. As I said, I think Beginning Java Objects is the best I’ve read. It also helps that I don’t have any practical need to learn Java, either professionally or personally.
Reading this interview with the authors, I think Head First Java might be worth a look. It’s got an Alton Brown-ish feel to it and that’s a learning style to which I relate well. Reading through the interview, I think I agree with most of the pedagogical points Sierra and Bates make. For example, most of the computer books I’ve read and all of the computer classes I’ve taken generally were teacher-centered instead of student-centered. The teacher had a syllabus to get through by gum, student comprehension be damned. Suffice it to say that those were not the most effective classes.
If you go to O’Reilly’s site for the book, you can read samples and get a feel for the conversational writing style. I would recommend, though, going to a local bookstore, checking it over, and ordering it at Amazon.