Doing The Hard Stuff Makes You a Great Programmer
So many people learn to code, but end up stuck inside their comfort zone, never doing something new and challenging. If you want to be not just a good programmer, but a great one, you have to get out of your comfort zone.
You don't have to jump head first into kernel development or anything like that. Start with something slightly more complex than you know now, and over time progressively overload. You will find that after a couple years of doing this, you can do so many complex things. Say you are currently a game developer using a game engine like Unity. You could start with making a game without an engine, and just a framework. Then, you could make your own framework, and eventually make your own game engine. Now, this isn't every step, but it's an example to give you an idea of what I mean. By doing this, you'll find you can eventually learn to do anything you can think of, given an appropriate amount of time.
So, get out there and do something complicated (to you).