Coding (computer programming) is an extension of writing. The ability to code allows you to ‘write’ new types of things – interactive stories, games, animations, and simulations. And, as with traditional writing, there are powerful reasons for everyone to learn to code.
The recent surge of interest in learning to code, reflected in sites like codecademy.com and code.org, has focused especially on job and career opportunities. It is easy to understand why: the number of jobs for programmers and computer scientists is growing rapidly, with demand far outpacing supply.
But we see much deeper and broader reasons for learning to code. In the process of learning to code, people learn many other things. They are not just learning to code, they are coding to learn.
In addition to learning mathematical and computational ideas (such as variables and conditionals), they are also learning strategies for solving problems, designing projects, and communicating ideas. These skills useful not just for computer scientists but for everyone, regardless of age, background, interests, or occupation.
People are amazed with the diversity and creativity of the projects with which they can work. Take a look at the Scratch website and you will find animated stories, virtual tours, science simulations, public-service announcements, multimedia art projects, dress-up games, paint editors, and even interactive tutorials and newsletters.
It is always exciting to watch what young people are creating and learning with their talent. But this is just the beginning. People should be aware that new features and capabilities are not enough.
The biggest challenges for the future are not technological but cultural and educational. Ultimately, what is needed is a shift in mindsets, so that people begin to see coding not only as a pathway to good jobs, but as a new form of expression and a new context for learning.