I begun learning programming a few years ago, and it feels like I barely progressed. I know the basics and a bit of advanced python(I have learnt to use a few libraries), html and css plus a tiny bit of c++, but not much outside of those. I enjoy programming and solving problems using code, and it’s an enjoyable hobby of mine. But I feel like all I do is extremely basic and I want to advance but it feels overwhelming seeing the countless of things I could learn.
I wanna know what are ways I can actually apply the things I have learnt/will learn on somewhat worthwhile things, because the main problem right now is that I don’t really have anything to do with the things I’ve learnt other than silly projects that don’t really last more than a day and aren’t that complex. I also want to advance my knowledge as previously stated since I feel like I know too little for the amount of time I’ve been learning to program.
For context I’m still in school but not too far off from higher ed, and I have a decent amount of free time on most days(~2-4 hrs).
I think what you need is inspiration, there's so many things to build to improve your skills and broaden your knowledge. Not every project you work on needs to be novel and exciting, even basic things can provide ample complexity to learn new things.
For example, in c++ you can make a basic image viewer that takes the name of a file and displays it, using some library like SDL (or OpenGl/Vulkan(hard)). This would teach you a lot about file formats, dynamic memory allocation and managing it, graphics pipeline etc.