Many more readers fuel the thread:
“The obvious question is: Code what? And the fact that it apparently isn’t being asked suggests that those pushing this are massively ignorant of the IT field they are trying to prepare their kids for.” This reader’s argument is awfully reductive. When I think of introducing “coding” to public education, it’s not the process of learning a programming language; it’s the process of learning computational thinking. There are questions that can be answered through computation. How many homework assignments can I skip without sacrificing my A? How much money will my husband and I have to save before we are ready to have a child? Teaching the methods of computational thinking is certainly worthwhile.
Being concerned that programming languages are different and new ones are being created is akin to cautioning a child from learning the flute because there are so many different instruments. It’s not the fluting that’s important; it’s the music.
I suspect that you’re going to get a lot of feedback about the reader who stated this:
In addition, there are new computer languages appearing every year. Some of them will catch on; others never will. And any language that is currently in use is subject to massive obsolescence as new ones come along – quite possibly before the kids are even out of school. So how do you decide which one to teach the kids? Until someone can answer that question sensibly, any argument for teaching coding is built on sand.
My mouth gaped open when I read this, because this statement is just quite simply completely backwards. I have a computer science degree and have been developing software for a dozen years and of course there are always new languages to learn, but the thing is, languages are tools. What you are really learning when you learn how to code is the art of molding an inanimate machine to do what you want. You have a computer that speaks only in 0s and 1s, and you need to get it to do extraordinarily complex tasks. Put the language aside; doing this requires a very different way of thinking than what a lot of people are used to.
To learn this art, you first need a tool – a programming language. Yes, you have to pick one, and I’m sure that there are better or worse choices for a first language, but in the scheme of things, which language you pick is far less important then getting going with the concepts that are involved in programming. Once you learn one of those tools and you start learning how to think like a computer and how to compose a program to instruct the computer, learning another language is like learning another tool, a tool that is still used to accomplish the same task of instructing an inanimate machine.
That doesn’t mean that learning another programming language is trivial (some languages are more alike than others, so it really depends on which ones you know and which ones you are trying to learn), but knowing any one language and having some experience using it is a massive step towards learning other languages in the future.
I’m sure your mailbox is overflowing with experts on the topic of teaching kids to code; here’s one more. Yes, kids should absolutely get some instruction in coding, but it should be around 8th grade, not college, and it will not lead to your kid coding for a living.
What you have to understand is that “coding” is a very vague term, like “math”. The hard stuff (assembly code, drivers, OSes, low-level C++, etc) is incredibly difficult, and it really doesn’t matter if you teach it in high schools because about 99% of the population simply can’t do it well, no matter how much instruction they get. However, that should not stop schools from teaching kids the easy stuff, like simple web design and scripting, which are no more difficult than algebra. They won’t get your kid a sweet job at Google, but the odds that she will go through life without ever having a need to tweak some code in a web page or manipulate the data in a textfile is vanishingly small.
Today’s teens should learn basic coding for the same reason our grandparents learned to balance a checkbook – it’s a useful skill that will help them in almost any profession. However, if your kid is destined to be a professional programmer, they’re very likely going to learn the skills they need in their bedroom at 2 AM, not from a high school teacher.
For teaching kids, I recommend just letting them have fun and try to imitate what they see on their computers and phones. Classes make learning boring. That’s how it was for me. I wanted to create those applications myself. There’s tons of environments for kids to play with, but if I was asked for one, I would recommend the Squeak language, which comes with an interactive programmable, graphical environment.
I’m teaching faculty in computer science at a state university. We do outreach to help K12 schools in the region that want to offer CS courses. One of the hurdles we encounter is that in our state, computer science doesn’t count as a science toward meeting state standards in the same way that chemistry or physics do. Likewise, while there’s mathematical reasoning involved, it’s not a math topic. There are teachers who want to teach it and students who want to learn it, but in the age of No Child Left Untested, it’s hard to add coursework that doesn’t directly meet the various mandates they’re under. Yes, this is essentially a problem of politics and finding the will to make it happen, but deciding everyone should have some exposure to the subject is only the first step.
I happened to watch “Steve Jobs: The Lost Interview” on Netflix last night. He’s is at once an endlessly fascinating man and a huge penis. But germane to the Dish, this quote:
[Writing computer programs] had nothing to do with using them for anything practical. It had to do with using them to be a mirror of your thought process. To actually learn how to think … I think everybody this country should learn how to program a computer, should learn a computer language because it teaches you how to think. It’s like going to law school. I don’t think anybody should be a lawyer but I think going to law school would actually be useful because it teaches you to think in a certain way, in the same way computer programming … teaches you to think.
(It should be noted I copied this text from the video using the voice recognition on my iPhone. It should also be noted that the only error the VR program made was translating “I don’t think anybody should be a lawyer” as “I don’t think anybody should be white”.)