Reinvent the Wheel Often
programmer.97things.oreilly.com
programmer.97things.oreilly.com
I'm currently writing a little javascript library to do Linear Algebra operations, even though one already exists. It's helping me to gain a better understanding of what I learned in college, and it's fun.
Fast, Cheap, High Quality
I floundered for a bit trying to figure out the next language I wanted to learn because I wanted it to be the most RIGHT language for my next experiments. I bounced from Lisp, to Python, to Java, to .NET framework, and finally gave up (no, had not even glanced at Ruby, sorry).
I grabbed a copy of web2py to have at least a framework to build my next group of apps on. I am backtracking a little at a time and learning the rudimentaries of Python, but had I not just bit the bullet, I'd probably still be wondering in a digital daze.
Once I get a few projects done, I may THEN be able to focus on reinventing the web2py wheel, but for now, I am settling for some accomplishments under my belt just to get a sense of some progress.
Am I alone in this? Or is this commonplace for a certain subgroup?
As a tinkerer, this tends to come naturally to me.
In the commercial world I can see why reinventing the wheel is a bad thing. Minimum viable product is a word that gets tossed around a lot. In order to meet that standard, one must expend the least amount of effort getting from A to B. Might as well ride on the shoulders of giants.
Sometimes it's not necessary to write the whole thing over again. You can speed through something by picking an open source project and commit a few easy patches. Then dig in deeper and look at hard ones. There's something to learn by reading what others have done as well. :)