While I tagged this as JavaScript, it applies everywhere.
Don't believe the folks who state that you shouldn't design and code a system that already exists. Similarly, never be afraid to revisit existing code to upgrade it with all your newest tricks.
The TLDR is simple: everything is a learning experience.
Do take into account, however, the needs of your organization. I have the advantage of being able to crank out code like there's no tomorrow, so I always take a little time to refactor and reinvent.
Focusing on the reinvent. When you download a massive Swiss army knife, we all have a good example I am sure (Dev Express for this example), you know it will do alot, but also have many limitations. Say you need a smart excel-like table tool. You could use an external system with it's blessings and flaws, or you could steal the design and reimplement.
Half the work is done. You know the tool you are borrowing from, and you know your specific requirements. You know the things you like, need, don't need from the other tool. So you begin the process of coding off of those designs and requirements.
Along the way you will learn tons, re-enforce tons, and have an outcome that may be better or may not.
Here's always my biggest take-away from these mini-projects: through the process you will either learn why the original had the perceived flaws, or you will find out that you were able to master those flaws and have a product that has the feature-set and the implementation you need, without any bloat.
Or you could have just constructed the largest pile of pasta you've ever seen.
But the TLDR is still true! You learned stuff.
Top comments (0)