I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

If I Could Recommend Five Books For Java Developers....

08.08.2008
| 39942 views |
  • submit to reddit

There are many books that are essential for your bookshelf if you're a Java developer. But if I had space for just five books, which ones would I recommend? This question came into my head when I read this post about book recommendations.

Going Back To Basics

Topping the list of essentials for me has to be A Programmer's Guide to Java Certification. I bought it before I did the certification exam years ago. Even though the edition I have refers to Java 1.4, it's always been an excellent reference for the basics of the language. Without doubt, it's the best book available to get going in Java.



Improving Performance

A few years back, I was working on some performance intensive features. I thought I knew threads well enough - I was wrong! This seems to be a common trend among all developers, we don't have a great grasp on concurrency. Thankfully, Brian Goetz does and published Java Concurrency In Practice

As well as simply explaining threading you'll find how to design and test your applications for concurrency. As multiple cores become more common this book is a must have for Java developers - especially as we dispel the myth that Java can't be fast.

 Becoming A Better Developer

The Pragmatic Programmer surprised me when I read it first. While not being specific to any language it sets out some great principles, habits and approaches for developers. I still read it every year or so to refresh. It's been good for my own growth as a developer, and for the growth of development processes I've been involved in.

This book should be used in all computer courses, as it would lead to a higher percentage of graduates with a practical view on development.

Becoming a Java Expert

The second edition of Effective Java has been a welcome addition to my developer bookshelf. It has some great tips that I wouldn't have picked up had I not read the book. And with such high praise from James Gosling, it's a book that can't be ignored.
"I sure wish I had had this book ten years ago. Some might think that I don't need any Java books, but I need this one."

Designing With The Future In Mind

Picking a final book is difficult. It's tempting, and predictable to add the GoF Design Patterns book. But I'm not sure that it lives up to the hype anymore. However, it has set the scene for other books on patterns and design in general. Emergent Design: The Evolutionary Nature of Software Development really caught my attention recently. It has a nice concise appendix of design patterns giving a non-software analog for each, which really helps with understanding them.

It's a great book for architects and developers to read to make designs more futureproof, stable and helps answer the question How Much Design Is Enough. It easy reading and shows how the software development industry can mature, and what you can do to improve your own practices.

 

I'm sure this isn't the definitive list for all developers so I'd be happy to see your own opinions. What books related to software development have you found indispensable?

Comments

Schalk Neethling replied on Fri, 2008/08/08 - 9:34am

Great list James, I would have to add Java Puzzlers to the mix. I bought the book whilst working on my last consulting job and everyone in the team thoroughly enjoyed trying to figure out the puzzles in the book. A really fun book to read.

Casper Bang replied on Fri, 2008/08/08 - 10:02am

Decent list, though I think you should add "Java Generics and Collections". Unless you are writing very complicated stuff, you are after all more likely to deal with generics and collection issues (erasure, wildcards, arrays etc.) than concurrency issues (locks, visibility, fairness etc.).

Meera Subbarao replied on Fri, 2008/08/08 - 10:28am

If you are on a Java development project, Java Power Tools is a must have book. I am amazed by the breadth and depth of information John has covered in this book; it is like having 30 reference books all in one. John goes into great detail covering each of these tools; and to top it all, the 30 tools covered in this book are open source.

James Sugrue replied on Fri, 2008/08/08 - 10:28am

Thanks for the suggestions. I haven't actually read either of those. I've heard a lot about Puzzlers alright - will check them out

 

Porter Woodward replied on Fri, 2008/08/08 - 11:51am

I too enjoyed Java Puzzlers - as it's extremely helpful in developing useful debugging skills.  Some of the problems described there you probably won't come across all that easily in day-to-day development.  However, by honing your knowledge of them in advance - when they do rear themselves it makes it easier to identify them.

Another book I would throw into the mix would be Interface Oriented Design by Ken Pugh.  While the concept of interfaces is not unique to Java - it's probably the first large scale language to make heavy use of them.  Learning to use them effectively can make your life as a Java coder much, much more pleasant. 

Also useful is Implementation Patterns by Kent Beck.  It's a slim volume though.  However it does cover a lot of strategies for writing code that is clear, easy to read/understand and consistent.  It's less about large scale architectural patterns and OOA/D and more about the process of writing clean code.

Slava Imeshev replied on Fri, 2008/08/08 - 5:46pm

 

  • For basics and core Java Bruce Eckel's Thinking in Java is a must have. I have recommended this book many, many times and never felt sorry.
  • For concurrent programming I'd recommend Doug Lea's Concurrent Programming In Java. Doug is the guy who developed the java.concurrent package, so it doesn't get more insightful.

 

Regards,

Slava Imeshev

Cacheonix: Data Grid for Java

 

 

Alex(JAlexoid) ... replied on Sun, 2008/08/10 - 2:25pm in response to: Slava Imeshev

[quote=Slava]For concurrent programming I'd recommend Doug Lea's Concurrent Programming In Java. Doug is the guy who developed the java.concurrent package, so it doesn't get more insightful. [/quote]

Java Concurrency In Practice actually refers to  Concurrent Programming In Java on several occasions, and Doug Lea is one of co-authors ot taht book.

Slava Imeshev replied on Sun, 2008/08/10 - 2:58pm in response to: Alex(JAlexoid) Panzin

[quote=jalexoid]

Java Concurrency In Practice actually refers to Concurrent Programming In Java on several occasions, and Doug Lea is one of co-authors ot taht book.

[/quote]

 

I own both books. Doug's book is a bit more academical, and Brian's one is leaned more towards practical use cases. It is good to start with Concurrent Programming in Java and then proceed to Java Concurrency In Practice. This way you will have a better understanding of the problem when working on practical applications of concurrency.

Regards,

Slava Imeshev

Cacheonix Systems 

Peter Karussell replied on Sun, 2008/08/10 - 3:50pm

I would suggest the very good (German) Java book, which is even free: http://www.galileocomputing.de/openbook/javainsel7/ The nice thing about it is that the stuff will be updated for every Java version!

Morten Nobel-Jø... replied on Tue, 2008/08/12 - 3:21pm

The best Java book I have read for years is "Filthy Rich Clients" by Chet Haase and Romain Guy.

The book focuses on creating applications so graphically rich that they ooze cool.

I really enjoyed reading it - it gave me a great insight of how to use Swing to create really nice looking applications.

Regards,

Morten Nobel-Jørgensen

gamal ali replied on Sat, 2008/09/13 - 2:00pm

 

DAER SIR

how are u today?

with java don't worry about every thin with this good company and good prducts

Lance Dacus replied on Wed, 2011/05/04 - 11:12am

Does anyone know where  they sell textbooks online about Java for beginners? I just started html but I would like to learn Java too. I bought the Programmer's Guide to Java Certification and it's pretty good but I would like at least one more so I can compare it. A friend of mine said that "Thinking of Java" by Bruce Eckel is quite good. Any opionions?

Kumara Kama replied on Fri, 2011/10/21 - 6:01am

I like books. I want to eat them with romance at dessert.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.