Hacker News new | past | comments | ask | show | jobs | submit login

Curious what kind of work you are doing where WPM is a limiting factor. I’m in software, like a lot of people here, so being able to type in speed is rarely the limiting factor. Besides stenographers, the only other line of work off the top of my head that needs this kind of speed are people who are paid to write subtitles for TV shows and movies in another language. Which I guess is just another form of stenography, when you unwrap it.

Or is it not for work and it’s just purely to see how fast you can type?




People conflate two things when discussing speed. Throughput is rarely the limiting factor, but latency can get in the way.

Being able to type out a line of code or comment very quickly and then move on to thinking about the next one without breaking flow is useful.


Typing fast is one of the greatest strengths for programming for me personally, especially when compared with Vim. It's that that it's a limiting factor, but rather I max out typing quite often, and also I have always wanted to hit 200 just for fun, but it currently feels not attainable.

Some people say they spend more time than they do typing, but I definitely don't find that to be the case very often.


I am a bit jealous (maybe?) that typing speed is a factor for you. I am the kind of person that will think for minutes at a time before writing a single line of code


It's definitely situation dependent. When writing a lot of frontend code (vue, typescript, css, tailwind, html) I know what I'm typing several mental steps before I actually type it, so speed gains there are most pronounced.

Sitting somewhere in the middle are dynamic languages where there might be certain implementations (say... some random api integration) where it's simply a lot of code I've typed thousands of times before. This still benefits from fast typing, especially when needing to operate surgically with vim, it's one of the moments I love the most (basically getting 20x combos with perfect typing at high speed when moving/modifying/transforming blocks of text etc etc)

What benefits least of the 3 is writing things like Golang where it still definitely helps typing fast, don't get me wrong, but I usually have to think more there. Pace is slower, and symbols can become a pain in the ass.

At the end of the day... you're still typing thousands of lines of code regardless of whether you're thinking or not. I never understood the argument "I spend more time thinking than coding". You are still going to write the same amount of code whether you're thinking or not. My ideal world (why I love typing fast) is that that time of me coding gets brought down by 50-200% over someone who types slow. I use that time for accelerating ahead. Ie... prototyping and deleting tons of code before refining/cementing in a design is painless.


> I never understood the argument "I spend more time thinking than coding". You are still going to write the same amount of code whether you're thinking or not.

The argument is that time spent typing is insignificant compared to time spent thinking, so optimizing for WPM seems like a less relevant endeavor.

So if you spend (say) 1 day thinking about the problem and 1 hour typing, it matters little if you can speed up your typing by 50% or whatever: you still spend the bulk of your day thinking, and optimizing typing speed is not going to change your deadlines.

It sometimes seems people fetishize typing speed because that's easier to get better at (and measure), while there are no shortcuts for thinking "better".


Typing is bursty. You don’t type much usually, but sometimes there’s a lot of it. Effortless typing minimizes interruptions and allows to stay in the zone for longer. It isn’t just about the time spent typing, it’s about typing at the speed of thought so you don’t switch contexts from thinking to typing.


Typing is bursty, agreed. I'm not saying someone who is an extremely slow hunt-and-pecker is ideal.

What I'm saying is that, past an average typing speed, obsessing over WPM gets you diminishing returns, because that's not where the bottleneck is. You should rather spend time improving other aspects of your process, but of course, "thinking better/smarter" is harder to improve.

For the record, I never measured WPM but I'm mostly a fast 2-fingers typist. All keys are typed with my index fingers, and the spacebar with the thumb and some of the special (shift, CTRL, etc) keys with some other finger.

I will lose every competition with a WPM-focused typist, but I can guarantee you my effective tasks -- the actual job we're meant to complete -- will not take me longer, unless said job is transcribing a document (which is never my job).


If you are a 2 finger typist and also think people are "obsessing over WPM" because they're wanting to utilize their own tools to the fullest advantage, that sounds like some mental block kind of thing.

If you can type at least 80 consistently then thats probably would I imagine the dividing line is between "flow/concentration not breaking" and "breaks constantly"

