BFatts: A fantastic language-agnostic manual that still applies heavily today. read comments

DanHulton: One of the best books on programming style and function, backed up with actual research for the recommendations. read comments

mindcrime: If you didn't take, or have forgotten, classes like Computer Architecture or Digital Logic, this is a great book for getting your head around the low level details of what's happening in side a digital computer... read comments

ereyes01: One of the most important books ever written on software engineering practice. Author Frederick Brooks won the Turing Award for this book and for his work on IBM's System/360... read comments

jsgoller1: It's mainly geared towards Java and C/C++ programmers, but even as a DevOps engineer I'm finding a lot of it useful. read comments

beat: Only a madman would actually read them all, but they're good to have to remind you that there are mountains you can't even begin to climb. read comments

carapace: IMO this is the most concise yet accessible gateway to the inner Mysteries of Computer Programming. Read between the lines, the prime thesis is implied not explicit. read comments

hoorayimhelping: I loved this book. It really helped me understand the power and effectiveness of OO design when used correctly. read comments

microsage: Despite the title, it has many broad programming and software architecture lessons, and "The Unix Philosophy" is applicable far beyond Unix. read comments

henrik_w: Excellent, long interviews with really famous developers and computer scientists. read comments

zimmund: Is a great book to improve how you think about code and the way you implement your solutions. Even if you are a seasoned programmer you'll find it useful. read comments

tmaly: As others also mentioned this. I think this is becoming more important as people transition to new jobs where they have to take on existing software. Having a process to deal with code that lacks... read comments

ericssmith: Will help you get down to what programming is really about. If you are not familiar with lambda calculus and its notation, it may be rough going at first. But lambda calculus is... read comments

protomyth: Thinking Forth is a great suggestion since the approach goes way beyond Forth. read comments

butlersean: After reading I began to think about programming as an algebraic transformation from one system to another, in doing so radically reduced the amount of errors I made. read comments