Keith Ray and Chris Hanson (and others, I bet) have commented on Bruce Eckels post “Programming as Typing“.
I would like to take this (wrong – as those fine gentleman have proven) analogy and add a slightly different twist to it – and thus prove that, if viewed from a totally different angle – the analogy works just fine.
(For the sake of simplicity, let’s assume that “typing” means “typing & clicking”).
If you’re not typing, you’re not programming – If you’re not typing, you’re not making any progress. Sounds rather obvious, doesn’t it? It’s not.
I’ve seen it over and over (both by observing others and – in rare moments – myself) that a software developer who doesn’t type, but sits in front of his computer thinking about the problem at hand for more than 2:30min (I made this number up at this very moment 🙂 is not actively developing software.
He is stuck.
* Because he’s not typing, he is not using all the feedback the code can give him on how the problem should be solved.
* Because he is not typing, he is not actively playing with different approaches to the solution – he is just thinking about the different approaches. He’s making up a mental model of the code – and more often than not, this mental model is rather different from what the code does (This happens to the best of us, doesn’t it?).
* Because he’s not typing, he is not using the feedback which comes from writing & running a simple test. He is not trying to solve a small chunk of the problem to get a deeper understanding of the larger problem.
Typing is more closely related to software development than you think.
(There may be others who frantically scribble boxes on a sheet of paper for more than 2:30min – those are stuck too, not as stuck as those just mediating, but still stuck)
(Of course, this doesn’t apply to you if your belonging to the elite group of geniuses – but that’s only about 0.0001% of the software developers out there)