I don't think the shortage of computer science educators in the US will get better until the economics get a lot better. sciencemag.org/news/2017/10/f…
My little brother's high school CS class is all online. The teacher doesn't know the material. I think asking kids to "self-teach" CS in the classroom is OK, but my understanding is that it's hard to be TAUGHT math during one period and then be teaching themselves CS in the next.
Yes, CS can be self-learned, but the biggest problem with the lack of CS educators IMO is that CS students don't have mentors/role-models who can encourage them to stay with CS.
I purposely used the term "self-learned" instead of "self-taught." "Self-taught" is a misnomer. It's used to describe anyone who didn't take CS classes in high school or college.
BUT most "self-taught" coders took online courses or watched a tutorial series with teachers who are often way more engaging than the in-person professionals.
Lastly, there's a false dichotomy between "self-taught" or "teacher-taught" because CS classroom curricula comprise a fraction of the knowledge one needs to complete a project. To that end, all programmers I've met are mostly "self-learned."