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!
Amazon link