Even more, usually the biggest mistakes are made by not "using what is standard", any type of programming from first principles is usually a huge mistake. People generally arent smart enough to build something from scratch in a way that beats whats already been tried and tested
When I was just getting started as a programmer, everyone was using Apache. Fortunately people who do stuff don't spend their time listening to the naysayers on hn.
To make an informed choice whether to apply a first principle solution you have to understand said first principles. Otherwise it's just an excuse for incompetence.
And to internalize the principles you have to at least use them in a didactic setting.
I was talking to our junior developer one day. He was working on a Delphi project of some kind.
I asked him how it was going, and he said it was going well. But that he was confused about some things.
I asked them what they were.
He said, paraphrasing, "What's the difference between disk and RAM?".
On the one hand, it's great that someone without such fundamental understanding was able to accomplish something. On the other hand, it was a bit disturbing.
I've run in to several folks who do not understand first principles, and some times are combative when I explain how I "know" something "can't work" or "didn't happen". I'm sure we've all heard those things. "What about <absurd thing>?" "No. Just...sigh...no."
Tho the difference between disk and RAM is collapsing. It used to be (90s) bog standard advice to never write to disk in the call path of a customer request. Now, there’s hardly anything that isn’t writing to disk all the time; but not spinning platters, just SSD.
So maybe their confusion is less bad than it seems at first? Maybe?
And a similar gap between cache and RAM, but a software engineer unclear about the finicky business of cache optimization would not seem as dumb as the person in the original post.