My last blog post of 2008 covered Useful Online Java Developer Resources. That posting focused on resources for both learning new things and for finding solutions to specific problems. I found it interesting to compare Ted Neward's recently published list of Essential Java resources to the list in my posting. In this blog posting, I'll emphasize the resources that we mention in common as well as some resources that did not make his list that I think would have fit well (in some cases, they should have made my list as well in retrospect).
Neward lists many of the same web sites with good Java information that I listed in my posting: The Source for Java Developers, DZone, TheServerSide, Java.net, and developerWorks. One site that I have found very useful in learning about Java and wish I had mentioned in my original post after seeing it listed in Neward's article is ONJava.com. However, I think Neward missed a couple important Java sites that I did include: Javaworld and Oracle Technology Network's (OTN's) Java Developer Center.
As its name implies, JavaWorld is (and long has been) an important contributor in the world of Java. Meanwhile, Oracle has become one of the dominant influences and vendors in the Java community as well and has published many Java-related articles and how-tos. I have used articles and references from both sites many times in my career. I also admittedly have a bias toward these sites because I have written articles for both.
I did mention general blogs in my posting on useful general Java resources, but Neward lists three specific Java blogs in his posting that I find to be highly useful as well. Besides the well-known Java blogs such as Java Posse, JavaSpecialists, the Sun employees blogs (including Java Technology Blogs), and the Java.net community weblogs, there are numerous other useful Java-related blogs. Because the Java-related blogging community is so large, the search engines (including blog-specific search engines) can be invaluable. This is also where aggregated blog sites like JW Blogs and community sites such as JavaLobby can be helpful.
I agree wholeheartedly with most of the books on Neward's list of books (I only covered online resources in my previous post), but I do have a few Java-related books I'd add to the list: J2EE Design and Development, Java Cookbook, and Thinking in Java.
It is easy to dismiss the value of the somewhat dated J2EE Design and Development (note the J2EE rather than Java EE in the title), the book is so full of hard-earned experience and knowledge about enterprise application architecture, design, and implementation with a Java focus that it is still one of the best books on the subject. The success of the Spring Framework and the evolution of EJB since the publication of this book are two pieces of evidence for the impact this book has had.
The Java Cookbook is a resource for locating examples of how to do various tasks in Java. While it is particularly useful to someone new to Java, I still find it useful when doing something I have not done before or have not done in a long time. It is sometimes easier to find an example of even things I have done before in this book than it is to find it in my own code samples. Powerful search engines have made it easier to find similar examples online, but there are still times when it is easiest for me to locate the example I need in the printed book.
Older versions of Thinking in Java are currently available online at no charge. The Fourth Edition is the current edition that is available for sale. This book is used by many developers as an introduction to Java while being used by many experienced Java developers as a trusted reference and, along with Effective Java, as a sort of arbiter for Java-related debates.
Neward lists some good Java-related conferences in his article, but I think he may have missed one of the best by not listing the Colorado Software Summit. While I obviously have a reason for bias related to this conference, I not the only one to espouse its virtues. I'd also add Java User Group meetings as well. These regional groups can offer invaluable benefits at little or no cost. Many of these feature top-notch and well-known speakers who live in the local area or even sometimes present while visiting the area.
It is reassuring when the same sites make multiple Java developers' lists of useful sources of information. It is also interesting to see how different developers also have different preferred sources of information. I think that one of Java's biggest advantages is its sizable community and the sizable body of work out there related to Java development. The Java-related resources discussed in my previous blog posting, in Neward's article, and in this blog posting are evidence of the quantity and quality of resources in the Java development community.