I suppose it depends on which wheel one plans to reinvent. It's a judgment call.
As a programmer, I've found myself seeing an app or framework and trying to recreate it on my own. Whether I succeed or fail doesn't really matter, but rather the knowledge from the experience is what I'm after.
In practice, I almost always try to use existing tools where I can rather than building them from scratch. That said, sometimes it makes sense to quickly hack the part that I need rather than include an entire vendor library or to attempt to extract the part that I need.