Java Developers Reading List
A note about the list: Learning Java is kept rather short on purpose. There isn't much to getter over the mechanics and syntax of the language. Once you have done this, the very next thing to study are the core API's. At a minimum, open up the java docs and read the package level documentation for each package. This will give you an idea of the classes available and what they are for. Next, read and understand the Collections Framework. Too many developers (new and experienced alike) 're-write' code that already exists in the core API's, especially things in the Collections framework. Sun has even provided a little tutorial for a better introduction to the framework.
Once you get past the basics, its time to start learning and using best practices (thus the craftsmanship section). Many practices go beyond the language and are about creating clean maintainable (easy to debug) code. Others apply to the language and are about common metaphors and expected programming techniques. Even though there is debate in various communities regarding some things, its best to know all sides of an argument to make informed decisions. Knowing, understanding, and using best practices, combined with developing your craftsmanship will elevate you to a high tier of development.
Learning Java
- (Bruce Eckel) - For those who just want to jump right in. You can read it online (for free) here.
- (Deitel and Deitel) - For the more acedemically minded.
Craftsmanship
- (Steve McConnell) - Good coding practices, regardless of the language used.
- (Joshua Bloch) - This is your Bible, it should be well read and worn out.
- - The classic book about what "not to do". Most of the stuff here is valid even if you are not writing Java. A must read for developers.
- - About how to make code better (also the infamous book about code smells). Don't write 'smelly' code!
- - Not particularly a Java book but, excellent information for any developer.
- - Just chock full of good common sense for developers
- Here is a great list of links to various types of good practices. Lots of good stuff to read without spending a dime.
Projects and Practices
These items are less about coding patterns and more toward running successful projects.
- - About how to master the profession of software engineering, and being a professional. Every developer, regardless of choice of language should give this one a read.
- (Mike Clark) Making the build accurate, repeatable, and easy. Using automation to spend less time worrying about a build so you are free to do development.
- (Venkat Subramaniam and Andy Hunt) Good agile practices and management for the real world.
- (Jared Richardson and William Gwaltney) Developing projects, developers, and managers. Tips and practical advice about tools and scheduling to actually deliver working software to end users.
J2EE
- (Martin Fowler) A big collection of best practices for enterprise development. There are also a few good stories on the use of agile methodologies.
- with WebSphere Studio - This is an excellent book for J2EE patterns even if you do not use IBM WebSphere.
Scrum
Scrum provides an excellent model for project management. However, the key to success (like any process) is not to treat it as a religion. Take it, use it, and tweak it for your team.
- (Ken Schwaber) This is pretty much the definitive guide to Scrum. It's a little preachy but, don't let that turn you off too much.
- (Ken Schwaber) Practical info for using Scrum in your business.
- In addition to the books, give "Scrum and XP From the Trenches" a read. It's basically a case study of one person's experience with Scrum and Extreme Programming (written in a fever dream no less). A little less religion and more pragmatic usage.
Code
The code for the hovering affiliate links can be found on my blog If anyone is interested. (Shameless self promotion) Buying a book from amazon on this page helps support this site. BTW, if you have ideas for improvements, just post up on the blog or drop a line to feedback@willcode4beer.com