Everyone starts at the bottom. IMO the best way to learn is as a means-to-an-end. This is a story about my portfolio website which slowly happened over decades. Don't worry about how fast you're going.
- In order to apply to college I had to submit a portfolio, so I started making one in plain HTML / CSS / JS / images until I was done.
- I got tired of updating pages so I converted the website into a CMS, a Wordpress site with a custom theme.
- I wanted more bells-and-whistles on my portfolio. In order to make that happen I learned more JS and PHP.
- I couldn't find a plugin with the functionality I wanted. I learned how to program a custom Wordpress function from scratch.
- Eventually my site started to get slow, so I learned how to optimize the website.
- When that optimization wasn't enough, I learned about various kinds of web hosting (shared vs dedicated vs vps) and their performance impacts.
- My Wordpress site got hacked so I started to learn all I could about security (TLDR: don't use shared hosting. Set permissions appropriately).
- In order to attract customers to my own website I started to learn SEO.
- I got tired of paying for web hosting, so I learned how to host my own server.
- That lead to learning more about networking, routers, CDNs, VPNs, etc.
- Eventually I got tired of maintaining the server so I converted to a serverless cloud architecture.
- The move to a serverless architecture was a chance to abandon Wordpress and learn some other js app frameworks.
- The move to other JS frameworks meant I had to vastly improve my JS skills.
- After I got tired of working on websites I branched out to other software (mobile apps, wearables, voice-interaction, desktop apps using electron...)
Attending college helped develop my design skills. After college, somewhere around step 4 or 5, I started working professionally as a web developer. This was based on knowledge acquired during steps 1 through 4. Until that point web development had only been a hobby.