DEV Community

edA‑qa mort‑ora‑y
edA‑qa mort‑ora‑y

Posted on

Programmers that can't type shall be shunned and treated with disdain.

comic of title

Learning how to type well, you know, without constantly looking at the keys and using all of your fingers, is an essential skill for anybody spending their days a the keyboard. It pains me whenever I encounter programmers that can not type.

I think it's a frustration point for many colleagues. You want to help somebody, but it's no fun watching them peck away at the keys trying to get their thoughts down.

I've been doing a lot of interviews lately and it's a recurring problem. Some interviewees simply won't get done the question because they can't type correctly. Even if their problem solving is okay I get a bad impression since it takes too long to produce code.

What are your thoughts?

Note: In case it wasn't clear, these little comics are exaggerated for comic effect. I have a whole series of them. I've decided to add these discussions as a little bit of background to the series. Obviously I'd never advocate actual disdain for somebody.

Top comments (16)

Collapse
 
leightondarkins profile image
Leighton Darkins

Following the WPM post from a little while ago, I learned that I fall firmly into the "painfully average" category of typist/programmers.

I'm no slouch, and certainly not a "hunt and peck" type of guy, but I'm definitely not a touch-typing wizard either.

My general thoughts on this are that it is pretty important to be able to use the tools of your trade effectively. A blacksmith who couldn't swing a hammer at all wouldn't be very useful. And it can definitely be frustrating to work with folks who are on the slower end of the WPM spectrum.

That said, I'd choose to work with a good problem solver over a fast typist every day of the week. I'd much rather write good code slowly, than shit code quickly.

I also never hesitate to suggest that the less proficient typists on my teams spend a small portion of their day improving that skill (myself included).

Typing on the slow side is definitely worthy of some pointed feedback, but I don't know that I'd be shunning, or treating anyone with disdain 😜

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I don't care if somebody is fast, I just don't want them to be slow. I'm okay with painfully average.

I think it's a great idea to encourage typing practice. Faster typing provides faster turnaround on all sorts of tasks during the day, not just coding.

Collapse
 
val_baca profile image
Valentin Baca

I disagree wholeheartedly.

1) We should be solving problems, not throwing SLOCs at problems.

2) This feels like unnecessary gatekeeping and self aggrandizing. Reminds me of a co-worker that had the Teh Most L33T Mechanical Keyboard that sounded like mortar shells dropping with each key press. Everyone was always so impressed with how fast he was typing. "Oh-Boy he must be such a 100x programmer!" When in fact he was trying to type so fast, most of his key presses were just slamming on the backspace repeatedly.

3) Along the lines of gatekeeping, this could also be pretty ableist. Not everyone who programs types with their fingers. Not everyone that codes can see. etc.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Perhaps I implied coding is the issue, but it's not the major problem. I'll copy from my answer to Isaac, typing is required for:

  • writing email
  • entering ticket information
  • writing documentation
  • chatting in slack
  • writing comments
  • asking questions online / searching
  • shell commands / app navigation
  • refactoring code
  • new code

New code is at the bottom, where I think we all agree it should be. All that other stuff occupies a good part of the day.

But even with code, a lot of it is exploration. The faster you can move bits of code around, the better able you'll be to explore different options. Now I don't really care if this is typing ability, or you've become a master of your IDE tools and mouse. The point is that you have to manipulate the computer a lot, and the faster you can do that the better. This applies regardless of the interface you are using.

I'm also assuming that most of the detractors to my comment are decent typists. As I said in other answers, I'm not looking for people that are speed typers, I'm just concerned about people that clearly can't type. A guy doing 100WPM with 50% backspaces also can't type.

Whether you believe it will hinder your job or not, if you can't type reasonably you won't past any interview that involves coding (nor any that involves chatting online). This is a real gateway that programmers have to get through.

Collapse
 
scottshipp profile image
scottshipp • Edited

I think I fall in this camp too. Instead of sitting down and typing a gazillion lines I like the thought that we'd all step back from the problem and do one or more of the following: organize our thoughts, sketch and plan on a whiteboard or paper, discuss with others, etc. Usually these actions result in a better solution with less code, and lines of code are often a liability rather than an asset because of the bug density.

Collapse
 
jeansberg profile image
Jens Genberg

I disagree as well. Programming is not about typing fast. It's this kind of elitist sentiment that keeps people out of programming. As if STEM isn't exclusionary enough already.

Collapse
 
isaacdlyman profile image
Isaac Lyman

I don't know anyone who spends most of their time on the job typing code as fast as they can. That's the Hollywood stereotype, but it's exactly the opposite of real programming. I spend most of my time on the job researching and thinking.

I type nearly 100 WPM, as tested my senior year of college. I do not consider this a necessary skill for programming.

