4 ms·
A lot of those are pretty domain specific. Calculus is 10x only because it lets you get into fields where calculus is 10x. I have no idea what a general everyd
by eternityforest 5y ago
A lot of those are pretty domain specific. Calculus is 10x only because it lets you get into fields where calculus is 10x. I have no idea what a general everyday coder would do with it.
I could list lots of design patterns and mini patterns, like having a mutable copy of something that you copy under lock to an atomic copy, and lots of random software tools, but someone would probably say they never needed any of them.
The closest thing to a real 10x I know is laziness and respect for best practices, and what I call "decustomization", the art of removing any unusual technology from actual production systems.
Riced desktops? Gone. Custom made productivity apps? Gone. Simple bash scripts to move files around and do backups? Gone. Distro hopping? Extra gone. New JS frameworks? Gone but with napalm. Making your own programming language? Not gone because it never even started.
Any one of these things might not be a big time drain. But the general mindset of DIYing and building "just right" systems all together takes a lot of time.
Learning how to work "inside the box" with standard issue tools, and how to guess ahead of time how much maintenance work anything new will require, and to think in terms of how things fit ecosystems, rather than evaluating things separately, has probably been the most important thing I've learned in tech.
Every time I've done something "unusual" I've been convinced that the core design was better than what's out there. And almost every time, I've regretted it, because a great idea doesn't always make up for a lack of polish and compatibility.
The challenge of course is actually finding anything else you want to be doing with the saved time.
- rockemsockem 5y agoThis is an interesting comment. I found myself alternating between your sentences with strong agreement and strong disagreement. Sometimes even alternating statements within sentences. Laziness? +1000 Best practices? -1000 Work inside the box? -1000 Think ahead about maintenance and things fitting together? +1000 Unusual choices? -1000 Polish/compatibility over great ideas? +1000 I think the common thread between my "-1000s" might be driven by a lot of experiences I've had where the boxes, default choices, and "best practices" (I cannot express how much I hate this term) have been dressing put around awful ideas. Maybe if I'd been in more scenarios where "best practices" really were good choices I'd agree with you 100%, but I've just seen too many cases where bad decisions are the default :/. I assume you've seen otherwise?
- eternityforest 5y agoNope, I have seen tons of times where standards are very disappointing. Even USB-C, which I love, has tons of annoyances if you look at it on it's own. Most wireless protocols have something in them that kind of sucks. WiFi at one point didn't even have active TX power control. The value of best practices isn't that they're actually "best", just that they're standard. We are slowly getting to a point where there are some standards that are crap, like Container Mania that has taken over everything, and putting a blockchain in stuff just because, or the inexplicable use of real databases where SQLite would be entirely appropriate. But a lot of pretty good stuff gets done just by sticking with best practices. Like, no, it's not ideal to have an 80MB app to flash SD cards. But it works. It's on all common platforms. And it's fairly safe. And it has notifications, important on a tight schedule. I can recommend it to anyone knowing they probably won't wipe their disk. That 80MB Electron app may be ridiculous, but it makes flashing solved. Or Git. There are other version control systems. Maybe better ones. But currently, almost all programmers need to know the basics of Git anyway, and for simple projects there are GUI tools. Anything else has to be weighed against the fact that git is already everywhere and nobody has to learn a second system, and the fact that Github and GitLab exist. Or my favorite, JS. As a language, it's a bit crappy, at least compared to Python. But it's in the browser. TypeScript makes it safer. It's got great performance with a JIT and standardized access to lots of stuff, and we have reactive HTML and NPM project management. And it doesn't seem to be going anywhere. All the extra stuff makes the dev experience sometimes pretty amazing despite the language itself being mediocre.