Being Code-Literate vs. Being a Good Programmer...
There's an interesting article in the New York Times today focusing on the rising number of people who are seeking to learn web programming skills.
According to the Computing Research Association, enrollment in computer science degree programs rose 10 percent in 2010. That number has been steadily climbing since 2007, after a six-year decline in the aftermath of the dot-com bust. Overall, there is a growing national trend among college students towards more technical fields.
The reasons seem obvious. As the first generation of "digital natives" reach adulthood and enter the workforce, they view Internet fluency as being as essential as speaking English. To them, it's not a skill-set that ought to be limited to engineers. As one of the founders of Codecademy put it, "They don't just want to use the Web; they want to understand how it works". Peter Harsha, director of government affairs at the Computing Research Association is quoted as saying, "To be successful in the modern world, regardless of your occupation, requires a fluency in computers... It is more than knowing how to use Word or Excel but how to use a computer to solve problems."
All of which is very true, but also very obvious. The article unfortunately veers off into describing the gold-rush taking place among businesses seeking to capitalize on this trend by offering web programming classes.
What would have been more helpful, instead, would have been to explore deeper into the distinction between being code-literate versus being a good programmer. As Mr. Sims from Codecademy admitted, "We know that we're not going to turn the 99 percent of people interested in learning to code into the 1 percent who are really good at it".
That's quite an admission. How important is it that someone have true programming skills rather than simply have code literacy? Certainly, in this Internet Age, everyone ought to be code literate to some extent, and to a far greater extent than most people are now. However, the difference between the two is huge. To draw an anology, it's like questioning the distinction between someone who knows the name of the U.S. president versus someone who makes their living as a paid political consultant. Yes, we should all increase our level of political knowledge in the interests of being good participatory citizens. But that's a far cry from rightfully claiming practical skills in the field.
As someone who teaches computer programming, I know I'm biased. But one of the most irksome things we faculty encounter are incoming freshmen who enroll in the Intro to Programming class because they figure that they like to email and play on Facebook so why not take a class on such things - only to quickly grow dismayed upon discovering that programming means writing code! We design according to object-oriented principles. We execute loop iterations. We engineer recursive algorithms. And we do it on a blackboard. Facebook is very very far away.
Being a good programmer is a true skill, increasingly invaluable. It means having the rare ability to take a blank canvas and create - make real - anything your imagination can conjure up.
Two hours of HTML training does not suffice. In the context of literacy, it's definitely better than nothing, but everyone should be careful not to conflate the two.