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."
>> furious effort over the past few years to bring the teaching of programming into the core academic curricula
They tried this in the early 1980s and all we got was the Internet at everyone's home, online shopping and news, free video conferencing, entirely new ways to organize photos, transportation and events, realism-quality video gaming, and cell phones so easy to use that toddlers can participate in the world wide web.
What good could coding literacy possibly do now?
They are still not talking about literacy - they are talking about problem solving. That makes it the new Mathematics, not the new literacy. (And yes, what I learned coding on my VIP not quite 40 years ago did help me with my degree in Math a few years later, so I do know what I'm talking about.)
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.
Pretty much this. The whole push to have 'everyone' code is because it's trendy and is a definable skill, unlike 'learning how to think' or reason. And it segues quickly into 'jobs' which makes everybody happy. Further, there is this odd belief among many people (including a whole raft of Slashdot posters) that software can do anything and the world should be viewed through the lens of a Von Neumann machine.
Coding is a subset of human activity, not a superset. Even modeling, as championed by TFA is only a small part of human learning.
But schools are in a tough place. They are supposed to teach everyone, from the next Albert Einstein to the kid that will be sweeping the floor. They're supposed to push the latter child farther and faster than they could possibly go while not slowing down the new Einstein. All the while acting as in loco parentis, cop, judge and diaper changer.
For only $29.95 per child.
Faster! Faster! Faster would be better!
At it's core, coding is problem solving, and relies on logic and reasoning to use the tools you have to solve a problem.
Debugging is thinking through logically what has gone wrong, examining the code, and possibly taking some educated guesses (hypotheses) about what might be the problem and what you might need to fix it (depending on the nature of the problem).
So, sure, teach coding.
But don't think you can do this with people who haven't got a good grasp of problem solving, applying logic and reasoning, formulating a hypothesis, and refining your knowledge based on some experimentation -- which over time grows into a body of knowledge.
Do they still teach any of those in schools?
Lost at C:>. Found at C.
Asking whether coding is 'the new literacy' is a semantic distraction. It's a phrase that tries to build excitement, but distracts from the real question; is coding a skill worth teaching to every youth?
I believe the answer is yes. Through coding, kids can apply and solidify the math they learn in school in a useful way. It also builds a mentality of experimentation that can help with the sciences. It also makes use of writing in general, making english class even more relevant. Real programmers depend on writing well to communicate, which can make a huge difference (see stack overflow questions).
Also, the skill of 'modelling' systems can be practiced and taught through the construction of computer programs. It can be very useful to build reasoning skills that are useful even if the person never codes again. Many of the subjects taught in schools don't offer skills that can be used anywhere else but in that specific subject, and are only taught for the sake of 'forwarding the knowledge of that specific field', whereas coding seems to offer many skills that transfer over into other subjects.
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.
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.
That's happening more and more. I find myself going to web sites looking for manuals and specs, and all they have these days are videos. I don't want videos, I want text, with orders of magnitudes higher information density, searchable and editable.
Dumbing down seems to be across the board. User interfaces, recipes, clothing, handwriting, ability to add and subtract without a cash register or calculator, you name it.
And yes, "coding". Which has taken over for programming. The typical modern "coder" builds houses out of Lego. They may look colorful and shiny, but at the end of the day it's still Lego.
Gone are the days of programmers who actually devised algorithms and discussed them, instead of Googling for something that might be pressured into service. People who would understand what an OS call actually did, instead of treating it as magic. Something as simple as describing what happens behind the scenes when doing an IO request is beyond many newer coders (some of which I work with).
Programmers, they aren't.
We have to start expecting more, and stop rewarding and kowtowing to incompetence.
Interestingly, it's not usually 'nerds' who push the idea that software development is something that everyone is even capable of, much less that it's something that most people should try and learn. It generally seems to be people who have grasped the basic idea that "programming means giving the computer instructions" and got excited about it, but never went beyond writing a few loops and some if() statements.
Anyone who's taught programming at a university level will know that even among intelligent students who want to learn, there are a large minority who (while they have many other valuable skills) are just not mentally wired to think in the way needed to develop software. It's a huge waste to try and push these people into doing something that they're not equipped for, instead of focusing on talents that they do have.
Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
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.
Nope, let's not even justify it to that extent. Coding is a job description, and an increasingly blue collar one like plumber or electrician at that. This whole push by giant corporations to get into schools (!) is simply a means for them to reduce future worker salaries and ensure a steady supply of bright young idiots all fresh'n'ready to be abused and burned out.
End of.
You could say the same about almost any skilled labour though, good enough is often good enough. I agree with what you're saying but it doesn't make what I'm saying less true.
Programming is absurdly simple. Back in the 80's, you couldn't throw a stone without hitting a kid who wrote games for his home micro as a hobby.
There were plenty of kids who knew how to write "10 PRINT FART; 20 GOTO 10" or who typed in listings from magazines, and I agree that programming at that level is probably accessible to most people - but you can't equate that level of programming with modern software development.
You've probably noticed this yourself, but there are a LOT of really stupid professional developers.
I wouldn't phrase it as "really stupid professional developers". There are certainly a lot of incompetent professional developers, and they're part of what's formed my opinion about some people not being mentally equipped for software development. Do you honestly believe that such a proportion of people who make their living developing software are that bad at it purely because they're lazy, apathetic or unmotivated?
For the obligatory car analogy, most people are probably capable of learning to swap to a spare tyre, change the oil, or top up the radiator (learning some simple scripting). Most people are probably not capable of learning to design high-flow intake manifolds or variable valve timing mechanisms (useful commercial software development).
Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
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.
Get used to being increasingly confused by a world you increasingly will never understand.
Been there, done that. I used to cry myself to sleep and have bizarre dreams because I was wasting my time learning Linux and Internet protocols and running an ISP while my professional peers were out there making six figure salaries exploring the awesome potential of Microsoft Dot Net and making embedded Corporate Widgets that harnessed the power of ten thousand suns, to deliver sleek desktop solutions to a world desperate for answers.
"But it's all gibberish!" I would shout at the angry skies as gale force winds whipped my tattered robe. "It is like living inside a Dilbert cartoon! The buzzwords come in fast and thick but to me it is just Microsoft-centric Vertical Market software of no specific kind, and your market is people who know they need software automation but don't know why!"
"WHAT WOULD YOU KNOW?!?" thundered the sky as a lightning bolt rent the knoll upon which I was standing, sending forth rivers of money that would always be just out of reach. "You are merely a PLUMBER of the Information age. We are the CODERS."
And the storm would part and a rainbow spanned the sky. Bluebirds would appear to help bind the perfect hair of Software Developers into blue and pink ribbons --- and we --- the ones who had bound the Internet together with sticky-tape and protocols and C would for ever gather around their feet like pigeons waiting for crumbs. But yet, at least there was a place for us.
Until the dot com bubbles burst and they migrated outward with their pretty resumes and took over our Network and Sysadmin jobs. And the telecoms swallowed all the regional ISPs to replace them with centralized warrens of cubicles.
Today I am attending a Special Needs class trying to learn Microsoft Dot Net. So far, every app I try to make always turns out to be an ashtray.
<blink>down the rabbit hole</blink>
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