If you are starting to be interested in patterns and struggling to grasp the GoF patterns or if you want to know more about patterns applied to games I can only recommend this book.
About the book
Game programming patterns by Robert Nystrom (ASIN: B00P5URD96) describes some classic Object Oriented Patterns by showing how to apply them to game programming [I know, surprising, right?]
It describes each pattern with an analogy, a high-level statement of the pattern, and then answers the why, how, and when to use it.
The book is written in a very approachable style, trying to make the descriptions and examples as concrete as possible.
The patterns are grouped thematically and in my opinion, the intent was to go from wider and simpler cases to more niche and purely technical use cases.
The hand-drawn diagrams explaining certain concepts and the small jokes the author help make the subject matter more enjoyable (and you know what they say about fun and learning).
For who is this book
This might be me projecting but I do believe this book is really good for people like me that have some experience in programming and have been exposed to patterns before but did not grasp them completely.
Of course, being interested in games will make this book more enjoyable.
I also believe that someone working with games in general and having trouble with performance or with the code design of the said game will find very valuable lessons in this book.
I really enjoyed this book (and the fact that I read it in under 2 weeks speaks highly of it in my opinion.
The book was, for me, most useful in the beginning (based on the number of highlights and notes I took) and the last section was a bit too abstract and nebulous for my experience.
All in all: 5/5 would buy again (and will reference again for sure).