We recently sat down with several top Java developers to talk about that state of the language as we approach this year's JavaOne. As we were wrapping up, we threw one last question at them out of curiosity, and we thought you'd like to see what some of them said.
"If you could recommend one resource for someone new to Java programming, what would it be?"
David Holmes: Honestly I don't know how to answer that question. I think the best advice I could give a newbie is to stay away from the web - there's far too much dis-information out there that will only serve to confuse and confound. Get a really good book on the subject - such as The Java Programming Language Fourth Edition (though there are other good books too).
Kim Topley: I learned Java from two books: Core Java by Horstmann and Cornell, and Java in a Nutshell by David Flanagan. Both of them are excellent resources, and they compliment each other very well. If I had to recommend one over the other, I would have to go with Core Java, now a very large two-volume set!
Chet Haase/Romain Guy: We should say Filthy Rich Clients, right? Okay, maybe not - our book does tend to assume you know something about Java and Swing to begin with.
On one hand, the newbie Java programmer is fortunate because there is a wealth of information out there to delve into. On the other hand, they're unfortunate because there's so much to wade through that it's hard to know where to begin.
I think some good intro resources would be some of the introductory books (don't know which ones, off-hand, but there are a lot of them) as well as the Java tutorials on java.sun.com.
But after that quick toe-dipping, my approach to learning would be to take on a project, either real or fabricated, and write it from start to finish. I always find it easier to learn when there is some specific task I am trying to accomplish. Then you can target your research accordingly (using books, blogs, JavaDocs, and Google space) and pick up a lot of related and unrelated material along the way.
Diving into the deep end is the best way to learn how to swim: you either figure it out by necessity or drink so much that it's not so deep anymore.
Eric Bruno: That's a really good question. I tend to be book-driven (as opposed to web-site driven) for key learning, so I would have to recommend a book. The book I would recommend is Head First Java. I've seen the book and have heard good things about it from people new to software development.
I should also say that the Live Lessons from InformIT are great. Being able to follow a lesson, while on your computer with NetBeans fired up, is ideal for most people. You can accompany the instructor-based video learning, which is self-paced, with one of the many excellent Java programming books available on InformIT.
Geertjan Wielenga: I would say, definitely the Java Swing Tutorials. They're great, succinct explanations, and lots of code snippets that you can try right away.
Here are links to the full interviews we did with those developers:
Chet Haase and Romain Guy