Why Coding Is Not the New Literacy
An anonymous reader writes: There has been a furious effort over the past few years to bring the teaching of programming into the core academic curricula. Enthusiasts have been quick to take up the motto: "Coding is the new literacy!" But long-time developer Chris Granger argues that this is not the case: "When we say that coding is the new literacy, we're arguing that wielding a pencil and paper is the old one. Coding, like writing, is a mechanical act. All we've done is upgrade the storage medium. ... Reading and writing gave us external and distributable storage. Coding gives us external and distributable computation. It allows us to offload the thinking we have to do in order to execute some process. To achieve this, it seems like all we need is to show people how to give the computer instructions, but that's teaching people how to put words on the page. We need the equivalent of composition, the skill that allows us to think about how things are computed."
He further suggests that if anything, the "new" literacy should be modeling — the ability to create a representation of a system that can be explored or used. "Defining a system or process requires breaking it down into pieces and defining those, which can then be broken down further. It is a process that helps acknowledge and remove ambiguity and it is the most important aspect of teaching people to model. In breaking parts down we can take something overwhelmingly complex and frame it in terms that we understand and actions we know how to do."
He further suggests that if anything, the "new" literacy should be modeling — the ability to create a representation of a system that can be explored or used. "Defining a system or process requires breaking it down into pieces and defining those, which can then be broken down further. It is a process that helps acknowledge and remove ambiguity and it is the most important aspect of teaching people to model. In breaking parts down we can take something overwhelmingly complex and frame it in terms that we understand and actions we know how to do."
It's been this way whenever a new technology became normalized in the public eye.
I had a chat with my late grandfather about this in the mid-90s. I told him about when I was a kid and there was a big push in making children "computer literate". So much so, in fact, that I took a class in 3rd grade or 4th grade in LOGO on a VIC-20.
My grandfather said that reminded him of when he was a boy in the 1930s. In his time people thought EVERYTHING would be mechanized and learning how machines work and how to fix them would be required to be literate in the future. So, he actually took classes in engine design (!) and maintenance in the mid-30s, and it wasn't a vocational school.
As we all know, the deep knowledge required to design a car or an oven similar machine is held by specialists and baked into the products we buy.
Similarly, the deep knowledge required to program a computer to do useful work SHOULD be baked into the products we buy.
Think of it this way: who needs to read the manual when they get a new car? You just figure it out because it is largely intuitive. A TON of non-intuitive thought went into making the car easy to use.
I think it is our responsibility (those of us here who are engineers) to work towards putting that level of ease of use to work. This is the real reason Apple is popular. Their stuff is easier to use than most other products and people are HUNGRY for that.
We don't need to teach every kid to program. We just need better programs.
Hmm. If you can't read, you are restricted to looking at pictures. If there is someone to read for you, then you can hear the parts of text they choose to read for you, otherwise you are pretty much restricted to children's picture books. A lot of what happens in the world is simply a mystery to you.
If you can't program, you are restricted to using existing features in the way they are implemented. If there is someone to help you, then they can write a piece of code for you to do whatever mundane task (be it VBA, shell script, a feature or a complete application), otherwise you are pretty much restricted to clicking at links, icons and menus. A lot of what happens in the computer is a mystery to you.
Hmm. Not convinced, myself.
I would not say it's like poetry, any more than I would say it can be taught like a foreign language. Neither is true in the broad sense.
My context comes from a Math/Philosophy education (before we had CS degrees). I am not a programmer for a living, but I have had to write programs for nearly 30 years. My "programming" is not something a user normally interfaces with, my programs have to interface with everything else. I have had little problem writing in Perl, Ruby, C, various "sh" scripts, and started with Fortran and Pascal. The reason I could do this is because I know concepts that sit underneath, I know logic and can break problems down to components. I know how to take knowledge in one subject and use it to my advantage in other subjects. Wisdom came with age and practice, but I needed the base knowledge to start with.
This giant push for STEM will not teach people critical thinking and logic, which you can benefit from in any job. This "push" won't make better programmers, because we are not teaching the core logic.
See, the problem with teaching everyone logic is that it comes at a risk. People in power don't want to be questioned, and a bunch more smart people would cause problems. Hence, why teaching Logic and Rhetoric was removed from public schools as soon as the US Government took over the role of dictating a national policy in the 1930s. Here is a good summary of political opinion on critical thought, and more can be found written by "insiders" on the subject as far back as the founding of the US Department of Education
For those that want to claim that "we are so much smarter today than we were in the 50s" I will point you to this, and scoff. No, we are not anywhere near it. You just fall for the appeal to emotion that gets tossed out all the time to make you feel good about yourself and our pathetic level of public education.
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
Which is fairly meaningless.
Sure, I can check out a medical text from a library ... won't make me a doctor.
The fundamental basis of coding is applying logic, reasoning, problem solving, a lot of trial and error, and then refining it over the years.
Free access is meaningless, unless people are motivated to do it, and have the aptitude for it, and probably have some guidance. Very few people can teach themselves programming from soup to nuts and really grasp all of it -- I've known a few who did, but they were exceptions.
Unless things have changed, programming tends to have a double-tassel distribution -- you get it or you don't. Is this a fault in teaching method or available tools? Or is this a limitation on human brains? I honestly can't say, but I've definitely seen it.
I can tell you not everybody will do well with programming, and some will utterly fail at it -- and how you make it accessible to everybody, I don't know.
There's more grokking involved than most people are willing to admit. There is some aspect of it which actually is art.
Everybody says "programming is just math". Math might have conceived of programming, but I've known brilliant mathematicians who suck at programming. And I've know brilliant coders who suck at math. I don't believe they're one and the same.
I don't think coding is some secret voodoo to be held among the elite. But I don't think everybody is capable of doing it either.
Because it's not really how most people think and do stuff, and because historically, that double tassel is a real thing no matter what people want to believe.
Lost at C:>. Found at C.
This is a man standing too close to the forest to see the trees. He's right, but also completely wrong.
What is being taught is "computational thinking", not coding. Coding is just the conduit.
I've seen the stark difference in my work with primary and junior high kids (Scratch, Python, Javascript), where some kids learn sufficient language to enable them to do a bunch of neat things, but *still can't do it*. They're not making the neural connections between "here's a bunch of capabilities I have at my fingertips", and "here's how I put my capabilities together into a structure of my own creation to achieve my goal".
It's a skill that has application far beyond the keyboard. It's not about learning the syntax of a for-loop, it's about the epiphany that follows. Seeing a kids face when they (all too rarely) get it that they've become wizards and the sky is the limit, is priceless. They are visibly empowered and their view of their relationship with the world around them alters.
*That's* what it's about.
For once, a car analogy that makes sense!
I believe basic "coding" should be a part of general education. The kind you would do in BASIC or a spreadsheet. Everybody has a computer, they could be using them more effectively if they knew how to automate stuff.
In my office, I sometimes get called in to split CSV files of addresses into street and streetnumbers; everybody should be able to do that in any spreadsheet. Nobody should have to call in a professional developer for such tasks.
Heck, just learning how to make complex iTunes and Google searches would be a huge time-saver for most people.
In that respect I agree with TFA's notion that modeling (breaking down a problem) is the core requirement, not some random programming language's syntax.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
No, it's not. (Thinking is a learned skill, after all.) That sort of egomaniacal nonsense is why so many programming communities are cesspits. Get over yourself.
Most people don't even truly come to understand mathematics, even though we attempt to teach it everywhere. I don't see any good reason to believe they could have the sort of critical thinking skills required to become truly great programmers, or truly outstanding when it comes to anything. I just don't see any evidence that leads to this. I see people who act like mindless robots when it comes to politics, fail to understand mathematics, believe in magical sky daddies for which there is no evidence, and do all sorts of other tremendously illogical and irrational things despite the education we attempt to give them; that makes me conclude that most people are hopeless.
I see no evidence that they'd be geniuses or very smart if they just worked harder, so at the moment, I simply lack a belief in that being true.
Is it because you're actually insecure and want to believe that those you admire for their talent are "just lucky"? Is it that you'd rather believe that it's not your fault that you're not as accomplished as you'd like to be? Isn't it far more empowering to accept that you're skilled because you put in effort and that you can continue to improve?
Do you believe what you do because you're frustrated that you're not as good as you'd like to be, so you fool yourself into believing that anyone can become truly great through hard work?
If that doesn't sound accurate, it probably isn't. Trying to psychoanalyze other people over the Internet just makes you look like an idiot in my eyes. It isn't even relevant to the conversation.
Growing up with ranchers, there was always something that needed to be fixed/southern engineered. Perhaps a deer stuck a horn through the high-flow intake manifold on your front end loader or it isn't quite managing the amount of dust in the air, and all you needed to get by was to weld cover and perhaps reinforce the hood with some diamond plate steel so that future deer might not be able to wreck your engine.
Similarly, I feel like there's a good deal of coding that falls in between changing the oil and manifold design.
Millions long for immortality who do not know what to do with themselves on a rainy Sunday afternoon. -- Susan Ertz