Would a student's overall CS education benefit by having such a skill, and if so why not make it a required prerequisite?

An editor notes that there are three (at least) different ideas here that may be confused.

  1. Does the user hunt and peck searching for each key for each use?
  2. Does the user look at the keyboard/hands rather than elsewhere?
  3. Does the user use (usually) nine fingers to type or three?

Touch typing itself suggests using nine fingers and typing by "feel" without looking at the hands. But there are different combinations possible. In particular, some three finger typists don't really hunt and peck, having internalized the keyboard. Some may not need to look at their hands at all.

Note: "Nine" fingers as the left thumb is often not used at all. "Three" fingers as one of the thumbs is often used.

  • 1
    $\begingroup$ I believe that this question should be closed as too broad. From the help center: "Avoid asking subjective questions where ... you are asking an open-ended, hypothetical question" and "You should only ask practical, answerable questions based on actual problems that you face." To narrow it down, you could add information about why you want to know this and how it relates to your teaching. $\endgroup$
    – thesecretmaster
    Jun 18, 2018 at 17:58
  • 5
    $\begingroup$ I agree that the question can be improved as above, but not that it should be closed. Sometimes a question that seems simple turns out not to be - here and in the classroom. $\endgroup$
    – Buffy
    Jun 18, 2018 at 18:14
  • $\begingroup$ Please refrain from using the comments to talk about your experiance with typing. Comments are for suggesting improvments to the question, not discussion of it or answers. Answers in comments or discussion of your experiance learning to type will be deleted. $\endgroup$
    – thesecretmaster
    Jun 18, 2018 at 18:28
  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. Any further comments which are not used appropriatly will be removed. $\endgroup$
    – thesecretmaster
    Jun 20, 2018 at 11:28

15 Answers 15


Actually, there are a lot of things that benefit a student in CS, such as a degree in Mathematics or Sociology. Likewise interpersonal skills that help a person work in groups. Others are too numerous to mention.

However, a true prerequisite is a block, preventing advancement if you don't have the skill, so no, it should not be required.

Some data points. I was lucky enough to take a course in touch typing (on a typewriter) in about 1960. I was the only boy in the class intended for girls who would likely become secretaries. Not especially enlightened, of course. But touch typing has benefited me most in writing rather than in programming, and any CS professional writes a lot, even if they aren't book authors. But there are technical reports, grant proposals, system documentation, etc. that makes typing skill useful.

On the other hand, I know a lot of professionals, who are also authors, who still use two or three fingers to type and it doesn't inhibit them. The world would be a poorer place if they were prevented from entering the field for the lack of such a low level skill.

Also, modern hand held devices don't adapt well to touch typing. On a phone, I usually use just one finger since the keys are too small and my fingers are too big for me to use even two fingers.

But, students should be encouraged to type effectively, of course. But not as a block to advancement. Students should, of course, also be encouraged to develop good handwriting skills so that they can read their own hand-written notes. But that skill is being lost, unfortunately.

tl;dr: Prerequisites should be required only for required things, not just helpful things.

I'll also note that it isn't typing that makes programming hard. Neither is it typing that makes writing hard.

But if a student's typing skills are so bad that they seem forced to used extremely short and uninformative names for entities, then they need to improve. Readability is required.

  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. You're welcome to continue discussing this in chat, but comments are for suggesting improvments to the answer. $\endgroup$
    – thesecretmaster
    Jun 18, 2018 at 16:39
  • $\begingroup$ This answer would be improved by more clearly differentiating between touch typing and homerow. Typing without looking at the keyboard has nothing to do with how many fingers touch the keys. $\endgroup$
    – Knetic
    Jun 19, 2018 at 5:31
  • 2
    $\begingroup$ Don't forget chat software and e-mails. $\endgroup$
    – jpmc26
    Jun 19, 2018 at 21:07
  • 1
    $\begingroup$ @Knetic The clraified question clearly asks for touch typing = nine finger typing, which is almost always homerow typing. - Other interpretations could be "watching the screen instead of your hands" but are quite blurry and hard to test as a course requirement. $\endgroup$
    – Falco
    Jun 20, 2018 at 13:56

To answer the titular question:

In my experience, the advantage of touch typing is not the direct gain of time through typing faster. That’s negligible since most programming and writing tasks involve much more thinking, researching, etc.

In my experience, the advantage is due to touch typing working directly through your muscle memory¹ and not requiring you to actively think about it at all. Due to this, it does not break your flow of thinking about programming, writing, etc. – which it would otherwise do all the time. This is not only valuable in terms of speed, but it also makes the related tasks mentally less exhausting and removes subconscious psychological barriers.

which seems to be generally accepted in scientific literature, e.g., here (search for muscle memory)

  • 6
    $\begingroup$ @Buffy: If by document you mean provide evidence, I have nothing than my own experience to offer (except for the fact that touch typing relies on muscle memory, which seems to be generally accepted). A few similar claims can be found on the Internet, but they are not very trustworthy. $\endgroup$
    – Wrzlprmft
    Jun 19, 2018 at 11:52
  • 3
    $\begingroup$ @Buffy Evidence of what is still a question, but there has been some research done on the subject. The published paper is pay-walled. It is discussed, however, in an article from Research News @ Vanderbilt. $\endgroup$ Jun 19, 2018 at 21:07
  • 3
    $\begingroup$ I just opened my IDE and started typing, after 3 letters Intelli-Sense plopped up and I chose the right signature via two cursor down presses. - Programming with a modern IDE is more interacting with a document with mouse, cursors and hotkeys instead of typing a lot of long words. - So touch-hot-keying and fast-document-navigation are probably more useful skills for muscle memory. $\endgroup$
    – Falco
    Jun 20, 2018 at 13:58
  • 2
    $\begingroup$ @Wrzlprmft Motor memory also works for people who don't touch-type. I am a retired software engineer who worked in Silicon Valley industry and never learned how to touch type. I type with my middle fingers mostly, but I don't have to "hunt and peck". Rather, I have to look down at the keyboard every other word or so, the rest is motor memory, as long as I keep using the same (or very similar) keyboard. My take is that touch typing is a nice-to-have skill but not required to be a successful software engineer. The few times I wished I could touch type was when cranking out lengthy documentation. $\endgroup$
    – njuffa
    Jun 21, 2018 at 2:00
  • 1
    $\begingroup$ With the advent of IDEs that you keep having to interact with this is much less of a factor than it used to be. I do know in the old days I found it harder to program if I didn't have a suitable desk & chair that permitted touch typing--thinking about typing interferes with thinking about what you're writing. $\endgroup$ Jun 23, 2018 at 4:37

If the goal is to prepare students for "the real world," aka "real jobs" then:

Touch typing is required to be an effective programmer. Full stop.

The answers here seem to highlight the difference between theory (academia) and professional work. Under no circumstance would I hire or tolerate a programmer that couldn't code without looking at the keys.* It would be difficult for them to meet the minimum job requirements, which for most normal jobs, means delivery of code. They would be so horribly inefficient as to be detrimental to the organization and code delivery deadlines.

A few answers here that say "coding is more thinking than typing." Possibly in academia, most of the time, not in "real world" jobs. Not only do you have to write 1000s of lines of code, you have to write 1000s of lines of unit tests. And you have a deadline you have to meet. You also have to interact with the systems which more often than not are command line oriented (Linux, Windows Powershell, Mac Terminal). Then you have to google to find helpful answers to common programming problems, usually found on some random community oriented Q & A site.

To answer your question with an analogy, it would be like hiring a secretary that typed up your emails and letters using hunt and peck. It's not going to work most of the time, except for a few outliers that have master-level hunt and peck typing skills.

So yes, I would say "touch typing" is a job requirement to be a software engineer. I think it's a safe bet that the majority of CS students are looking to enter the professional work force and as such, the ability to type quickly and effectively is a skill that will only benefit them. For the majority of people that skill is going to be standard touch typing. There are obviously subsets of CS jobs where there is less typing involved, but I don't think this is the majority. Even so, adding a skill to their skillset is hardly detrimental whereas not having it could be career limiting.

If one simply want to teach students theory, and they do not intend to work as a programmer, then sure, just whiteboard, study algorithm textbooks, solve induction problems, but then you aren't best preparing them to enter the work force, for the majority of jobs. Maybe they can succeed in academia, teaching, or more architectural roles, but even then I'd wonder how they would type up their dissertation.

In summary, the skill can only benefit them. Therefore, I believe motivating your students to learn touch typing puts them in the best position to succeed. I believe the students will be more effective, more efficient, will spend less time typing and more time doing, and will be in a better position to succeed in their future careers.


* Barring some disability or master-level, non-conventional typing abilities.

  • 34
    $\begingroup$ A forcefully stated opinion, at least. And if you are a business owner you can hire whom you like, i guess. But this says "This is TRUE because I DEMAND that it is true." More forceful than convincing. And yes, even in academia I've typed thousands of lines of code (per day) and thousands of lines of tests. I am a touch typist, however, but don't attribute my success to that. Some of your statements above may be supportable, but none are supported by what you say, actually. $\endgroup$
    – Buffy
    Jun 19, 2018 at 22:19
  • 38
    $\begingroup$ Actually, you don't give any reasons. Just opinion. Read it critically. If there is research, cite it. Your firmly held beliefs, however, aren't reasons, and certainly not proof. $\endgroup$
    – Buffy
    Jun 19, 2018 at 22:47
  • 14
    $\begingroup$ In your answer, you seem to use, interchangeably, "programmer" and "software engineer". They're not. You also seem to imply all CS students become either one or the other. That's false. You explicitely state that all CS students will have to write thousands of lines of code during their career. That's false. Also, that they will have to do it under a deadline. That's false. You seem to imply using a whiteboard is only for academia and not "real world". That's false (I've known a rockstar tech lead/project manager in a very real private company who uses whiteboards and kanban exclusively) $\endgroup$
    – xDaizu
    Jun 20, 2018 at 8:53
  • 15
    $\begingroup$ You state that since there are many lines of code to write, touch typing should be a requirement. However, you haven't shown any sort of proof that touch typing is actually the fastest way. I've met plenty of programmers who can type very fast and very accurately even if they're not touch typists. If someone can effectively write large amounts of error-free code, why would it matter if they're looking at their hands while doing so? $\endgroup$
    – Aubreal
    Jun 20, 2018 at 13:15
  • 5
    $\begingroup$ In the real-world, coding is more thinking than typing is completely true, and to a greater degree than in undergraduate coursework. That doesn't mean that you won't write thousands of lines of code (plus tests), but claiming that productivity of a programmer is solely dependent on how fast they type is just plain ridiculous. Certainly typing skills are an advantage, but that's because of the level of thinking involved -- when you have an idea you want to get it stored as quickly as possible before you start thinking about the next step. $\endgroup$
    – Ben Voigt
    Jun 24, 2018 at 20:29

Short answer

no, but it can be useful.

Long answer

CS is not just Programming.

It has other parts also.

Programming is not typing

This has been said already, programming is mostly thinking. As an example of my real programs, in industry.

Here are my top examples of code that I have written in lines of code:

  • 3 lines of code in 2 weeks. Non cryptic elegant code, avoided need for special hardware, and reduced expected lines of code. But same functionality. It also allowed extension, because it was simple.
  • ~10k lines of code. Deleted 10000 lines of code and replaced them with 200 lines. Same functionality.
  • Team mate been working on a web-server for a week. I ask what does it have to do. It just tells the user that the site is off-line (under maintenance). So I write a webserver from socket layer up in one page of C code. It did one thing, it did it well. It told the user that the site was down, and it told them what the progress is. You don't need to type fast to make that pay off.

All this was done before I could touch type.

Worst code I have seen

Written by a touch typer, that measured productivity it lines of code. They produces 100s of thousands of lines of code, mostly the same, repetitive cut and paste stuff, full of bugs. Bugs per line of code, similar to others, but more line = more bugs.

A computer is not a thing with a monitor, keyboard, and mouse.

I often ask my class what is a computer. They often tell me, “A thing with a keyboard, mouse and display”. But what is a computer. Is it a calculator, a typewriter, a TV, a games console, a telephone, …. No it is something that processes information, that has an input and an output. input → process → output. (it still has a name based on its first application: computer, or phone (depending on its shape)).

Where is is useful?

It allows you to type and hold eye contact with the person that you are talking to.

If you are going to learn to touch type.

Don't learn querty. It is too hard for most to ever master. It is optimised to avoid clash of mechanical hammers in the crown of a typewriter. The modern keyboard is so far decoupled from the printing mechanism (if one exists at all), that this optimisation is of no value. Instead chose a layout that is optimised for the human.

As an example how many American state names can you type without taking your fingers off of the home row. How many can you type with the home row of Dvorak aoeuidhtns (how many more with just one deviation). Note Dvorak may no longer be the best choice. Do your research.

If you worry about what is physically printed on the keys, then you are not concerned with touch typing.

  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$
    – thesecretmaster
    Jun 24, 2018 at 5:08

The primary (and arguably only) benefit of touch typing when it comes to learning to code is efficiency. In fact, other than some social benefits for people who are regularly dealing with others while typing, that's the only benefit period. In that respect, it's no different from things like a Dvorak keyboard layout or a chording input device, it just speeds up how fast you can type.

Now, this is arguably a significant benefit in a classroom setting, especially for note-taking, but a vast majority of that benefit is not specific to CS courses. Put simply, it's helpful, but not to the point that it makes sense as a prerequisite. In fact, getting better at programming can be a significant motivation for some people to learn to touch-type.

To give a more specific example, I didn't get truly good at touch typing until well after I learned to program. Like many other American kids, I took typing classes in both middle school and high school. Back then I was absolutely terrible at typing, being lucky if I could achieve even 10 words a minute. There were two reasons for this, I didn't type regularly enough for the skills to stick, and I had little to no incentive to practice. This started to change when I started to learn to program, although it wasn't until I started to learn languages I could do things that interested me with that I got really good at typing. I actually know quite a few coders who are similar, they're good typists because they're programmers, not the other way around.

  • 1
    $\begingroup$ Welcome to CSEducators. I'm guessing that your experience is pretty common, in the US, at least. When I was a kid typing was pretty unusual as a course - for boys anyway. $\endgroup$
    – Buffy
    Jun 18, 2018 at 23:46
  • 2
    $\begingroup$ There is another advantage: smaller error rate: you catch typos faster if you are looking at the screen rather than at the keyboard. I don't know if you lump that together with "efficiency", but in my view it's a huge time-saver. Those typos often become time-consuming bugs to hunt. $\endgroup$ Jun 19, 2018 at 7:46
  • $\begingroup$ @Buffy That's a good point that my experience may be reasonably unique to the US, but is kind of orthogonal to the point I was trying to make. $\endgroup$ Jun 19, 2018 at 11:52

I've always liked the saying

Programming is more thinking than it is typing

Sure, touch typing can be a useful skill to have but I wouldn't want it to be a requirement for a degree.

Also, I personally believe that being able to type quickly enough without mistakes is much more important than where you're looking as you're doing it. Touch typing is mostly important if you're transferring a physical note (i.e hand-written memo) to a typewriter or computer, in which case being able to read and write simultaneously saves you time (hence why it was emphasized for secretaries) but this happens quite rarely for programmers. Since I haven't noticed typing ability being an issue in CS classes, I wouldn't go around adding requirements.


From a 25 year computing industry perspective, people who touch type are generally better at written communication with their colleagues, managers, clients, etc. than those who do not touch type.

Being able to bang out words on the keyboard without thinking or looking at the keyboard makes people more willing to write clearer thoughts, complete sentences, paragraphs and so forth.

When it comes to things like bug reports, touch typists generally write better step-by-step details on how to reproduce them, instead of only writing half the material needed. In new feature descriptions, it's much the same, someone who doesn't struggle with typing usually writes more complete descriptions of what their work does, what inputs go in, what outputs to expect, what things are missing.

When it comes to programming, touch typists frequently write clearer code for the future programmers (including themselves) to read later. Those who don't touch type take shortcuts, naming variables things like (and this example comes from my other screen right now) it or aPanel, short and easy to bang out when looking at the keyboard. But now I'm looking at this code trying to figure out what they are, and as a touch typist, I would've named those two formula and formulaItemPanel so that it's obvious what the content of the variables is.

That's not to say that people who don't touch type are dumb, or incapable of solving complex problems, many of them can. But if they could touch type, their end result would probably be clearer for other people to understand.

Sure, there are exceptions. There's touch typists who don't do a complete job at writing, and there's some people who can't type well, but still put in the extra effort, even if it takes more type. But on the whole, written communication skills correlate pretty closely with typing skill.

Prerequisite is too strong, but learning to touch type is something I certainly recommend for people studying computer science.

  • 1
    $\begingroup$ In your first four paragraphs you make some claims. Perhaps they are widely held, but perhaps they are just opinions. Can you point to any research to back them up? It would make your argument stronger, of course. $\endgroup$
    – Buffy
    Jun 19, 2018 at 19:11

Typing without having to look at your hands is amazingly convenient--I'd say much more important than using 10 fingers or typing fast -- My general feeling is that if its the human-keyboard interface that's slowing you down then you could probably be doing more thinking/refactoring and less typing.

In my experience you'd notice someone typing with two fingers though--it wouldn't look very professional, and if I were designing a course I might make typing a prerequisite just to ensure that people understood that and to help you get more practice.

PS. I took a typing class in high school (on non-electric typewriters!) but never learned to touch type until I spent a week with a towel over my hands to break the habit of looking at my fingers.

  • 1
    $\begingroup$ I've downvoted this answer because looking 'professional' while typing shouldn't be a prerequisite to learning CS. Maybe for the workplace, but not for a classroom. $\endgroup$
    – thesecretmaster
    Jun 18, 2018 at 18:06
  • 1
    $\begingroup$ Your first two paragraphs seem inconsistent. Do you really mean to say that you wouldn't let a person start CS until they demonstrate somehow that they are competent in typing? That seems too extreme for me and a good way to assure small classes and frustrated (non) students. I doubt that even Language Arts would make that requirement. $\endgroup$
    – Buffy
    Jun 18, 2018 at 18:10
  • 1
    $\begingroup$ Being unable to type and look at the screen at the same time is a pretty big disadvantage. If I was teaching a college level computer science course I would want students to be prepared. Perhaps I wouldn't have it as a pre-requisite but would instead paint over the alphabetic keys of all the keyboards? The point is they should have it eventually and therefore might as well be practicing while working in their other CS classes. $\endgroup$
    – Bill K
    Jun 18, 2018 at 19:58
  • 4
    $\begingroup$ @BillK, hmmm. The beatings will continue until morale improves. Right? $\endgroup$
    – Buffy
    Jun 18, 2018 at 20:08
  • 3
    $\begingroup$ I taught college level CS for over 40 years and never once found typing ability to be an issue. However, if I wanted students to do something that they weren't used to, I'd look for some positive inducement to get them to do it, not a way to increase their frustrations. If my relationship with them was good (and it was), a simple suggestion in the hallway might be enough. But you get that good relationship by supporting the students, even when they do sub-optimal things. Frustrating them will make them hate me as well as the subject, I suspect. I would have no future influence with them. $\endgroup$
    – Buffy
    Jun 18, 2018 at 20:22

The question seems to distinguish between nine finger and three finger typists (with three being bad). In the company I work for, which is rather small I don't think anyone is a true touch typist (nine finger) and yet none of us type slowly (I have a typing speed of between 60-120 depending on what I am working on as a three finger touch typist).

With a large number of programmers using IDEs which automate many of the actions and the fact touch typing as a programmer uses a lot of keys that normal typing (such as this message) don't need to use with any regularity (e.g. ;{}[] symbols for example), I would say not looking at your keyboard whilst typing and having proficiency with the IDE are important. Having to be a pure touch typist though vs 3 fingers I would like to see evidence against.

