This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html
Good book selection Jeff,
Iād probably add Waltzing with Bears by Demarco and Lister to the list - a great book for understanding (or at least accepting) risk management on software projects.
Is Code Complete 2nd Ed worth getting if youāve already read the 1st Ed? Itās one of those must have books, but, I have it that and the fact that itās too big to read on my commuteā¦
I think itās worth getting the second edition, but realize that I am a total McConnell fanboy. I already owned two copies of the 1st edition, one for home, one for work. There are a lot of updates, though the body of the content hasnāt changed dramatically. The main one I noticed is that he re-worked all the examples in modern language. Some of the other changes are listed on Steveās site:
I will definitely look into The Dynamics of Software Development
and Walting with Bears
http://www.amazon.com/exec/obidos/ASIN/0932633609
The other DeMarco book was excellent but a bit depressing; at most companies the employees have little to no control over the factors described in Peopleware. And even the managers canāt buck company policy to the extent implied in the book. Kind of sad, but it makes me want to start my own company. If only I wasnāt so lazyā¦
Yeah, Cooper is kind of overbearing-- you have to disregard about half of what he says. The reason I keep reading him is because the other half is usually great.
I didnāt like the Inmates book. I got the distinct impression that what Alan found to be hard to use defined his definition of what the world found hard to use. And he makes the extremely bold claim that ALL the interaction design for the ENTIRE product should be done before any coding is done. What? Are we going back to the waterfall, except calling it interaction design instead of requirements this time? Maybe as the first introduction to developing around personas is this book good, but the rest was, in my opinion, a waste of time.
Itās really a question of focus. Iām more interested in UI and usability.
In other words, it doesnāt matter how pretty or bug-free your code is on the inside when nobody can figure out how to use the outside.
I do have a few high level coding books in here, but I explicitly avoid recommending anything too specific or overly technical. Most developers are pretty good at the technical coding stuff anyway; what they need is to exercise some different muscles.
I notice there are no books specifically on Refactoring, or TDD. Do you have any favorites? Do you believe those topics are worthy of being on a recommended reading list?
Your clear focus and passion about your topics is definitely the reason I keep coming back to your blog.
I was interested in those two topics because of the book Iām just finishing, Michael Feathers āWorking Effectively with Legacy Codeā. It is a nuts bolts look at injecting TDD into development when you canāt start from scratch. Itās defintely worth a look.
Great list, thanks!
If youāre working in an OO language like Java, the list should probably include Design Patterns: Elements of Reusable Object-Oriented Software, although this book actually predates Java.
And definitely that Fowler book, Refactoring: Improving the Design of Existing Code. In addition to recommendations for approaching refactoring, Fowler provides a list of ācode smellsā to look out for, which is a handy shorthand for bad ideas to avoid.
Iām also a McConnel fanboy, Iāve even got my first 3 books by him autographed. (How you know youāve gone from fan, over the line to fanboy)
āAgile and Iterative Development: a Managers Guideā By Craig Larman is a great book on Agile development another great primer for Agile is Larmanās "How to fail with RUP"
http://www.agilealliance.org/articles/larmancraigkruchtenph/file
Anyway, this book reminds me of Code Complete in itās light style and in-your-face reality checks, with wonderful sections like āHow to tell if your XP expert isnātā
I also like Jakob Nielsenās book on Home Page Design where he shows 50 sites, and how they are wrong/right for information architechture and usability.
Btw I have my own saying.
For an application to truly beautiful, it has to be beautiful in teh code and the design ui. If only 1 is beautiful, then it is truly bad.
Iād recommend Knuth, āThe Art of Computer Programmingā and Abelson and Sussman, āThe Structure and Interpretation of Computer Programsā.
I am shocked that you donāt mention the single most important book that has come out in the past 11 years: Design Patterns: Elements of Reusable Object-Oriented Software by Vlissides, Helm, Gamma, and Johnson. Not one of the books you mention has had a cross-developer, cross-language impact that this one has.
Anyone doing OO development had better read this book, lest you try to reinvent the same wheel many folks before you have already honed into a well-oiled machine.
And yes, it uses C++/Smalltalk for examplesā¦there are C#, Java, etc versions that exist now, so not a big deal if you donāt know those languagesā¦
Code Complete Second Edition is by far the BEST book every written for our field. It ranks number one of my list. The book that ranks number two most people probably wouldnāt want because it is not only language specific, but platform specific. It is John Walkenbachās Power Programming With Excel 2003. If you ever wanted to learn to automate Excel or learn VBA in general it is the best book every written.
Does anyone have any suggestions for a good JavaScript book? There are so many out there and most of them are crap. I would love to find a list of good language-specific books. It is hard to find a good book.
One more interesting book is : How to Solve it By Computer by R G Dromey. (The idea of the book is based on another book How to Solve It - A New Aspect of Mathematical Method).
Being from a primarily C background, I think Kernighan and Pikeās āThe Practice of Programmingā is good as well.
I had read Programming Pearls. In that book, Bentley recommends
āConceptual Blockbusting - A Guide to Better Ideasā. Have you read this book ? How did you find it ?
http://www.amazon.com/Conceptual-Blockbusting-Guide-Better-Ideas/dp/0201550865
Code complete is a great book, we had a copy in office and usually tell many people to refer to page 25-26 where Steve says, and the people who spend less time in front of computer are more productiveā¦
I have read also After the Gold Rush, in which he stress about the responsibility of Software developer (Each should get a licenseā¦).
An Expert should know 50000 info interests me great.
For OOAD , I would say Grady Booch Book is the bible.
Iām absolutely amazed that entirely by coincidence this collection is almost identical to mine! Spooky.
One point worth noting is that you cant really read Peopleware unless youāre also willing to read Constantine on Peopleware to balance out the experience.
Also, have you ever considered condensing your blog entries into a Joel On Software Style Book? kind of like his āBest Software Writingā series? Iād be on your list of pre-orders.
I cant agree more about these excellent books
The last book that I read and that resist technologies changes is Ship it! A Practical Guide to Successful Software Projects
http://www.amazon.com/gp/product/0974514047
Is from pragmatic press and with simple and useful ideas shows how to survive to all the things related to the development of a software project
Supprised my favorite āleadershipā book isnāt on there āBecoming a Technical Leader: An Organic Problem-Solving Approachā
http://www.amazon.com/Becoming-Technical-Leader-Problem-Solving-Approach/dp/0932633021
I really suggest āDreaming in Codeā. Amazing read.
http://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082463
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.
http://www.amazon.com/Programming-Purpose-Essays-Design/dp/0137213743
http://www.amazon.com/Programming-Purpose-II-Essays-Software/dp/0133281051
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.