I love the Head First books. They are fun to read and actually convey a load of useful information.
I have already read this particular episode of their series a while ago, but now I've got the impulse of reading it again, and what I am doing is jotting down a few lines that I think could be useful to the occasional reader to have an idea of the book.
The programming language used along in the book is Java, so it's better to have a good knowledge of it - or at least of a similar language like C# - to understand properly what is going on.
If you are interested in software design I warmly suggest you to get it. Head First Design Patterns, by Freeman, Freeman, Sierra, Bates; it's an O'Really book.