In new product development, a coder may write 100 lines of original code in a day (he or she may contribute more lines, but much of it will be copied and pasted). In a more established codebase, ~10 lines a day is the norm (according to Fred Brooks's The Mythical Man-Month). You don't need to type 100 WPM or even 10 WPM to achieve that.

In fact, there is nothing I care about less in a programmer than whether they can type quickly. It might look impressive in a coding test, but not as impressive as a clear, brief and correct solution to the question.

The one thing that typing is really good for is writing about programming, which may not be super important for programming, but can do wonders for your career. A well-kept blog can be as valuable as a resume. I recommend learning to type for that reason alone.

Collapse
 
sarimarton profile image
Marton Sari

"I spend most of my time on the job researching and thinking."

That is exactly the hollywood stereotype. In reality, you have to explore variations, dip into what the intellisense offers you, try out things quickly, exploration and discovery, in a directed manner of course, but on the lower level you're actually handling, moving, pushing bits here and there to move forward.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I suspect it's because you type fast enough that you don't realize how important the skill is. Consider all these things that you use typing for:

  • writing email
  • entering ticket information
  • writing documentation
  • chatting in slack
  • writing comments
  • asking questions online / searching
  • shell commands / app navigation
  • refactoring code
  • new code

If you're a slow typer you'll find your entire day slowed down. It's not about how fast you can write code, but about how fast you can type anything.

During coding I also find that slower typers are generally worse programmers as well. I don't know if this is causation, or merely correlation. I'd guess it's not just coincidental though. Your mind moves quickly. If your hands lag behind you'll have less ability to experiment, and you'll forget ideas that were forming.

Collapse
 
isaacdlyman profile image
Isaac Lyman

These are good points that I hadn't considered. Thanks for sharing.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

I strongly agree that programmers should learn touch typing at some early stage of their career. We do a lot of typing - code, documentation, bug reports, StackOverflow questions, community interactions, emails, dev.to comments... - and you are correct that time is too valuable to hunt-and-peck that all in the long run.

Personally, I learned touch typing in middle school (yay for "Mavis Beacon Teaches Typing"!), and I currently type at between 85-105 WPM, with 90+% accuracy. That skill has helped me tremendously in every aspect of my career.


While I'm at it, can I also say programmers MUST learn good spelling and grammar! It says a lot about a coder when "ebverythng they type looks like ths lol hey evrybdy see what i mean rotfl". The impression that poor/lazy spelling and grammar gives is that the coder does not care, is poorly educated, and/or is therefore probably incapable of following the even stricter syntactical rules of programming. Coders should take the time to use proper spelling, capitalization, punctuation, and the rest of grammar (minor exceptions granted for live chat.)

For me, the effort involved in proper writing is minimal, purely on merit of practice. Learn it alongside typing, and practice it diligently. Over time, it'll become second nature.

On that front, if the rules of grammar escape you, I strongly recommend the "Writer's Digest Grammar Desk Reference" by Gary Lutz et al.. Similarly, if you want to improve your writing style, "The Elements of Style" by William Strunk and E.B. White is an excellent reference.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Programming is ultimately about communication, so the better one can communicate the better a programmer they will be.

Collapse
 
alainvanhout profile image
Alain Van Hout

Like others have already mentioned, I don’t believe the speed at which characters of code can be produced is a significant bottleneck in actually producing code. Even if we disregard that, in my experience, knowing a sufficient amount of the shortcuts of your IDE (or tool of your choice) has a far greater impact on the speed at which characters of code are produced. (I’d argue that IDE shortcuts have added, and greater, value because they avoid lots of potential typos, but that’s a different discussion)

What may be significantly impacted by slow typing, is that your pair programming buddy gets frustrated because things are going much slower than they’d like. Barring rare exceptions of truly slow typing, that’s however more of a problem of the frustratee than the trustrator.

Now to actually address the core observation of the post: I can type more than fast enough, as can most of my colleagues, but when somebody is looking over your shoulder (like in pair programming, but more so in interviews), that typing speed and proficiency tend to go waaaay down (at least for a while). So you’re not actually measuring their skills in general, but only within a very specific situation and with a very specific focus (which is a general and considerable weakness of interviews).

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

What prompted me to write this comic was a few instances of truly slow typing. It was my frustration in an interview that the person just wouldn't finish any significant part of the code due to this problem.

The pressure of having somebody look over your shoulder is significant, and you are right to consider this when in such a situation. The frustration somebody feels when watching somebody peck away at the keys is also significant. Both sides must be considered. I'd say it's much easier to improve your typing skills than change the patience of the people watching you -- regardless of how fair this seems.

If you have an IDE that serves your needs, then great, use it. If you need to refactor some code, and you have some IDE wizardry that does it quickly, then by all means, take that approach. I'd suspect that good keyboard skills aid a lot here as well -- shortcuts are not any faster if you spend your time hunting for the shortcut key.

Collapse
 
sarimarton profile image
Marton Sari

It's an absolute must have. People arguing about problem solving being the point miss the fact that everything translates to speed, and slow typing is a huge distraction. Slow typists can't make correct use of intellisense and autocomplete in the IDE. Yes, there are thinking periods, but most of the type you actually have to explore ideas, try things out, and push the stuff.

Collapse
 
evanoman profile image
Evan Oman

I agree with most others here that typing itself is rarely the bottleneck for most processes.

That being said, this post did remind me that typing is a skill that I use every day. I invest a huge amount of time in developing my other skills, why not this one?

I've now set a goal to practice touch typing each work day, thanks for the inspiration!