This morning my feed is full of discussion of the coding for all movement. Anya Kamenetz asks how long “I’m not a coder” will be a socially acceptable thing to say. Some, including The Atlantic’s Melinda Anderson are more skeptical. I’m not sure this is the right question, any more than teaching everyone to repair cars is necessary. A more important issue is fundamental understanding of how systems work.
Let’s go back to cars. I don’t know enough to repair my own car. I do on a basic level understand how cars work. Refined petroleum is ignited by a spark from a battery in a closed cylinder, the resulting explosion moves a piston while creating exhaust gases, the moving pistons turn a drive shaft. This commonly shared understanding of how cars work and that even providing a modest 12V requires a fairly large battery means that it is commonly understood that creating an inexpensive zero emission vehicle is a hard problem.
Contrast this with the collective understanding of digital encryption, given FBI v Apple and the preceding discussions of encryption backdoors. I have yet to find an expert on how encryption works who believes that a mechanism which would allow law enforcement to bypass encryption without allowing hostile governments and criminal actors to do the same is technically possible. See this summary for one example. However, those with less technical knowledge don’t seem to share this belief.
Perhaps the key is not being able to code per se, but having enough fundamental knowledge of how computers work in order to have a shared understanding of what, for a computer, is possible or impossible, easy or difficult. The broader question when designing education is, “Which systems are important enough that we need a shared understanding of their fundamental principles in order for society to function well?”