Literacy is a direct method of communication. Coding is an indirect medium of communication. When a child learns to read and write, that iconography is directly applicable to all mediums of visual communication. The child can take a pencil and paper, a paintbrush, word processing software, or a stick and some sand and convey any information or idea that is within their powers to articulate. Their communicative ability is limited only be their language. They can also absorb information through equally diverse channels.
The ability to code offers no analogy in this regard. Coding is essentially the processing of information, such as mathematical representations of reality (units and volumes) or sensory-dependent data such as written language and images and sound.
The ability to code does not confer the ability to communicate directly, but rather to newly organise pre-existing modes of communication such as language, images and sound. While new hardware and software will ultimately offer potential to interact in new and exciting ways (video telephones, brainwave sensing, etc), the programming of these innovations are not the communication that these innovations offer. Your grandmother does not need to know how to code a thought-transfer device in order to kuse the thought-transfer device that coders will ultimately help develop.
Coding is not the new literacy because it will never be a requirement that every man, woman and child must know how to code in order to communicate fully. It is a function of the development of communication, not its application. As such, it is more true to compare coding to skills such as book-binding, or newspaper printing. It is sufficient for a relatively small proportion of the population to understand it in order for its benefits to accrue.
I understand the value of coding. It is good and necessary that coding will become more widespread and less alien to average people in the coming decades. But those who compare it to literacy do not understand the value of literacy.
When people describe programming as ”the new literacy” they don’t mean that programming fulfills similar cognitive purposes, but that programming replaces literacy in forming a new intellectual gap and in that regard, the observation is right.
Actually for this argument to work, we need to define the term ”programming” a little better. The important bit is not to ”be able to program a computer”, but instead to have an understanding of how algorithms process information and how the workings of our world is more and more shaped by machines and mathematical abstractions. Little, specialized parts that work together, adhering to strict rules to form new, more powerful capabilities.
If studying computer science has tought me one thing, it's how to break down problems into parts, strip away unnecessary elements until its essence lays bare and a solution almost presents itself. This is the core qualification of computer science. Internalizing this way of thinking changes how you approach everything.
Almost anyone can read nowadays but not that many people have generic problem solving skills. Programming is at its heart formalized, applied structured problem solving, combined with a bit of syntactic knowledge about whatever language you happen to use. You don't have to have a programming education to be able to program.
Being able to do something and actually doing it are different things, the important bit here is to be able to program. You almost automatically acquire this ability whenever you occupy yourself with structured thinking, in science or business.
In a society obsessed with information and efficiency there's no denying that efficient problem solvers have an advantage as much as the literate few had over the illiterate in the past.