I’d wonder what makes me a better programmer, what should I learn next.
It is simple concurrency. it isn’t easy to properly understand it in depth, but build a working knowledge. Pretty much you can’t escape it in modern programming. It is also something that I have seen got wrong so many times, even by professionals who should know better. It will cause intermittent bugs that are likely to be hard to debug if you don’t notice you haven’t got any concurrency protection in place.
That and design patterns, understand how the benefits of the way code is/has been written (such as decoupling). Again, so many professional programmers go through the motion of doing the same layers in their web API back end (for example) but when questioned on why they can’t actually break down and defend their choices, it’s just what they learnt and what they do. I actually have seen a tech lead ask a whole project (multiple Dev teams) what the benefits were of doing some way x and not way y - it sat there for a day with nobody able to give a valid reason. The answer was actually simple and the tech lead was to focused on solving their issue, they were suggesting to ruin the current decoupling to solve it when in fact there was a simple solution. Failure at all levels. So yeah don’t just learn them understand them, their advantages and their disadvantage, because everything in programming is a trade off, typically between complexity and maintainability.
Nail those two things and be able to demonstrate that and you are ahead of a good chunk of the job market.
Oh and finally, something I’ve said before. In case you can’t guess most (maybe not most but a significant percent) professional programmers, as with most jobs, are actually pretty poor and over paid for their skill level.