I really suggest “Dreaming in Code”. Amazing read.
Perhaps I am showing my age, but I would suggest three books that are currently (unfortunately) out-of-print: P. J. Plauger’s “Programming on Purpose” books.
All three are books that I enjoy rereading periodically. Granted, some of the articles are a bit dated, such as the discussion of online e-check companies, or DOS memory management, but most of the articles have more than stood the test of time, in my not at all humble opinion.
How about Tog on Interface - Bruce Tognazzini at http://www.asktog.com/
This is old now - and completely Apple-centric - but when it comes to understanding UI design principles, it’s still one of the books that influenced me the most. His discussion of how in the old days Apple tried to work out how to get users to figure out during installation of a software package whether they had a colour or monochrome screen is a classic example of how some problems are just about intractably difficult, and how users will make rational decisions (to them) that are absolutely NOT what developers anticipated. And his ‘hotel lobby’ cartoon is absolutely classic!. A great book if you can find a copy.
Just wanted to thank you for recommending Code Complete, I’m about half way, and I have found a lot of ways of improving my code, maybe I’m a bad programmer, but at least I’m getting better.
Anyway, keep up the great job!
Surprized to find no mention of Use Cases… therefore, consider:
Visual Modeling Technique by Tkach, Fang, So. Which I discovered while consulting at Lexis-Nexis and exploring IBM’s smallTalk.
Of course today for me (the last 10+ years), everything is SQL:
The Practical SQL Handbook by Bowman, Emerson Darnovsky.
P.S. Thanks for the list AND the comments. Most interesting read.
how about including Behind Closed Doors: The secrets of great software managment, give project managers also some chance on this blog
I have read about half the books in your list and I learned a lot from them.
However I read the books after making the mistakes that people who don’t read these sort of books make.
I think I faced the same problem as most people trying to learn effective software construction. There are a lot of books with a lot of lessons for programmers, too many to learn at once, and too many to choose from when one starts a new type of project.
All the good ideas about how software should be developed were first stated beginning over 30 years ago in three seminal books: The Psychology of Computer Programming by Gerald Weinberg (1971), The Elements of Programming Style by Brian Kernighan and P. J. Plauger (1974), and The Mythical Man-Month by Fred Brooks (1975, which you’ve already listed).
Just about everything those authors wrote about still holds true today, and just about every idea on the subject offered since then was actually previously stated in their books.
Probably the best systems book I’ve ever read was by a pediatrician. “Systemantics: The Systems Bible”, by John Gall.
“The Indispensable Handbook of Systems-behavior, written specifically for all of us who must daily cope with the Pitfalls, Foibles, and Failures of the Systems that make up our Modern World.”
I just wanted to point out to all the people on the fence to reading Code Complete since it’s so thick and cumbersome to read on the commute. I read it on a Kindle and I really recommend it to others!
It’s funny how much the “Horrible Examples” in that book remind me of Coding Horrors in Code Complete.
Jeff, can you recommend books for students?
All of those books are a little advanced.
I think The Clean Coder is the best book Uncle Bob has ever written, and one of the best books about programming. It’s worth a read even if you didn’t like Clean Code. It’s concise, well-written, and the content is excellent.
I also like Zero Bugs and Program Faster, it has things every programmer should know.
One of the best programming books I’ve read it’s “Programmers at Work”. Useful to know how top programmers work and think and, also to see how little things have changed through the years.
My recent favorite.
This is another book I recommend every programmer read:
"CSS Zen Garden"
I use it as my inspiration for making UIs, both on the web and off the web. I always ask myself, “Would this look out of place in the CSS Zen Garden, or would it look good?”
The web would be a much better place if this book were on every developer’s desk (and the website is free)
I am surprised that The art of computer programming by Don Knuth & Introduction to algorithms by CLRS isn’t there in your list!
Some of the images (the 3rd, 5th, and 10th cover images) aren’t loading. They seem to be redirecting to themselves.
Nice selection. Got to have the Design Patterns book by the Gang of Four for me. Maybe the Dragon compiler book too.
Great book suggestion!