Credit: Federico Caputo
In a White House video marking Computer Science Education Week, President Obama observed that, with the proper STEM education and hard work, anyone can become a "computer scientist." I think by that he meant anyone can become a programmer, because almost in the same breath he exhorted, "don't just play on your phone, program it."
I understand the motive behind proposing this kind of thing. Unemployment may be gradually declining, but well-paying jobs remain relatively scarce in this economy. Coders earn good salaries, so with thousands of developer jobs going begging, why shouldn't supply increase to meet the demand?
[ Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
We already live in a decade when the developer is king and demand for talent continues to rise. An IDC report released last week predicts that the number of new developers entering the workforce in 2014 may be limited by low population growth (among other factors). Meanwhile, new platforms proliferate, from mobile to big data to intelligent cars to the Internet of things. Someone has to write code for all that new stuff.
Yet understandably developers recoil from the idea of mass-producing coders. It takes time to become a good programmer. Do we really need armies of newbies writing bad code? As Ciara Byrne, an ex-programmer turned journalist, recently wrote for Fast Company: "Good coders don't want to work with beginners and do not like to see their craft devalued by hoards of 'instant' developers cranked out of short courses."
Fair enough, although as InfoWorld's Andrew Oliver has argued, long courses from universities aren't doing such a great job of teaching programming skills, either. As Andrew wryly observed, "When searching for talent, I've stopped relying on computer science degrees as an indicator of anything except a general interest in the field."
Are good coders simply born and not made? Of course not. But it's true that the best are frequently self-taught and loved coding from the start. Without strong self-motivation, it's very, very difficult to slog your way through the painstaking labor and long hours required to become a decent programmer. To be an excellent one, you need a whole lot of experience, which is why I've heard hiring managers say they're more impressed by an applicant who wrote a mobile app at age 14 than one with a BSCS from a good school.
Another factor is that the developer elite of Silicon Valley tend to distort the market. The highest-profile members of the elite club, the 20-somethings pulling the $200,000 salaries you've heard about, couldn't play at that level without real, innate talent. This is perhaps the biggest reason the tech industry is always clamoring for more H-1B visas: The widest possible net catches more of the best talent.
Not everyone should be a developer, but with appropriate education and training, the net will spread to capture more journeymen and elite programmers alike. Yes, good university programs exist today, and at the other end of the scale, highly motivated people can teach themselves with O'Reilly books or Codeacademy or an exploding variety of MOOCs. But we also need a broader array of innovative new training programs such as Hack Reactor or Starter League and -- to give young developers real-world experience -- residency programs such as that offered by Code for America.
Meanwhile, rather than merely beat the drum for STEM, we need to bring programming back to high school. According to Code.org, nine out of 10 U.S. high schools don't even offer programming classes, and in 36 of 50 states, computer science doesn't even count toward high school graduation math or science requirements.
Again, this doesn't mean everyone should learn to program, and I realize there's a gulf between supersmart coders who see the big picture and those who fill in the gaps. But we're supposed to live in a land of opportunity. Given the opportunity to see how the software that powers the world is built, more young people -- and even some homeless people -- will find a profession they want to pursue. Some of you talented, successful developers out there might want to think about ways to lend them a hand.
This article, "Should everyone learn how to code?," originally appeared at InfoWorld.com. Read more of Eric Knorr's Modernizing IT blog. And for the latest business technology news, follow InfoWorld on Twitter.