I've been an avid computer scientist since before I had access to computers and I've been typing away since my late teens on a daily basis. As such, I developed typing discomfort and, eventually severe pain pretty early in life.
Because I began computing towards my adulthood, I had never really learned to touch type. We'd practiced it a bit in elementary school, for a couple days, but that was not enough exposure to keyboard work to ingrain the habit. The computer lab was off limits to most of us, rendering it somewhat useless, except on training days, which were few and far between. We were sort of expected to go home and type, but we had neither typewriter nor computer in our home.
When we finally got a computer I had to learn to type the best I could. I typed in a six-finger seek and peck style for the first 8 years or so of my computer science education. I became quite fast, typing more than 90 words per minute (wpm) and frequently receiving comments on my speed.
This led to devastatingly painful consequences towards the end of college. One night, a friend and I stayed up too late finalizing a final exam codebase that was assigned to us with too little time to complete. At the end of this coding session, my arms were in serious pain, shooting all the way to my elbows. I could not type for several days, at all!
I knew I could not continue like this and resolved to learn touch typing. Because I was so thoroughly accustom to seek-and-peck style in qwerty, I felt it would be easier to start afresh with a new keyboard layout.
Between graduating college and starting my first job in the cloud computing, DevOps space, I took three full months to migrate from qwerty to dvorak. I actually used a variant called programmer's dvorak, which is particularly well suited to standard keyboards, but requires extra effort to install.
Not long after that, I began working with erogonomic keyboards, starting with the TypeMatrix 2020 and TypeMatrix 2030. While I loved these quiet, versatile, and portable scissor switch keyboards, I found that they could not stand up to my use for more than 5 years. After these keyboards began to fail me, and I found them too difficult to repair, I resolved yet again to switch to mechanical keyboards.
There are many mechanical keyboard enthusiasts who can tell you the various merits and virtues of mechanical key switches, but I'm here to talk about a particular set of features they provide.
First and foremost is repairability. I do not own a single keyboard today that I can not easily repair myself, and that is because they use mechanical switches. With switch sockets it's even easier, making repair a matter of having a single tool and spare switches on hand. You don't even have to open the keyboard, unless you're cleaning it. Speaking of which, you can completely disassemble these boards for cleaning, in most cases! Particularly useful for unorthodox keyboards that have no rubber, key protector options.
So What's the Big Deal?
In my journey with these boards, and the reduction of typing pain, I discovered something I did not expect to learn about. Microcontrollers. Because many of these designs are intended to be programmable, they need an appropriate amount of compute power on board to allow users to do that. I realized quickly that some of the microcontrollers powering my keyboards are power-house systems in their own right. It would not be impossible to turn some of these designs into self-contained computers themselves!
This discovery blew my mind, and I began to explore microcontroller architecture more deeply. This led me down a rabbit hole that unlocked the mysteries of computer science. I was beginning to understand how hardware works, how the software I write controls that hardware, and just exactly how we've convinced rocks to think!
Uncovering the secrets of low-level computing has drastically improved my performance as a computer scientist in both high and low level applications. I am able to relate how hardware works to how the cloud functions, and why we have certain best practices in the cloud. I'm able to relate how software controls underlying systems, and that helps me tremendously in troubleshooting in particular; even for high level applications.
Meanwhile, the possibility of creating my own hardware went from a fantasy to a very reachable possibility. I've already learned how to manufacture PCBs (Printed Circuit Boards) of other people's designs, something I used to think impossible, and now am learning to design my own PCBs as well! Of course, with Project ODIN we plan to design our own integrated circuits; an increasingly realistic goal for the individual team to achieve in today's technological ecosystem.
These skills are often neglected in today's computer science education, but they are far more approachable than we've been led to believe. Something as simple as a keyboard can be used to unlock the deepest mysteries of computing technology.
It is important to know that every passion you have can lead to opportunity, and every avenue you explore may build in you some new and valuable expertise, if you approach it with an inquisitive mind.
Thanks again for your time, happy typing, and see you next time!