I’ve talked quite a bit here about “universal programming literacy” — the prospect of a large proportion of of our population being able to get computers to do things with the power and flexibility that programmer’s take for granted. But to understand what would be the right preconditions for this, it might be useful to look at historical precedents.
It seems that dramatic increases in literacy come about by a confluence of motivation and technological enablement. For example, the 1951 introduction of the Fender electric bass, followed closely by the electric guitar and similar innovations, allowed young people to perform their own music — in modern parlance, to communicate as “makers” — to a large audience of their peers, without the need for access to highly specialized and expensive venues. Most of these young people had little or no formal musical training, yet six decades later the revolution they started still dominates popular music.
And just in the last several years, widespread access to affordable digital video cameras and digital editing software, as well as free worldwide distribution (the last thanks to YouTube) have led to an enormous increase in filmmaking literacy among people, similarly motivated by a desire to communicate as “makers” with a large cohort of their peers. Again, most of these kids had little or no formal training, yet the influence of this new literacy is clearly going to be transformative in the decades to come.
There are many similar examples throughout history of a means of production going viral and thereby leading to a new form of widespread literacy, and they all seem to follow the same basic pattern.
For programming, what would be the equivalent combination of (1) a set of technological innovations that lead to wide-spread enablement of programming production and distribution, and (2) motivation to communicate via programming as a “maker” to a large cohort of one’s peers?