People just starting out in software often ask me what they should learn. I submit for discussion the contents of my desk:
Some of these books are more valuable than others. I leave the ranking of those books as an exercise for the reader.
Actually, that's not true. Anyone who wants to be a professional software developer (as loaded a phrase as has ever appeared on this blog) needs to read all of these books. Every one of them.