5 ms·
> I think software development also falls into this category. Software development has absolutely nothing to do with code entry speed. Requirements gathering,
by UnoriginalGuy 9y ago
> I think software development also falls into this category.
Software development has absolutely nothing to do with code entry speed.
Requirements gathering, mockups, design, testing, and thought make up the vast majority of development time. Then even once you get down to coding, you're often maintaining existing code rather than writing code from a blank slate, which requires more time reading and thought than actual modifications. A one character code change might take an hour; but you spent that time testing, following workflows, and documenting.
So the supposed developers online who obsess over their mechanical keyboards and 1ms time saved hotkeys really confuse me. I genuinely think the day to day software development that I and my colleagues do has no relationship to this bizarre online fetish with code entry speed.
If I really want to improve my coding performance, I'll do a standing meeting instead of a sit down meeting, reduce the number of people in a meeting, or stop requirements slip by completely clamping down on change requests mid-work. Those are my performance tips, and they save hours, not milliseconds...
- lukas099 9y agoWhat about the argument that less time spent typing (and more 'automatic' text editing) means shorter interruptions from thinking, and therefore more productive thought?
- UnoriginalGuy 9y agoYou spend a lot of time thinking, and interruptions negatively impact that. The concept that you only think while you type is non sequitur; if that's the case then even with all of the hotkeys you're still going to lose your train of thought every couple of minutes while you test, navigate, or dwell. Again, the kind of software development people claim they do online, and what I see day to day have no connection to one another. If you're literally spending a whole day typing then you're extremely unusual. Even when writing fresh code with no front end, a lot of time is spent mapping data to structures, requirements building, diagramming, testing, or just considering the most maintainable way to solve the problem(s) presented. These programming speed challenges that have popped up in the last few years are lies too. All these people do is pre-solve problems slowly and thoughtfully, then regurgitate those solutions within a very small timespan on the day. That's why many of them let the contestants create their own problem to solve, or give them very generic problems (e.g. twitter clone).
- mistercow 9y ago> The concept that you only think while you type is non sequitur That's not the concept being argued for. The concept is that you aren't thinking while you type; you're dumping what you already thought of.
- DavidWoof 9y agoAs someone who obsesses online over my mechanical keyboard (cherry mx clear today, but I have a collection), system hotkeys and .vimrc, I actually generally agree with this. Code entry time has almost nothing to do with software development productivity. It's just stuff I enjoy, and the fact that people get obsessed by it shouldn't confuse you any more than the myriad of other things people obsess about online. Learning to save a keystroke in vim is really just my equivalent of learning to kill a certain monster in a video game. On the other hand, I'm generally shocked when I meet programmers who don't know their tools at all, and in my experience that really does correspond to poor productivity. I'm not talking about people with average typing speed or people who use toolbar shortcuts rather than hotkeys, but programmers who don't know how to auto-format in their tool of choice or who stop typing every few keys to reach for the mouse, click file and then save. There's a mindset that goes with effective software development, and a natural curiosity and a constant desire to do things just a bit more efficiently are key factors in that mindset. People who are constantly getting out of the flow even in their editor of choice because they haven't learned to use the tool efficiently might not have the right mindset for software development. But yeah, I recognize that the vim golf stuff is silly (but fun!).
- ganonm 9y agoFor me a large part of the reason I use Vim and only Vim for writing code is it just makes the experience so much more enjoyable. I realise this is quite subjective, but my personal experience is that whenever I use a colleague's non-modal editor I find the experience frustrating even though I know how to use it. Years of using Vim has sensitised me to the constant annoyances that accompany using a conventional editor. Has Vim sped up the rate at which I can edit text? Probably, but for me this is missing the point. I'm not a physiotherapist but being able to rest my forearms/wrists on the table 99% of the time when using Vim significantly reduces the risk of RSI.
- Terr_ 9y agoI completely agree that code writing speed is not the important metric. However, keyboard shortcuts can still be very useful for the tasks of testing and debugging. Consider the problem of stepping through many lines of code, or copy-pasting data from one place to another in order to run a test. Lastly, when you know what you want to write (or refactor) it helps if the input system just fast enough that you can keep your sensation of flow. This part is probably highly variable among individuals.
- mistercow 9y ago> Software development has absolutely nothing to do with code entry speed. I think this is false. I think, then I type. Then I think, then I type. The more time I spend entering code, the more I lose context on the problem. So while it's not as simple as "speed * time = total amount of code written", I'm fairly certain that code entry speed has a significant impact on my productivity. Typing speed and use of shortcuts may not be the most important skills for a software developer, but I think it's borderline ludicrous to claim that they're irrelevant. For a trivial counterexample, try coding using an onscreen keyboard and mouse.
- braveo 9y agohotkeys aren't about code entry. I bet when you're in visual studio you hit F5 to debug instead of moving your mouse up and trying to hit the small button. You probably also use Ctrl+<space> when need to pop up autocomplete directly, or Ctrl+r+r when you want to rename something quickly. It's an idea known as 'death by a thousand small cuts'. Perhaps each individual build isn't significantly quicker using keyboard over mouse, but do it all day and it becomes significant. This doesn't even start to consider the mental attention required for mouse usage vs keyboard usage. Every context shift potentially slows you down even more due to non-physical issues. Trying to frame this as a discussion bout typing speed is just not accurate.