I've seen a of lot enigeers that don't understand fundamentals and it causes a lot of problems in real-world software. These are my goto recommendations:
Code Complete: A Practical Handbook of Software Construction, Second Edition
Clean Code: A Handbook of Agile Software Craftsmanship