Book Of The Week : Code Complete
Code Complete by Steve McConnell is an old book but the contents are gold. They are still valid today and this is one book that is definitely a must have.
This book covers best practices on software quality. A lot of gems are inside the book. Some great review excerpts:
The Good: McConnell deserves credit for writing the first (and only?) readable encyclopedia of best practices on software quality, covering topics such as how to build classes, use data and control structures, debug, refactor, and code-tune. Yes, it would be nice if the book was updated to include substantive material on languages like Ruby or Python (cf. p. 65, Python “also contains some support for creating larger programs”) but, in the words of Gertrude Stein, “Not everything can be about everything” — though Code Complete does come pretty close. This book contains an astonishing number of practical points on a variety of topics. Here is a quasi-random selection: a) don’t use booleans as status variables (chs. 5, 12), b) when you feel the need to override a function and have it do nothing, don’t; refactor instead (ch. 6), c) when choosing variable names, avoid homonyms (ch. 11), d) if you decide to use a goto, indenting your code properly will be difficult or impossible (ch. 17), e) trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often (ch. 22), f) make your code so good that you don’t need comments, and then comment it to make it even better (ch. 32), and finally the oft-repeated g) you should try to program into your language, not in it (ch. 34). McConnell also sprinkles the text with classic words of wisdom, e.g. “The competent programmer is fully aware of the strictly limited size of his own skull” (Edsger Dijkstra), “Never debug standing up” (Gerald Weinberg), “Copy and paste is a design error” (David Parnas), “Any fool can defend his or her mistakes — and most fools do.” (Dale Carnegie). It is important to point out that even though this volume is encyclopedia-like, it does have both a sense of humor (e.g. “the encryption algorithm is so convoluted that it seems like it’s been used on itself”) and a clear authorial voice (e.g. “Though sometimes tempting, that’s dumb.”). Another example of the latter: in ch. 33, after quoting Edward Yourdon at length, McConnell adds “This lusty tribute to programming machismo is pure B.S. and an almost certain recipe for failure”.
By Alexandros Gezerlis
It was a pleasure to find out that this book had been updated when I reads news of it. CC2 is a great one-stop ‘place’ to go to when you want a great excuse to apply Stephen Covey’s ‘Sharpen The Saw’ principle. This updated version has some solid, fantastic, expert instruction on designing from scratch, whether it’s OO, writing better routines, psuedocode, nested loops, or at the higher level: agile methods, etc..
McConnell’s approach of talking to you, the programmer, is ideal: not too much humor, and an easy to read, but professional approach in the way he donates the contents of his brain: i.e. McConnell’s lengthy experience in the field.
By Steve Bailey
This book really drills down proper programming practices. A lot of times you may read a passage and think to yourself “well, of course!”… but then you realize you don’t practice what’s contained in the passage you just read. This book is great for both new programmers and experienced programmers alike. New programmers benefit greatly because they will learn how to construct software properly without having to go through all of the hoops. Experienced programmers will also learn a great deal, as well as be reminded that some of their habits that they’ve developed over the years can hinder production and cause software development to become more complex then it really is.
You can visit Web Develover Book Store to get this book and more great handpicked books.