http://qs321.pair.com?node_id=388551


in reply to Software design -- The confussion of buzzwords

My suggestion is that you pick up Code Complete and read it.

I still think that the first edition was one of the best purchases that I ever made. Be warned, it is big. But even so I've read it several times, and referred back to high points enough to count as having read it more times still.

I've just purchased the second edition. I haven't read very much of it yet. My impression so far is that it has filled out a couple of "theoretical issues", added basic best practices in object oriented programming, and gives more citations. (Including, importantly, citations up to the present.) Otherwise it is very similar to the old one. If you have a choice, I'd read the second one. But either is useful.

And one note. A lot of people buy a lot of books because they know that the books are supposed to be very good. And then skim lightly, but never really get around to reading them. Then buy more books.

Do not do this. (Except with reference books which are not meant to be read.)

My advice is not to buy a book unless you are going to read it. My way of keeping myself honest is that I work on a small number of books, usually 1-2, and do not buy another book until I have finished my current ones or know that I won't finish. Afterwards I try to digest the book. Any points that particularly struck me I'll look up to be sure that I know where they were and what the evidence for them was.

Following this advice I don't buy many books. But the value in the ones that I buy is where it belongs - in my head.

  • Comment on Re: Software design -- The confussion of buzzwords

Replies are listed 'Best First'.
Re^2: Software design -- The confussion of buzzwords
by gsiems (Deacon) on Sep 05, 2004 at 04:48 UTC

    tilly ++

    Code Complete ++
    I backed into programming from engineering and, as such, had no formal education in software development. Feeling really ignorant on the subject (I was, probably still am :^0 ) one of the first things I did was read the first edition cover to cover (took me a while)-- but it was well worth it. I highly recommend it.

    The second book that I would recommend is "Practical Software Maintenance" by T. M. Pigoski. My (limited) experience is that, while most methodology books focus on creating new stuff, most programming revolves around maintaining existing stuff-- apparently maintenance isn't a very sexy topic for authors. I guess that must I disagree with most methodology book authors as I tend to think that knowing how to maintain something well should be a prerequisite for being allowed to design something new.

    The third book that I'd recommend is, errr, hmmm, I don't really have a third recommendation.

    I seriously enjoy book shopping, but yeah, don't buy the books if you aren't going to read them (not that I've read all the books that I've bought, just most of the non-reference ones). Hmmm, htere's (%#@ qwerty keyboards) there's a few that I should re-read.

    --greg
Re^2: Software design -- The confussion of buzzwords
by zzspectrez (Hermit) on Sep 05, 2004 at 03:54 UTC

    I have fallen prey to the skim this and that book phenomenon. Start reading one, then get bored and move on to the next. But I agree it is best not to do this

    You are not the first person I have heard speak praises of this book. I think I will have to see if my local bookstore has a copy. Is the book more breadth or depth?

    zzSPECTREz
      You are not the first person I have heard speak praises of this book. I think I will have to see if my local bookstore has a copy. Is the book more breadth or depth?

      It is both more in depth and covers more breadth than virtually any other book you're likely to pick up. Trying to decide which one it does better is pointless.

      Code Complete tries to cover about all "software construction" activities. You might think of this as, "Everything generically involved in coding." It manages to both cover a broad range of topics, yet handles each with detail and specificity. Part of the reason why he is able to do this is the style. He doesn't spend a lot of time arguing - he takes a topic, effectively summarizes what is known, often summarizes some key research (he likes providing key numbers), notes a key point or two, gives an example and then moves on to something else. He also typically leaves you with a list of a half-dozen research papers supporting whatever he claimed.

      The result is both detailed and compact. Which allows him to cover a lot of ground in 862 pages. (Followed by an 18 page bibliography of supporting books, articles, studies, etc.)

      Yet even so he can't cover everything. Which is why he focusses on topics that are generic and cross language. A decade from now, the current copy of Code Complete will still apply even if you're writing in a language that hasn't even been thought of yet. And will still be being cited as a classic. There aren't many programming books that you can say that about.

      You might want to make sure you get the second edition (published June 2004). I have the first edition, but will most likely "upgrade".
Re^2: Software design -- The confussion of buzzwords
by astroboy (Chaplain) on Sep 09, 2004 at 08:24 UTC
    Code Complete v2 is out too. It's quite different from the first edition, but still very good