Try a 50 word monkeytype https://monkeytype.com/


> If you are a 2 finger typist and also think people are "obsessing over WPM" because they're wanting to utilize their own tools to the fullest advantage, that sounds like some mental block kind of thing.

I get frustrated by this kind of replies on HN.

Please don't try to "fix" me. I'm telling you my WPM are not limiting, because -- like almost ALL coders and engineers -- I spend most of my time elsewhere, and that 2-fingers is fast enough. I will not solve a Data Engineering problem by typing fast.

I probably type faster with 2 fingers than you. Maybe not, but I've seen me "win" over people who type with all fingers, and that's good enough for me.

So thanks, but no thanks?


I'm not trying to fix it, just engaging in a dialog, and I said it "sounds like", because your first thought when reading about people using their tools effectively is that they're "obsessing" about it. A lot of people care greatly about efficiency (me), and having someone who can't actually type fast or seem to care about efficiency then tells you you're obsessing about it seems like the hallmark "I cant do X thing so I will criticize it instead"

Are you at least over 60 WPM? I think I said in another comment that I think 60 WPM is probably the lowest I can imagine not constantly breaking your focus while trying to hold ideas in your mind, especially if you do data engineering and youre going multiple layers deep.


I can guarantee you it's not a case of "I can't do this, so I'll criticize it". I'm actually a decent 2-finger typist, and this has never limited me when troubleshooting a problem or designing a solution. Engineering problems are seldom solved by typing really fast.

I'm fine with you improving your WPM, I just don't think it's a worthwhile endeavor -- it's not making you more efficient where it matters. Likewise, I could improve my WPM, this is not rocket science and anyone can do it with training. It's not even hard training.

But why? I could also train to run faster, but would it help me do my job better?

edit: out of curiosity, and this proves nothing either way, I tried your monkeytype link and got 90 WPM with 97% ACC.


Are you sure about that? I trust you if you are truly, TRULY sure...

Imagine you had a tool similar to those ChatGPT IDE auto-complete plugins, except instead of doing chat GPT it typed what was in your mind.

Imagine you start work in the morning, and there is a 0ms response time from what you think, and huge blocks of code would appear instantly.

Is your work such that you TRULY only type 300 words per day? Or, do you also... write tests, write boilerplate, write for loops you've written thousands of times, write and read files, call/build APIs, write command line tools.

If you can imagine some kind of "instant feedback" typing thing quite literally not improving your quality of life whatsoever, then I guess you are just in a rare boat. I can't visualize any circumstance where 80WPM typing would not benefit them, but I suppose there might be a world of developers out there who truly live in a vaccuum like one of my other comments said... they just come in to work, dont communicate with anyone, dont write anything other than a 50 line file with a few hundred words in it, and leave after 8 hours)


> Are you sure about that? I trust you if you are truly, TRULY sure...

Yes, I'm sure. Isn't this what I'm saying?

Are you sure running faster wouldn't improve your engineering job?

> Imagine you had a tool similar to those ChatGPT IDE auto-complete plugins, except instead of doing chat GPT it typed what was in your mind.

I use ChatGPT on occasion. I spend way more time trying to frame the question and understanding whether what ChatGPT spewed out makes sense than actually typing the question.

> Is your work such that you TRULY only type 300 words per day? Or, do you also... write tests, write boilerplate, write for loops you've written thousands of times, write and read files, call/build APIs, write command line tools.

I've spent more time typing words in this thread with you than I'll write the rest of the day for my job.

(If you find yourself writing lots of boilerplate, may I suggest that may be a real place to focus on improving, rather than on how fast you can type boilerplate?)

The only other place where I'll spend time typing is in chat. Let me assure you my typing speed is more than enough there too, and I really don't want stream of consciousness typing in my job chat -- that would get me fired fast. And for social typing, how much speed do you truly need to type "hey, what's for lunch?" or "hey, did you read this news? <link>".


Yes I don't mean literally chatGPT, thats why I said "except it would type from your mind" to eliminate the focus on chatGPT being wrong.

