I'm surprised no one mentioned Steve McConnell's books.
Some of the material is dated, but what's left is pure gold. Takes a much more empirical approach to software development than a lot of other books in the same vein.
Code Complete is a great book that thankfully my first boss required me to read when he hired me but I personally feel that Clean Code covers most of the same and is an easier read. Just my two cents thought.
I never read Clean Code because of a kind of silly reason. I've worked with a couple of devs who read it and then decided the optimal number of lines of code per function was three. I always felt like I needed 6 monitors to be able to understand anything that was happening.
But if you recommend and say it's similar to Code Complete I'll give it a shot. What I liked most about Code Complete is he always talks about trade offs with a clear goal in mind. For instance if function sizes are too small hidden pre-conditions or side effects can cause a bug. But if functions are too large they are hard to follow and it's difficult to isolate side effects.
Code Complete (Developer Best Practices)
Rapid Development
Software Estimation : Demystifying the Black Art