STEM or Computer Science? Who Cares. Teach Your Kids to Code
There’s an argument going on among techies – is it STEM education that is needed or just more computer science? Is it computer science or just programming/coding that is needed?
Code.org has a great post about this. They make several key points, but the most telling is the first one: The job gap and growth opportunity is in Computer Science, not STEM:
See the chart below. Computer science is the only STEM field where there are more jobs than students. The data below comes from the U.S. government, comparing jobs data and projections from the Bureau of Labor Statistics to student data from the National Science Foundation. (In the chart, computer science is categorized alongside mathematics, but if you separated them, the distinction would be even greater in favor of CS).
The core of the argument is we should direct the students to where the jobs are. Probably true. But, the STEM advocates are really advocating early interest in science, not just college level. That early baseline can help no matter what the end up doing long term. The scientific method is a way of organizing thought (and is analogous to well-formed code). There’s a difference between “education and interest” and “career”. Code.org shows that off brilliantly.
But another debate has been going on – that of whether everyone really should learn to code. Code.org and several other organizations are, effectively, pushing that. Should they? Should we treat coding as a form of literacy like math and English? or is it a form of engineering like “mechanical engineering” which only specialists should learn. Or, is it like plumbing, which honestly most people have worse than rudimentary understanding of.
I subscribe to the school of thought that coding is literacy. It is a language skill. Math is a language skill. English, Spanish, Mandarin – these are also language skills. Language skills are important because they are not only a way to express yourself, they also constrain and enable that expression, which impacts how you think, not just how you communicate. Our children are enrolled at a school that is immersion Spanish. They’re fluent. But they’re also conversationally fluent in Mandarin. It affects the way they think and see the world, and who they see as people of interest. I’m encouraging them to see Math the same way. Before they graduate from highschool, I’m going to make sure they learn how to code. The logic of coding – and the creativity – is much like the logic and creativity required of certain poetic forms – the constraints are irritating, but also foster creativity to produce a poem that takes advantage of the constraints rather than being limited.
Finally, I’d suggest another “literacy” I’d like my children to learn. Design. Specifically, I think product design, but more generally, design as a way of communicating. If the point of art is to illicit individually valid responses, without being able to determine the precise meaning of the artist, the point of design is to communicate specific ideas and meanings to the audience, through visual form. There’s a language and literacy in that concept that I’ve experienced working with our user experience team and I only wish I’d arrived at it sooner in my life.
So, teach your kids to code. You’re teaching them to think.