The already mentioned The Pragmatic Programmer, 20th Anniversary Edition is so far the best I have read. It's not overly specific to one single thing, it tries to teaches general principles and good practice.[1]
I also have a personal recommendation for when you want to better understand testing, QA, or want to/have to work with QA people. [2]