When I was 13 years old, I learned some basic system administration and programming on the web. My knowledge allowed me to compile the Linux kernel with Con Kolivas's BFS patch applied, and I also found and fixed a bug in GNU coreutils. On the other hand, I was trying and failing to understand many basic concepts. At this time, I already wasted years of my life on bad programming books unsuitable for beginners before picking up some good ones, otherwise I should have learned basic programming at an earlier age. I was also trying to derive the Y combinator using the rules of α-conversion and β-reduction, but I never got the correct result. I was blowing up diodes with microcontrollers by failing to understand what a nonlinear IV curve is, and totally confused by the concept of frequency domain. I was only able to grasp these basic concepts in the next three to five years. By "understanding", I only mean to know "what they are", "what do they do", not "how to do calculation and math", so it was mostly just a matter of knowing some definitions, and there was nothing really to prevent me from understanding them when I was 13, but I still couldn't grasp them until years later.
What was the problem? No one in my entire family had an engineering background and no teacher in my school was able me anything about technology, computing or otherwise. My only guidance was the web, chiefly Google, Wikipedia, and bookstores. While they were successful at teaching me system administration or using free and open source software, but not very efficient at many other things - an easy concept which may take only 30 minutes of explanation can be intractable when you don't know where to look and what to read.
In hindsight, if there was anyone who was able to teach me things relevant to my interests, my life would take the same path, but at a much faster path and today I would probably working on something more interesting in computing. Alternatively, without broadband Internet access, I won't be here to post this comment today.
If there's one thing poor kids have, it's free time. I think it's actually relatively easy for a smart poor kid in the US to learn ~whatever they want; that was certainly my experience, and I think the structures that were available to me are available to basically any American kid today.
One thing to keep in mind is that poverty is strongly anticorrelated with intelligence - this is not PC, but the evidence is overwhelmingly clear - so it's easy to see that there aren't many poor kids doing stuff like this and (mistakenly) conclude that it's because they don't have the extrinsic opportunity, rather than that they lack the intrinsic means.
- A quiet space that the child can use to learn - The foundation of self-efficacy and value of learning one receives from educated role-models - Access to the internet and the materials to engage with the coursework
You'd be lucky to find a "poor kid" who has 30 minutes of safe time, fed and quiet.
Unless you are meaning "lower middle class" as poor kid - i.e simple household with no extreme resources. In that case I do agree with you that you can do a lot with a little if you are that lucky.
Parents supporting a child hobby because they understand its potential value cant be overstated. Being poor just doesnt give any latent interest a chance to develop. That's the key. NGOs try to bridge this gap but without the kids parents/siblings/community understanding the value of these things, its an upward slippery slope with far more risk.