Recommended Reading for Developers

Code Complete 2


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 :wink: 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:

http://www.cc2e.com

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ā€ :slight_smile: 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.

:slight_smile:

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 :slight_smile:

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. :slight_smile: