Part Two – APPropriate Behavior
One of the key things that motivated me to write this part was picking up my copy of Code Complete, 2nd Edition—http://www.cc2e.com. I’ve had a copy of either this or the first edition of the book for most of my developer career. I hadn’t read it in a while, though, so I flicked through the table of contents looking for an interesting section to re-read.
The only parts that caught my eye were the sections at the back on the personality of a developer and on self-improvement. I find this odd; Code Complete is widely recommended as a comprehensive book on the craft of writing software. Rightly so; it’s helped lots of programmers (myself included) to introspect the way they practice their work, to understand and improve it.
Code Complete is certainly thick enough to be considered comprehensive. Why, then, when it has so much content on how code should be written, has it so little to say on the people doing the writing?
I’m now in a position to answer the question that titles this section; this part is about the things that go into being a programmer that aren’t specifically the programming. Coder Complete, if you will. It starts fairly close to home, with chapters on working with other coders, on supporting your own programming needs, and on other “software engineering” practices (I’m currently not sure whether I think software is an engineering discipline, nor, for people interested in that movement, a craftsmanship—the term is commonly encountered so I’ll use it anyway) that programmers should understand and make use of. But as we go through this part of the book, we’ll be talking about psychology and metacognition—about understanding how you, the programmer, function and how to improve that functioning. My hope is that thinking about these things will help to formulate a philosophy of making software; a coherent argument that describes what’s good and worthwhile and desirable about making software, what isn’t, and how the things discussed throughout this part, fit into that philosophy.
A very small amount of this part of the book has appeared before on my blog—https://sicpers.info. More was destined for my blog but was incorporated here instead. Still more would never have been written if I hadn’t planned out the table of contents of the empty sections of my head.