Clean Code (great general 'write better code' book) - http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
Growing OO Software Guided By Tests (GREAT TDD book, good for beginners and experienced alike) - http://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627
Refactoring - http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672
Design Patterns - http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
The Pragmatic Programmer (full of wisdom from smart guys who have been there) - http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X
Every one of these books is worth the time and money.