Today I engaged in yet another discussion about the need of touchtyping for programmers with few of my collegues. My position on this issue is ver well known – I think that touchtyping is a requirement for a good programmer. I accept, of course, that there are few good programmers out there who can’t touchtype, but they are very few and they are only an exception that supports the rule.
While in said discussion, I was trying to come up with a good analogy from a non-IT area for a programmer who can’t touchtype. I know of two ways to come up with a good analogy.
The first way is based on spontaneous creativity and associations. All you need to do is start speaking out all ideas that come to your mind. Eventually something good might come out. I usually prefer this way, but today it failed me.
All I could come up with was a surgeon who can’t use the scalpel. This analogy is incorrect. Surgeon who can’t use the scalpel can’t do his job at all. Programmer who can’t touchtype can do his job. It’s just the way he would be doing his job won’t be very effecient. I could of course go deeper into this one and find a better example, but I am not very good with medical terminology. Neither are those people for who I was trying to create the analogy.
So, I tried to use the second method for analogy generation that I know of. It is logic and the thinking process. Sometimes it works much better, albeit slower. And I am not a big fan of logic.
At first I was trying to find some profession that would be very common so that everyone would be familiar with details of the job and tools used. Doctors were off the list. Lawyers, bakers, and drivers came first to my mind. Now I had to examine tools and processes used in their jobs. Lawyers don’t have any tools. At least I don’t know of any. Bakers have an oven, but I am not very familiar with the processes involved. Drivers on the other hand sounded like an excellent choice. Everyone knows what drivers do – they drive. The driver’s tool is his car. Most of the people these days have a good understanding of what a car is and how it can be operated.
Now that I had a good profession and a tool, I had to come up with the process that would be analogues to touchtyping in computer programming. What can one do with the car? Drive it, of course. Not a good choice. Driver who can’t drive, cant’ do his job. I needed something more specific. Who does one drive a car? Start the engine, shift the gears, drive, stop, turn, etc. One can’t drive without engine switched off, so I crossed that one off the list. Shifting gears is done automatically on many cars now, so this is a weak analogy. I didn’t want that, so I crossed it off the list to. Now for the driving part.
One of the biggest difficulties for young drivers (young in terms of experience and not age) is to get the car moving. The moment when it happens in intense – there are so many things to control that inexperienced people easily confuse and mess things up. If there would be a professional driver who would still have this problem, he would be very ineffecient. He would be analysing his route so that he would have to stop/start going as less times as possible. He would get stuck often.
From the first look it seemed that I found what I was looking for. But deep inside me I knew that it wasn’t exactly it. I was trying to understand what is wrong with this analogy. And than it hit – many people plan their route to have as little stops as possible. So that would make my analogy weak again.
And so I continued. I was still going to find my analogy in the driving area. I liked this a lot because it is so accessible and easy to understand to everyone. I didn’t want to change the subject. All I had to do was to find an ineffcient way of driving. The moment I formed my task like that – I knew the answer.
The most ineffient way to drive is to drive backwards. Imagine putting the rear gear and driving to work and than back home. That’s a living hell. What would it look like if there was this guy, who was driving his cab or truck for the last twenty years and never learned to drive forward? That would look very awkward I tell you.
And so I had it! The programmer who can’t touchtype is like a driver who is always driving backwards. The more I was thinking about it the more I liked it. Yeah, that’s right. That’s the one. From now on I’ll be using it all the time. Maybe people will start thinking about their skills more and learn the touchtyping at last. It’s not that difficult. I promise. It won’t take them longer than learn how to drive a car forward.