We use technology to create content. Literacy is a measure of how well you can create, contextualise, and accurately interpret content.
That content could be updating your status on a social network. It could be your SmartRider card logging your daily trips. We are all generating data, telling stories, leaving imprints with our technology - be it pens and paper or binary code in a machine.
In his article Programming is the New Literacy, Marc Prensky postulates that knowing how to write programming code will become an essential skill. You will not be considered literate without it.
It is an interesting argument. But I think he is somewhat confused about the nature of programming.
A computer is a tool requiring both hardware and software. This is where the confusion lies. Prensky confuses the language of software with the language of human thought. But software, while written using a 'language', does not communicate human ideas. It communicates machine ideas. Software itself is a construction - it is a tool made out of code. And just as we are not required to build a telephone to be considered capable of holding a discussion, we will not all be required to build software to be considered literate in computer interfaces.
The author also seems to confuse interface literacy with programming. Examples provided of programming performed by teens are things like "downloading a ringtone" or "customizing your mobile phone or desktop". This is not programming. This is understanding how to use a tool - much like understanding how to change the ambient temperature of your refrigerator.
I love programming (well, on good days) but do I think it will become a required skill? No. Do I think interface literacy will become an essential communication skill? Yes! Eventually. Just as we are required to understand how to use pen and paper in order to write essays in Year 10 English Literature.
You might think I'm being pedantic. Listen, this is me being pedantic: Flash is not a programming language! It is a piece of software! Actionscript is the 'programming language' used by Flash. That said, you may hear old-school programmers refer to it as 'scripting' rather than 'programming' due to it not needing to be compiled amongst other things (Okay, one of the 'other things': True programming languages usually let you write any sort of utility you want. While I could make a game or short animation with Actionscript, I could not write a boot loader with it - hat-tip to Pixelseeker for the example).
Yes. Now I am being somewhat pedantic.
Towards the end of the article Prensky re-defines programming as 'the ability to control machines'. While the semantics make me cry (oh, fine, not really, at most they add another micro-twitch to the nervous tic I'm working on to increase my nerd cred) I agree completely with the message. The abillity to control our society's current, predominant technologies is vital for any individual.
Once upon a time, our latest technologies were zippers and velcro. Today, computer interfaces. We need to understand these in the same way we need to understand how to use a zipper; if we fail, we'll end up looking like a bit of a dunce.