Getting Things Done (2001) by David Allen - great method to organize all your tasks and stay on top of things
Clean Coder by Bob Martin - good ideas on being a professional programmer
A Philosophy of Software Design by John Ousterhout - big picture ideas on design
Test Driven Development by Kent Beck - good basis for thinking about design and testing
Legacy Code by Michael Feathers - understanding the issues of legacy code helps us to design better software