| I'm constantly bewildered by this notion that writing by hand is slow and thus bad, and that typing is fast and consequently good. In my daily routine work as a programmer I find most of my work consists of thinking rather than writing. Or to twist the words a little: I don't think my typing impairs my creative ability, because the hard part of my job is thinking out the right solution. If you can't hold that thought in your head without typing the solution into your program quick enough to run and test it, perhaps you're not seeing patterns clearly. As I work I constantly scribble notes on paper as I find it helps me think. When debugging a concrete problem, I find myself jotting down elements of the stack trace on paper so I can more easily retrace my steps. Concurrently I write down interesting things I come across that needs checking which I can return to when I'm done with my current line of thought. Yet I'm fully aware I'm moving against the tide. I occasionally write longer pieces by hand several times a week, such as theories and findings. This helps me internalise patterns, solutions, and conclusions to interesting problems. Occasionally there are patterns and I can correlate good solutions to a problem to one I've solved in the past. But foremost it helps me _think_ better about the types of problems I'm trying to solve. Programming is a creative discipline and not always about reapplying the same old patterns others have used before you. It's about craftsmanship and about learning the trade; about recognising those patterns and seeing new opportunity. More to the point, my limitation isn't the speed at which I type things into my computer. The limitation is my brain not thinking fast enough. |
First, since thinking is the hardest part, it's important to eliminate as many distractions as possible. Having to break concentration because I'm writing/typing is very unhelpful. Writing or typing with poor typing skills breaks concentration for longer periods of time.
Second, a nontrivial part of "thinking" is actually reading code spread across multiple files. Since I use vim, typing speed helps me to quickly get to the sections of code that I need to review. This greatly speeds up the thinking process.
Of course, I definitely do write stuff out at times, and I find I can think very well with a whiteboard. These are mostly for things that need to be diagrammed out in two dimensions (which a lot of things do need to be).