On the other hand, I don’t feel like you need to know how a compiler work, let alone the hardware architecture it targets, before you can go through your first hello world program or even build some useful software on top of frameworks/library treated at blackboxes. So "I have no idea what I’m doing" in this perspective is probably as old as CS/informatics.
Also, every single abstract is leaky, so often it's a difference between "I don't need to know how X works now", and "I can never find out how X works because it's simply not knowable".
Getting to a point where realistically you're not able to know something deeply but then still use it is pretty frightening.
When I say deeply I don't necessarily mean that for every device you need to know about all of its atoms, but to have a pretty good framework for how the thing works deterministically, and how it can fail.
This now applies to most things in modern industrial society. We operate our daily lives at a crazy high level of abstraction. I think for a lot of us on HN, we "know too much about what we don't know", and that is ... overwhelming.
Funny enough, most people are actually able to operate at these higher levels of abstraction without worrying too much, because they don't know enough about what they don't know.
That was my point, exactly.
Think about animation, how a program can generate a sequence of a bouncing ball between two key frames. Think about what defines a video. The frames right? From there I can try to imagine.
This is the key. I have enough curiosity to want learn the stuff from the ground up, just as I did with other technologies. But man do I have the stamina today? Not so sure!!!
It's comparatively easy to understand and it does cover everything from basic networks to LLMs and Diffusion models.
Opt for a sane option instead to get started, likely one of these: (Astro, SvelteKit or Remix).
Here is an inspirational story for you: https://news.ycombinator.com/item?id=39288139