I would say grab a book on Design patterns and go from there. Recently for past few years, I've focused on designing codes that are testable. I've seen where the code is beautifully written but is hard to achieve automated daily tests. You may want to pick up a book on Test Driven Development as well.
Also programming technique is sort of like a religion. Every developer believes their own is the best and evaluates code quality differently. Some evaluates based on number of lines (I hate this one). Some evaluates based on readability. Some evaluates based on third-party library integration. For me, I evaluate based on testability.