I have been learning Rust for a while and I decided to develop my own game engine as a learning project because I am curious about how a game engine works.
So, what I have done so far?
I built an ECS using SparseSet storage.
I added a tag system with bitmasks and obviously I am proud of this part.
Telling a programmer there's already a library to do X is like telling a songwriter there's already a song about love.
-- Pete Cordell
I'm currently working on a project time tracker, despite plenty of them existing already. I wanted to learn how to solve a specific concurrency issue without locking in the server application (I wanted to completely rely on the database to solve it).
I don't know if it applies to all programmers, I can only speak for myself -- but "it already exists" is only factored in when I need something, it never factors in when I'm in "learn and discover" mode.
We have to put up with a lot of redundancy in the software world, but the upside is that we have many programmers with a lot of useful knowledge/experience because of it.