Am I Better Yet?

Overview

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.

Tidbits

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.

Reaction

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.

Simple Programmer Blogging Course

I decided to start this blog after reading some articles on specialization over at Simple Programmer. He argues that you need to pick a specialization within software development to be truly successful. After reading those articles, I decided that I would check out his free blogging course, which helps you to setup a blog related to your chosen specialization.

From what I understand, the course is comprised of 7 lessons that are emailed to you individually on Mondays and Thursdays. Writing this article is one of the exercises required for lesson 5, so I have not yet completed all of the lessons. However, I have seen enough to form an opinion.

The thing that I like most about this course is that John Sonmez provides very concrete action items to complete with each lesson. Many software development related courses and books that I have experienced are excellent up to a point. I am one of those people that really needs to learn by doing, and that is where I feel like a lot of these resources fall flat. They don’t provide meaningful exercises to make the lessons real. The Simple Programmer blogging course does an outstanding job of this. Not only does it provide these concrete exercises, but the end result is that you will have your own functioning specialization blog when you are finished.

Another thing that I enjoy about the course is the format, whereby one lesson is mailed to you every few days. A new lesson gave me something additional to look forward to on my Mondays and Thursdays. Additionally, pacing each lesson gives your brain some time to chew on the previous lesson.

Are there any negatives to the course? It is hard to complain about a course that is free and that motivates you to accomplish something real. If I had to pin down one negative, it could be that the constant promotion of a paid workbook for the course could wear on some people. However, I do have to give Sonmez credit for such clever marketing strategies. In the end, this could actually be a benefit, as some of his tricks could easily be used by a student in marketing their own future products. In that way, this course is a bit of a two for one bargain (blogging and marketing, and at a free price).

How could the course be improved? I’m not sure how long the course has been available, but I’m guessing that it’s been around long enough to provide some real world examples of blogs that resulted from this course. Sonmez provides a lot of motivational material, but what could be even more motivational than examples of graduates whose blogs have seen success?

I hear a lot of people say that you get what you pay for. However, considering that the Simple Programmer blogging course is free, you get a lot more than you pay for here. If you’re a software developer and you haven’t chosen a specialization or started a blog yet, I would recommend that you give the course a try. You have little to lose, and seemingly much to gain.