Reinventing the wheel fosters curiosity, learning, and deeper understanding of existing tools and technologies, leading to innovation and problem-solving.
Podcast Snippets: Reinventing the Wheel
Intro Hook:
- Tired of hearing "don't reinvent the wheel"? What if that's the worst advice you could follow?
The Problem with "Don't Reinvent the Wheel":
- Discourages curiosity and exploration.
- We have much better wheels today than the originals. Reinvention is crucial for progress.
- Think of "wheel" as any tool, protocol, or technology.
Why Reinventing is Learning:
- Richard Feynman: "What I cannot create, I do not understand."
- Implement a toy version to really understand something. It doesn't matter if it's perfect.
- Demystifies complex concepts like protocols, cryptography, and web servers.
The Rabbit Hole Effect:
- Fundamental things (strings, paths) are often taken for granted. Implement them yourself!
- You'll learn:
- Infinite complexity in everyday things.
- Humbling to build something useful to others.
- Abstractions are human-made, not perfect. You can make different tradeoffs.
- Everything is a tradeoff: correctness, simplicity, scalability, performance. No solution is perfect for everyone.
- Level up as an engineer by finishing what you start.
Reasons TO Reinvent:
- Build a better wheel (for some definition of better).
- Learn how wheels are made.
- Teach others about wheels.
- Learn about the inventors of wheels.
- Be able to change or fix wheels when they break.
- Learn the tools needed to make wheels.
- Learn a tiny slice of a larger system.
- Help someone in need of a special wheel (wheelchair?).
- Maybe your "wheel" becomes a skateboard, a potter's wheel, or something completely different!
Reuse vs. Reinvent: The Balance
- Study existing work and reuse where appropriate.
- Don't reinvent out of ignorance, but don't be afraid to test your knowledge.
- Run small experiments and build prototypes.
- Solve your own problems, start small, keep it simple, iterate.
Key Takeaway:
- *Reinvent for insight. Reuse for impact.