Code Complete by Steve McConnell is the convergence (the crossroads) of experience, research, and theory. This book is invaluable, the Holy Grail of programming reference books. McConnell's writing style is clear, concise, easy to understand and often humorous.
Programmers on every level (from introduction to master) will benefit from reading this book. Programmers at the introduction level may find some topics advanced, but references to additional resources are close at hand. This book covers a broad range of interconnected topics ranging from: variable names, code-tuning, personal character, managing your manager, gonzo programming and much more. The emphasis is always on successful software design techniques.
McConnell nails the "hows", "whats" and most importantly the "whys"(with hard data) that so many other texts seem to avoid.
It's interesting to note that Code Complete is a required read to become a practitioner (intermediate) level employee in McConnell's company (www.construx.com).
Selected quotes from Code Complete:
"People have already made all the mistakes that you're making now, and unless you're a glutton for punishment, you'll prefer reading their books and avoiding their mistakes to inventing new versions of old problems." (Chapter 35)
"Once a programmer realizes that programming principles transcend the syntax of any specific language, the doors swing open to knowledge that truly makes a difference in quality and productivity." (Preface)
"The value of hands-on experience as compared to book learning is smaller in software development than in many other fields" (Chapter 35)
I prefer Code Complete over the Pragmatic Programmer; the topics discussed in the Pragmatic Programmer are a subset of Code Complete. The Pragmatic Programmer makes a good prerequisite to Code Complete.