Classic Coding Tome Updated
Tim Halloran writes "Steve McConnell has updated his book 'Code Complete' a 960 page language agnostic tome about code construction. This is the best book of its type I've ever encountered and the update is welcome (as the first edition is over a decade old...I suddenly feel as I'm getting old :-). More information, and a sample chapter are here. As a programming team lead I have provided this book to team members to get them critically thinking about how they write code."
It's published by Microsoft Press. BFD. Read up on the author, then come back and tell us he's not eminently qualified to write a book on the subject. Of course, this is an update, the original from 1993 has already been widely acclaimed for a decade so you're going to have to come up with a more convincing argument than "d00d, M$ iz teh sux0r!"
Would this book be useful as an introductory text? I'm reading throguh one of the same chapters, and it seems good so far. But would it worth the coin for someone new to programming?
I read the previous edition, and my feeling then was that it, between the lines, sang the gospel of Pair Programming. Anyone else got that impression? I don't think it was ever mentioned specifically in that edition, though I could certainly be wrong on that.
Belief is the currency of delusion.
I first came across this book by accident, while browsing the otherwise dismal "computer books" section in a bookstore. It didn't take more than a few pages to realize that this book was a major accomplishment. I still recommend it to my programer friends and look forward to reading the update edition. Sure lots of the things covered are fairly straightforward, but is good to have them listed in a single place and in an orderly fashion. On top of that every so often it covers something that had escaped you which makes it even more valuable.
Though personally I am of the opinion that "M$ iz teh sux0r!", I nonetheless found the first edition to be full of insights and advice that authors of Free Software would do well to heed. McConnell r0x0rs. Buy the second edition from B&N.
To me, the book looks like a big disappointment. I downloaded Chapter 5. There are numerous obvious statements like these:
Design Is About Tradeoffs and Priorities
And:
How to Attack Complexity
Overly costly, ineffective designs arise from three sources:
A complex solution to a simple problem
A simple, incorrect solution to a complex problem
An inappropriate, complex solution to a complex problem
I learned to program in grade school, taking little projects from Computer Recreations and implementing them in MS Basic for the Macintosh. This was not the most conducive way to learn to program in a disciplined fashion, and yet in the early nineties I found myself having to program to spec and to schedule for various people, and not doing too well. It was not until I picked up the first edition of this gem that I truly understood that the craft could be approached as a discipline, that code quality does matter to software quality, and that a well-constructed program is more maintainable and extensible.
If all McConnell did was slap a new cover on it, it would be worth looking into if you've never read it. But he put several chapters out last spring for review, comment, and critique, including some all-new chapters. I'm definitely picking it up when it becomes available.
He was a verray parfit gentil knight.
I'm a programmer who knows a couple of languages, but has never taken an advanced CS theory or project management class. I'd like people's opinions on what books to read to make me a better coder and help me understand the broad concepts, not just doing rote stuff in a new language.
Is UML useful? How about books on secure programming? Are design patterns a good tool? Will learning things like assembly or Lisp teach me anything useful?
If your comparison were to be fair, Code Complete would be in its 13th edition with each new edition bringing a rearrangement of chapters for no apparent reason, 10 new pages of content at most, and entire sections devoted to tools nobody can use or figure out without purchasing the supplemental Inside Code Complete, 13th edition and subscribing to the CCDN (Code Complete Developers' Network).
There are no karma whores, only moderation johns
I found this book after learning programming on my own for a few years. I thought it filled in the gaps on things that weren't described in 'plain old' language books.
I suppose if you had a professors, cow-orkers, or friends that you could learn this book wouldn't be as useful.
I keep the book is nearby on the 'top shelf' of my bookcase. I don't use it much anymore, but it and 'the Pragmatic Programmers' are among the books that most influenced me as a programmer.
My father is a blogger.
I can also strongly recommend McConnell's Software Project Survival Guide (amazon link). I think all software team leaders and project managers should read this book as it packs a lot into a small number of pages. Amazon link: Software Project Survival Guide
The old version of this book was used as a textbook for CS 240 at BYU, which is an advanced programming /slash/ C++ course.
I find it great that some professor is actually teaching coding standards. Imagine my surprise of discovering JavaDoc commenting after haven taken 3 Java classes and not one of them ever mentioned JavaDoc.
I haven't taken CS 240 yet, but I plan to this fall. I already talked to the professor about the textbooks he plans to use, and he said that if they came out with the new edition (which they did) then he would probably use the new edition for class. This means though that current students with the book now will have a hard time selling the book, and future students will have a harder time finding used book deals on it. I guess I should start saving my college student pennies.
This book is the best programming book I have ever read.
;-)
I believe that my own productivity increased by about 50% at least after reading it.
Code Complete answers many of the questions that nag the working programmer, and busts through much of the BS that people spout about programming.
The book covers a huge range of material, from code formatting and style, to how to build teams. Clue: don't put all the programmers no one else wants in a team to build an important project
The writing style is friendly and peppered with hilarious case studies such as 'Escape from Gilligan's Island', where the same mistakes happen over and over again.
Everyone who has worked on large programming projects will recognise some of these anecdotes. In one case I watched from start to finish as an 'experienced consultant' ruined a perfectly good project with secrecy over his bad and undocumented code. All the warning signs were there. If the manager had read this book, a programming catastrophe might have been averted.
I have bought this book a few times, and given it to management in-duh-viduals to read. Sometimes it helped.
If you are a programmer or a manager, or just interested in software, buy this book and read it. I guarantee you will learn something.
-- "It's not stalking if you're married!" My Wife.
Of programming books, I like Kernighan & Ritchie's The C Programming Language (_K&R C_) best, mainly because it's short. But my favorite tome is Bruce Schneier's Applied Cryptography. It's focused on encryption, and security, but that's a great way to make the basic principle of programming implicit in one's programs: write a program that does what you expect, rather than what someone else can get it to do instead. And when you skim the 80% that is purely cryptological (though never cryptic ;), it's only 57% as big as _K&R C_.
--
make install -not war
Actually, I had at least one professor in school who felt the opposite way and enforced it. In his class, no tabs were allowed, the reason being that different editors would display different tab levels. With spaces for indents and monospaced font, everything was guarenteed to line up. Since he was the same professor who took off a point every time you used a single character variable name that was not a counter for a loop (i, j, or k) or a position (x, y, or z), we obeyed him. *shrug* To each their own, I guess. Most decent editors freely convert between the two.
This sig has absolutely no significance and serves only to take up screen space and waste the time of the reader.
Unlike the facist fuckers at micro$haft, the people at GNU release their books for Free (as in sex) for people to edit and contribute.
I wish slashdot would stop reporting on every little piece of shit microsoft does. Everyone knows that each and every employee in Redmond is a moron, and everything M$ makes SUCKS THE BIG ONE.
They are also monitoring us.