Should also include be under 25 and have lots of time to dedicate to it. I've always been interested in the idea of graphics programming and a few years ago I started teaching myself vulkan. Not sure quite how long I spent in total, 6 months of free evenings, maybe a bit less. I'm close to having a rendering framework. But it's one of those things where the further you get with it the more you realise how little you know. You feel like you're sort of happy with how things work and then you discover, no that's not the right architecture. I guess it's basically the mathematics of applied lighting. That's what your doing. The rest of it is the plumbing. Oops, why do my spotlights shine straight through the cube? Oh, I need to calculate shadows. Spend a couple of weeks working out how to get that into the render pipeline. But it is a lot of "fun" if you're into that sort of thing.
Sadly, Vulkan is really painful way of learning graphics programming. Doing almost anything requires large amounts of boilerplate. Almost everything you need to do, for example to make shadows, requires just 10x more code than the technique fundamentally requires.
For learning graphics programming, in my opinion, writing software renderers is much more enjoyable path. Code is less, the code you write touches fundamental and not boilerplate. Downside is that code will be slower as you will lose HW acceleration.