what I do and don’t believe about coders’ need to self-teach

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?

A thousand times yes. When I was reading your first paragraph, I thought, “That sounds like claims people make — perhaps appropriately — about PhD students. In what world is it sensible to expect new coders to achieve the same independence as someone who has been through, modally, *seventeen years* of school??”

Well, your analogy is a bit broken here – there are demonstrably a limited number of methods of learning to read – approximately 7 by my count, whereas there are an exponential number of ways to code something, or to *learn* to code something. Quite possibly the attitude about self-teaching being the only way to amount to anything indicates that true self-teaching in this arena is +quite difficult+. It requires introspection, and leaps of knowledge, distillation of that knowledge and then application of that distillation to each individual problem, language, style, or syntax.

Quite possibly the analogy you have should be stood on it’s head – the only people who really know how to read are those who’ve learned how to do it, then re-learned in another way, then re-learned in yet ANOTHER way, then distilled that knowledge to allow them to read anything, whenever they need to.