I don’t read a lot of programming books, but the one’s that have stuck with me as being broadly applicable and useful:
The Pragmatic Programmer - Andrew Hunt & David Thomas. This is less about how to code, and more about have to think broadly about different ways to approach your problem, and choosing the best tool for the job.
Practical Object Oriented Design (aka POODR)- Sandi Metz. If you’re coding in a language with dynamic typing, this is a must read IMO. A few chapters are a bit ruby specific, but overall this provides some really great insights into how to think about object oriented design.