I have found this while trying to teach my kids how to write anything software related from scratch. They've done some code.org, but it becomes boring quickly. We tried to make tic-tac-toe in js/html/css since they can do they whole thing in the browser. It held their attention slightly longer, but still became boring. It's not something they want to do.

I totally agree with you on learning for a purpose, picking up knowledge is super easy imo when you're in pursuit of a goal bigger than picking up knowledge. You don't even realize all of the things you learn in order to achieve your goal. But you have to want a goal.

I also totally agree sometimes it's fun to just do dumb problems, I found these CAD modeling youtube videos where guys will race each other modeling some part off of a print, spent a week just screwing around with those because it's fun to flex sometimes.

On the other hand if I'm honest, all this noodling around as a teen didn't give me a super robust foundation at all. I had a kind of folk understanding, or rough mental model of the things but it made me like it as a hobby and identify with it, which pushed me to take up CS in college.

It gave me some head start that I knew Python and JS when learning C, but not super much. Other students, who were smart but didn't fiddle with computers as much, generally picked these things up along the way, 4-5 years college is plenty time to develop the skills if you got the talent.

Also my understanding of networks was super shallow based on just multi player gaming and learning router settings, and I only really built a proper mental model in college with OSI model, TCP/IP details, reading the Tanenbaum book, doing socket programming etc.

So these generic tech and computer skills are in my opinion more about giving people a sense of agency, which is still quite something. That you put together your own PC, that you download your own subtitle files for the movies and figure out how to adjust the sync to match your version of the movie etc. It just gives you a feeling that you can do things. If something is wrong, you can, and therefore want to fix it. It's a different attitude compared to just accepting everything as it is.