Author: Pete Goodliffe
Audience: Programmers at all levels of experience
Reviewer: Sue Gee
Subtitled “A Handbook For People Who Care About Code " will it actually help you improve your skills?
Pete Goodliffe says in the introduction that the topics covered “run the whole gamut of the software developer's life”. He says it is intended for programmers at every level – from industry experts and seasoned developers to neophyte professionals or hobbyist coders -and that there is no bias in terms of languages or industry.
The acknowledgements reveal that some of the material originated in a print magazine distributed to members of the ACCU, an organization dedicated to professionalism in programming. Sometimes patching in existing content can result in a disjointed and unsatisfactory book. In this case however the book has a coherent structure.
It is also a book you can dip into. It consists of 38 chapters, each of which covers a single topics so that you can read them in any order you want to. To assist you in treating the book this way the contents list gives a one-liner for each chapter which sums up its contents in just five to a dozen words.
Chapter One has the title Care About Code and if you just look at its key points – flagged with KEY and on a gray background - you'll instantly get the main messages. The first being that to write good code you must care about it and the second to enjoy the code you write, have fun with it and be proud of it.
The chapter's main advice about writing good code is delivered by way of five bullet points, making it both identifiable and succinct. At the end of Chapter 1 you find three sections that conclude every chapter in the book:
- a set of questions intended to make you think more deeply about what you've read and “to work out how the topic weaves into you existing experience”
- links to related chapters
- Try this – a challenge to encourage you to be proactive about improving your programming skills.
For this initial chapter the challenge is to engage with what you read in the rest of the book
The final element in every chapter is a cartoon.. You'll also find some full page cartoons in the same series titled 10,000 Monkeys between chapters. They are always an integral part of the book's message.
Beyond Chapter 1, the book is divided into five parts starting at the level of code and ending with working with other people in the social activity of software development.
There are twelve chapters in Part I you.write(code); and one of the ways in which they are very readable is that they take a variety of approaches. Chapter 2 has the title Keeping Up Appearances and is about code layout and naming, One of its main message is the importance of consistency and Goodliffe introduces a cautionary tale with regard to this – it's an anecdote about the perennial question of the choice of spaces or tabs for indents. This is placed in a boxout – a good device for indicating an aside or a ramification of an idea.
The message of Chapters3 and 4 are clear in their titles: Write Less Code! and Improve Code by Removing It. Then come three chapters that look at the problems of revisiting old code, being new to existing code and dealing with badly crafted code. Chapter 8 opens with an apocryphal story to illustrate the point it makes – Don't Ignore That Error. The story grabs your attention and it's an interesting change of pace and style. Towards the end of Part 1 the topics covered include finding bugs and unit testing.
There are ten chapters in Part II Practice Makes Perfect which is about software development rather than the code that goes into it. As the introduction to the section puts it:
We step back from the codeface and take a broader view looking at practices that comprise better programming
Chapter 14 looks at what software development is and considers it in turn as an art, duly acknowledging Donald Knuth; a science; a sport, with team work, discipline and rules. It is also characterized as Child's Play – including having fun; and as a chore - referring to clean up and maintenance as “janitor tasks". Messages given in chapters titles here include Keep It Simple and Use Your Brain. Version Control is a chapter topic and so is working with the QA team. The penultimate chapter in the section investigates the idea of freezing code prior to release and the last one considers the release process, arguing Release Early and Often.
The next seven chapters comprise Part III Getting Personal which opens with a chapter on how (and what to learn). This includes an appeal to well-established third party dogma – Maslow's Four Stages of Competence and the Dreyfus model of skill acquisition. - as well as suggesting cross-sensory feedback with the advice listen to music while you work and doodle while you think – including in meetings. Concerns in this section range from test-driven development and the advisability of learning multiple programming languages to dealing with ethical issues and physical posture while working at a computer.
There are only 3 chapters in Part IV Getting Things Done. The first has the title Smarter not Harder and Goodliffe begins by telling us how he helped out a colleague who was struggling with a graphics task by choosing the right tool for the job. There's lot of practical advice here and the see also section refers you to This Time I've got it, a chapter about problem,solving. The uses a longer story, featuring characters Jim, a coder repeatedly failing to locate a bug, and Julie, a more experienced colleague who prompts him to talk through the situation, enabling him to discover the solution. The key message here is to be accountable to another programmer.
This chapters leads in nicely to the final, five-chapter, section, Part V The People Pursuit which looks at programming as a social activity with messages such a "Purposefully put yourself beside excellent programmers" and " Good communication fosters good code."
The penultimate chapters has the title Many-festos and has a spoof example of a manifesto to make a rather tongue-in-cheek point that appears to question their usefulness. On the whole, however, Goodliffe think that manifestos are helpful and presents his own, which in just eight bullet points sums up The Better Programmer Manifesto.
The final chapter, Ode to Code, makes its point with a tale written in rhyme about Gerald, a coder who coundn't stand bad code and went to extreme lengths - the message being to realize that people problems constitute a "tricky part of software development".
The books rounds out with an Epilogue that tells us that Attitude is what sets the good programmers apart fro, the bad ones; its what distinguishes exceptional programmer from the merely adequate ones.
Overall this is an easy, fast paced, read with something for everyone. If you think through the questions and respond to the challenges you are bound to get something from it, whatever the level of your prior experience.