Hello Gian,
Well, obviously the "Gang of Four" book, Design Patterns: Elements of Reusable Object Oriented Software was our main reference. This book really is a brilliant book - it is well written (although *concise*!) and, for those who don't already know, was the first book written about design patterns and has all the classic, original design patterns in it.
Another book we used is Object Oriented Software Construction (2nd Ed) by Bertrand Meyer. This is also a terrific book - it really is a comprehensive OO reference and guide. It's old now (old in internet time of course), but cover many fundamental ideas, especially design principles.
I really like Design Patterns Explained by
Alan Shalloway and James Trott. Of the other design patterns books out there (other than GoF), this one is on the whole, well-written, and helpful. It covers some principles too.
Of course, we were coming at this from a "beginner's perspective" in that we were writing for people new to design patterns. For those of you who are experienced programmers, and have experience with patterns, there's definitely books out there that will appeal to you that we also used as references - Fowler's books and Robert Martin's Agile Software Development spring to mind. But these are dense, and make assumptions about your experience level.
We also used as reference, The Pragmatic Programmer (I really like this book), a couple of UML books, and *loads* of online articles and websites, like the Patterns Wiki, the Hillside Group, and JavaWorld to name a few.
Hope this helps and gives you some pointers. I have a lot of specific links to online resources that I can send you if you are interested.
Elisabeth