Coding for Non-Coders: What's the Point?There are a lot of compelling reasons to look at broadening education around computer programming. One is the job market, where experts decry a lack of skilled workers, and where analysts are contending that American IT education initiatives could push the U.S. skilled worker back toward prominence on the international stage.
But there is also the inherent value that these skills can bring to the individual and his or her skill set. Coding leads to a kind of concrete achievement, and as those who have experimented with it will often testify, it provides a tangible sense of personal victory and empowerment. Learning it provides deeper and more profound understanding of the nearly infinite ways that we can use computers.
The "Coding For Everyone" MovementIn recent years, educators and other advocates have begun to assemble solid initiatives to promote the use of computer programming in classrooms and in other educational venues. An article that appeared in Slate magazine in March 2013 covers an event called New America NYC, where pioneers in technology discussed the value of bringing computer programming skills to a greater global audience. The verdict? Basic computing literacy would empower anyone who uses a computer or smartphone. The problem is that the current education system is severely lacking in computer science education.
So how can kids learn these skills? A January 2013 article on Geekosystem covers Code.org, a startup led by Hadi and Ali Partovi (individuals previously involved in big projects like Facebook) that is generating videos for classroom use and otherwise promoting more accessible tools for building personal skills in computer programming and IT. Code.org spotlights innovator Steve Jobs' promotion of computer programming as a universal way to "teach people how to think." The idea that programming, which blends quantitative skills and language skills, can help the average person build certain cognitive functions is another argument behind getting more young people involved in computer science.
One of the most popular ways to promote computer programming is through free educational resources. These are becoming increasingly common, and include Mozilla School of Webcraft, Google Code University, Code/Racer and Codecadamy, among many others. In addition, some new technologies also promote good access to programming tools and principles, such as Raspberry Pi. The result is that learning code is becoming easier than ever.
Why the Critics Say, "Why Bother?"Against the backdrop of this growing movement, there are also some who say that coding really isn’t for everyone, and that we shouldn’t push it on the masses.
In a story that appeared in Slate magazine in August 2013, writer Chase Felker talks about the difference between learning something and actually understanding it. Felker writers that while people can build basic projects without a lot of training, it takes huge amounts of time and energy to really be able to program well. As a result, the idea that the vast majority of people can learn enough coding to make it useful in any way may be overly optimistic.
This argument is an interesting one, and delves into the difficulty of mastering fundamental ideas about code sustainability that go far beyond syntax and into the principles that support stable and versatile working projects. For instance, correct syntax will get the computer to do what you want it to do, but it will not prevent any number of bugs or glitches, including potentially dangerous ones related to user-generated events that have their own impact on code during run time. In order to ward off many of these problems, the professional programming community has evolved various best practices and strategies using white space, commenting, modularization and other techniques that get into the formative coding of functions and procedures that need to work well together. Those, as you might imagine, are no less important than the basics, but they are harder to learn and understand.
Felker also promotes what he considers a healthy alternative to trying to get the average person immersed in what can be a very demanding conceptual framework. Instead, writes Felker, it might be useful to promote teaching the average person how to use software in a more practical way, such as how to maintain an operating system over continual sessions, or how to do basic network administration.
This is where there is opportunity for a lot of instructive debate. Where does the creation of a "hello world" program lead into the evolution of those principles that prevent much more complicated programs from hanging out and crashing in an array of awful ways? How much do people really want to know about computer programming, and who should teach them? Will a basic coding education provide real benefits for the majority of students, or just trap them in another annoying study that that saps their time and energy?