

Tech Book Face Off: The Pragmatic Programmer Vs. Code Complete - koblenski
http://sam-koblenski.blogspot.com/2013/03/tech-book-face-off-pragmatic-programmer.html

======
diego_moita
This review is spot on. Code Complete (CC) is more thorough and detailed, but
Pragmatic Programing (PP) is better written.

The cool thing about PP is how it packs its advice into easy to understand
metaphors. CC tries too hard to make science in a subject (Software
Engineering) that is not always very easy to handle scientifically. I don't
buy a lot of the evidence CC provides (cone of uncertainty, 10x productivity
difference in programmers). I even think CC becomes a better book after you
read PP first.

[Edit] At the end the author comments about 2 other books: Clean Code and
Refactoring as overlapping the stuff covered by Code Complete. I don't think
so; to me they are much more a subset of it. [/Edit]

------
msg
Code Complete was my first book on engineering (the first edition). Even
though the coding examples were in Ada and Pascal, I ate it up.

It provides a lot of useful mental approaches to programming, and the reasons
to code something one way or another. If it's long winded, that's a
consequence of its being a comprehensive survey. Certainly, as a software
engineering _textbook_ , it has no peer.

~~~
RogerL
Same here (ate it up).

We bought the 2nd edition as a library book here at work recently. I couldn't
get into it at all. I wonder if there is a qualitative difference between the
editions, or if perhaps I internalized the first book enough that the 2nd
edition just didn't capture my interest in the same way.

But, in case the article has you doubting the value of the book, I found it to
be tremendous. With every line I write I have all of the ideas in that book
running through my head.

Take a simple example. Braces on the same line or next line? Well, to me the
answer is clearly same line (I used to prefer next line, until Code Complete,
btw, I am not just using the book to justify a random preference). Why same
line? Because studies show that as soon as you need to scroll a window to see
all of your function, bugs go up and comprehension goes down. So, by putting
the braces on the same line I can sometimes significantly improve vertical
density, and thus improve the code reading experience.

I do not intend a brace war - please don't start one. The point is that we can
use empirical studies to guide how we code. Not just layout issues, but how we
name variables, how we enter and exit loops, how we break things into
functions, and so on.

I cannot overstate how much I value the book and the ideas contained within
it. If it was up to me (and, it's not) every programmer in this company would
have a copy on their desk, and would be expected to either follow it or have a
good reason for not following it (and there are good reasons sometimes - no
rule is cast in stone).

Get the book. Learn the book. It will make you better.

------
abecedarius
I recommend Kernighan & Pike's _The Practice of Programming_.

(I haven't read the other two because wherever I dipped in it was familiar.
That's mostly true of the above too, but it got a chance because hey,
Kernighan and Pike.)

------
beat
_The Pragmatic Programmer_ is one of my favorite books ever. I recommend it to
every programmer. At whatever point I'll have employees of my own, it will be
required reading.

------
Nelkins
I see that those books were published in 1999 and 2004 respectively. Does
anybody how much (if any) of the advice in these books is outdated?

~~~
dougk16
I never read anything I disagreed with in PP, and it's worth going through,
but as you allude to it did reflect its times. There was an undertone
throughout that programmers exist to server the capricious whims of their
suit-wearing overlords, and a lot of the advice was centered around that.
Relative to the times it was good advice, but perhaps doesn't apply as much in
today's startup world where "the suits" often don't exist.

~~~
bphogan
I think the people who need to hear the advice in PP aren't in the startup
world. There are a lot of programmers in the world who are not in SV startups.

------
mattjaynes
Seeing these classics discussed at all is awesome.

Code Complete was (to me) revolutionary at the time. Though it may seem a bit
dated now, it was a foundational work that much of what we take for granted
was built on.

I don't hear enough talk about Steve McConnell's other book "Rapid
Development". [http://www.amazon.com/Rapid-Development-Taming-Software-
Sche...](http://www.amazon.com/Rapid-Development-Taming-Software-
Schedules/dp/1556159005)

I just looked at its Amazon page and it has 5 stars with 115 reviews. That
doesn't surprise me at all - it's well deserved.

It came out well before the agile movement, and I would contend that it laid
the foundation for it.

I'm so glad I read that at the beginning of my career. As a junior developer,
it helped me immensely and even more so over the years.

------
j_baker
I'm a bit surprised that people find CC dry. I read it almost cover to cover
within a couple of weeks of having it, and I'm the most easily bored person I
know.

