prevnext
One With The Keyboard
A Necessary Prerequisite
Published on
A Macbook Air Keyboard
MacBook Air Keyboard With Backlight
“What I was proud of was that I used very few parts to build a computer that could actually speak words on a screen and type words on a keyboard and run a programming language that could play games. And I did all this myself.”
-Steve Wozniak

Introduction

When I decided to dive in deep, and make my best attempt at learning everything I could about Computers, I had already been, what is commonly called, a "Power User" of computers (meaning the Windows Operating System), and so didn't have as tough a time as some would have when I started my journey into learning the intricacies of computer programming. I have been a more than adequate typist since the age of eight years old and had taken the time to learn more than a few keyboard shortcuts. These skills would prove invaluable as they would compound on the skills necessary for basic desktop operations.

There is such a huge skill and knowledge divide between the average everyday user of today's computers and programmers, and that divide is becoming ever wider with the emphasis placed on tablets, phones, and touchscreens. In many ways, the ability to adequately type is becoming a lost art form that only college graduates of certain disciplines find themselves capable of, let alone know about basic keyboard shortcuts (ctrl+tab, alt+tab, ctrl+c, ctrl+v, ctrl+a, ctrl+z ,ctrl+shift+left/right arrows, etc.). These skills, while not uncommon, are also not nearly as common as they should be, especially when considering the prevalance of computers in our lives. This is certainly an opinion (as is nearly everything written on this blog), but I think it goes without saying that the ability to type at least 40 words per minute (WPM) is as important as, if not more important than, the ability to drive a motor vehicle in today's modern world.

In the beginning

So where do you get started when learning to code? If you already can type adequately without looking down at your hands, and are familiar with some basic keyboard shortcuts, then honestly you are miles ahead than some who make the attempt from absolutely no knowledge of keyboards, let alone computers. But this blog is written by a beginner/intermediate computer user/programmer. So come, let the blind lead the blind a bit..., and let's cover some basics.

Learning to type adequately and get to the minimum threshold of being able to comfortably type 40WPM will take about two months of dedicated practice by my estimation (if you are a complete beginner), practicing at least 2 hours a day. Other than a desktop/laptop computer and a screen, you will(obviously) need a keyboard to get started. You should purchase a keyboard that is comfortable to you, but, ultimately, any modern keyboard will do for the purposes of learning how to type as long as it has the standard QWERTY layout(if the upper left hand row of your keyboard spells out QWERTY, you're good to go).

The next resource you'll need is a typing tutorial/course. These can be paid or free, but I'd recommend that you simply go to any of the multitude of free online resources. I personally like typing test.

At first you will find yourself typing slowly and looking down at the keyboard often. Do not fret, do your best to not get frustrated. Every new skill takes time and is rarely a comfortable experience. Whenever you find yourself looking down at the keyboard, return your fingers to the home row, place your index fingers on the j a f keys, feel the raised bar at the bottom of the keys with your fingers to remind yourself of the tactile sensation of being in the proper starting position, and continue to memorize where each key is. Eventually this muscle memory will become engrained in you, and you will be more focused on what you are trying to write, rather than the location of the keys.

Once you feel you can write a short essay (2 pages long), at about 40wpm, you are ready to move onto learning some basic keyboard shortcuts. This is markedly easier than learning to type, but provides you with an ability to navigate applications (particularly the web browser and word processor) much faster, and ultimately this makes doing research and editing documents much easier, less frustrating, and faster. Here are some of the basics that exist on the most common desktop platforms:

#keyboard_shortcuts.txt

On the Browser:
ctrl+tab (cycle forward one open tab)
ctrl+shift+tab (cycle backward one tab)

Standard Word Processors:
ctrl+a (select all text)
ctrl+c (copy selected text to the clipboard)
ctrl+v (paste selected text from the clipboard)
ctrl+z (undo last action)
ctrl+right-arrow (navigate to the next word)
ctrl+left-arrow (navigate to the last word)
ctrl+shift+right-arrow (highlight and navigate to the next word)
ctrl+shift+left-arrow (highlight and navigate to the last word)

On the desktop:
super(windows/command key)+tab (navigate through the open applications)
super(windows/command key)+shift+tab (navigate through the open applications reversed)

The skill of typing and knowing certain keyboard shortcuts are not necessary, per se, to learning how to code, but having a basic proficiency in typing will make your journey learning to code much easier. An approachable way to think about the learning process when it comes to typing is that it is very much akin to learning how to walk. Using the mouse can be thought of as crawling, typing as walking, and utilizing slightly more advanced tools like keyboard shortcuts and text editors like vim as running. All this said, there is a point of diminishing returns when it comes to the correlation between quality of code and typing speed. At some point you are reading code and looking at code and thinking about code much more than simply typing it. You do not need to have the typing speed of a courtroom stenographer to learn how to code, but it is essential that your typing speed (or lack thereof) not hinder your train of thought when you do put your thoughts onto the screen. The location of the keys must be subconscious in your mind so that the only constraint is the speed of your thoughts, not the speed of fingers.

Conclusion

I was once told that learning to code and program was like learning to wield a great lever. Once I had learned the skills to a certain capability, I would be able to do a lot with a single flip of a switch. More seriously, this same person would tell me that those that didn't learn these new technologies (and kept up with modern advances in technology), would be left behind economically. I believe this to be absolutely true. This makes the importance of learning to type ever the more important. Until communicating with computers is done in a more intuitive and immediate fashion, keyboards will remain one of the most important tools in the modern world, as they are, undoubtedly, the predominant way we interface with computers, and will be for the foreseeable future.