Thu 18 Aug 2011
I recently got serious about golf again, after a near-decade layoff. Although I played on my high school’s JV golf team (and even managed to win a few matches), I’d never had any formal instruction. I was only able to muddle by with my substandard gear and hopeless swing because I was playing every day. I’ve played only sporadically since then, maybe one or two rounds a year, so my makeshift ability to get around the course has evaporated with disuse.
In order to become a better golfer I decided to start from scratch, beginning with lessons from a PGA pro and purchasing a set of clubs suited to my ‘experienced beginner’ game. And in the process I have found some interesting parallels between learning to golf (again) and learning to use a code editor.
You need solid fundamentals as your foundation
Having been a badly-self-taught golfer for the majority of my life, I now see them all the time at the driving range. And it always starts with the hands. If you have a lousy grip, you’re going to have a lousy swing. The corollary in software development in my mind is basic typing and keyboard navigation skills. You can have a talented mind for software development, but if you’re not touch typing your way through source code, you’re making it way too hard on yourself.
Know and use the tools available to you
I recall a time when my high school golf coach, in a effort to make a point about club selection (or perhaps just to show off), played a few holes with just a 3 wood, a 7 iron, and a putter. This is eleven clubs fewer than you’re allowed to carry. We got the point he was trying to make, but you don’t see good players with fewer than 14 clubs in the bag. And they aren’t using the cheapest off-the-shelf sticks, either.
I also recall a PDC conference session several years ago where the presenter was banging out ASP.NET examples and frequently used Notepad to tweak some of his prepared code snippets. The audience started tuning out about the 5th time he had to repeat the edit-save-compile cycle on a particularly troublesome sample, when the use of any decent code editor would have shown the syntax error at the top of the file right away.
Master the basics so you can focus on the harder tasks
Once you have a solid, reliably repeatable golf swing, your mind is free to focus on all the other details of the game. A software developer that is in command of his or her IDEs, editors, debuggers, etc is likewise free to focus on the real work of designing and coding.
Everybody’s “key move” is different
One night at the driving range I was having a terrible time making clean contact with the ball, even with the deliberate practice of what my golf coach and I had just gone over in the previous lesson. But somewhere in the recesses of my memory I pulled out a tip I had read in Ben Hogan’s Five Lessons where he recommends a wrist waggle as part of the pre-shot routine. So I gave it a try. Lo and behold the waggle made it quite evident that my stance was too close to the ball. After making the adjustment, everything else fell into place. Now I don’t swing a club without this waggle routine.
Most software developers have their favorite features and shortcuts in their editor of choice. These features become an essential part of how they navigate a source base or edit code. My key move in SlickEdit is using the SlickEdit command line. It’s the first place I go when I want to do a quick search, compare the current file with Subversion, look up a keyboard shortcut, and dozens of other operations. Other folks swear by aliases or custom macros. Some will create custom key bindings for every conceivable editor operation.
Demo clubs are awesome
I tried out half a dozen models of clubs before finding the set that I liked the best and felt right for my work-in-progress swing. If you’re not yet carrying SlickEdit in your tour bag, we invite you to download a trial and take it out on the range.