Yesterday I was having a discussion (with people I like and respect, fwiw) about learning code and social barriers to entry, and my general preference for lowering those barriers, and my aversion to the current pipeline which pretty much expects that you taught yourself how to code when you were ten. And the objection came up (as it often does on this topic) that coders need to be able to self-teach to amount to anything.
I’m going to plant my flag right here and say that this is a false dichotomy.
First, let’s just get out of the way that, yes, I believe that coders need to be able to self-teach. Self-teaching is pretty much the entire experience of debugging a program, and often of writing them: learning new things about how code in general or your code in particular works and what tools are available to you to deal with the gaps between what you want and what you have. And yes, you need to be able to do that without excessive handholding.
But a coder is not the same as an introductory student of code.
People I know generally value lifelong learning. They also generally do not advocate give five-year-olds a library card and leaving them in the public library for the next 13 years, and not just because they don’t want to babysit. Sending people to school, giving them formal instruction, does not mean that they’ll never get to count as lifelong learners.
Or, to be more concrete: many people benefited from instruction in learning how to read. We do not say that these people are not literate. We do not say that they don’t read independently, whether for pleasure or learning. We do not say that the only people able to amount to anything as readers are the ones who taught themselves when they were three. We do not say these things because they are demonstrably false. Indeed, we recognize that even people who require very substantial pedagogical intervention in order to learn how to read — people with dyslexia or other learning disabilities, say — can and do become independent readers, who read for knowledge and pleasure, who read without the presence or intervention of teachers, and who improve their reading skills in a variety of ways throughout their lives.
I choose reading advisedly. Because, of course, the situation is different in math. We nominally provide math instruction to kids — but in all too many cases, the teachers are deficient in math skills, teaching skills, or both. The result is that — unless you luck out with some great teachers — the math pipeline in the US assumes you can teach yourself. Those who can are termed “good at math” and those who can’t, aren’t, even though we simply do not make analogous claims about reading, and even though in other countries which handle math instruction differently the proportion of kids who are “good at math” is very much higher. We recognize, in fact, that a pipeline which results in rampant innumeracy and math-phobia is a broken pipeline.
For code, we have a broken pipeline, too. We have a system that says, in effect, that the kids who taught themselves to read when they were three are the only ones who are really capable of reading. But we don’t believe that of literacy. Why, then, believe it of code?