I've said a few things in the past about The Programmer's Back. Well, when it rains it pours. We all have pain I'm sure, but since I'm the center of my own universe my pain takes priority. I've had trouble with my hands and wrists over the years of programming. Recently, however, it's become rather ridiculous as I can only type for a few minutes at a time before my fingers and wrists start to ache.
I've got the natural keyboard and I've got the trackball mouse but fundamentally I'm I/O bound when it comes to my hands.
If you've ever seen me present before, you know that I type fast. This is not hyperbole, this is simply fact, my fingers move really fast, and now I'm paying for it. I'm not particularly athletic either and 10 years of not working out has no doubt created a weakness in my hands and forearms that can be covered up no longer. Perhaps I'm just having a flareup, but regardless it's time to deal with it.
I've looked at all sorts of funky keyboards that claim to have the One True Way of typing but I've decided the typing is just not where it's at. It's just one syllable for me to say something like "code" but it's four keystrokes between two hands and that seems ridiculous to me. So lately I've been into voice recognition, first starting with the built-in Microsoft voice recognition software and currently with Dragon's NaturallySpeaking. I've taken a few typing tests online using the voice recognition software and I've achieved up to 100 (160 in one case) words a minute - which is just about what my typing speed was at my peak. The quality is so much greater than it was five years ago when I tried previous versions of voice recognition software that at least I can feel that the future will hold positive things around voice recognition.
In fact this entire post has been dictated entirely with Dragon NaturallySpeaking version 7, and I have to say I'm not completely disappointed. For dictation, it's fantastic. The accuracy is easily 95+%, and the only strange things happen when there are words like "Corillian" that are just too weird for it to possibly understand. However it does mitigate some of these issues by scanning all of your e-mails and all your documents looking for potential vocabulary words.
I don't know if I could use it effectively if I had no hands at all, as most of its commands consist of one or two word chords and it seems to have trouble with very small words. For example the breeze forcibly on the microphone it might say "up" or "pop". It knows about a large number of applications, except it doesn't know about Firefox which makes browsing a bit of a problem. One day I'll have to go Google for additional command sets for the tools and programs that I use.
Seems that a lot of people out there have had carpal tunnel release surgery and continue to have trouble. That seems like an awfully drastic step. The only answer seems to be to "lay off" the keyboard.
Has anyone else had to stoop to this level and use voice recognition software in lieu of a keyboard? Has anyone found a vertical keyboard or some strange alternative keyboard that has changed their life and suddenly opened up new vistas of use for their damaged hands? Am I the only programmer out there with a bad back and a bad pair of hands who's 12 years into his career and wondering what the next 12 will hold? Or do I just type to damn fast?
(P.S. One thing to note, I am using a USB microphone for this dictation, and I can't imagine someone getting this kind of accuracy with an analog microphone.)
(P.P.S. Looking back on this blog post, I shudder at the sheer number of characters and keystrokes that would been required had I'd done this by hand. Perhaps voice recognition will usher in a prolific new era in blogging for me. Or, I'll just ramble a lot into my blog. :) )
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.