My friend recently posted a tweet from a respected speechwriter that suggested we should “stop telling kids to learn to code.” Ignoring their premise, the tweet advised we should instead “teach kids to think, to create, to use tech well, to think critically about ethics, values and institutions.” As someone who began coding as a preteen, this issue hits close to home, and I want to share why I disagree.
- While I do agree it’s likely a waste of time to teach a child any one language for the purposes of earning a living in 10+ years, I’ll assert it’s only a waste of time because that language will likely be out of use, or measurably different than it is today. It is true that I no longer use QBASIC, 24 years later as a CTO. However, growing up with the various web technologies as they themselves were maturing, afforded me great insight and understanding into other languages and technology in general. Further, becoming aware of the communities around these technologies offer insight into the ways distributed communities can thrive, as well as the need for inclusion and representation. Not to mention, I still use switch/case statements, for-loops, if-else blocks and other fundamentals I mastered as a kid.
- Long before children need income, there are lots of useful applications for coding. With resources and motivation, a child in primary school can make use of coding skills. (Yes, technically, I do mean in the classroom. When other children made game boards out of pizza boxes, I turned in a set of floppy disks.) But really I mean that as we progress in a device-driven world, teenagers are quite capable of creating extensions, plugins, game mods, apps, and other customizations to the tools they use every day. Teaching them to make the world around them their very own, and showing them how to wield the devices in their lives to serve their needs is possibly the greatest gift you can give a child. It’s akin to giving them the gift of individual identity.
- Beyond personalization, coding offers children insight into real life problem solving. Coding helps children practice critically analyzing problems, breaking them down into parts, understanding how those parts relate and interact, and predicting how changes to the smaller parts will impact the problem. The syntax and specifics of any one language will bear minimum value with time. However, a for-loop is still a for-loop, even in React, where we rarely use them anymore. And if-then-else operators work exactly the same when prioritizing chores and homework as they do in every mainstream programming language. Instructing computers to solve problems takes all of the same critical thinking skills as drawing solutions on pen and paper, or solving them any other way.
- Finally, I believe that done well, teaching children to code is teaching them “to think, to create, to appreciate ethics and values and institutions.” Coding can provide hands-on practice with these concepts, right now – even without a nuanced understanding of business and the ethics-driven relationship between a business, its customers, and its employees. An application developer needs to learn to tell stories, present problems, and guide users through interactive workflows, all while working within their own limitations, and their technology’s limitations. These are creative exercises, guided by the ethics of honest user interactions, and the values of trustworthy software providers.
I will concede that coding is not a skill I think we should teach children for the purpose of earning income in the future. It’s something we should teach children so they can start improving the world around them right now. Children should learn to code so they can better understand the choices they make, the technology they use, and the implications of those choices and that technology on themselves and the people around them. Coding teaches them to understand why that selfie they’re thinking of sending on Snapchat, might never actually disappear. It teaches them to understand why the words we post on Facebook matter, and we should take ourselves and our personal brands seriously. And it teaches them to appreciate the work and effort that goes into creating the digital world we all take for granted. Besides, I happen to know that some children really enjoy it.