I'm just pushing back against these out of touch fads. Most developers worldwide don't have a three-monitor setup. There is no proven correlation between quality software and 4K displays or mechanical keyboards (to name other fads). More importantly, the best devs I've known -- people I admire -- used tiny laptops with tiny displays, and shrugged when offered even a single external monitor; it just wasn't a big deal for them.
I think in general the thought is, if you care enough about your craft that you seek out refined tools, that care will be reflected in higher-quality development. Whether that's true or not, I don't know, but I'm inclined to believe there's a correlation.
I mean, it would be weird to visit a professional carpenter's house and see Harbor Freight tools, right?
Other bizarre opinions I've read from Atwood and his followers: that you should be an excellent typist (this is also related to owning a mechanical keyboard). No. Just no. Typing speed is not the bottleneck when writing software. The bottleneck is my brain. I've never seen a project fail because people typed too slowly.
I have let my WPM drop a fair bit over time. I'm still relatively young yet, but I see no reason to go fast when I realize that most of the typing amounts to disposable bullshit. It's better to spend time thinking and developing thought patterns, and then just type a little bit to jog your mind and clarify. I allow myself to write some cheap code, but the point of that is to sketch, and the sketch should be light and quick, for the same reason that artists will say to favor long, confident strokes instead of chicken-scratch markings.
I agree except with a caveat: the mechanical action of typing, formatting, refactoring, fixing typos and missing semicolons, and moving code around actually distracts the brain from the higher level task at hand. And when the brain is already the bottleneck, I don't want to make it worse by wasting brain cycles on mechanical drudgery.
As one might expect, I feel far more productive when I'm using languages and tools that require me to type less and refactor & re-edit code less. I think the language would matter less if I could just wish code onto the screen. Until then, learning to touch type (with as few errors as possible! not necessarily as fast as possible) and use editor features to make it more effortless is the next best thing.
I agree, if speed of your typing is your bottleneck in getting code written, perhaps you should be coding smarter not harder.
I think there is some wisdom that you should try to be a "good" typist, in that better typing skills reduce the risk of injury (RSI), but that's self-care/ergonomics, and while still very important, there are plenty of good software developers that hunt-and-pecked their way to an early retirement (and/or multiple carpal tunnel surgeries).
I see typing like the ability to do mental arithmetic: being able to do it well isn't the thing that's directly valuable, but it removes distraction from the activity that is valuable, and that ends up making it valuable as well.
Another way to look at it: the faster you think, the faster you need to type in order for it not to become the bottleneck (during the times where you're actually implementing an algorithm as opposed to designing it). Of course, that's not just a function of raw typing skill, but also of the tools you use and the verbosity of your programming language. (An amusing corollary of this is that for society at large, it's useful to have great hackers who are bad typists: they will be tempted to develop better tools from which the good typists can also benefit!)
I've never known a great developer who did hunt-and-peck typing though. I do know great developers who have their own typing system. They simply never bothered to learn the "proper" way to do ten finger typing, and that's fine (unless those typing systems are worse for RSI, which was the case for me personally).
Multiple monitors though is purely personal preference I think. While having the documentation on another screen is something I personally find useful, if anything it probably makes me lazier about trying to remember things.
I think it's valuable to be able to type effortlessly without having to think about it too hard. Typing is a distraction that takes brain power away from the important things.
I think in many cases, people hide the fact that they're not competent with high-cost professional tools, because laymen use it as a proxy for talent that they cannot evaluate.
I think that's also why many exceptional programmers just use a 5-year old laptop -- they don't need to compensate.
A day-trader having 12 monitors mounted on the wall doesn't make him profitable.
That's said my extra 20 inch monitor helps me to visualize.
The correlation seems more likely to me that if you can afford the fancy tools then you've already had some level of success. Though there are those new mechanics who bury themselves in a mountain of debt buying a whole chest full of Snap-On stuff...
Plus, a tradesman will also sometimes lose tools, drop them in places they can't recover them from and so on.
On the other hand, the day I want to fix some issue at home, the last thing I want is the tool I use perhaps once a year to be an additional source of issue, because it involves a round trip to the store.
I bang away at my mba 13" 2013 these days and the only real gripe i have is the lack of delete & backspace keys combo: I've never gotten comfortable without it.
That said, the only reason i could possibly use more screen real estate is web debugging. But to me that's more of an indictment of the environment I'm "coding" in.
The only time ever needed two monitors was back writing 3d games on a 3dfx (before nvidia head hunted their engineers) and needed to debug something while running full screen.
While i understand this argumentation, to me, monitors, their size & their number have always been pretty much...meh. instead it's the quality of the monitor itself (refresh rates, contrast, brightness)
Wow, that's hardcore! I don't think I could do it though. Thank for sharing your experience!
Which 3dfx games you collaborated with, if you don't mind sharing? (I never owned one, I was a TNT fanboy myself).
I’m not sure I follow. Are you complaining about the lack of a dedicated Delete key on Macs, having to use only one key for both Backspace (Delete key) and Delete (Fn + Delete keys)?
But the only thing that will is writing lots of code -- over years and decades. And about 12 years ago, I started running into this anti-feature of human physiology known as "aging". And whereas in my think-I'm-so-l33t 20s I could bang out code on crappy desktop and laptop keyboards, by my 30s they were turning my hands into gnarled claws.
The remedy for this, for me, was a keyboard with Cherry MX switches. The crisp feedback let me know when a stroke was registered, so I unconsciously pressed each key less hard and was able to type faster with less pain.
I am not a good developer, it is not my job, but I started coding on a Commodore 64 in text mode, then I did Cobol and FoxPro for DOS on 80x25 screen with no problem. But when larger monitors appeared, I used it, when the possibility to use more than one monitor appeared, I used it. It is a case of technology helping you, not making you better but helping - I am more productive using 2 monitors than limiting to just one. Because of this, I use the laptop (1366x768 screen) only as a portable email tool, everything else is on a pair of 24" monitors, in the office or at home. Sometimes I pull a monitor from another desk (in the office) or other computer (at home) when I do specific work that benefits of 3 monitors, but it is not a matter of preference, just specific use cases where 3 is better than 2.