4 ms·
In my experience there are two types of devs who reinvent the wheel. Those who think they can do better and those who can do better, haha
by k__ 6y ago
In my experience there are two types of devs who reinvent the wheel.
Those who think they can do better and those who can do better, haha
- strgcmc 6y agoI know this is in jest, but honestly there are two kinds of wheels: round things that everyone uses to roll around with in common/universal ways, and specific configurations of wheels like this person mentioned for microwave routing. 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).
- k__ 6y agoIf you are able to define that you indeed need a new kind of wheel, it may not be a reinvention :D Most people also don't even know that the wheel exist and don't think that they reinventing it.
- ChrisMarshallNY 6y agoIn my case, as in most, it depends. 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.
- TheRealPomax 6y agoYou missed the third type: those who don't know if they can do better, but are still early enough in their career to want to do everything themselves because it's exciting and they don't yet know what is worth doing yourself, and what you should trust history to have already done for you.
- closeparen 6y agoAlso those who don’t know that “wheel” is a major category with many open source options, and dismiss them after a cursory look when you point this out.
- ratww 6y agoYep. Those will become the great programmers of the future. 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.
- ensiferum 6y agoYep. It unfortunately takes a lot of writing code to understand that you should not write any code and to become good at not writing code.
- TheRealPomax 6y agoThere's nothing unfortunate about that. You're not going to be very good software developer unless you spent a number of years biting off way more than you can chew in the assumption you could succeed, and failing a lot along the way, discovering when the solution to "why is this not working" is "I should find someone else's code to do this for me". Computer science is a science. Software development is a craft. And like any craft, there's no substitute for experience.