Alright I concede if that's really your use case. I wrote in another comment but I manage 3 separate companies that I started, and I'm the single developer on all of them, and I do everything on them (frontend, backend, infrastructure, data architecture/analysis, etc). So it's definitely not true for me. I have enough experience with my friends working at companies though to know they STILL would benefit, but it sounds like you escape this characterization somehow, so I believe you.


I spend over 10+ hours a day typing at the computer, across slack, writing specs, writing code, etc. So really I suppose in my mind I don't live in a vaccuum.

I don't fetishize it at all, in my mind it is a simple objective fact that I actually experience myself. Fast typing is up there with Vim as one of the literal most productive things I have ever done, with the 3rd being memorizing hundreds if not thousands of OS/app hotkeys.


Writing specs is a key bit here that I'd generalize as: I think by typing. The hardest problems I troubleshoot are worked through with best quality if I am typing up a worklog of stuff tried, rather than taking no notes at all. And like mentioned in other comments, the effort of typing these notes is a limiting factor on the quality of my notes (too much time spent typing slows the troubleshooting iteration loop).


It goes without saying that typing notes, transcribing documents, and generally "stream of consciousness typing" is helped by a fast WPM rate.

But for coders, that's seldom the task we're doing. Hence the assertion "I spend more time thinking than typing".


It is either an objective fact, or something you experience, but it cannot be both. Having said it, have you actually measured how much time you spend typing, to claim a huge boost in productivity? Developers very often overstate the amount they type p.d.

I can imagine, that going from pecking on keyboard to 10 fingers is actually huge - it is just a bump disappearing. But going from 80 wpm to 160 should have diminishing returns, even more so going from 160 to 320 - here, the Pareto principle should kick in.


I was saying an "objective fact" for me, not globally. I was responding to the idea of "fetishizing" WPM when I'm saying, no, with 100% certainty, WPM is extremely beneficial to me with no grey area.

Also I did say in another comment 80 WPM would be where I'd put the barrier of not having to constantly break mental focus. BUT ALSO.. I'll take this a step further...

Have you ever gone from a 60hz monitor to 120?

Have you gone from non retina iphone to retina or remember that?

Have you gone from 32gb to 96gb in your computer and noticed things open THAT much faster?

Have you ever optimized something like the load speed of your terminal and removed 200ms from its boot time?

Now could you imagine ever going back after doing any of those things?

To me, thats what its like beyond 80. I can't imagine having to go back to 80 after I've felt 160. It's just THAT much more freeing when I'm really really deep in thought. quite literally I can type as fast as I can think, and it becomes truly seemless, like "programming in lisp" when the language gets out of the way (I dont program in lisp regularly, just seems like a good analogy)


Counterpoint: the best engineers I've worked with had beat up, old crappy laptops with low res screens.

I'm thinking of 2-3 guys I really admire, and they had this in common: when asked "but don't you need the latest Mac with a retina screen!?" they looked puzzled. Like, the common answer was, give or take: "yeah, I guess, if there's one to spare, but don't other people need it more? I do most of my thinking away from the screen anyway, and I run my stuff on a server".

The fetishization of hardware is yet another thing that puzzles me. Yeah, better hardware makes our lives easier and nobody will deny that, but (barring some obvious stuff like "this will take 1 hour to run vs 1 week") does it really impact how effective you are at completing tasks in your job? To some degree it does, but programmers tend to overemphasize it because it's easier to obsess about getting better hardware than about solving harder problems ;)


For me? Yes it does, and I'm not fetishizing hardware, etc. In my mind, it's very "this is the way it is"

I'm a single developer/entrepreneur who as put dozens of products to market single handedly, and a number of them have done really well (some getting over 10M/yr another getting much higher than that). Right now I'm managing 3 full time... and Some days I code upwards of 15+ hours a day when building.

So basically efficiency is important to me. I literally am doing the job of like 3-4 developers at once (I do all design, frontend, backend, data analysis, reporting, infrastructure, etc).

