Code.org: Solving our CS shortage 1 teacher, 1 student at a time
Summary: We can't even import enough programmers to meet the demand, and the shortage is only going to get worse, no thanks to our out-of-touch educational priorities in this country.
Code.org, founded by brothers and serial entrepreneurs Ali and Hadi Partovi, is dedicated to improving the state of computer science education in the United States. The bottom line is that we're nowhere close to being able to meet the demand for programmers in the coming years. Check out this graphic from Code.org:

These statistics are actually pretty ridiculous. We focus on STEM (science, technology, engineering, and mathematics) in many of our conversations, but actual programming rarely enters the picture. We give students iPads and various devices, and promote 1:1 to meet the "technology" component, but programming itself is a novelty for most schools in K12. We know that college grads with computer science degrees are going to get good jobs, but we don't let students explore CS meaningfully in high school so that they have an interest in pursuing a related degree in college. And those of us who live, eat, and breathe business and technology know that applied science, engineering, and mathematics all rely on programming and the algorithmic thought it teaches, but the College Board even dropped its second-level "AB" computer science AP test five years ago due to lack of interest.
Code.org has attracted interest from some of the biggest names in technology and politics. Mark Zuckerberg, as quoted on Code.org, perhaps sums it up best from an employment perspective:
Our policy at Facebook is literally to hire as many talented engineers as we can find. There just aren't enough people who are trained and have these skills today.
From an educational perspective, Bill Gates hits the nail on the head (also speaking in support of Code.org and its efforts):
Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.
In fact, the high-profile supporters of Code.org range from Marc Andreessen to Max Levchin (co-founder of PayPal). Their message comes together in a video released today, produced by Lesley Chilcott of An Inconvenient Truth and Waiting for Superman fame. You can watch the full video on Code.org, but here's a teaser:
The take-home message is that we need to act now on a problem that, perhaps more than any other, impacts our ability to be competitive in the 21st century. For all of our standardized tests and talk about STEM, teaching programming (which can be an ideal catalyst for addressing every part of STEM and can be taught across all of our other curricula as well) is a novelty and an afterthought.
Is there a good reason why we couldn't make our standardized tests in mathematics programming projects with rubrics and requirements that require students to apply algebra, geometry, number sense, and every other standard in the Common Core? The answer is "of course not", and a test like this would be infinitely more useful in evaluating master than the current nonsense that only manages to evaluate how well our students take tests.
Is there a good reason that we shouldn't accept programming courses for language credit? Or math credits? Or with a bit of creativity, health, English, or history credits? Here's a course description for a United States history course that would work quite nicely (and be an incredibly fun class to take and teach):
In this course, US101, you will learn the events that led to the US Civil War, beginning with colonization, moving through the development of industry and agriculture on the East Coast, and examining the effects of westward expansion and the idea of manifest destiny. In addition to readings, in-class lectures, and original research, you will complete the following three projects in the co-required computer science lab course, US101CS:
Model population growth and decline using Maple in the first 50 years of colonization, choosing to examine New England, the Mid-Atlantic, or the Southern Colonies
Create a choose-your-own-adventure game using HTML and JavaScript in which users see the results of choosing an industrial career in a major East Coast city or an agricultural path in Tennessee in the early 19th century
Create an interactive iPad app that teaches elementary school students about the development of agriculture in the South that perpetuated the perceived need for slaves.
I'm not a history teacher. I just made this up. The point is that a concerted effort on the part of teachers and curriculum stakeholders could bring us incredibly engaging curriculum that takes a 21st century approach to learning that is appropriate and adaptable for all students. It isn't rocket science, and it's barely computer science. Watch and share the video on Code.org and speak out on the really fundamental shift we need to make STEM more about the real world and less about paying lip service to teaching 21st century skills.
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
Employers can offer after-school internships
Existing programmers are already well-paid
The problem is that too few students are pursuing these fields. When I was in high school I took and aptitude test that told me I'd be a great computer programmer. I took similar test two more times before I graduated from college.
All three tests gave the same results - still I ignored those results. Finally, I was forced to learn to program a computer by way of an Astronomy course I encountered in Graduate School.
Outcome? I will have been an IT Professional for 33 years this coming May. Exposure to computer programming early and often is critical to improve these numbers.
Been gainfully employed in my chosen profession...
If there were a shortage, employers could not afford to be picky; a CS degree would be the ticket to almost instant employment (assuming the holder has any kind of work ethic), employers would be eager to train both new and existing staff, and salaries for experienced programmers would approach those for physicians and lawyers. None of that has happened.
Mind you, I'm all in favor of teaching programming in high school as an elective and firmly believe that programming is a useful skill for just about anyone who works with a computer, but as Baggins correctly notes, the primary mission of the public schools is not vocational training, but citizenship training.
The whole issue looks a lot like it's being pushed by employers who have come to regard a plentiful supply of cheap labor trained either at their own expense or the state's as a fundamental right.
Yeah, those statistics are ridiculous
Where do people GET these numbers? I've been in this field for thirty years, and it's been in steady decline all that time. Want to know why there are fewer students in CS than ten years ago? Why CS enrollments have plunged like a rock? The grapevine. Students have older siblings, uncles, cousins, who graduated ahead of them who are unemployed, that's why.
The work is shrinking because it's all cloud by now, because all the big projects are done, and maintenance takes two guys where it took a hundred to build, and the maintenance guys are all in (name of central city) do all the work for the whole company; and what little work there is gets offshored anyway.
Sure Facebook can't find enough of the type of engineers it wants. I'm sure Lady Gaga has trouble finding back-up musicians with the chops to perform for fifty thousand people, too. It doesn't mean normal people are needed.
Sure, learn to code. Why not learn Latin, too, while you're at it; a fine academic exercise, but it's not going to get you a job. Not any more.
I don't know where you live either
Today, without a colllege degree, ...
Point being...
Where DO you live?
Those jobs "in the cloud" need talented people too.
work hours, low pay for the work, lack of job security
Let's face it--you can't step into a system analyst job straight out of college. Years ago the path was CS degree, coder, analyst. Now most of the analysts are contractors and the coding is done offshore. And why would someone want to go into a field where they will be expected to work 70 hours a week with no real chance of advancement when they could get an MBA and make triple the salary and not have to constantly worry that their job might be offshored next week or next month?
not all programmers are created equal?
There are thousands and thousands of different software products in use across the US (let alone the entire world) and the potential variability for intermixing different (and different release versions of) programs, tools, systems, OSes, network products, storage products, etc. etc. etc. is mind-bogglingly complex. Your typical "help wanted" ad indicates you must have at least XX years experience in specific industry YY using these 5 specific versions of these 7 specific products, which there are maybe 2 or 3 companies in the entire world who have that exact mix of industry, products, & versions, so it is a relative impossibility to meet the posted job requiremnts coming in off the street.
So those companies run screaming to Congress (or whoever) explaining how they've had the 3 or 4 "simple" technical jobs vacant for 6 months, so you MUST expand the H1B visa program to entice foriegn skilled workers to come to the US.
The lie here is that those H1B workers have the skills their unemployed US counterparts do not. In fact, they don't have any more appropriate specific skills (don't get me wrong, they do tend to be reasonably educated and skilled, just saying they don't meet the very specific original requirements any better than the potential American applicants) and recruiting companies have been known to exaggerate (or outright lie about) the skills of the foriegn technicians, who then to do some emergency cramming to learn at least the basics of whatever 'required' skills they purportedly have.
It's all a big mess ... in most cases egregiously unrealistic expectations by the hiring company is exacerbated by the short-term profit mentality of business decision makers who completley lack any insight into the technical issues that need to be solved, and so they prefer to pay less for offshore "expertise" rather than take the time to develop knowledge and expertise within the local labor market which would provide far more benefit down the road whereas your offshore "experts" disappear after 18 months and there's absolutely no retention of skill or knowledge within your company. In fact, they usually are just giving foriegn competitors the expertise needed to take away business from them ... talk about shooting yourself in the foot.
Employers always aak for more than they need ...
This is the way life works. Those with the least seniority ...
Entry-level jobs in any field are designed for the young, single, just-out-of-college, go-getter who is willing to move to where the jobs are.
The only MBA making that kind of money ...
Nobody's hiring right out of college.
Want to know what's broke?
The relationship between industry and education.
Or, rather, the lack of any relationship at all. Colleges don't know what to teach in CS classes, and the industry isn't telling them.
And the result is an industry that doesn't trust that piece of paper known as a "degree." It's rapidly becoming worthless.
At one time, high school was a training ground for the work force ...
K-12 are not trade schools
So right
Cynical? Moi? Pas possible!
All that and schools (K12?) should be there to crush one's spirits, then offer the carrot that one might have talent in some area of life that one might wish to pursue, and that they will be there to help along the way. I knew I should have been a brewer!
Shortage of Programmers? Blame Corporate America.
This is a great article Chris!
This is a good piece, Chris.