(This question isn't really a code question, but I found no other forum on this site that this question could fit into).

I recently purchased the book Head First Design Patterns, to start learning design patterns. I'm a beginner-intermediate Java programmer and heard this book is a good place to start learning this subject.

My question is:

Is this a book you should read all of, from beginning to end? Or does it make sense with this book to read parts of it and still gain significant amounts of knowledge?

(Note: It's not that I'm lazy and don't want to read a lot. I very much want to learn. It's just that I'm not sure how one is expected and should 'approach' this book. What makes more sense?)