"yeah, I guess, if there's one to spare, but don't other people need it more? I do most of my thinking away from the screen anyway, and I run my stuff on a server"

This just sounds like a mopey slow answer, sorry. I'm not hating on what they're saying but I'm not going to intentionally make my life slower/worse because of some disjointed idea that doesn't make sense. "Someone else needs it" sounds like fake ... modesty or something. MOST of my time is spent thinking in the shower, in my sleep, or with a physical pencial/notebook in my hand where I architect things. That doesnt mean the hours upon hours .... 30,000+ hours at this point in my life, that I've been on the computer actually building that I'm not going to use the very best tools at my disposal.

When people constantly call nice things "fetishizing" it sounds to me they're just different kinds of thinkers, more like scientists or objective experience-driven, domain-knowledge heavy type programmers. I'm not like that, I'm more about pattern recognition when information is missing, and filling in the gaps and moving quickly/efficiently/elegantly, and design and aesthetics are extremely critical to me. Elegantly designed/efficient code is extremely important to me, just as much as an efficient workflow.

You could call it "being creative" or whatever you want, but those things are very important to me as they all feed into my mind as fuel... into this giant arc reactor of mental substrate, and I look through this kaleidescope connections and I refine refine refine go go go.


> This just sounds like a mopey slow answer, sorry. I'm not hating on what they're saying but I'm not going to intentionally make my life slower/worse because of some disjointed idea that doesn't make sense. "Someone else needs it" sounds like fake ... modesty or something.

Well, you'll have to take my word for it: these people I'm describing are brilliant and accomplished engineers who advanced lots of projects in their jobs, and taught me a lot. I saw what they did. I saw them troubleshoot hard engineering problems, and solve them. This is not hearsay, I saw them at work.

So I guess I'll follow the evidence.


I'm not questioning their skill or your observation, I believe you fully.

I also know just because someone is smart doesn't mean that all their ideas make sense in terms of efficiency. The smartest people I know are also generally the sloppiest, or have the most rigid unbending ideas that are not adaptable.

I'm not saying that's what you've seen of course, just wanted to explain that what I'm saying doesn't necessarily contradict what you're saying.


> I never understood the argument "I spend more time thinking than coding". You are still going to write the same amount of code whether you're thinking or not. My ideal world (why I love typing fast) is that that time of me coding gets brought down by 50-200% over someone who types slow.

My perspective on this (I'm not a fast typist, but don't feel it's a big limitation) is that I can think while typing, so if I can type at least as fast as I can plan the next bit of code, there isn't any benefit to typing faster.

Of course, that isn't the complete picture, and I wouldn't be surprised if typing out less concrete thoughts (which might mean the same as when you say "prototyping and deleting tons of code") might improve my code or speed me up in plenty of situations. It's also possible there are things I avoid more than I should (such as writing short programs to see how some interface behaves) because I'm too slow at typing.


If you want my unsolicited 2 cents to help speed up (if you care!)

1. put your fingers on home row keys with pointer fingers feeling the bumps on F and J

2. DONT move your wrists all around, try to keep them still and let your fingers do all the work. try to keep your entire palms as still as possible, they really shouldnt move. I rest mine on my laptop surface.

3. dont look at the keys. use https://www.typing.com to help you if you cant do that

4. relax your hands as much as possible

Typing.com is better IMO if you don't know how to type fast, and monkeytype.com is way more fun when you do (the interface is just way more fun)


Thanks for the advice - I do 1 & 3 and I think I do 2 & 4 although that's less true when writing things with symbols (such as code), or when navigating text (I don't use vim). According to monkeytype.com, my typing speed is ~40wpm, which is apparently around average (not average for monkeytype users).

