| Edited on
As developers we often hear the term “don’t reinvent the wheel” and for the most part we are ok with it, but what if I want to reinvent the wheel? The majority of programming languages that we use today, already handle many things so we don’t need to, and if the language itself does not come with something that you need, someone who came across the same problem, probably found a solution and shared it somewhere on the internet, but what if after using the found solution I want to understand more deeply how it works and tailor it to my needs.
There’s where the artisan in you comes into play. I’m not going to assume what type of developer you are, nor I’m going to say what type of developer is better, no, because there is no correct answer, what I am going to say is that to understand something deeply, you have to craft it yourself, and I agree with many people saying there is no need to do that, because it’s true most of the time, but the outcome that you get from building something that depends on other people’s code as little as possible for me is worth the effort.
Building tools for you and your needs is a key learning experience, it gives you control over how things should work and behave, imagine if someone told Linus Torvalds “Hey we already have UNIX and it works well” and he replied “You’re right, I’ll stick with that”. The world wouldn’t be the same. Recently I was working on a new proejct and at first the tool picks were clear, but as time passed I found myself going back and forth with the same question, this package works but is it enough? Most of the times the answer was yes, but sometimes it was the opposite. From there things started to be different, I was working on my projects and in parallel I was also making my own tools, tools that I understood deeply and that can easily be modified or reused in other projects.
As a side note I understand that many developers don’t have the time or the willingness to put in the effort when something that works is already available to them, I’ve done that countless times too, I just wanted to share the satisfaction and joy that you get by doing things from scratch.
| Edited on
As developers we often hear the term “don’t reinvent the wheel” and for the most part we are ok with it, but what if I want to reinvent the wheel? The majority of programming languages that we use today, already handle many things so we don’t need to, and if the language itself does not come with something that you need, someone who came across the same problem, probably found a solution and shared it somewhere on the internet, but what if after using the found solution I want to understand more deeply how it works and tailor it to my needs.
There’s where the artisan in you comes into play. I’m not going to assume what type of developer you are, nor I’m going to say what type of developer is better, no, because there is no correct answer, what I am going to say is that to understand something deeply, you have to craft it yourself, and I agree with many people saying there is no need to do that, because it’s true most of the time, but the outcome that you get from building something that depends on other people’s code as little as possible for me is worth the effort.
Building tools for you and your needs is a key learning experience, it gives you control over how things should work and behave, imagine if someone told Linus Torvalds “Hey we already have UNIX and it works well” and he replied “You’re right, I’ll stick with that”. The world wouldn’t be the same. Recently I was working on a new proejct and at first the tool picks were clear, but as time passed I found myself going back and forth with the same question, this package works but is it enough? Most of the times the answer was yes, but sometimes it was the opposite. From there things started to be different, I was working on my projects and in parallel I was also making my own tools, tools that I understood deeply and that can easily be modified or reused in other projects.
As a side note I understand that many developers don’t have the time or the willingness to put in the effort when something that works is already available to them, I’ve done that countless times too, I just wanted to share the satisfaction and joy that you get by doing things from scratch.