In middle school I was in the most advanced computer class offered. It involved lots and lots of typing practice and basically just doing office-work projects in random Mac programs. My biggest regret was that the promised "programming" lessons consisted of typing printed Java code from a piece of paper and into a text file. No explanation of what the symbols were, what Java was, nothing. I was pissed. I failed that module. I felt so misled that I flat out refused to do the assignments.
From then on I resolved to teach myself. I somehow convinced my mom to buy us a computer. Once we got dial-up, I struggled with VBA, Flash Actionscript, C++, Tcl, Python and on and on. None of it had a manageable learning curve for me.
One day, I discovered Game Maker. The day Mark Overmars introduced the C++/JS mash-up that is Game Maker Language changed my life. I learned how to plan projects, how to invoke spells of hyperfocus, how to read technical documentation and on and on. It taught me algebra concepts way before I knew what algebra even was. That was all possible because I could type some stuff into the editor, and within a few minutes, actually see sprites move around and respond to my input.
Damn. It's been 20 years. I feel like I should be a coding God now. It's funny because I don't expect myself to be Shakespeare just because I've been writing words my whole life... Anyways, my mind wanders.
Oh, tutors. I never had a tutor. If you want to make your kid a genius, get them a 1:1 tutor. That provides social modeling, mentorship, immediate feedback and personalized lessons. I would venture to say that tutors may still be valuable, even to adults...
Thats actually a good point, why do we have this assumption in tech?
In writing this comment, I think doing a short code review of what I produced in the last session might make sense. The more quickly I advance at some skill, the more quickly I can add/tweak my code review.
From my understanding and experience, that sort of reflection on each output of skillful work turbo charges improvement. I did it at a phone center job, where I kept a spreadsheet with a prediction of what service rating the customer would give me, and a short blurb of what I did well and what I could improve. That seriously blasted me to the top. This also worked when I was in a band. When rehearsing, we would play through our set in full while recording, then afterwards we would immediately run to the computer to listen back and discuss what to work on. Within weeks we were able to meet our goal of playing with our main influence, a band called Protomartyr.
In the US there's definitely a big effort to have CS/programming courses in high schools but the big problem is finding qualified teachers. Since teachers in the US tend to get paid much less than even low-end software developer jobs in the same city, most people with any CS skill tend to go into the software industry instead of teaching.
I would take a pay cut to work as a teacher, especially for the ~70 working days off, which is about triple what I have now. A 50% cut isn't feasible though.
Depending on what "as a kid" means and your age, did you not try to find such people on internet forums dedicated to (for example) C? I also wanted to learn C when I was a child and did so with those resources (as well as books, which were as impenetrable back then as you already indicated).