Today I’m going to take a break from my standard ASP.NET MVC material so that I can take a closer look at Peter Goodliffe’s book, Becoming a Better Programmer: A Handbook for People Who Care About Code. About a month ago, I was perusing the technical books at my local library when Becoming a Better Programmer caught my eye. I had previously read one or two books regarding how to be better at my craft, but I had a continued interest in learning more on that topic.
When I think about previous books that I had read on the topic, Code Complete: A Practical Handbook of Software Construction, Second Edition comes to mind. It’s been years since I have read that one, and I can’t remember a lot of details anymore, but I do remember being quite impressed with it. From what I can remember, I believe that Becoming a Better Programmer covers more topics, but each one is covered in less detail. Code Complete may have seemed more revolutionary in my mind, since I read it early in my career. Perhaps because I have seen a lot more code since then, I didn’t think there was a lot of stuff with which I was not at all familiar, but it was good to at least get a refresher on all of it.
This should have been totally obvious to me, but some of the material on source control gave me good ideas for future improvement. It is typical for me to do random code clean up (in the same area of code) as I am working on a bug or feature. I will typically do a single commit that contains the clean up along with the primary change. Goodliffe recommends that you do separate commits in this circumstance. I can see that being helpful for code review and perhaps if you need to do a complete rollback on one of the commits. My company does not perform code reviews or perhaps someone would have suggested this to me sooner.
Goodliffe emphasizes testing throughout the book, mentioning the important role of a standardized set of unit tests, as well as touching on test driven development. My company has dipped its toes in the pool of standardized unit tests in the past, but it has never really gained traction there. Admittedly, I have not even done this heavily on personal projects. I think that I would like to see more statistics on how this could save us in the long run. I’m not saying that I am against these tests, but I think that some good statistics could be helpful in getting buy-in from management.
Another topic that Goodliffe touches on that I can’t remember seeing in another book of this type is ergonomics. I will admit that I suffer from occasional back pain, and I have to wonder how much of that comes from poor ergonomics or posture at my work desk. He gives a list of recommendations here on how to setup the ideal ergonomics for your work station, which is something that I may go back and review later to see where I stand. Speaking of standing, I think that he touched briefly on standing desks, but I would like to see a broader coverage of the various options that are available in a newer book (fewer options may have been available when he wrote the book in 2014).
Becoming a Better Programmer also differentiates itself from book on a similar topic by sprinkling a number of comic strips throughout the book. Goodliffe is listed as the illustrator, so I’m assuming that he did these himself. He must be quite a creative person to be able to write a number of successful book, illustrate them himself, and also be heavily involved in coding duties. Anyway, I found some of these comics to be entertaining, and they did a good job of breaking up a coding tome.
I am of the opinion that reading this book was time well spent in terms of a borrowed library book. It refreshed my memory on some code quality topics that I had heard discussed before, but had perhaps forgotten. I’ve already gotten to work righting some of the wrongs of my coding past, based on the suggestions that Goodliffe lists here. Would I go as far now as to buy a copy to keep for future reference? Probably not, but I honestly would list very few books in that category at this point. With that said, if you want to get another perspective on what good coding looks like, this book is worth a look.