The Practice of Programming - By Kernighan & Pike. A pretty good book for algorithms, data structures, design, debugging,
testing and lot more...
Writing Solid Code - Excellent book by Steve Maguire
& Microsoft Press. He explains how you can write bug-free source code
(in C) by
following his guidelines (like asserts are forever etc...). He believes,
though it may not be possible to write error-free code each time, you can
eliminate errors, bugs by testing and retesting your code by the time it
goes in the Version Control Source Safe or something similar.
Code Complete - By Steve McConnell, and Microsoft press. On the lines of solid code, a practical guide discussing art and science of
The Pragmatic Programmer - This one talks about the programmer instead of programming for a change ;)). A must have for any
software professional, I believe.