Pet projects shouldn’t be optimal
Over the years I started noticing a pattern in my life. It goes somewhat like this:
- Find new hobby / skill / technology.
- Start working on it and notice progress.
- Become obsessed with it, read articles, watch videos, listen to podcasts, etc.
- Start worrying about the optimal way to get results or the best practices.
- It becomes a chore and I end up not working on it anymore.
I first noticed it with powerlifting.
I started going to the gym with my friends, having a good time and becoming really passionate about it.
After a couple of years I decided to join a club and start competing.
A year later I was working out for hours every day by myself, following strict and hard programs to add every pound I could to my maxs, and barely going out because I could feel my performance dropping if I skipped the diet.
In the end I left the club and powerlifting entirely. It took me more than a year to start truly enjoying it again.
However, it didn’t click in my head. I blamed the long sessions, or the strict diet, or the insufficient results I was getting.
And of course, a similar thing happened when I started my first rendering engine.
I had a bit of experience with OpenGL but I decided to go all in with C++ and Vulkan.
I got pretty far pretty quickly, but eventually the time and mental cost of dealing with such low level tools led me to give up.
The reasoning however was quite simple: When you are doing research, trying to develop new techniques, you don’t really care about performance. You care about relative performance compared to other techniques.
And I believe the same applies to hobby projects (as long as the point is not precisely to get the most optimised solution you can, obviously).
So forget about finding the perfect language, API or framework for your pet projects. Focus on choosing one that you enjoy working with, and start coding.