The US has a skilled developer shortage, and it's one of its own making. While Silicon Valley wrings its hands over H1B visa caps on skilled foreign workers, the bigger issue remains the U.S.' inability to educate its own citizens. Actually, it may be worse than this: while we may educate a surplus of STEM (Science, Technology, Engineering and Mathematics) students for traditional STEM roles, we seem to fail to entice enough of them to get into technology.
Which is bizarre, if we stop to think about this for even a nanosecond.
(Don't) Show Me The Money?
After all, while people may not purely be driven by money, it's reasonable to assume that people would gravitate to those fields that pay the best. Or pay at all. Given the global economy's persistent weakness - Friday's tepid jobs report confirmed that there's no end in sight - students should be pouring into STEM-related disciplines, and then into STEM jobs.
But they're not. At least, not into technology.
Since 1980, the number of STEM graduates has increased by 60%. Unfortunately, the rate of growth for technology jobs has outpaced this, and the U.S. educational system hasn't kept pace:
Nor does it get better with postsecondary educdation. In fact, 60% of those enrolled in U.S. Computer Science PhD programs are non-resident aliens. Among other things, this suggests that we have difficulty keeping our students engaged.
Which, in turn, leaves us scrambling for more skilled foreign workers, as Matthew Prince points out:
A Question of Incentives?
The issue isn't so much that we need to train more Computer Science graduates. As Sam Ramji, Apigee's VP of Strategy, told me, "In my experience, STM produce better developers than CS/CSE. For fundamental research and hardware, you need CS. For most software, no." He goes on to argue that the "best developers come from Physics, Philosophy, Math [and] Cognitive Science" as "CSE is too focused on machines."
Assuming this is true, and I heard much the same thing from others, the issue is that we need to encourage more students to make a career in tech. And stay there.
As a report from Georgetown University's Center on Education and the Workforce notes,
Even when the numbers indicate that we are producing enough STEM graduates for STEM occupations, we do face STEM scarcity in some occupations because STEM-capable workers divert from STEM into non-STEM occupations, particularly Managerial and Professional and Healthcare Professional occupations.
In other words, STEM skills are in high demand, and we're not doing enough to keep them engaged in tech, given how much such skills are valued in other professions. We may have a marketing problem.
Connecting The Dots
This marketing problem is compounded by the overall shortage in talent. While training more Computer Science graduates may not be a panacea, it surely must be part of the solution. At present, CS classes don't even count toward math or science credit in 41 of 50 states, as Code.org highlights, and 90% of our high schools don't teach programming at all. Getting programming classes into core curricula seems like a relatively easy fix.
But it's not the ultimate solution.
More than formal training, it seems we need to focus on inculcating a love of technology, and a passion for the progress it can bring. Perhaps we're missing out on tech workers because we've never motivated our youth to want to program in the first place; we've not done a good enough job explaining why code matters.
The next step is learning to code. In our world awash in open source and fantastic programs like Codecademy, it's easier (and cheaper) than ever to learn how to program. But if we don't know why code matters, students will never bother with the "how."
It's not about making a billion dollars. It's about teaching our youth that the future is being written today in code, and if they want to influence that future they're going to need to code. Or, in the case of English majors like me, to blog about it.
Image courtesy of Shutterstock.