I have read many books. If you can only read one book about how to program in your life , I would say that it is this book: A philosophy of software design: John Ousterhout. It is 10 times better than the next best book.
For me “the problem with software, why smart engineers write bad code” is the prequel. Not as technical, but explains a big problem
It's very good. And quite short!
Thanks, purchased.
This model of complexity from the book is very useful: