Those who think they can do better and those who can do better, haha
Those who think they can do better and those who can do better, haha
You probably don't want to reinvent the wheel that is SSL or UTF-8 or something ubiquitous like that, but there's actually not that much wrong with reinventing the way specific wheels are arranged and designed to work together in a domain-specific context like microwave routing (which I know nothing about). The act of reinventing it will probably teach you a lot about the domain itself, and depending on where you started in your journey, it can be quite fruitful (i.e. if you are a true beginner, then many of the lessons you learn will be things that are already common knowledge; if you are already a journeyman or expert, it's quite likely you might pick up some novel insights in the course of disassembling and reassembling the thing).
Most people also don't even know that the wheel exist and don't think that they reinventing it.
For example, they are absolutely correct about "reinventing" encryption algorithms...unless you are a TLA, and want to have something that no one else has (and have some good nerds on staff).
It may also be good for control freaks (like Yours Truly), that deal with fairly sensitive data, and who don't feel comfortable using a well-known framework with a big presence on mitre.org.
I'm really pretty good at designing frameworks and SDKs/APIs. I've been doing it for over thirty years (since before they were coined terms).
Chances are good, that I'll probably be able to scare something up.
I like how it's OK to write a new coding language, but "reinventing the wheel," to write a backend.
Honestly, I can’t think of a better way of spending ones early career than reinventing some kind of wheel.
We should stop pretending that one is able to become a good programmer just by spending time in a chair doing the same thing for years.
Is it a mistake to reinvent the wheel? 99% of the time, yes.
Are those mistakes an amazing learning tool? Definitely.
If you’re a developer just starting: go and write a web framework, game engine or operating system. That's probably the only way to become a software engineer, since nobody will teach you the lessons you'll learn by doing. You’ll future self will thank you.
Computer science is a science. Software development is a craft. And like any craft, there's no substitute for experience.
So true. It’s one of the best things about our career.
-Attributed to Nasrudin, but made popular by Rita Mae Brown and Will Rogers