Thinking time definitely dominates, I'm hesitant to write something unless I'm confident in it, which I feel serves me well when writing code, but less well in other contexts (except perhaps HN, which has an unusually high fondness for accurate rebuttals of minor technical points). I spent ~20 minutes writing each of my 3 replies to you (longer on this one now that I've finished it). Perhaps being able to type at the speed I could talk would deny me the chance to think about it while waiting to finish typing, speeding me up indirectly.


You definitely hit the nail on something you said, which is when I'm forced to type on my phone, my replies are always MUCH more succinct, clear, as I can only type like 30 WPM probably on my phone.


I don't know how it is working on large teams, but for my daily work working alone I usually write maybe 10-15 emails, I issue a dozen or more commits, I outline specs (a vague word I'm using which could mean writing documentation, writing technical explanations to clients, writing comments, commits, boilerplate, talking about technical things to my peers via chat).

The entire technical burden of all things fall on me, so I suspect I'm editing code a good 6-8 hours of the day, and the other 3-4 hours at the computer are spent communicating of some form. I wish I knew how many words I typed per day but it must be seriously 10's of thousands. Maybe 5000-15,000 depending on the day. Now I imagine doing that.......... 3 times slower. That gives me excrutiating physical pain.

If I sat in a vaccum, with no outside communication, and nothing else dependent on me whatsoever, and I was basically given a single task to produce a 50 line file by the end of the day, and the other 7 hours was spent deep in thought, then i could see typing not being important.


My point was intended to be with regard to code specifically, I don't dispute that typing speed is beneficial for other communication. My recent coding experiences have been much closer to your last paragraph than your first (talking to peers about technical things has often been via audio).


I think it matters a great deal too, and not just for typing code but for reading it too, and this goes beyond simply typing fast but also writing short concise code, especially for parts of the code that are closer to defining program architect than implementing the details: it's better to have everything fit in one page of code rather than being dispersed throughout multiple files.

The reason for that is that a codebase will condition the complexity and thus time it takes to add features to it, in a way that is similar to algorithmic complexity and big o notation, except we as human can't even afford polynomial complexity and constant factors matter a lot.

Imagine you're developing an API, both server and client. You can cut your time in half by automatically deriving the client code from the server side specs. Of course you may have to develop that tool yourself and it takes time. The point is that the time invested developing it will be repaid each time you implement a new endpoint in your API, cutting development time in half:

n * (t(s) + t(c)) versus n * (t(s))


for me philosophically code is a liability. Every line of code I write is a liability for me and future generations. So I try as hard as I can to not write code at all so it takes me quite a long time to decide to write code. I see it like that in the places I work too, I get paid to decide when it makes sense to write code eg introduce liability to the business


I agree. Code is a liability, and you should think as hard as possible so that you can write the smallest amount to produce value.

But at the end of the day, you are often going to be writing something, and once you figure out what that is, it should transmit from your brain to the editor as fast as possible.


Interesting perspective. I am a solo developer for all my own companies, and I basically work alone managing a number of high volume businesses. I look at code as "art" oddly enough, and not a liability. I look for elegant solutions that wrap complexity up in the most elegant way possible, and I think a lot of "liability" comes from people not knowing what they want, and not refining features, as opposed to code (at least in the business I work on, it sounds different for you in your case)

Edit: Not that "high volume" means anything but I put that there to illustrate there's millions of dollars of liability on the line, not just pet projects or something. It just sounds like a different kind of business I'd guess. Working on a team is definitely something a lot different, that I don't really deal with, nor have much experience with.


This perspective makes total sense if you never have to write code that is maintained by someone else or deal with code that some else has written.

All of our abstractions make sense to us. We wouldn’t have written them otherwise. But unless we are gods at documentation passing that context off to someone else is hard. It’s very easy to casually dismiss a bunch of code as over engineered by also casually dismissing requirements. By being extremely diligent about what you introduce in terms of code you will save yourself and other engineers hundred of hours down the line (if not thousands)

That being said, if you’re a startup who won’t survive without working code and your end users don’t ever see the code you write, who the fuck cares about the 10,000 lines of code you write that would take some other engineer half a month to understand? 10,000 lines of code that make money are worth infinitely more than 10 elegant ones that don’t


That makes complete sense. The team aspect is probably where our experiences differ the most.


I’ve come to that realization consciously not long ago after two decades in software, but felt this tingling for a while.

Code not written is code not using up resources of your colleagues… and future you. It might be an asset if you sell code, otherwise it’s strictly a liability if you sell a service which the code provides.


It’s not just writing code though. So much of my time is spent typing, whether in slack, notes, shared documents, or code, that typing speed is a quality of life improvement across the board.

When coding, I prefer to spend my thinking time thinking and my typing time typing, so typing fast gives me more time for thinking, makes playing around with little ideas feel easier, and again provides what I feel like is a significant quality of life improvement.


All depends on what you’re doing… sometimes people have to write, like, css.


What keyboard are you using? If you have a good, ergonomic desk (required prerequisite), then try the Matias Ergo Pro. It is the most comfortable keyboard I've ever typed on, and I've owned literally dozens of mechanical, ergonomic, split, and specialty keyboards. Just be aware that the build quality is terrible. I had two Matias keyboards, neither lasted a year... And I type lightly, preferring 35 gram keys. At $250 each it is quite the investment. But, honestly, they are worth the price. They are _that_ comfortable.

Yes, I am a heavy VIM and bash user. I'm sure that some days I do not touch the mouse at all.


I'm using the latest MBP keyboard which is an insane upgrade over the previous. For some reason I think working on a 16" laptop is much better for speed and efficiency than huge desktops, it's like the keyboard and screen is a direct extension of my mind rather than the feeling of writing while holding a pen with gloves on.


> It's that that

Made me laugh, given the topic!


Yes that's hilarious, I noticed that.


> I’m in software, like a lot of people here, so being able to type in speed is rarely the limiting factor

I think of typing speed in coding the same way I think of cardio in boxing – it won’t win you the round, but the lack of it can easily lose you the round.

You want topping to feel seamless and reliable. Whatever you think should come out on the keyboard reliably and without friction. Any time you have to stop and think about typing or go back to check for typos, is time you’re losing focus and flow.

Take an extreme example – search-and-peck typing where every character takes 2 seconds. Can you really hold a complex programming context sharp in your mind while it takes a minute to type a few instructions? I sure couldn’t.

But you probably also can’t think fast enough to fill a 200wpm typing buffer.

Somewhere in between those extremes lies the sweet spot where your typing speed and your thinking speed match.


Indeed, being able to type quickly is invaluable in minimizing the time your mind is blocked from continuing onwards.

Or, in general, being able to use keyboard quickly. I've seen a lot of people who, when troubleshooting some issue in a SSH session, are v e r y s l o w in shell (quick sequence of little tasks like: type a command, find a particular command in your recent shell history, bring it back up, change something in it, navigate to a different directory, grep some log output).

If even the simplest of those tasks takes you a few seconds, you risk losing the train of thought.


Interesting perspective. I have a decent wpm (like 120 if we are doing mavis beacon shit) but otherwise I usually go at like 70. I cannot think of a single time in my 10 year software engineer career where I have been like “damn, I wish I could have typed that faster and my typing speed was a limiting factor in my job”


That’s the fun part! You don’t notice it’s a problem until you pair with someone who can’t type fast or makes a lot of typing errors and you want to bang your face through the screen because it’s so frustrating to watch them struggle.

They don’t even realize they’re being held back by this. It’s an invisible friction until you notice it.

Easiest way to notice the effect is by switching to a new IDE where you don’t have the keyboard shortcuts in muscle memory yet. Or a language that’s easy but you have to think about the syntax because it’s new.


It might not be a limiting factor as much as an enabling factor.

Sometimes being able to type fast can also mean thinking broad or deep quickly.

Coding at WPM is very different than communicating at WPM. The latter might be valuable.

If you can type faster you can help teammates a bit more easily.

WPM isn’t a high score for me, but there’s probably a floor.

Virtual assistants for example is one area where the average of 3 typeracers can be interesting.

In fairness to your comment, the ability to speak to text accurately can be faster than typing too, and maybe it’s a combination of clarity meeting WPM.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: