I write this first post on the books that I recommend, especially to new developers and to students. For some of us, it’s hard to know where to begin…
This book introduces some of the GoF’s Design Patterns using a wonderful approach. When you look at the cover, you can’t imagine that it’s a technical book which will give you the keys of object-oriented programming. It is written in a style which belongs to Kathy Sierra: her blog is over but it is still online so, I recommend you to read some of her articles. If you have people around you who guess that Design patterns are useless, this book is the better way to change their mind. Personally, I think the original GoF book is an excellent reference, but it is not for new developers. I highly recommend this book to students (and to every programmer who doesn’t know what a composition is…).
Design Patterns are general knowledge and so, it is something that Object Oriented developers have to study. The next books are more Java-specific because it is the language that I use every day.
This book is a must-have for Java developers. First, let’s have a look at the author:
Joshua Bloch is chief Java architect at Google and a Jolt Award winner. He was previously a distinguished engineer at Sun Microsystems and a senior systems designer at Transarc. Bloch led the design and implementation of numerous Java platform features, including JDK 5.0 language enhancements and the award-winning Java Collections Framework. He coauthored Java Puzzlers and Java Concurrency in Practice.
With the title “The developer of the Java Collections Framework”, we must listen to the advices of such a respected developer. It is well written and divided in 78 items: readers can learn at their own pace.
- What is the contract to respect when we override the equals and hashcode methods?
- What is an immutable class?
- In specific cases, what is the most relevant type of exception? Runtime exception or checked exception?
- In a managed language, how to preserve the members of your classes?
All those questions(and 74 others) get an answer explained with the pragmatism of Joshua Bloch. After reading this book, developers understand the necessity to use a tool as Findbugs, Checkstyle…
I read this book one year ago because I worked hard on User Interfaces (SWT/JFace for Eclipse plug-ins and Swing on another project). I wanted to know how to get a high responsive UI to give the best user-experience. I knew that long-running operations have to be launched in their own thread but I was convinced that writing thread-safe code was complex. UI and multi-core systems are good reasons to learn how to develop thread-safe software.
Brian Goetz, the author, has co-written this reference with Joshua Bloch (do you remember?), Doug Lea (developer of the package java.util.concurrent), David Holmes, Tim Peierls and Joseph Bowbeer.
The style is direct and it shows codes that would be good in not-thread-safe environment but which become particularly dangerous in a thread-safe one. Then, it describes what the basic mechanisms are: synchronization, the volatile keyword… An overview of the java.util.concurrent is given and so, you will be able to select the right implementations of concurrent collections. It explains how to manage errors and how to test the thread-safe behavior of some code. Moreover, new declarative annotations are provided (download here) and these ones are interpreted by FindBugs!
And?
I have an opinion on some other books, but at this time, I prefer to focus on these three references . If you have never read one of them, I recommend to do it in the order of this post. And you, what are the technical books you like?



Post a Comment