I enjoy the Head First series of books, but they may not be for everyone. This book, Head First: Design Patterns, is not for beginning programmers, but you won't become an advanced programmer without understanding the concepts that are covered in this book.
Pick up this book after you have some experience under your belt. Depending on your interest and needs, I suggest starting with the Strategy Pattern, the Observer Pattern, the Singleton Pattern, and the State Pattern. Then follow up those with the patterns you skipped in the book.
To use this book effectively you should have a good understanding of OOP principles and be ready for extending abstract classes and implementing interface classes. If you don't know that those are, that's OK, the authors give lots of examples and you should reference your other Java materials to get up to speed where you have to.
This is a book I review every year or so to remind myself about the concepts and to pick up what either went over my head the first time, or what was not meaningful to me at the time. Reading a book like this again gives me confidence that my Java understanding has grown since the last time I read the book.
Definitely recommended for anyone who wants to program professionally or wants to program like a professional.
Pick up this book after you have some experience under your belt. Depending on your interest and needs, I suggest starting with the Strategy Pattern, the Observer Pattern, the Singleton Pattern, and the State Pattern. Then follow up those with the patterns you skipped in the book.
To use this book effectively you should have a good understanding of OOP principles and be ready for extending abstract classes and implementing interface classes. If you don't know that those are, that's OK, the authors give lots of examples and you should reference your other Java materials to get up to speed where you have to.
This is a book I review every year or so to remind myself about the concepts and to pick up what either went over my head the first time, or what was not meaningful to me at the time. Reading a book like this again gives me confidence that my Java understanding has grown since the last time I read the book.
Definitely recommended for anyone who wants to program professionally or wants to program like a professional.