The C Programming Language but it is not for novices. It is a masterpiece and tells you how to write clear and concise code using C. I think that every programmer should read it even if she does not code in C.
The UNIX Programming Environment by Brian W. Kernighan and Rob Pike. This is a must have for everyone that wants to learn UNIX programming and its philosophy. If you only get one UNIX book, get this one!
The Practice of Programming by Brian W. Kernighan and Rob Pike. This is a book full of practical advices about programming and is not language specific.
The Mythical Man Month and Other Essays on Software Engineering by Frederick Brooks. This is a book about software project management and is a pleasure to read. The release of IBM’s System/360 led Fred Brooks to write this book.
Code Complete: A Practical Handbook of Software Construction by Steve McConnell. This book contains the best practical guides about programming and software engineering. It is a must read!
Programming Pearls by Jon Bentley. Each chapter presents a problem and the writer guides the reader thru the thought process to find better and better solutions. It is a timeless book.
UNIX Power Tools by Jerry Peek, Shelley Powers, Tim O’Reilly and Mike Loukides. This is the best book for learning to use the various UNIX command line tools like a UNIX guru. The power of UNIX comes from combining its various command line tools to solve a problem. Knowing UNIX will make your life as a programmer easier.
Masterminds of Programming: Conversations with the Creators of Major Programming Languages. This book contains interviews of people that created many major programming languages including C++, Python, Objective-C, Perl, Java, etc. It is both educational and enjoyable and you will have a great time reading it.
Beautiful Code: Leading Programmers Explain How They Think. Computer scientists offer case studies that tell how they found solutions to programming problems.