Collective Wisdom from the Experts 145
Most developers simply have never created these types of core software imple-
mentations themselves and therefore do not have an intimate knowledge of
how they work. The consequence is that all these kinds of software are viewed
as mysterious black boxes that just work. Understanding only the surface of
the water is not enough to reveal the hidden dangers beneath. Not knowing
the deeper things in software development will limit your ability to create
stellar work.
Reinventing the wheel and getting it wrong is more valuable than nailing it first
time. There are lessons learned from trial and error that have an emotional
component to them that reading a technical book alone just cannot deliver!
Learned facts and book smarts are crucial, but becoming a great programmer is
as much about acquiring experience as it is about collecting facts. Reinventing
the wheel is as important to a developer’s education and skill as weightlifting is
to a body builder.