Republicans and Democrats don't see eye-to-eye on much these days, but there is one aspect of the future that they can agree on: "Becoming literate in code is as essential to being literate in language and math," says House Majority Leader Eric Cantor, a Republican from Virginia.
President Obama agrees: "Computers are going to be a big part of your future," he predicts.
Computer programmers and software developers already make more money than the average American — and while many jobs aren't coming back, the job outlook for programmers is great. Cantor says that coding is "the necessary tool of this century."
It's an interesting idea, but how true is it? Is coding really for everyone?
'Stay Up For 24 Hours And Build Something Cool'
On a warm Saturday night in downtown Santa Monica, Calif., the streets are packed with tourists and shoppers. But look through one window on 2nd Street, and you'll see 40 or so young people crowded around little square tables, laptops and cords and notebooks splayed out everywhere. Their plan is to spend the night coding.
Scott Motte works for a tech company building email servers, but on the side, he teaches people to code. "I'm actually a developer evangelist," he says. Rather than go to a party on the weekend, he says budding coders come here to "stay up for 24 hours and build something cool."
The event is called CodeDay. A group called StudentRND throws these all over the country — 24-hour code-a-thons for programmers of all backgrounds and skill levels. You show up at noon on Saturday, pitch ideas, form teams and code through the night trying to finish by noon on Sunday.
At this code day, there are about a dozen teams. One two-man team has five screens between them — two laptops, two phones and a tablet. They're working furiously on an app that will record people who snore and talk in their sleep.
"We want to make sure that everybody who snores and talks at night never misses that again," friends Edward Foux and Jack Wong explain with a laugh. Foux is originally from Russia. He came to California four years ago and has been studying programming ever since. Wong has been programming since middle school.
Foux and Wong decided to code their Snore App on the bus to the event. Whether they finish by noon on Sunday doesn't really matter. What really matters, they say, is what their resumes will look like with Snore App and projects like it. Coming to CodeDay is all about practice.
"I'm hoping to work for Google, or maybe Microsoft," says Wong. "But Google would be like my dream job."
Getting a job is on everyone's minds here. But no one is particularly worried about it — because they all know how to program. Foux says programming is the obvious choice for a college senior.
"You don't need to be a genius today. Maybe 30 years ago you had to, but [not] today. ... Just look at me," he says with a laugh.
Reading, Writing, Arithmetic ... And Programming?
Jacob Sharf, a junior at UCLA, is working on a video upload site. He predicts that programming will soon be part of any job. "It'll be something that everyone knows," he says. "Just like everyone knows how to read or write, it'll be taught in middle school or elementary school, and so everyone will be familiar with the basics of it."
That idea has been creeping over the nation over the last couple years. Last year, Michael Bloomberg — then the mayor of New York — tweeted that his New Year's resolution would be to learn to code. And in December, the president announced a Computer Science Education Week via YouTube.
"Don't just buy a new video game, make one!" he said. "Don't just download the latest app, help design it! Don't just play on your phone. Program it."
It's not just the White House that's encouraging people to code; Rep. Tony Cárdenas from Southern California has introduced a bill called 416D65726963612043616E20436F646520. That string of 34 letters and numbers spells out, in hexadecimal, the words "America Can Code." Cárdenas is hoping to classify computer programming as a foreign language, and allocate grants for schools to start teaching coding as early as kindergarten.
Do We All Need To Be 'Auto Mechanics'?
Some people aren't so enthusiastic about all the pro-coding rhetoric. "Reading and writing are hard; the basics are hard," says software developer Jeff Atwood. "And now we're telling people you have to learn this programming too, or else the robots are going to get you."
Atwood started making his own video games as a 12-year-old back in the '80s. Now he runs a coding blog and a set of websites to help people with programming. But he remembers a time not so long ago when computers weren't at all intuitive.
"When I got my first computer in the mid-80s, when you turned it on, what you got was a giant, blinking cursor on the screen — that was the boot up," he recalls. "It wasn't like turning on an iPad where you have a screen full of apps and you start doing things. ... When I hear: 'Everyone must learn to program,' what I hear is: We're going back in time to a place where you have to be a programmer to do things on the computer."
Atwood thinks that's going backward. He's glad that people don't have to be computer whizzes anymore just to be able to use a computer. He thinks that if computers aren't your thing, then it's OK to let the programmers make life easier for you.
"It's sort of like an obsession with being an auto mechanic," he says. "There are tons of cars, there's tons of driving ... but I think it's a little crazy to go around saying everyone should really learn to be an auto mechanic because cars are so essential to the functioning of our society. Should you know how to change oil? Absolutely. There are [also] basic things you should know when you use a computer. But this whole 'become an auto mechanic' thing? It's just really not for everyone."
So maybe we don't all need to be coders. But these days it's much easier to figure out if programming is something you like, and Atwood believes that's the best thing to come out of all this: If you do want to code, and you're really serious about it, the resources are there for you to do it on your own.