Why kids should NOT learn to code …
I am sure many people have said this before, but I just have to get it out. I hate “coding” and I don’t think kids need to learn to code. Full disclosure — I am a K-12 programming teacher, have been a professional programmer and love programming.
Let’s go multidisciplinary on this. A world class violin maker is at an exhibition of her work, someone says to her, “Did you always want to be a sawer?” Do you think Maya Angelou excelled in comma class? Was Eames (the chair guy) a great hammerist? All of these people are not defined by their tool, they are defined and admired for their design. Designers are tool users. Programmers are designers, problem solvers, self-expressionists, artisans. Coders were people who worked on the Enigma machine (some were also programmers).
So programmers design solutions often using computer code AND that can be a good paying job so all students in the world must learn how to programming. Thus schools are now making changes so all kids code. Summer camps and afterschool programs are jumping on board for parents who want to make sure their kids know how to code so they can get a job coding at Google, Facebook or the next dotcom that will emerge. The Hour of Code is launched and in its intro presentation sells the idea that working in a place where coding happens is cool and pays well so let’s all get there.
Teaching coding/programming because we need more programmers is dumb and not why we have schools (at least k-12 or maybe even k-9ish). We don’t teach history because we need more historians and we don’t teach primary care medicine in middle school even though we really need more primary care physicians. We don’t teach teaching even though the United States needs more teachers!
Turn the clock back to the mid 1990’s. I was a programmer (somewhat self taught though I had learned other languages in school) and former English teacher, who missed the classroom. I picked up Papert’s The Children’s Machine and it changes my perspective on programming in schools (and life). Here we are almost twenty five years later and the only way to get programming into schools is as a job training tool. Yuck!
Luckily, Papert infected other people besides me. Before any of the Hours of Code or programmer training programs for toddlers, teachers have been using Microworlds, then Squeak, then Scratch and Python and other assorted languages with kids to make games, animations, stories, simulations, or thoughts/missions for robots. The Mindstorms Robotic System (named for another moving Papert book), Raspberry Pis, Arduinos, LittleBits and other assorted devices are in lots of classrooms getting some use across disciplines. Just a few days ago, the BBC released the Microbit to every grade seven kid in the UK. It is a programmable little device that kids can create solutions and creations for lots of different situations. The accompanying website has lots of guidance for student to use the Microbit to solve problems in their own lives (and entertain themselves and beautify their lives).
So if you are not a programming teacher, should you teach coding? NO! Many teachers will tell you, “we just have no room to teach the kids coding in my class.” So don’t! Don’t teach programming either, unless you have a use for it. Think of a box of coloured pencils. Do you have room for a box of coloured pencils in your class? Of course, the kids could use those to express ideas, understandings, thoughts and dreams that they might not be able as well with other tools (clay, 3D printers, math, language). So are there ideas, understandings, thoughts and dreams that kids could best say through programming in your class?
Before you say no, think if you really know the answer to this question. People in our society use programming to solve all sort of problems, relate many kinds of experiences, entertain, educate and enlighten us. Kids are probably using programming (with terrible tools) in your class already. Think of a Powerpoint — kids put an order to the content, create a time sequence and then execute that in a repeatable way. Surely, for the CompSci people, this a little bit of a stretch, but metaphorically it is spot on. Think of what kids could say if they were more programming literate and had great tools (not just computers, but robots, microbits, and the internet of things)!
So here we get to the real problem. Most teachers and students are not very programming literate and generally not aware of good programming tools. There are many teachers and students who are programming literate but it is not nearly enough. Imagine we said we have many teachers who can write, draw, make an equation, or graph set of data? Would you say we need a special class in each of these or should all teachers take this on in the context of their subject? Is it ridiculous for a science teacher to teach a student how to write a hypothesis statement in clear and precise language or for an English teacher to teach the mathematical sequence of iambic pentameter?
Teachers, administrators, afterschool/summer programs, and parents, please don’t teach your kids to code! Teach them how to solve problems, express themselves, entertain themselves and communicate better (or just differently) using code. I am confident you will find programming a fine addition to your toolbox and the toolboxes of your students or children. We harness the power of programming to change our world in so many ways, why are we barely doing this in education? Build programming literacy in yourselves and your students/children so you and they can find new ways to exploit this powerful toolset! If you need a start, find a tool such as Scratch, and find out how someone uses it to express something in your subject area.