As a software engineer, there are things you want to learn, best practices you want to enforce with your team to maximize your productivity. And there are other things you never want to do.
One of these is reinventing the wheel.
When we speak about reinventing the age-old device, we mean creating something from scratch, that someone else has already worked on or optimized. It is better to give that other person money for his work and use your time and energy on something else.
Most engineers around the world follow this principle, as they focus their use of time and efforts on the specifics of their business. Doing otherwise is commercial suicide.
With this in mind, I want to make myself devil’s advocate for a second, and tell you why there might be some cases where it is beneficial to actually reinvent the wheel.
Outside of a professional setting, it is a great way to learn. It is the best subject for toy projects, as it provides you with a basis to compare to.
So there we go: I would like to take you along my ”reinventing the wheel” toy projects. The first few ideas I have are:
- A Markdown parser and renderer
- A text editor
- A syntax highlighter
- A privacy first, log based analytics solution
- A very simple CMS
My goal is to find out how to build these projects with as little input and research as possible, in order to learn as much as possible by trial and error.
If you want to learn how to build these tools with me, tag along and read on as we discover various software development techniques that will prove useful in your everyday tasks at work.
I will write this series of blog posts in English, as an exercise for me to become a better writer in the language. If some of you would like to see a French version, let me know. I’ll make sure to translate the posts in that case.
You can interact with me about this, or something else, on Twitter: I am @camilleterol.