6 ms·
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 befo
by Exuma 3y ago
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.
- SOLAR_FIELDS 3y agofor 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
- Exuma 3y agoInteresting 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.
- SOLAR_FIELDS 3y agoThis 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
- Exuma 3y agoThat makes complete sense. The team aspect is probably where our experiences differ the most.
- TehShrike 3y agoI 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.
- baq 3y agoI’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.
- the_af 3y ago> 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".
- Exuma 3y agoI 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.
- gertlex 3y agoWriting 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).
- the_af 3y agoIt 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".
- 3y ago
- penteract 3y ago> 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.
- Exuma 3y agoI 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.
- penteract 3y agoMy 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).