
Reinvent the Wheel Often - fogus
http://programmer.97things.oreilly.com/wiki/index.php/Reinvent_the_Wheel_Often
======
ff0066mote
They forgot to mention that reinventing the wheel is, often, simply enjoyable.

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_.

~~~
sesqu
Most importantly, it exposes assumptions. Yesterday there was the post about
hand-crafting beating the compiler where the compiler made assumptions that
weren't true. Every solution incorporates assumptions, which may prove false
or simply age poorly. When you re-invent the wheel, you get to re-examine
those assumptions.

------
skennedy
Re-inventing the wheel is great when you have the time, money, and information
support base. If not a personal project, please pick two and know it does not
include as much personal growth:

Fast, Cheap, High Quality

------
Dove
When it is critical to know exactly how your particular wheel works, it is
often necessary to at least partially re-invent it.

------
raintrees
Doesn't this lend itself to analysis paralysis?

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?

------
agentultra
Great advice.

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. :)

------
tjmaxal
learning for learning's sake is always good for personal growth, but I'm not
sure it is the best path for commercial growth.

~~~
ccollins
Personal growth of employees within an organization is absolutely crucial for
long term commercial success. A company that encourages personal &
professional growth will cultivate productive employees and attract top
talent, those who constantly seek growth and refuse to stagnate. If you can
create an environment that rewards this, I wager that you will make more
money.

