Wednesday, August 7, 2019

Midsummer Thoughts on the Fun of Coding, Obvious Secrets, and Whether Plumbers Plumb on Vacation

A recent documentary shown on american television (https://www.golf-films.com/hogan) chronicled the 
life of Ben Hogan, the greatest golfer of the 1950’s. Hogan is a fascinating person, 
not only for his success as a professional athlete, but his overcoming personal tragedy. His father 
committed suicide when he was a child. Years later, as an adult, when he reached the pinnacle of 
his sport, he was nearly killed in a head-on collision between the car he was driving and a bus. 
After multiple surgeries and months of recovery, he was once again able to become the top athlete 
in the world for his sport. He became so proficient, in fact, that he was rumored to have found “the secret.” 

Every athlete searches for the secret to better performance, but in reality, “the secret” usually 
comes down to a combination of talent, hard work, and perseverance. In Hogan’s case, it was 
definitely a combination of the second and third of these factors. To a great degree, he invented 
modern practice where repetition in practice was the key to success performance under pressure. 
It has been an obsession lasting decades to try to discover Hogan’s secret. The answer may have been 
obvious. If he had a true secret, it was hard work coupled with the fact that he actually enjoyed 
practice. It was never work or drudgery to him. For him, practice was actually fun.

But, what does this have to do with software engineering? Fast forward to this week. 

We had taken the family to the beach for a week of vacation. After returning from a day at the beach, 
everyone in the family was relaxing their own way. My wife poured herself a glass of white wine and 
became engrossed in FaceBook.Grandma tuned the TV to the Golf Channel and complained 
about the beach traffic to anyone who would listen.The kids tortured each other over a game of ping-pong And me? I put my feet up and was unwinding by downloading an open source project that I had just 
 discovered on github.
 
Later on, my daughter remarked to me, in her usual subtle manner, “Geesh dad, you’re always on the 
computer. Don’t you ever want a break? Do you think that plumbers do plumbing when they are on 
vacation?” She does have a point. For a lot of people after working a full day, the last thing that they 
want to do is to look at or work on anything job related in the evening, especially when they are on 
vacation. I tend to doubt that very many plumbers do a lot of plumbing when they are on vacation. 

But, software engineers are different.

What is is about software and software engineering that makes us always wanting more? One reason 
may be that rapid changes in technology are interesting and frequently exciting. Another reason might be 
that given the rapid rate of change it’s important for your career to stay current with the latest 
developments. 

These are all valid reasons, but I think that the "secret" for us, just as it was for Hogan and his practicing, 
is obvious, that we actually enjoy reading and writing code. 

In other words, for us, it’s fun!

Part of the fun comes from the nature of software itself. When you're working with physical media 
such as with steel, or concrete, or beach sand, the limitations of what you can do are based on 
physical limitations of that media and the physical environment. In contrast, with software, you can 
face limitations of memory or CPU speed or environment, but you are primarily only limited by your 
imagination. This is what makes software engineering so rewarding, and so much fun. You are 
basically building virtual structures out of ideas. And, unlike physical media, you can easily tear down, 
redesign, and rebuild structures in software. 

Wishing everyone a fun end of the summer!

No comments: