Answers.Body: <p><strong>TL; DR</strong> 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.</p>
  
  <p>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&amp;D, comprising
  on average about 95% development and 5% research.</p>
  
  <p>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. <em>I never learned touch typing</em>. 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.</p>
  
  <p>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 <em>thinking</em>: it requires very strong problem-solving skills and creativity.</p>
  
  <p>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.</p>
  
  <p>People like me who cannot touch type often can type reasonably fast. Usually they do <em>not</em> 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.</p>
  
  <p>There a number of skills that can improve a software engineer's career path in <em>much</em> more profound ways than the skill of touch typing, <em>while not being mandatory or required skills</em>. Experienced engineers will differ based on their professional experiences. My personal short list, roughly in decreasing order of importance, is as follows:</p>
  
  <ol>
  <li>Writing skills: clearly communicate problems and solutions to colleagues and customers</li>
  <li>Interpersonal communication skills: build productive relationships with colleagues and customers</li>
  <li>Time management skills: deliver products to market-driven deadlines for maximum profit</li>
  <li>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</li>
  <li>Research skills: assess the state of the art; avoid re-inventing the wheel and repeating other people's mistakes; identify new opportunities for innovation</li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-23T15:20:22.613Z
Answers.Text: Just think what you could have accomplished if you could type faster?
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-21T04:30:17.533Z
Answers.LastActivityDate: 2018-07-18T17:54:22.127Z
Answers.LastEditDate: 2018-07-18T17:54:22.127Z
Answers.UserDisplayName: njuffa
Answers.Body: <p>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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T18:06:31.763Z
Answers.Text: 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.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T18:10:46.197Z
Answers.Text: 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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T19:58:15.603Z
Answers.Text: 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.
Answers.UserDisplayName: Bill K
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T20:08:56.110Z
Answers.Text: @BillK, hmmm. The beatings will continue until morale improves. Right?
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T20:22:48.883Z
Answers.Text: 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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T20:27:32.970Z
Answers.Text: However, to be fair, I generally agree with the first paragraph of your answer. Typing skills are _helpful_. But so are editing/refactoring skills and thinking skills and interpersonal skills and ...
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T12:22:01.513Z
Answers.Text: @ScottRowe, actually you _don't_ have to finish by graduation. If a student never learns anything after they end their formal education, you have failed as a teacher. Giving them good mental habits and an enquiring mind will carry them further than any technical idea. But starting early is good, I agree.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T12:26:05.300Z
Answers.Text: @Buffy it comes down to defining the goal, and there are differing views on that. We are probably looking at the same thing from opposite sides.
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-01T21:34:30.650Z
Answers.Text: @Buffy I'm sure you are right and that's why I'm a programmer and not an educator.  I was using what had worked for me and trying to figure out a way to apply it to everyone--a pretty bad idea.
Answers.UserDisplayName: Bill K
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T18:02:47.447Z
Answers.LastActivityDate: 2018-06-18T18:02:47.447Z
Answers.UserDisplayName: Bill K
Answers.Body: <p>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).</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T14:13:25.083Z
Answers.LastActivityDate: 2018-06-20T14:13:25.083Z
Answers.UserDisplayName: adamcooney
Answers.Body: <p><strong>There isn't a specific number of digits</strong></p>
  
  <p>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.</p>
  
  <p>From a disability standpoint, I'd also argue against emphasising how many digits are utilised in touch-typing.</p>
  
  <p><strong>It's naturally learned, so it isn't a requisite</strong></p>
  
  <p>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).</p>
  
  <p><strong>Whilst touch-typing, it is possible to look elsewhere</strong></p>
  
  <p>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!).</p>
  
  <p>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.</p>
  
  <p>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).</p>
  
  <p><strong>Summary</strong></p>
  
  <ul>
  <li>Is it useful? Somewhat, yes.</li>
  <li>Can you look elsewhere? Sometimes, yes, but inadvisable (neck issues, lack of proof-reading).</li>
  <li>Should it be mandatory? No.</li>
  <li>Should it be offered as optional training if the
  student needs/wants it? Yes.</li>
  </ul>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T14:31:53.120Z
Answers.LastActivityDate: 2018-06-20T14:31:53.120Z
Answers.UserDisplayName: SE Does Not Like Dissent
Answers.Body: <p>Perhaps I should begin with a simple analogy.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <hr>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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 <em>effectively get your thoughts down quickly while being able to still think about what you're writing, instead of about writing it.</em> Touch-typing is a convenient way to do that. </p>
  
  <p>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). </p>
  
  <p>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.</p>
  
  <p>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. </p>
  
  <p>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.)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-22T12:13:39.817Z
Answers.Text: 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...
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-21T20:47:20.493Z
Answers.LastActivityDate: 2018-06-21T20:47:20.493Z
Answers.UserDisplayName: auden
Answers.Body: <p>Simply put: </p>
  
  <blockquote>
    <p>touch-typing is to CS as calculator key-in is to math</p>
  </blockquote>
  
  <p>That said, controversy still rages on in math education on whether calculators should be allowed during tests. </p>
  
  <p>Should students be required to memorize the times tables? Should they memorize the key board?</p>
  
  <p>We as educators need evidence from experimental psychology to help us decide what to emphasize as important skills. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T13:30:46.253Z
Answers.Text: 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...
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T16:40:37.937Z
Answers.Text: @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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T12:28:35.887Z
Answers.LastActivityDate: 2018-06-20T12:28:35.887Z
Answers.UserDisplayName: Teacher
Answers.Body: <p><strong>Obviously</strong>, 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.</p>
  
  <p><strong>However</strong>, 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...</p>
  
  <p>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.</p>
  
  <p><strong>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.</strong>  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.</p>
  
  <p>I still do not know how to touch type, and I would still like to learn, as it has clear advantages.  <strong>I am sure touch typing could improve my typing speed</strong> by 30-60%, or by about 15-25 words per minute, possibly faster if I was really dedicated and learned Dvorak or Colemak.</p>
  
  <p>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.  <strong>I do not see a pressing need for a typist similar to myself to learn touch typing.</strong></p>
  
  <p>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 <em>an iPad</em> 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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>Have students who are <em>blazing fast</em> touch typists?  Good for them.  <strong>The rest (non touch typists) will probably either learn to compensate well enough or possibly fail.</strong>  Or they may take up touch typing if they see it as necessary enough, especially if you encourage them to do so.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-01T21:00:01.403Z
Answers.Text: 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.
Answers.UserDisplayName: vonbrand
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-26T07:58:25.680Z
Answers.LastActivityDate: 2018-06-26T07:58:25.680Z
Answers.UserDisplayName: jacobandgeckos
Answers.Body: <p>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. </p>
  
  <p>However, a true prerequisite is a block, preventing advancement if you don't have the skill, so no, it should <strong>not</strong> be <em>required</em>. </p>
  
  <p>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 <em>girls</em> 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. </p>
  
  <p>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. </p>
  
  <p>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. </p>
  
  <p>But, students should be <em>encouraged</em> 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. </p>
  
  <p><strong>tl;dr: Prerequisites should be required only for <em>required</em> things, not just helpful things.</strong> </p>
  
  <hr>
  
  <p>I'll also note that it isn't <em>typing</em> that makes programming hard. Neither is it typing that makes writing hard. </p>
  
  <p>But if a student's typing skills are <em>so</em> bad that they seem forced to used extremely short and uninformative names for entities, then they need to improve. Readability is required. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T16:39:43.710Z
