Another goody is to read as much as you can about design patterns and try to figure out why people use these designs; why are they considered good?
One book I didn't like too much was
Object-Oriented Design Heuristics -- I disagreed with some of the recommendations made in this book. It sounded too much like a lecture from a classroom; based on theory rather than actual practice.
I should also give a second vote for
Code Complete, which is one book I think every programmer should have on their desk. I haven't finished catching up on the second edition, but I believe it's extended the first edition in the object oriented area.