Can Everyone Learn to Code? November 29, 2011Posted by Peter Varhol in Software development.
Making programming more accessible to more people has been a longtime goal of a certain segment of the computer science/software engineering community. I confess that I have been a member of this segment since the 1980s, when visual languages started emerging as a possible way to build applications without requiring specialized skills.
It was important at that time. The so-called application backlog was estimated to be three years. That is, the amount of time between the approval of a corporate application project, and the delivery of that application was about three years. Many projects failed because business needs changed during that time.
Programming technologies like object-oriented languages, component libraries, visual languages, and agile processes have made a big difference here. It’s rare that users have to wait more than a few months for needed features or applications.
Domain specific languages (DSLs) also have the potential to make programming easier. Languages like LabView and Simulink let engineers create data acquisition and simulation applications without writing a line of code.
Today I’m not so sure that programming should be more accessible. Visual Basic and to a lesser extent Excel made millions of business domain experts programmers. At one level the result was good – users got automated ways of doing manual tasks, and became much more productive in the process. But at another level many of these applications couldn’t be maintained and enhanced, and ended up being more trouble than they were worth.
Codecademy is a startup that still believes in making coding more accessible. Codecademy co-founder Zach Sims describes coding as the literacy of this century, and believes that large numbers of people in all walks of life should be able to code. The difference here is that Codecademy purports to have a way of teaching coding that is more accessible.
Um, I doubt it. Programming can’t be learned casually. The fact of the matter is that programming remains a language, just like spoken and written languages. It has syntax and semantics, and rules that are strictly enforced by the compiler/interpreter. It requires discipline and attention to detail.
Codecademy may have a good teaching method, but it’s not going to be effective without students who are motivated to learn, with specific goals, and with the ability to give the subject matter a good deal of attention.