Answers.Text: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79042/discussion-on-answer-by-buffy-what-advantages-do-students-have-who-learn-how-to). You're welcome to continue discussing this in chat, but comments are for suggesting improvments to the answer.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T05:31:51.730Z
Answers.Text: 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.
Answers.UserDisplayName: Knetic
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T21:07:12.270Z
Answers.Text: Don't forget chat software and e-mails.
Answers.UserDisplayName: jpmc26
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T13:56:10.587Z
Answers.Text: @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.
Answers.UserDisplayName: Falco
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T12:42:55.923Z
Answers.LastActivityDate: 2018-06-18T18:19:20.670Z
Answers.LastEditDate: 2018-06-18T18:19:20.670Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>The primary (and arguably <em>only</em>) 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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T23:46:09.083Z
Answers.Text: 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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T07:46:45.750Z
Answers.Text: 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.
Answers.UserDisplayName: Federico Poloni
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T11:52:13.093Z
Answers.Text: @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.
Answers.UserDisplayName: Austin Hemmelgarn
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-18T23:07:04.070Z
Answers.LastActivityDate: 2018-11-16T19:00:00.570Z
Answers.LastEditDate: 2018-11-16T19:00:00.570Z
Answers.UserDisplayName: Austin Hemmelgarn
Answers.Body: <p>I've always liked the saying</p>
  
  <blockquote>
    <p>Programming is more thinking than it is typing</p>
  </blockquote>
  
  <p>Sure, touch typing <em>can</em> be a useful skill to have but I wouldn't want it to be a <em>requirement</em> for a degree.</p>
  
  <p>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 <em>quite rarely</em> for programmers. Since I haven't noticed typing ability being an issue in CS classes, I wouldn't go around adding requirements.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T16:17:07.780Z
Answers.LastActivityDate: 2018-06-19T16:17:07.780Z
Answers.UserDisplayName: Aubreal
Answers.Body: <p>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.</p>
  
  <p>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.  </p>
  
  <p>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.</p>
  
  <p>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) <code>it</code> or <code>aPanel</code>, 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 <code>formula</code> and <code>formulaItemPanel</code> so that it's obvious what the content of the variables is.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>Prerequisite is too strong, but learning to touch type is something I certainly <em>recommend</em> for people studying computer science.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T19:11:50.287Z
Answers.Text: 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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T19:05:41.547Z
Answers.LastActivityDate: 2018-06-19T19:05:41.547Z
Answers.UserDisplayName: Kevin Rubin
Answers.Body: <p>To answer the titular question:</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <hr>
  
  <p><sup>
  which seems to be generally accepted in scientific literature, e.g., <a href="https://doi.org/10.1145/1280680.1280683" rel="noreferrer">here</a> (search for <em>muscle memory</em>)
  </sup></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T10:02:47.140Z
Answers.Text: Welcome to CSEducators. Can you document the claim in the second paragraph for future readers?
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T11:52:27.100Z
Answers.Text: The cited paper seems to be about something completely different - shoulder surfing
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T11:52:49.540Z
Answers.Text: @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.
Answers.UserDisplayName: Wrzlprmft
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T11:54:39.653Z
Answers.Text: I'd be surprised it it hasn't had some research applied to it. If the claims are not trustworthy where does that leave us. My suspicion, too, is that it is a correct observation, but gut feeling isn't the same as research. As it stands it is just opinion.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T19:22:40.890Z
Answers.Text: @Buffy: 1) See my edit. 2) Regarding the trustworthiness of the claims, I should have written that the sources are not trustworthy. 3) *As it stands it is just opinion.* – Yes.
Answers.UserDisplayName: Wrzlprmft
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T21:07:34.850Z
Answers.Text: @Buffy Evidence of _what_ is still a question, but there has been some research done on the subject. The published paper is [pay-walled](http://psycnet.apa.org/psycinfo/2016-49569-001/). It is discussed, however, in an [article](https://news.vanderbilt.edu/2016/10/18/todays-self-taught-typists-almost-as-fast-as-touch-typistsas-long-as-they-can-see-the-keyboard/) from Research News @ Vanderbilt.
Answers.UserDisplayName: Gypsy Spellweaver
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T05:50:24.603Z
Answers.Text: @GypsySpellweaver: Thanks for the reference. Sadly the research (as reported in Research News) doesn’t go to the interesting part: They compare touch typists and others when benchmarking pure typing skills in an unrealistic manner. They also report that touch typists become slower when composing a message (no surprise here). But they do not compare touch typists and others when composing a message.
Answers.UserDisplayName: Wrzlprmft
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T13:58:59.720Z
Answers.Text: 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.
Answers.UserDisplayName: Falco
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-21T02:00:27.903Z
Answers.Text: @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.
Answers.UserDisplayName: njuffa
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-23T04:37:30.463Z
Answers.Text: 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.
Answers.UserDisplayName: Loren Pechtel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-23T12:44:03.590Z
Answers.Text: @Falco Using mouse to control your computer is not very effective. Interrupted though process is big productivity loss (and there are studies for that). Of course, I use mouse/touchpad too, mostly to switch files, but very rarely when editing a single file since using keyboard is so much more effective. After 20 years of using a computer I don't have to think about it at all.
Answers.UserDisplayName: Sulthan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-23T12:50:35.340Z
Answers.Text: @Sulthan maybe that is the biggest difference, I can not remember the last time I really wrote 50 lines of code at once sequentially in a single file... It is usually a few lines here a few lines there, introducing a new variable or method, writing long sequential code in a single file is a rarity for me
Answers.UserDisplayName: Falco
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-25T04:27:43.037Z
Answers.Text: @LorenPechtel: Actually, interacting with IDEs makes it *more* necessary to type without looking at the keyboard (because you have to see what the IDE is suggesting on-screen)
Answers.UserDisplayName: Ben Voigt
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-26T17:55:10.717Z
Answers.Text: @BenVoigt You can look back and forth.  What I'm saying is that with a modern IDE you're not writing much code at once before having to interact with it anyway, thus it's less of a disruption to have to think about the typing.
Answers.UserDisplayName: Loren Pechtel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T05:56:18.690Z
Answers.LastActivityDate: 2018-06-19T19:20:53.190Z
Answers.LastEditDate: 2018-06-19T19:20:53.190Z
Answers.UserDisplayName: Wrzlprmft
Answers.Body: <p><strong>If the goal is to prepare students for "the real world," aka "real jobs" then</strong>:</p>
  
  <p>Touch typing is <strong>required</strong> to be an effective programmer. Full stop.</p>
  
  <p>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.<sup>*</sup> 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.</p>
  
  <p>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 &amp; A site.</p>
  
  <p>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.</p>
  
  <p>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. </p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p><strong>Footnotes</strong></p>
  
  <p>* Barring some disability or master-level, non-conventional typing abilities.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T22:19:28.390Z
Answers.Text: 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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T22:43:35.053Z
Answers.Text: @Buffy, Again my intention is not to insult or disparage people. It's to make clear how fundamental the skill is to being an effective engineer. I think I've included valid reasons why it's important. Your own experience supports my answer (writing thousands of LOC). I don't think we would be doing any students any good by telling them "proper typing skills aren't required to be effective" which is what the top answers seem to suggest.
Answers.UserDisplayName: James
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T22:47:55.633Z
Answers.Text: 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.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T08:53:21.373Z
Answers.Text: 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*)
Answers.UserDisplayName: xDaizu
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T11:35:38.197Z
Answers.Text: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79133/discussion-on-answer-by-james-what-advantages-do-students-have-who-learn-how-to).
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T13:15:31.300Z
Answers.Text: 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?
Answers.UserDisplayName: Aubreal
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T14:10:20.267Z
Answers.Text: All, I've incorporated feedback from your comments to try to improve the answer. I've relaxed the tone and tried to acknowledge the variety of CS jobs. But overall, I still maintain that effective typing skills are only going to benefit the student in the long run.
Answers.UserDisplayName: James
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T16:28:44.350Z
Answers.Text: @xDaizu Nowadays, those terms are pretty interchangeable. Not many places hire "code-monkeys" anymore. Having only the ability to write code is not enough anymore, like it was a few years ago (especially in the 90s and 2000s). You are right about CS students not being either, though. In fact, I think a very significant portion of CS grabs don't write code for a living.
Answers.UserDisplayName: Clay07g
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T19:39:03.457Z
Answers.Text: Please keep comments to suggestions for improvements to this answer. Any other types of comments will be removed.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-21T11:49:10.067Z
Answers.Text: I get this got the check but it does not answer the stated question "CS education benefit".
Answers.UserDisplayName: paparazzo
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-24T04:58:58.650Z
Answers.Text: If you have a different answer to the question, the comments section on this answer is not the place for it. Write your answer as an answer, not as a comment here. Answers in the comments will be removed.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-24T20:29:42.200Z
Answers.Text: 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.
Answers.UserDisplayName: Ben Voigt
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-24T20:30:21.027Z
Answers.Text: In fact, the value of fast typing is almost totally from improved speed of writing ideas down -- the increased speed of typing code is nice but ultimately unimportant.  So while I agree with your conclusion that acquiring touch-typing skills should be encouraged, I can't upvote your answer due to the blatant wrong ideas you share along the way.
Answers.UserDisplayName: Ben Voigt
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-25T00:39:44.587Z
Answers.Text: With the comments continually sniping on "speed of typing", while the answer doesn't actually say that, I think part of it should be rewritten to explicitly state that efficiency isn't _just_ speed. I mentioned it in a prior comment that was removed, but I think it's worth adding to the answer itself: The bigger issue is that when thinking about code, you want as few context switches as possible. Usually this is framed as not being interrupted by another person, but having to stop and think about the keyboard instead of the code is another type of context switching that has to be minimized.
Answers.UserDisplayName: Izkata
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-25T02:30:34.180Z
Answers.Text: Sorry, I've know many programmers who were two-fingered typists. They were quite proficient, typing 80 wpm.
Answers.UserDisplayName: kevin cline
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-25T03:55:30.160Z
Answers.Text: @kevincline Sounds like they are touch-typists, just not home-row touch-typists.  They'd fall on the "would hire" side of this answer.
Answers.UserDisplayName: Izkata
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-25T06:10:08.603Z
Answers.Text: The disabled can be hired to program just fine without the ability to touch type.
Answers.UserDisplayName: Ryan Leach
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-25T09:33:17.697Z
Answers.Text: @James I agree with regards to being able to type without looking (much) at the keyboard, but I think you should spell out the distinction in your answer between traditional "proper" touch-typing (using the home rows) and what I tend to call "typing by touch" which may use a style closer to hunt-and-peck but is still done without (much) looking at the keyboard and so is likely to be almost as fast as proper touch-typing.
Answers.UserDisplayName: Muzer
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-01-11T14:54:33.333Z
Answers.Text: I have worked in quite a few projects from academic high level project to pretty dumb applications, never has the typing speed been a major factor in how good a developer was. Sure, it's a factor, but in most cases looking for that is optimising at the wrong place when other factors have a much higher impact. If all else is equal it might be something to consider, but if the other "hard" abilities are the same I'd rather look for social skills as a deciding factor than the typing abilities. That's a mechanical trainable skill, every good dev will find a way for it not to be a limiting factor.
Answers.UserDisplayName: Frank Hopkins
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-19T21:48:47.103Z
Answers.LastActivityDate: 2018-06-20T14:06:44.597Z
Answers.LastEditDate: 2018-06-20T14:06:44.597Z
Answers.UserDisplayName: James
Answers.Body: <h1>Short answer</h1>
  <p>no, but it can be useful.</p>
  <h1>Long answer</h1>
  <h2>CS is not just Programming.</h2>
  <p>It has other parts also.</p>
  <h2>Programming is not typing</h2>
  <p>This has been said already, programming is mostly thinking. As an example of my real programs, in industry.</p>
  <h3>Here are my top examples of code that I have written in lines of code:</h3>
  <ul>
  <li>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.</li>
  <li>~10k lines of code. Deleted 10000 lines of code and replaced them with 200 lines. Same functionality.</li>
  <li>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.</li>
  </ul>
  <p>All this was done before I could touch type.</p>
  <h3>Worst code I have seen</h3>
  <p>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.</p>
  <h2>A computer is not a thing with a monitor, keyboard, and mouse.</h2>
  <p>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)).</p>
  <h2>Where is is useful?</h2>
  <p>It allows you to type and hold eye contact with the person that you are talking to.</p>
  <h2>If you are going to learn to touch type.</h2>
  <p>Don't learn <code>querty</code>. It is too hard for most to ever master. It is optimised to <a href="https://en.wikipedia.org/wiki/QWERTY#History" rel="noreferrer">avoid clash of mechanical hammers</a> 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.</p>
  <p>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 <code>aoeuidhtns</code> (how many more with just one deviation). Note Dvorak may no longer be the best choice. Do your research.</p>
  <p>If you worry about what is physically printed on the keys, then you are not concerned with touch typing.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-24T05:08:47.007Z
