1. Learn what SOLID means and why you should apply it.
2. Learn to Unit Test.
3. Study GOF Patterns and learn to properly apply them.
5. Study open-source source code.
6. Look up Martin Fowler and Pinal Dave.
7. Practice, practice, practice, study, study, study.
More in depth -
1. SOLID - These five principles form the foundations of object based code development. Follow them to write reusable, understandable, testable code.
2. Unit Testing - Enable more rapid development, define the software, allow for safety margin when making changes. Enables easier testing during development. Nudges code toward better structure when tests are written properly.
3. Patterns are everywhere, the original Gang of Four patterns help us understand how to recognize and apply basic patterns in software development. They have been translated to several code languages. Other collections of patterns exist and can be learned from also.
5. Open Source code is a wealth of knowledge. See how others are coding - how the programs or libraries are structured. Take a look at the bug logs and see what's happening. Even try to resolve some bugs for practice, usually you can grab the source code and just run it.
6. Martin Fowler is a master of the OOP craft, read his work. Pinal Dave is a great source for learning all about SQL Server - gain a deep understanding of how SQL Server stores and indexes data, optimize queries, learn ninja tricks.
7. Practice and Study - goes without saying, right?