The idea that Americans must all learn to code or risk being left behind by the world economy has become so ubiquitous that it’s inspired a significant backlash. But some are saying what we need most isn’t coding proficiency per se but a broader understanding of how to use computers to approach problems.
The argument that everyone should learn to code remains popular. Dan Crow provided a representative example in The Guardian in February: “In the future,” he wrote, “not knowing the language of computers will be as challenging as being illiterate or innumerate are today.”
Others, however, have been more skeptical. At Gizmodo in 2012, Jeff Atwood, a developer, took issue with Mayor Bloomberg’s plan to take programming classes himself. Among Mr. Atwood’s many problems with the idea of coding classes for all:
“It assumes that coding is the goal. Software developers tend to be software addicts who think their job is to write code. But it’s not. Their job is to solve problems. Don’t celebrate the creation of code, celebrate the creation of solutions.”
In a recent interview with Business Insider, the Linux creator Linus Torvalds said:
“I actually don’t believe that everybody should necessarily try to learn to code. I think it’s reasonably specialized, and nobody really expects most people to have to do it. It’s not like knowing how to read and write and do basic math.”
And in a Newsweek essay last month, Kevin Maney argued that advances in computing would allow us to instruct computers in whatever language we speak, rather than relying on specialized code. He wrote:
“When today’s 10-year-olds are in the job market, they’ll need to be creative, problem-solving design thinkers who can teach a machine how to do things. Most of them will find that coding skills are about as valuable as cursive handwriting.”
Not everyone believes in the demise of code (at The New Yorker, Gary Marcus and Ernest Davis argue that computers that understand and implement English commands may be a long way off). But in a recent Mother Jones story, Tasneem Raja does advocate for a holistic computer-science education that goes beyond coding. She compares the rise of computing to the rise of writing and implies that programming conventions could one day be as common as the alphabet:
“It may be hard to swallow the idea that coding could ever be an everyday activity on par with reading and writing in part because it looks so foreign (what’s with all the semicolons and carets)? But remember that it took hundreds of years to settle on the writing conventions we take for granted today: Early spellings of words — Whan that Aprille with his shoures soote — can seem as foreign to modern readers as today’s code snippets do to nonprogrammers. Compared to the thousands of years writing has had to go from notched sticks to glossy magazines, digital technology has, in 60 years, evolved exponentially faster.”
However, she says, the most crucial skill for most people may not be any specific language but something called “computational thinking.” Ms. Raja defines this type of thinking as “the ability to envision how digitized information — ticket sales, customer addresses, the temperature in your fridge, the sequence of events to start a car engine, anything that can be sorted, counted or tracked — could be combined and changed into something new by applying various computational techniques,” and then an understanding how to apply these techniques in a systematic way. She writes:
“If you get the fundamentals about how computers think, and how humans can talk to them in a language the machines understand, you can imagine a project that a computer could do, and discuss it in a way that will make sense to an actual programmer. Because as programmers will tell you, the building part is often not the hardest part: It’s figuring out what to build.”
Understanding how to work with computers to solve problems might prove more universally applicable — and more durable — than learning the language of the moment. And computer-science classes that emphasize such understanding might also reach a broader range of students than those that focus just on code. Some researchers, says Ms. Raja, have found “that leading with computational thinking instead of code itself, and helping students imagine how being computer savvy could help them in any career, boosts the number of girls and kids of color taking — and sticking with — computer science.”
The idea that teaching people to code will fix all society’s ills has been derided as shortsighted and exclusionary — witness the widespread criticism of the programmer and entrepreneur Patrick McConlogue’s plan to teach JavaScript to a homeless man. For Ms. Raja, emphasizing computational thinking rather than coding per se may be a way to extend the benefits of computer-science knowledge to a wider group of people — and to help those who have no desire to be like Mark Zuckerberg use computing principles in ways that are relevant to their lives.