Answers.Text: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79281/discussion-on-answer-by-ctrl-alt-delor-what-advantages-do-students-who-learn-how).
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-20T10:40:33.680Z
Answers.LastActivityDate: 2018-06-25T07:28:08.753Z
Answers.LastEditDate: 2020-06-18T08:36:57.023Z
Answers.UserDisplayName: ctrl-alt-delor
Body: <p>Would a student's overall CS education benefit by having such a skill, and if so why not make it a required prerequisite? </p>
  
  <hr>
  
  <p>An editor notes that there are three (at least) different ideas here that may be confused. </p>
  
  <ol>
  <li>Does the user hunt and peck searching for each key for each use?  </li>
  <li>Does the user look at the keyboard/hands rather than elsewhere?</li>
  <li>Does the user use (usually) nine fingers to type or three? </li>
  </ol>
  
  <p>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. </p>
  
  <p>Note: "Nine" fingers as the left thumb is often not used at all. "Three" fingers as one of the thumbs is often used. </p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-18T17:58:59.363Z
Comments.Text: 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.
Comments.UserDisplayName: thesecretmaster
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-18T18:14:24.403Z
Comments.Text: 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.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-18T18:28:30.733Z
Comments.Text: 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.
Comments.UserDisplayName: thesecretmaster
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-20T11:28:23.100Z
Comments.Text: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79132/discussion-on-question-by-student-what-advantages-do-students-have-who-learn-how). Any further comments which are not used appropriatly will be removed.
Comments.UserDisplayName: thesecretmaster
Tags: <best-practice>
Title: What advantages do students who learn how to touch type have?
ThreadText: # What advantages do students who learn how to touch type have?
  
  (Asked by: username_0 on 2018-06-18)
  
  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.
  
  **Tags:** best-practice
  
  > **Comments:**
  > **username_1**: 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.  
  > **username_2**: 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.  
  > **username_1**: 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.  
  > **username_1**: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79132/discussion-on-question-by-student-what-advantages-do-students-have-who-learn-how). Any further comments which are not used appropriatly will be removed.  
  
  ---
  
  ## 14 answers
  
  ### Answer by username_2 on 2018-06-18. Score: 94 | Accepted answer
  
  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.
  
  > **Comments:**
  > **username_1**: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79042/discussion-on-answer-by-username_2-what-advantages-do-students-have-who-learn-how-to). You're welcome to continue discussing this in chat, but comments are for suggesting improvments to the answer.  
  > **username_12**: 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.  
  > **username_13**: Don't forget chat software and e-mails.  
  > **username_14**: @username_12 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.  
  
  ---
  
  ### Answer by username_19 on 2018-06-19. Score: 35
  
  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](https://doi.org/10.1145/1280680.1280683) (search for *muscle memory*)
  
  > **Comments:**
  > **username_2**: Welcome to CSEducators. Can you document the claim in the second paragraph for future readers?  
  > **username_2**: The cited paper seems to be about something completely different - shoulder surfing  
  > **username_19**: @username_2: 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.  
  > **username_2**: I'd be surprised it it hasn't had some research applied to it. If the claims are not trustworthy where does that leave us. My suspicion, too, is that it is a correct observation, but gut feeling isn't the same as research. As it stands it is just opinion.  
  > **username_19**: @username_2: 1) See my edit. 2) Regarding the trustworthiness of the claims, I should have written that the sources are not trustworthy. 3) *As it stands it is just opinion.* – Yes.  
  > **username_20**: @username_2 Evidence of _what_ is still a question, but there has been some research done on the subject. The published paper is [pay-walled](http://psycnet.apa.org/psycinfo/2016-49569-001/). It is discussed, however, in an [article](https://news.vanderbilt.edu/2016/10/18/todays-self-taught-typists-almost-as-fast-as-touch-typistsas-long-as-they-can-see-the-keyboard/) from Research News @ Vanderbilt.  
  > **username_19**: @username_20: Thanks for the reference. Sadly the research (as reported in Research News) doesn’t go to the interesting part: They compare touch typists and others when benchmarking pure typing skills in an unrealistic manner. They also report that touch typists become slower when composing a message (no surprise here). But they do not compare touch typists and others when composing a message.  
  > **username_14**: 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.  
  > **username_3**: @username_19 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.  
  > **username_21**: 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.  
  > **username_22**: @username_14 Using mouse to control your computer is not very effective. Interrupted though process is big productivity loss (and there are studies for that). Of course, I use mouse/touchpad too, mostly to switch files, but very rarely when editing a single file since using keyboard is so much more effective. After 20 years of using a computer I don't have to think about it at all.  
  > **username_14**: @username_22 maybe that is the biggest difference, I can not remember the last time I really wrote 50 lines of code at once sequentially in a single file... It is usually a few lines here a few lines there, introducing a new variable or method, writing long sequential code in a single file is a rarity for me  
  > **username_23**: @username_21: Actually, interacting with IDEs makes it *more* necessary to type without looking at the keyboard (because you have to see what the IDE is suggesting on-screen)  
  > **username_21**: @username_23 You can look back and forth.  What I'm saying is that with a modern IDE you're not writing much code at once before having to interact with it anyway, thus it's less of a disruption to have to think about the typing.  
  
  ---
  
  ### Answer by username_24 on 2018-06-19. Score: 24
  
  **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.
  
  **Footnotes**
  
  \* Barring some disability or master-level, non-conventional typing abilities.
  
  > **Comments:**
  > **username_2**: 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.  
  > **username_24**: @username_2, Again my intention is not to insult or disparage people. It's to make clear how fundamental the skill is to being an effective engineer. I think I've included valid reasons why it's important. Your own experience supports my answer (writing thousands of LOC). I don't think we would be doing any students any good by telling them "proper typing skills aren't required to be effective" which is what the top answers seem to suggest.  
  > **username_2**: 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.  
  > **username_25**: 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*)  
  > **username_1**: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79133/discussion-on-answer-by-username_24-what-advantages-do-students-have-who-learn-how-to).  
  > **username_17**: 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?  
  > **username_24**: All, I've incorporated feedback from your comments to try to improve the answer. I've relaxed the tone and tried to acknowledge the variety of CS jobs. But overall, I still maintain that effective typing skills are only going to benefit the student in the long run.  
  > **username_26**: @username_25 Nowadays, those terms are pretty interchangeable. Not many places hire "code-monkeys" anymore. Having only the ability to write code is not enough anymore, like it was a few years ago (especially in the 90s and 2000s). You are right about CS students not being either, though. In fact, I think a very significant portion of CS grabs don't write code for a living.  
  > **username_1**: Please keep comments to suggestions for improvements to this answer. Any other types of comments will be removed.  
  > **username_27**: I get this got the check but it does not answer the stated question "CS education benefit".  
  > **username_1**: If you have a different answer to the question, the comments section on this answer is not the place for it. Write your answer as an answer, not as a comment here. Answers in the comments will be removed.  
  > **username_23**: 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.  
  > **username_23**: In fact, the value of fast typing is almost totally from improved speed of writing ideas down -- the increased speed of typing code is nice but ultimately unimportant.  So while I agree with your conclusion that acquiring touch-typing skills should be encouraged, I can't upvote your answer due to the blatant wrong ideas you share along the way.  
  > **username_28**: With the comments continually sniping on "speed of typing", while the answer doesn't actually say that, I think part of it should be rewritten to explicitly state that efficiency isn't _just_ speed. I mentioned it in a prior comment that was removed, but I think it's worth adding to the answer itself: The bigger issue is that when thinking about code, you want as few context switches as possible. Usually this is framed as not being interrupted by another person, but having to stop and think about the keyboard instead of the code is another type of context switching that has to be minimized.  
  > **username_29**: Sorry, I've know many programmers who were two-fingered typists. They were quite proficient, typing 80 wpm.  
  > **username_28**: @username_29 Sounds like they are touch-typists, just not home-row touch-typists.  They'd fall on the "would hire" side of this answer.  
  > **username_30**: The disabled can be hired to program just fine without the ability to touch type.  
  > **username_31**: @username_24 I agree with regards to being able to type without looking (much) at the keyboard, but I think you should spell out the distinction in your answer between traditional "proper" touch-typing (using the home rows) and what I tend to call "typing by touch" which may use a style closer to hunt-and-peck but is still done without (much) looking at the keyboard and so is likely to be almost as fast as proper touch-typing.  
  > **username_32**: I have worked in quite a few projects from academic high level project to pretty dumb applications, never has the typing speed been a major factor in how good a developer was. Sure, it's a factor, but in most cases looking for that is optimising at the wrong place when other factors have a much higher impact. If all else is equal it might be something to consider, but if the other "hard" abilities are the same I'd rather look for social skills as a deciding factor than the typing abilities. That's a mechanical trainable skill, every good dev will find a way for it not to be a limiting factor.  
  
  ---
  
  ### Answer by username_33 on 2018-06-20. Score: 18
  
  # 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](https://en.wikipedia.org/wiki/QWERTY#History) 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.
  
  > **Comments:**
  > **username_1**: Comments are not for extended discussion; this conversation has been [moved to chat](https://chat.stackexchange.com/rooms/79281/discussion-on-answer-by-username_33-what-advantages-do-students-who-learn-how).  
  
  ---
  
  ### Answer by username_15 on 2018-06-18. Score: 10
  
  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.
  
  > **Comments:**
  > **username_2**: 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.  
  > **username_16**: 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.  
  > **username_15**: @username_2 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.  
  
  ---
  
  ### Answer by username_17 on 2018-06-19. Score: 9
  
  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.
  
  
  ---
  
  ### Answer by username_18 on 2018-06-19. Score: 9
  
  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.
  
  > **Comments:**
  > **username_2**: 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.  
  
  ---
  
  ### Answer by username_3 on 2018-06-21. Score: 6
  
  **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
  
  > **Comments:**
  > **username_4**: Just think what you could have accomplished if you could type faster?  
  
  ---
  
  ### Answer by username_5 on 2018-06-18. Score: 6
  
  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.
  
  > **Comments:**
  > **username_1**: 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.  
  > **username_2**: 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.  
  > **username_5**: 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.  
  > **username_2**: @username_5, hmmm. The beatings will continue until morale improves. Right?  
  > **username_2**: 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.  
  > **username_2**: However, to be fair, I generally agree with the first paragraph of your answer. Typing skills are _helpful_. But so are editing/refactoring skills and thinking skills and interpersonal skills and ...  
  > **username_2**: @username_4, actually you _don't_ have to finish by graduation. If a student never learns anything after they end their formal education, you have failed as a username_9. Giving them good mental habits and an enquiring mind will carry them further than any technical idea. But starting early is good, I agree.  
  > **username_4**: @username_2 it comes down to defining the goal, and there are differing views on that. We are probably looking at the same thing from opposite sides.  
  > **username_5**: @username_2 I'm sure you are right and that's why I'm a programmer and not an educator.  I was using what had worked for me and trying to figure out a way to apply it to everyone--a pretty bad idea.  
  
  ---
  
  ### Answer by username_6 on 2018-06-20. Score: 6
  
  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.
  
  
  ---
  
  ### Answer by username_7 on 2018-06-20. Score: 5
  
  **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).
  
  **Summary**
  
  * 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.
  
  
  ---
  
  ### Answer by username_8 on 2018-06-21. Score: 3
  
  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.)
  
  > **Comments:**
  > **username_4**: 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...  
  
  ---
  
  ### Answer by username_9 on 2018-06-20. Score: 3
  
  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.
  
  > **Comments:**
  > **username_4**: 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...  
  > **username_2**: @username_4 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.  
  
  ---
  
  ### Answer by username_10 on 2018-06-26. Score: 1
  
  **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.
  
  > **Comments:**
  > **username_11**: 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.  
  
  ---
  
  