In my experience (which isn't much; masters in CS and about 7 years professionally), programmers who cannot use IDEs efficiently are slow regardless of their typing speed and is one of the main areas we have to get them up to speed with.


TL; DR Touch typing is a useful skill, but a minor convenience factor that likely has zero impact on a software engineer's career progress or earning potential.

I am writing from the perspective of a recently-retired software engineer with a CS degree who spent his entire career in the technical track at a variety of Silicon Valley companies, from small startups to giant multi-national corporations. My positions were all in R&D, comprising on average about 95% development and 5% research.

I have written production code, test frameworks, test plans, product and design documentation, and many other kind of documents. As I became more senior, my writing activity transitioned increasingly away from writing code. I never learned touch typing. I successfully worked under very tight deadlines many times. I have handled an email volume of more than one-hundred messages daily for prolonged periods of time.

In my experience as a software engineer who also interfaced with hardware engineering, marketing, and legal departments, as well as customers, the biggest bottleneck doing software-engineering work in a production environment is in thinking: it requires very strong problem-solving skills and creativity.

Typing speed is almost never a performance-limiting factor: if one is able to type faster than one thinks, one is very likely not thinking hard enough. This includes thinking about ways to reduce the typing overhead, for example by using and building libraries, frameworks, and code generators, or automating the generation of documentation.

People like me who cannot touch type often can type reasonably fast. Usually they do not type using a hunt-and-peck approach, and they also benefit from motor memory allowing them to type while looking at the keyboard maybe every other word or so.

There a number of skills that can improve a software engineer's career path in much more profound ways than the skill of touch typing, while not being mandatory or required skills. Experienced engineers will differ based on their professional experiences. My personal short list, roughly in decreasing order of importance, is as follows:

  1. Writing skills: clearly communicate problems and solutions to colleagues and customers
  2. Interpersonal communication skills: build productive relationships with colleagues and customers
  3. Time management skills: deliver products to market-driven deadlines for maximum profit
  4. Foreign-language and cultural adaptation skills: move to a different country to further your career; work with collaborators and customers in a global economy with a minimum of friction
  5. Research skills: assess the state of the art; avoid re-inventing the wheel and repeating other people's mistakes; identify new opportunities for innovation
  • $\begingroup$ Just think what you could have accomplished if you could type faster? $\endgroup$
    – Scott Rowe
    Jun 23, 2018 at 15:20

There isn't a specific number of digits

Touch-typist here. I'm very unusual in that I touch-type using mainly index finger and thumb (using other fingers very rarely, I still achieve 60-80 WPM), so I would argue touch-typing doesn't involve all 10 digits.

From a disability standpoint, I'd also argue against emphasising how many digits are utilised in touch-typing.

It's naturally learned, so it isn't a requisite

Touch-typing isn't really something that can be 'taught' per se, and it wasn't something I was taught during my years of growing up, but something I had learned naturally as a result of using a computer. It's a bit like piano in that, not having to look at the keyboard allows you to keep your gaze on the sheet (or screen).

Whilst touch-typing, it is possible to look elsewhere

I would usually astonish my classmates because our classroom had a screen that was (stupidly) located behind us from the computer screen, so I would have my keyboard on my lap with my body 90 degrees from the screen, and my neck turned the rest of the way towards the board (bad for your neck, don't do it!).

Much to the surprise of the class, despite being basically 180 from the computer screen and 90 from the keyboard, I was able to type AND detect spelling errors (always hinted by a misplaced physical press on the keyboard) AND correct them, with one classmate refusing to believe I was keeping pace and writing correctly until they checked my screen.

This isn't however sustainable - you still need to check back from time to time to make sure you hadn't missed a typo (and to proof read syntax - sometimes your brain writes 'as it thinks' and not what is grammatically correct). For dull rote copying exercises it helps, but good programming stems largely from excellent code design and syntax formatting (which requires eyes-on screen as programming syntax is not language syntax).


  • Is it useful? Somewhat, yes.
  • Can you look elsewhere? Sometimes, yes, but inadvisable (neck issues, lack of proof-reading).
  • Should it be mandatory? No.
  • Should it be offered as optional training if the student needs/wants it? Yes.

Remember: Each keyboard has a different physical layout and it can be hard to adjust to the subtle nuances of each keyboard, so don't expect immediate results when switching between machines.


Simply put:

touch-typing is to CS as calculator key-in is to math

That said, controversy still rages on in math education on whether calculators should be allowed during tests.

Should students be required to memorize the times tables? Should they memorize the key board?

We as educators need evidence from experimental psychology to help us decide what to emphasize as important skills.

  • $\begingroup$ Testing knowledge is necessarily different from workplace activity. What if college graduation required successful workplace activity for one year? What if college (and High School) consisted of learning and becoming proficient in one or more workplaces - like Internships? This is called Apprenticeship. Used to work just fine... $\endgroup$
    – Scott Rowe
    Jun 20, 2018 at 13:30
  • $\begingroup$ @ScottRowe There are, in fact, some colleges/universities that require internships and many others that strongly encourage them. The skills they learn from that are usually pretty good in my experience. For a good student it is also a nice path to later employment. Unfortunately, unpaid internships are too often just a way to exploit young people. Especially if those unpaid internships don't give good skills, as some fail to do. $\endgroup$
    – Buffy
    Jun 20, 2018 at 16:40

Perhaps I should begin with a simple analogy.

Let's say I come up with a brilliant idea in the middle of the night. I must write it down or else I must forget it. So I stumble around in the dark and find a piece of paper and a pencil, but oh, I must get a new pencil, this one is broken, and shoot, I'm running out of room and cannot see what I am doing, and I am groggy, so my fine-motor skills aren't very good.

Morning comes, and I wake to see a torn slip of paper with smears of graphite and a few barely distinguishable words - nothing like the clear cut idea I had in mind.

The above is a rather dramatic example, but I use it to prove a point. Those who cannot touch-type still have fabulous thoughts, but in the end, programming isn't just thinking, it's putting the thoughts to paper. I could put my midnight thoughts on paper, but I did so with a lot of difficulty, and the end product wasn't great.

You must be able to conveniently convey your ideas at near enough the speed of thought that you do not lose your train of thought (we've all had that moment where someone's asked us to repeat something and after we do so, we forget what we were going to say next). If you cannot touch type, you will have a much harder time doing this.

Perhaps you are a skilled pecker. Kudos to you. Perhaps you "touch type" but in a non-standard way. Great. The point isn't to be able to textbook-type but to effectively get your thoughts down quickly while being able to still think about what you're writing, instead of about writing it. Touch-typing is a convenient way to do that.

As I write this right now (I can touch type) I'm not looking at the screen and I am thinking about the words I am writing, not where my fingers are going (and I type on the slower end for a touch typer - around 70 wpm with middling accuracy; my mom can make 100 wpm with very high accuracy).

The point here is not that touch typing should be required, but it is great because it's a formulaic way to teach someone how to quickly communicate their ideas. If you can do that in a way other than the standard method, great! But you should be able to do it somehow.

However, all this being said - I really cannot imagine making something like this a prerequisite. I can imagine highly encouraging my non-existent students to learn to touch type. I can imagine pulling aside a slowly-pecking student after class and showing them a great website to learn how to touch-type.

I can't imagine forcing all students to take a prerequisite class for something they can take on their own and which doesn't require any real instruction beyond that a website provides. (My touch typing class in elementary school was an hour or so a week where we all logged into some website and they made sure we didn't blow anything up for an hour while we worked through the lessons.)

  • $\begingroup$ Yes, I think the key to the question is whether to make something required and how. There seems to be a cultural bias (which I share) that we simply make the knowledge available and people undertake their own path through it. In other times and places it is more like: "Learn all this perfectly and then you can decide for yourself once you have mastered it." It is wrong to not provide a path and expectations, also wrong to force people to do things that they do not need. But we are not omniscient and things are changing fast so we don't know what is best. We all have opinions though... $\endgroup$
    – Scott Rowe
    Jun 22, 2018 at 12:13

I've had students who were 'hunt and peck' typists and it always caused problems during in-lab exams where there's a limited amount of time. Some also insisted on typing with one hand (with no lack of physical ability in the other, merely a preference). In general they spent much more time developing and debugging their software simply due to their slower rate of input. The software was just as good as the touch typists of course, but it took longer to produce.

A similar problem is with some touch typists use the mouse exclusively for all cut and pasting operations and prefer to paste rather than re-type anything they've previously written, and so they can take a very long time to develop code too.

I don't think touch typing experience should be a prerequisite but if a student has no physical limitation to why they can't learn touch typing they should accept that they will face some minor disadvantages in terms of productivity if they decide not to use it. For some that may be acceptable.

Now in the workplace where you are expected to be productive I think it would be a major disadvantage. Might as well learn it sooner rather than later to be ready for future employment.

  • $\begingroup$ Welcome to CSEducators. $\endgroup$
    – Buffy
    Jun 20, 2018 at 17:18
  • $\begingroup$ Using shift-del and shift-ins is massively faster, easier and less error-prone than the ctrl shortcuts for cut / copy / paste, as we learned before computers had a mouse. (Copy is just cut and put back in the same spot, nearly instantaneous, then paste as many copies as you want elsewhere.) Coupled with shift-arrows to highlight, shift becomes the most used key on the keyboard. Faster than any other way. $\endgroup$
    – Scott Rowe
    Jun 23, 2018 at 15:25
  • $\begingroup$ It depends on the keyboard size as there's significantly more hand travel to reach the insert/delete keys compared to control+c/v. On a more compact keyboard I can see there being less of a difference, on an ergonomic (split) keyboard going to insert and delete would take much longer. $\endgroup$
    – user5416
    Jun 25, 2018 at 14:24
  • $\begingroup$ Use two hands if you got em. Hold down Shift with left hand and then use arrows, Ins, Del with right. Very fast. $\endgroup$
    – Scott Rowe
    Jul 18, 2018 at 19:11

Obviously, students who learn how to touch type have the advantage of being able to type faster. If the touch typist cannot articulate what it is that they need to type, then this advantage will do them no good. If two students have equal skill in computer programming, but only one knows how to touch type, then it follows that the touch typing student should be able to complete tests and assignments faster.

However, there some good reasons not to make it a required prerequisite. As has been noted in other answers, touch typing is a skill that is advantageous, but not necessary. It seems to me at least that it is very possible to be a decent programmer without knowing touch typing...

My school required me to take a basic computer class, and one of the promises of that class was that it would teach touch typing. I wanted to learn touch typing in that class. It did not happen. I was not taught how to touch type. I was passed without ever being tested on touch typing (which is a bit sad). Any of the hunt-and-peckers in that class would have technically cleared a touch-typing prerequisite.

With the quality of any of the typing classes I have seen, making sure students are up to speed on typing by requiring a prerequisite course would be a hit-or-miss effort. If you are really confident in the quality of your school's typing classes, and typing at around 60wpm is really necessary (and cannot be compensated for by other things, which I doubt), then you have a slightly better case. If you really want students' grades and pass rates in your class to correlate with their speed, you could alternatively try having assignments and tests with stricter time limits, and encourage the students struggling with those limits to learn touch typing, but I don't recommend this; I would be careful not to prioritize typing speed so much that it interferes with critically thinking and writing quality, efficient code.

I still do not know how to touch type, and I would still like to learn, as it has clear advantages. I am sure touch typing could improve my typing speed by 30-60%, or by about 15-25 words per minute, possibly faster if I was really dedicated and learned Dvorak or Colemak.

However, without any training, I type with four fingers on each hand (not the pinky fingers) at about 45 wpm. I know the keyboard well enough to type without looking. Stopping to think about something for a minute is far more likely to slow my typing than me not being able to type fast enough. I do not see a pressing need for a typist similar to myself to learn touch typing.

In my computer science classes, I am sure that many of my classmates have the ability to type faster than me. However, I am often the first one done with assignments and timed tasks, as I can think of an efficient solution the fastest. One of my classmates used an iPad to type his code. It makes me cringe (possibly similar to how touch typists would cringe at non touch typists like myself), but he managed a surprising amount of speed by adding and using IDE shortcuts.

My employer did not look at my typing speed when they hired me. However, I can accomplish certain tasks far faster than others would, because I use scripts, macros, and other shortcuts that most would not consider.

My grandmother learned how to touch type. She can type probably twice as fast as me. But that is not the same thing knowing how to efficiently use a computer and all the shortcuts that are now available with it.

Have students who are blazing fast touch typists? Good for them. The rest (non touch typists) will probably either learn to compensate well enough or possibly fail. Or they may take up touch typing if they see it as necessary enough, especially if you encourage them to do so.

  • $\begingroup$ True, but. If it takes two hours to think through and solve the homework assignment, taking one or ten minutes to type it up for hand in makes no significant difference. $\endgroup$
    – vonbrand
    Aug 1, 2018 at 21:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.