I've never heard of anyone dismissing algorithms as "too easy", the opposite in-fact - "too hard" is more likely.

I honestly think you're over-complicating programming. You don't need to do a degree to be a successful programmer.

My advice, just start now, build things, and be very disciplined.

Think of what you want to build (a game, a website, a browser extension, a script, a utility ...) and just start building it based on your existing knowledge. If the end-goal is too far from your current abilities, downgrade the end task. You do the best learning at the edge of your current understanding.

Eg: Maybe you want to build a 3D live action RPG. That may be too hard for a beginner programmer (3D, Math, Game Logic, Performance) so you can downgrade to a 2D turn based game (Simpler than 3D, no performance requirements, simple logic). That may be too hard still, so downgrade to a Text based game (read text inputs, write text out).

Break the end goal down into something achievable, then break the problem down into smaller problems, and address those. The more you build, the more you learn (what not to do, what to do) and the greater the problems you can address.

Most of all, be disciplined. Successful programmers work extremely hard, thats it. Yes you should start with fundamentals, but there are so many, and you can learn them along the way.

John Carmack didn't write perfect code from day 1, or month 1, or year 1. We can see this in the game engines he created that powered id's games - Wolfenstein was pseudo-2.5D and limited, DOOM was pseudo-3D and a little less limited, Quake was 3D with less limitations still. Extreme hard work + iterating + study + long hours made John Carmack a household name.

10 years is a long time to struggle, it sounds like maybe you're waiting for a perfect structured learning experience and perfect explanations and perfect problems. If so, you have to get past that and just start building imperfectly.

What can you build, what have you built?

Watching YouTube videos, listening to Podcasts, reading articles/blogs on programming, and using LLM's will not make you a good programmer. They are all time wasting with the thin veneer of learning. Only sitting in front of a computer and writing your own code, realising areas of improvement, and doing better next time will make you a better programmer.

----

I have been programming for the last 2 years full time. I work full time programming (front-end webdev), but that is not foundational programming knowledge, so I spend many hours in my free time learning languages like C, building data structures from scratch, and making projects to learn.

I also pick up as many free university papers as I can to learn, especially when I identify a gap in my knowledge (all the time).

But, I can build browser extensions, website frontends, website backends, automation scripts, CLI programs, system level programs, manipulate/create databases, reverse engineer websites and basic exe's, and I'm starting 2.5D game programming in C now. I can program relatively proficiently in Python, JavaScript, TypeScript, and C, and learning C# + OOP this year.

I spend almost all my spare time programming though, its a sacrifice. But its what I want.