Dig Deep into Object-Oriented Programming

Learn design patterns, application architecture and clean code from masters

Make sure you have basic understanding of Object-Oriented Programming since these books are not for beginners!

Head First Design Patterns

Amazon link

Design Patterns: Elements of Reusable Object-Oriented Software

Amazon link

Agile Software Development, Principles, Patterns, and Practices

Amazon link

Patterns of Enterprise Application Architecture

Amazon link

Clean Code: A Handbook of Agile Software Craftsmanship

Amazon link

Refactoring: Improving the Design of Existing Code

Amazon link

Domain-Driven Design: Tackling Complexity in the Heart of Software

Amazon link

The Pragmatic Programmer: From Journeyman to Master

Amazon link