I agree, and I think you get at a key concept: literacy vs. mastery.
Relatively few people will become professional software developers, but everyone will live a life impacted by technology. Learning the basics of coding empowers you to live in the modern world. e.g. Your phone is no longer magic, it's just very impressive.
Even then, there's a wide spectrum of "professional coders." There are many expert data analysts who write scripts all day (in R or Python... perhaps Stata, SPSS, etc). They're not kernel hackers, but they know why vectorization is important, and it makes them better.
There are a million office workers who tweak VBA macros, and do it better because they took the time to learn why variable types are. They're not Microsoft-certified anythings, but code empowers them to be better.
So, I think there's a strong argument for code literacy as an educational objective. Just like math literacy or actual literacy, it's an empowering foundation of knowledge.
Relatively few people will become professional software developers, but everyone will live a life impacted by technology. Learning the basics of coding empowers you to live in the modern world. e.g. Your phone is no longer magic, it's just very impressive.
Even then, there's a wide spectrum of "professional coders." There are many expert data analysts who write scripts all day (in R or Python... perhaps Stata, SPSS, etc). They're not kernel hackers, but they know why vectorization is important, and it makes them better.
There are a million office workers who tweak VBA macros, and do it better because they took the time to learn why variable types are. They're not Microsoft-certified anythings, but code empowers them to be better.
So, I think there's a strong argument for code literacy as an educational objective. Just like math literacy or actual literacy, it's an empowering foundation of knowledge.