Reinvent the wheel

“Why reinvent the wheel?” is a popular view in Computer Science. It is seen as a rhetorical question, but I’m here to propose an answer.

Why reinvent the wheel?

To fully understand the inner workings of the wheel. So you could build your own wheel if there wasn’t a wheel to hand. Also, I’m sure a lot of other skills could be learned from building a wheel which could be applied to other non-wheel-related things. Who knows? maybe you could make a better wheel, you’ll never know until you try.

I don’t personally like using things I don’t understand, I like building things from scratch at least once, and I believe the knowledge I gain from building the wheel helps me use a prebuilt wheel more effectively.

What’s your opinion on this?