These are the best programming books I've read.
#1 The Pragmatic Programmer: From Journeyman to Master
Without a doubt the best programming book I've ever read. My only complaint is that I didn't read it sooner.
Unix Power Tools
This book is a treasure chest for anyone working with Unix systems. Linux, OSX, Solaris, IRX, FreeBSD, NetBSD, OpenBSD users are all catered for alike. This is a true gem of a book. It's big and heavy, yet it can be enjoyed in small sips. Just pick it up, flip through the pages and read 2-3 of them. You'll turn away wiser than when you opened it!
If I were to only read one Java book in my life, it should be this on. This excellent book from Joshua Block focuses on core Java programming and can be read by any developer, regardless of what platform or frameworks you're using.