The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Code Complete & The Pragmatic Programmer

Both these books are often recommended, usually for more or less the same purposes. I'm curious about how they differ and, in choosing what to read, whether there's much difference between Code Complete and Code Complete, 2nd edition (which costs about 30X more).

Thanks, in advance -- Al
Alan Colburn Send private email
Tuesday, September 25, 2007
PP focuses on the mindset of a good programmer and what "tools" a programmer should have in their "toolkit". Things like using a good text editor, or detailed knowledge of a scripting language to help you get things done.

CC focuses on the details of good programming practice. Things like magic numbers, variable naming and code layout/white space etc.

I've got CC (2nd) but not spend much (any) time with it yet so can't help you there.
IanH. Send private email
Tuesday, September 25, 2007
Like Ian says, PP is not so much about the code but about how to "be a programmer."  Code Complete offers lots and lots of concrete and demonstrable ideas in real code (in various languages) on subjects like performance, testing, style, project management, concurrency, etc. etc.

I'd say both of them are indispensable.
John Cromartie Send private email
Tuesday, September 25, 2007
I feel a bit underwhelmed by CC2, it seems to just be a constant arguement for BDUF.  I remember being wow-ed by the original CC, maybe I'm just getting old and cynical.
Unfortuantely I gave away my copy of CC1 so I can't compare them.
Martin Send private email
Tuesday, September 25, 2007
Get CC 2ed. Sure it's more expensive than used 1st ed, but so what? It's probably the best book on its topic around and is a smooth and enjoyable read. If you can't afford the $40 and you're a programmer, then you've got bigger things to worry about IMO.

Pragmatic is good, but I disagree with much of its advice, and other advice I find in it to be too inspecific to be useful. Sure it sounds great, but what does it mean exactly?
Tuesday, September 25, 2007
Also, you should include the cost of shipping, which makes it a $5 used 1st ed vs $30 new 2nd ed, a difference of 6 times, not 30 times.
Tuesday, September 25, 2007
Get both and read both.

No-one ever failed in business from reading one book too many. Whether you agree with them or not is up to you, but understanding why you don't agree with them is useful.
Katie Lucas
Wednesday, September 26, 2007
I haven't read CC2 - bought the first one just before 2 came out - but the first one was a great addition.  Some of it overlapped with Rapid Development, so if you're reading both, read CC first.

Pragmatic Programmer is great addition for almost any tech library.  Yes, the advice is a little unspecific but they tried to make it language agnostic...  so the underlying principles are solid.
KC Send private email
Wednesday, September 26, 2007
PP has some good stuff and some other stuff that isn't so great.  Overall a decent book though - much better that your run of the mill 'technology/buzzword of the hour' computer book.

We have CC2 at work and I've browsed it but it didn't seem very interesting.

The Practice of Programming (by Kernighan and Pike) is an excellent book that I'd rate ahead of either of these.

Wednesday, September 26, 2007
I think these are both good books. CC is somewhat like a manual of good programming practice (commenting style, variable names, etc); PP is more like a bunch of ideas for how to be a better programmer (I think that's the one where they recommend learning one new language per year. Excellent advice, and almost never followed, IMO).

PP is much, much shorter than CC. Also, CC is somewhat C/Java oriented, and (IIRC) it doesn't really touch on databases, which is (I think) for a great many of us (stuck in CRUD land) a gigantic part of our lives.

I have to throw in a recommendation for Extreme Programming by Kent Beck, as well. Whether you agree with it or not, it is full of truly unique ideas, and best of all, in keeping with its philosophy, it is nice and short; you can read it in one evening.
Greg Send private email
Wednesday, September 26, 2007
My opinion is that Pragmatic Programmer is incredibly overrated.  The information in it is mostly very obvious and shallowly presented.  It might be a good overview of common tools of the trade for entry level programmers but experienced developers should already know this stuff.  It also talks a little too much about specific technologies.  I found when reading it about five years ago that much of the specific technologies mentioned simply weren't relevant in my world.  I'm not a Java programmer so it's really no use for me to read about specific Java unit testing tools or whatever.  I imagine that many of the tools discussed are outdated by now. 

Code Complete is a great book.  It covers the "construction" phase of software developer -- meaning pretty much everything between initial idea and design through to the finished product.  It covers code level design, formatting, patterns, testing, optimizing, etc. in great detail.  As with PP, an experienced developer will know much of this already but the level of detail is great enough that you can learn a lot from it. 

The main difference between the CC editions is the languages used for presenting examples.  The content of the book is mostly language agnostic and code examples are simply a concrete representation of the concepts he's trying to present so I'd pick whichever one uses your preferred languages.
SomeBody Send private email
Thursday, September 27, 2007
Code Complete is a useful reference manual for good programming practices but I'd definitely get the second edition.  It's MASSIVELY enhanced over the first edition which didn't even cover OOP!
Chris Nahr
Friday, September 28, 2007
Very different books, though I feel both are essential for software developers. 

PP is about being a professional programmer.  It's about changing your behavior to maximize your ability to write code.  I find very few faults, and some of the advice is fabulous for a professional programmer who intends to stay in IT long-term (the best advice, IMO:  Become reasonably competent in a new language every year).

CC2 is more low level.  It explains why meaningful variable names are good. It's about why short functions are good.  I think many of the criticisms about CC2 are valid (it's kind of stuck in a C-ish world), but it's still incredibly useful, whether you are programming in C, Java, Smalltalk, Ruby, or Python. It's the best language-independent book about programming I've seen.
Sunday, September 30, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz