Book Reviews: UML Distilled and Sun Certified Enterprise Architect Study Guide

One of my personal goals for 2010 is to do more reading – specifically related to software development, design and architecture. So far everything’s going pretty well!

The plan actually started in December with Martin Fowler’s UML Distilled, which I found to be an excellent introduction to UML 2. January followed with Professional Apache Tomcat 6 – which I’m admittedly still busy reading, although over half-way through. February then continued with Sun Certified Enterprise Architect for J2EE Technology Study Guide (the book is actually shorter than the title though), which I have just finished reading.

UML Distilled
I’ve always been a big fan of Martin Fowler’s books. He has an excellent writing style that makes the content easily understandable, and he gets to the point clearly and succinctly. UML Distilled is a brilliant introduction to UML 2 and goes into a reasonable level of detail for the most commonly used diagrams. Some of the less frequently used diagrams are also covered, but in only enough detail to give the reader a basic understanding of their purpose.

Fowler seems to approach UML, and pretty much everything else software-related, in a very pragmatic way. He clearly advocates the use of UML, but in a way that works for you in your environment. Every company is different, as is every project – and as such, your usage of the tools should reflect this. Although do bear in mind that if you deviate too far, you eventually get to the point where you’re not using a modified version of UML anymore – you’re using a custom language inspired by UML. This can be a bigger difference than it sounds!

I really enjoyed reading this book – and we now have two copies in the office so there’s no waiting time for anyone else that wants to read them. Highly recommended!!

Sun Certified Enterprise Architect Study Guide
I’ve just finished reading this book today. Well, I’ve read everything except the last chapter – but that’s preparation for the assignment part of the certification, which I’m not doing just yet. The first 7 chapters are intended as preparation for the SCEA Certification Exam (Part 1 of 3) and provide a very good high-level overview of a number of topics, all of which are very relevant to modern software development.

Admittedly, the section on EJB was still based on the old version – referring to home & remote interfaces, rather than annotations – but this could’ve easily been my fault in not properly reading the book overview on Amazon before buying it. That said, the explanation was still good and the rest of the book is very interesting.

I particularly like the fact that each chapter starts with a prerequisites section, which clearly establishes the knowledge you are assumed to have before continuing. This is very useful for professionals that have been involved in software development for many years and have a good understanding of the issues that affect it – which is exactly the target market for the certification itself.

It is a true study guide, in that everything is in summary form and assumes the reader already has more in-depth knowledge of the individual subjects, where required. This is not a course book designed to teach you everything – but you’re probably not ready for this certification if you don’t already have the in-depth knowledge anyway, whether by hands-on experience or otherwise.

Overall, I found this a very interesting read, and definitely worth the few hours it took to get through it – it’s only about 200 pages. Also highly recommended – although I haven’t taken the exam yet, so can’t vouch for how close it matches the exam content. Look out for the new edition being released within the next month!

LinkedIn Amazon Reading List
In the last few months, I’ve started using the Amazon Reading List in LinkedIn. It’s a very useful app that allows you to tell everyone what you’re reading, and recommend books once you’ve read them. I’m already following two other reading lists of current & past colleagues, which gives me some interesting ideas of books that I may want to read in the coming months. I’d highly recommend that you participate in this, or perhaps some other shared list that you have access to within your company.

We’ve also set up a company library, which hopefully encourages people to read more and share what they’ve read with co-workers. The library is relatively small at the moment, but it is growing fast and we now have a somewhat regular order of new books to stock up the shelves.

Next up…
So, now that I’ve finished those books… what’s next?

In parallel, I’m starting on these two excellent books – both of which I’ve read before, but I honestly believe they are worth reading every few years!

Design Patterns: Elements of Reusable Object-Oriented Software
Core J2EE Patterns: Best Practices and Design Strategies

What are you reading? Got any suggestions that I can add to my “to-read” list?