Computer Science Enrollment is Going Down, and Taking Software Jobs With It

You’ve heard it before: there’s a massive shortage of IT workers in the US (the stats are a few years old, but pick your number: 600,000, 578,711, or 425,000 excess jobs). Whether you’ve read the articles or experienced it first-hand, there is a noticeable lack of qualified programmers in the U.S. According to the US Department of Labor, 8 of the 10 fastest growing occupations between 2000 and 2010 will be computer related.

With programmers making up the single largest category of IT workers (around 21%), and somewhere around 60% of software developers having a bachelor’s degrees, a good way to increase the supply of domestic software developers would be to enroll more Computer Science (CS) students.

Are you with me so far? CS enrollment up = more programmers in four years. Easy enough.

But this is where it gets grim: the number of students listing Computer Science as their probable major while entering college has dropped 60% over the past 4 years (you can see this graphically on the first page of this document).


Can you blame them? In 2000/2001 there were layoffs, offshoring, and decreasing pay scales. The reality is that hundreds of thousands of qualified candidates are still needed, but the temporary downturn in 2000/2001 and the dramatic portrayal by the press has left some people wondering if there will be enough computer jobs in the U.S. in five years. Couple this with the image that programmers are geeks that do nothing but sit at a computer all day and the picture becomes clearer; incoming freshman who might have chosen CS have turned their eyes to other majors.

Why We Should Care
So what? As demand rises and supply dwindles our rates will increase, right? It only makes it better for those of us who do have experience in the field.

To a point, yes. However, companies will not sit idly by and watch their profits dwindle because they are unable to find qualified people. They will turn to other avenues, such as increasing H1-B limits and offshoring development (cue ominous music), that have the potential to damage domestic job prospects in the long run. I don’t believe H1-B visas and offshoring are the force that will unravel the very fabric of reality that some make them out to be. But the bottom line is if companies are unable to find domestic developers, companies will find a way to function with or without them, and functioning without them is not good for any of us.

blue mouse

Secondly, on a selfish note, how many of us would kill to work with ultra-qualified, talented developers instead of whoever we can find that has a pulse and once wrote an Excel macro for a junior high class project? While dropping CS enrollment likely indicates that people entering the field are truly interested in CS, it is going to come full circle; people will eventually get hired, with or without degrees and regardless of how qualified they are, because companies will be desperate. And then we’ll be stuck working with folks who can’t find their text editor with two hands and an issue of Dr. Dobb’s Journal.

Given that we’d like to figure a way out of this mess, a good first step would be to graduate more CS students, which means encouraging more people to enroll as CS students. Here are a few approaches that each of us, as software developers, can take that might encourage incoming college students to entertain the idea of enrolling in Computer Science.

Approach #1: Dispel the Myths
From a paper titled Why Students with an Apparent Aptitude for Computer Science Don’t Choose to Major in Computer Science (PDF):

“Most students who gave a description of Computer Science saw it as programming or advanced computer use and were rejecting it because they did not desire to sit in front of a computer all day. The educated student would learn that many aspects of Computer Science require significant people interaction. Along with those listed in the previous paragraph, computers are used for special effects in movies, to improve the quality of life for people with missing limbs, and for allowing communication for people with speech impediments …”

Tim Sherwood, a professor at UC Santa Barbara, talks from his experience:

“… the image of the computer scientist that most people have is one that sits in front of a monitor all day, never interacts with people, codes on some painfully uninteresting and unimportant problem all day (not that they even know what coding is), and are generally geeky, boring people. Clearly such jobs exist, but that is certainly not what gets me out of bed every morning.”

cell phone

To this, he added:

“… [the] human side of the equation is not understood to people outside the field … they think we’re all Monty Python quoting, Star Trek loving, Cheetos eating, caffeine addicted, girlfriendless freaks … when in fact most CS people barely eat any Cheetos.”

Myths abound … let’s get cracking on sharing the good news about what we really do (a good example from Sherwood’s course description):

“Solving real world problems with computers requires more than just pounding out code as fast as you can type. Just like directors, composers, and architects, a computer scientist needs to know how the low-level parts work but finds an intellectual challenge in how these parts can be assembled together into useful and beautiful compositions. It just happens that in Computer Science our compositions are often solutions to previously unsolvable problems. No wonder CNN/Money Magazine gave Software Engineers an A for their ability to be creative in their jobs; inventions permeate all levels of Computer Science!

You could end up working on self-adapting wireless networks that span the globe, designing systems that recognize your gestures and moods, pushing the frontiers of science and health, building online communities that seamlessly connect millions of users, designing and programming games and entertainment, or constructing systems like Google Search that serve the needs of billions of people across the world in a fraction of a second …”

Pass it on.

Approach #2: Show the Steak, Not the Slaughterhouse
No one cares that you architected an event-based interaction model for controlling page-flow. Especially someone who’s trying to figure out which major to choose.

Software is responsible for MySpace, iTunes, YouTube, and SecondLife; this is what the youth need to hear about. The next time your nephew asks you what you do for a living, don’t say “I write software.” That is the fastest way to kill a conversation.

Instead, say what I started saying about 6 months ago: “I write the software that makes websites work. Have you used MySpace or YouTube? I didn’t build those, but that’s the kind of stuff I do. Someone else does the graphic design and then I write code that makes everything work.” That has elicited more “cools” and “awesomes” in a week than “I write software” received in seven years.


Telling friends and relatives that you “deployed a new Ruby on Rails site last week using a brilliant new database architecture” is like reading them a page from your epic, unpublished novel about the mating habits of flying mammals. But telling them “I launched a new site that helps people upload photos and chat with other photo enthusiasts” might get you a few more questions. Unless, of course, you actually wrote an ASP.NET invoicing system. In that case, lie.

In Motivating Programming: using storytelling to make computer programming attractive to more middle school girls (PDF), the author compares “a storytelling-based approach to programming with a more traditional approach to programming using the Alice system” (a system that lets people build 3-D interactive worlds). She hypothesizes that by teaching girls how to program using a storytelling medium, they will more likely enjoy it and have a higher opinion of Computer Science.

From the paper:

“There is some early evidence that an emphasis on interesting end-goals may help increase the enrollment of women in computer science courses: researchers at Georgia Tech have created an introductory programming course for non-CS majors that emphasizes the use of programming to manipulate digital media; the class is 2/3 female.”

Things to Come

Approach #3: Stress the Positives
Writing software allows me to work from home and live anywhere in the world that has internet access. It allows me to make quite a bit of money, and to look forward to getting up in the morning. Once someone believes that your career comes with a fantastic salary, mobility, non-stop fun, and awesome SWAG, they’ll be asking where they can sign up.

Approach #4: Make Programming Cool Again
If you look at the two peaks in the enrollment curve you’ll notice they happened around 1982 and 1999, at the height of the PC and internet booms.

In recorded history, it has never been cooler to be a techie than at those times. The allure of money and popularity was so great that everyone wanted to be “in,” and for many “in” meant being a programmer. As a result CS enrollment was sky high.

How can we make programming cool again? By building software that runs well, is easy to use, and that millions of people (or even just a few hundred) use on a daily basis. Making software the lifeblood of our companies and of our world is the surest way to ensure we have jobs well into the next boom.

If you liked this article you’ll also like my article Software Training Sucks: Why We Need to Roll it Back 1,000 Years.

Thanks to Tim Sherwood and Mike Taber for reading drafts of this article, and special thanks to Tim for the idea.

[tags]computer science, jobs, programming[/tags]

Start Small, Get Big
Growth Secrets for Self-Funded Startups. It'll Change Your Life.
What you get for signing up:
  • A 170-page ebook collecting my best startup articles from the past 5 years
  • Previously unpublished startup-related screencasts
  • Exclusive revenue-growing techniques I don't publish on this blog
"The ideas and information Rob provides should be required reading for anyone that wants to create a successful business on the web." ~ Jeff Lewis
Startups for the Rest of Us...
If you're trying to grow your startup you've come to the right place. I'm a serial web entrepreneur here to share what I've learned in my 11 years as a self-funded startup founder. Luckily several thousand people have decided to stick around and join the conversation.

For more on why you should read this blog, go here.


#1 Chodeo on 06.28.07 at 4:18 pm

Hmmm… I think I disagree with your assessment that increase CS enrollement would benefit engineers in the field. Personally, I really enjoy the job market being tight. Until off shore firms figure out a virtual way to sit down with a client at a white board and diagram their business process, or how to take their client out to a virtual pub for a virtual beer, I am not at all concerned with the off shore thing.

#2 http:// on 06.28.07 at 4:31 pm

I think these fears are ridiculous: . More people are sophisticated computer users than ever before. Recent data from Pew suggests that the majority of teenagers have built web sites. . Encouraging majoring in CS at University, especially to serve the labor market, is just advocating vocational training. If more people get a liberal arts education, I doubt the world will be worse off. . Most fields now, like linguistics, biology, physics and so forth require sophisticated computer programming skills in subdisciplines. So people are getting training in advanced programming, just not in the CS department.

#3 http:// on 06.28.07 at 4:34 pm

The problem is not just that there are fewer computer science majors. I was a CS major during the height of the dot com boom, from 1998-2001. There were 600 undergrads in the CS program. There were quite a few good programmers though I imagine a lot of them would have been in the program anyway. There were quite a few mediocre ones drawn in by the lure of being a dot com millionaire. And most of them were just dreaming of riches and figured “I know how to type already, how hard could the rest of it be?” The worst part, it was a state school running a Java certification shop. I think the real problem is not the lack of CS students exactly. It is the US’s lack of quality education in our public schools. Other than in really rich school districts, High Schools are little more than diploma factories(again, I am a product of one of those diploma factories) while I met international students while in college who had received better educations in High School than I was getting in college and these were people that traveled halfway around the world to go to a state school(imagine the ones that are in MIT, etc). It is not unfair immigration policies that are hurting American programmers, it is the fact that with America’s mediocre education system that they never had a chance to begin with. Fair or not, the immigration policies are necessary for American companies to survive in the global economy.

#4 http:// on 06.28.07 at 4:45 pm

You’re grasp of cause and effect isn’t too good. I’m a very experienced programmer/architect/manager. I’m unemployed. I’ve been at this since 1990. During the 90’s I saw my salary climb steadily. Since 2002, it has been in decline almost as fast. The reason for this is loss of bargaining power. I’m being asked to do more for less and if I don’t knuckle under and do it, then the company will cry ‘labor shortage’ and lobby for another H1B who will work for the peanuts they are offering. With such a setup, why would anyone enter the field? The US Government is helping your adversary by undermining your bargaining position. The reason I’m not working is that I’m not going to take the pay cuts being offered. Screw ’em. Last time I got an offer and produced my requirements I got back “Oh no, that’s a CEO’s salary” Well I hope you CEO can write software then because I’m not gonna. The answer is not more students. More US developers will reduce the H1Bs at the expense of the salaries of the current labor pool. Either way, the true free market effect – lower supplies means higher prices – is being negated by your congressmen. The current immigration bill has a lovely clause that will double the H1B visa allocation again and screw you even more. Be sure to write and tell them how you feel.

#5 http:// on 06.28.07 at 4:53 pm

“Fair or not, the immigration policies are necessary for American companies to survive in the global economy.” This is a myth – usually repeated by H1B visa holders. I know a dozen really stellar US developers who don’t write software anymore. They make furniture, sell stuff, opened restaurants, etc… Know why? Because the companies aren’t offering decent wages for top talent anymore. The wages are continuing to shrink and when workers push back and say – I’m working for that, the employers go cry that there is a labor shortage and demand more H1B visas.

#6 http:// on 06.28.07 at 9:51 pm

Working in IT requires people to: 1) Work long hours. possibly weekends (My max is 40 hours without sleep and the senior manager involved still wanted me to stay a bit longer) 2) Be on call sometimes 24x7x365 and get woken up on Sunday at 5am. Yep the wife loved that. No the boss did not want to pay me overtime. 3) Continuously learning (hard won skills costing $1000s from a few years ago are worthless – Yes I am a Master Novell CNE in 2.2, 3.12 and 4 but no one will hire me for these skills) And what do you get in 20 years time when you are a burnt out wreck? Do you get respect like doctors, accountants, laywers or even plumbers? No, you get outsourced or worse replaced by a 16 year old know it all, who has leant the latest fad and is willing to work harder than you for a lot less cash and considers you to be a dinosaur. And then they wonder why no one wants to go into the industry? If I was 20 again (I am almost 40) I would be going into anything BUT IT. Prospective IT people: YOU HAVE BEEN WARNED.

#7 http:// on 06.28.07 at 10:00 pm

Saying CS degree is going to be “fun” and “interesting” and going to work on “cool stuff” is not accurate at all. Thats like saying being an actor is always exciting. That is simple not the case; obviously Brad Pitt has a great time acting but most actors play small dull roles. Just like Most CS people work in very very very boring projects. Every single programmer I know works in a cubicle. With long hours and do make a decent living. But if they were lawyers or part of managment they would make a lot more money. Why do we (Americans) need more CS people? Let the Pakistanis replace us I dont see any problem with that. I mean we dont have enough American Gardners and we are doing just fine with our imported help.

#8 http:// on 06.28.07 at 10:11 pm

Its a real shame that many of us developers are still treated like crap by the business side of the industry. Its hard to convince people to develop software when we are still treated as expendable.

#9 Jonas Gorauskas on 06.28.07 at 11:04 pm

Here is a thought: Compare the numbers of students graduating with a CS degree against those graduating with degrees in Math, Physics, Chemestry, Engineering disciplines, or even in the Social Sciences for that matter. Chances are that you are going to find a lot more Math and Science degrees doing software development then you will find CS degrees doing development. I have a degree in English and I am a Operations Engineer at Microsoft. This positions is very technically challenging and requires a lot of scripting skills. Why do you have to limit the candidate pool to CS degrees?

#10 http:// on 06.29.07 at 8:28 am

Quote: “You could end up […] constructing systems like Google Search that serve the needs of billions of people across the world in a fraction of a second…” Yes. Or you could work for some big hydrocephalous company optimizing their business workflows in ridiculously over-complicated and under-documented applications where each and every change takes a month to be agreed upon. Or you could work on shitty legacy codebases that are a nightmare to maintain. Or you could repetitively run SQL scripts to generate Excel sheets for business representatives. Or you will be ordered to use XSLT for data processing when a Perl five-liner would be sufficient. Or you will be begging for modern tools like CVS and a current version of your language’s runtime, only to be told that the old stuff has always worked and there’s no need to experiment with anything new. Or you will be patronized by people with less technical understanding, but higher up in the food chain. Or you will have to write the same old CRUD applications over and over again because of spec changes that somehow manage to overthrow all existing data models. Or you will run day-long database imports only to find that the special characters have been corrupted. What’s more likely? Read There’s the real world. There’s the code you have to work with. There’s the managerial structure you have to fit in. Good luck.

#11 Frank Kelly on 06.29.07 at 3:02 pm

We need to make CS look really sexy – get a bunch of big Tech companies together – have them pay Paris Hilton $1 Billion to marry a big-time CS geek. They’ll probably need to release a video a la Pamela Anderson and whatshisname – just focusing on Paris of course. Then watch enrollment skyrocket!

#12 http:// on 07.11.07 at 4:03 pm

If you want to get more CS students then the subject matter should be introduced to students at a much earlier age at school (just like English, Maths, Sciences, History etc are). I didn’t study CS at all until I did my CS degree and I graduated in 1998. By the time your 18 to introduce CS is just too late. You either love or hate CS by then (or what ever you think it is!). Personally I don’t think more CS graduates is gonna benefit me as a software developer. And I’m not bothered about off shore companies doing my job. In my experience the project goes tits up because they are rarely properly managed.

#13 http:// on 07.17.07 at 9:39 pm

Wow. There are so many problems with the logic in this article, that I can’t even pick that I don’t even know where to start. * First, the “massive shortage of IT workers” barely qualifies as a shortage, and certainly isn’t “Massive!” How many IT workers over the age of 30 are there in your company? If there’s a labor shortage, it isn’t due to a lack of qualified candidates. The IT/software industry has higher turnover and burnout rates than your average McDonald’s. More CS graduates will do nothing to help the root issue – in fact it will almost certainly make it worse because it will give companies even more young bodies to burn through before having to deal with a *real* labor shortage. * Also regarding the so-called “labor shortage” there is the issue of company expectations. If you actually read the sources you cited at the start of your article, you’ll see what IT workers already know: it’s not that there aren’t enough qualified candidates, the problem is unrealistic company expectations. How do they expect to fill jobs with requirements like “10 years of industry experience with a minimum 7 yrs as a lead developer on financial applications using C++, Java/J2EE, PHP, Perl, COM/COM+ and .NET/C#, ASP/ASP.NET, Oracle, SQL Server, and My SQL. Please do not apply unless you possess ALL of the required skills.” Kung Foo and molecular biology are optional but a real plus! By the way, the above was a listing for a job in San Diego, paying $75-90,000 DOE, which will just about pay for gas in Southern California. Need I say more? * CS degrees do not make good programmers. The programmers who I have worked with who didn’t have CS degrees generally aren’t the super-genius-types working at Google, but most are among the best in the field because they are passionate about computers and programming. For the majority of programming jobs out there, an expensive, four year CS course offers little that can’t be picked up in the first 3-6 months as a junior programmer. I can think of several more points, but I’m getting tired. In summary, I actively discourage people from getting into IT at all unless they’re really passionate about it and are fully aware of the hell they’re going to get into. And I absolutely discourage them from getting a CS degree, even if they’re super geniuses and want to work for Google some day. They’d be better served getting a useful degree in something like math, art or science and picking up the odd credit for Compilers 101 or whatever interests them.

#14 http:// on 07.17.07 at 10:20 pm

The first article you linked to has a quote highlighted in red about half-way down that sums up the “IT labor shortage” nicely: “(The ITAA study is) very misleading. If I can’t find a chef at the wage I’d like, it doesn’t mean there’s a shortage of chefs.” My bet is that if you do some digging, you’ll find that the people doing the ITAA research are probably connected to some lobbying group in favor of H-1Bs, outsourcing, or some other self-serving interest group trying to legislate it’s problems away. They certainly aren’t just doing this research for the public good… Some other good quotes from that article: “By studying a database of college graduate surveys, he found that only 19 percent of computer science grads are still in that field 20 years later–compared with 52 percent of civil engineers.” “Cappelli has cited Matloff’s research on IT attrition, and argues that employers are largely to blame for the problem. The industry has managed technology professionals woefully, Cappelli says, adding that IT work is often broken up into small, disconnected projects that result in a lousy work experience. ‘This approach to work organization violates basic principles of job design by creating narrow tasks where workers cannot tell what the overall goal is,’ he wrote in his paper.” “The “Bouncing Back” study itself points to a culture of poor techie retention.”

#15 Rob Walling on 07.18.07 at 1:35 am

Jacob, here are my responses to a few of your comment: >First, the “massive shortage of IT workers” >barely qualifies as a shortage, and certainly >isn’t “Massive!” On what are you basing this? >The IT/software industry has higher turnover >and burnout rates than your average >McDonald’s. Obviously you’re joking here, but I’ve never seen an actual number given to software burnout. Turnover is not a fair number, since many people leave for greener pastures as opposed to having a crappy job. >If you actually read the sources you cited at >the start of your article, you’ll see what IT >workers already know: it’s not that there >aren’t enough qualified candidates, the >problem is unrealistic company expectations. I’ll give you partial credit on this one — company expectations do play a large role in inflating the shortage. But let’s be honest, there is a shortage out there. Anyone who has looked for halfway decent developers knows this. >CS degrees do not make good programmers. 60% of CS majors become programmers. We need more programmers. More CS majors = more programmers. >The programmers who I have worked with who >didn’t have CS degrees generally aren’t the >super-genius-types working at Google, but most >are among the best in the field because they >are passionate about computers and >programming. Everyone has an anecdote about the smart guy they know who taught himself to program with nothing more than a thumbtack and a 9-volt battery, but the fact is that broad numbers don’t lie. I’ve known a lot of good programmers, some of whom had CS degrees and others who didn’t. The bottom line is that the majority of programmers have CS degrees. This is virtually indisputable. >For the majority of programming jobs out >there, an expensive, four year CS course >offers little that can’t be picked up in the >first 3-6 months as a junior programmer. If you read my article here: /Advice_on_How_to_Become_a_Programmer.aspx you’ll notice I don’t tout CS degrees as the end-all be-all for software developers. There are many other ways to become a developer, and a good one at that. However, we’re trying to solve a problem, and one possible approach to solving that problem is to encourage more people to enter our field through the CS gates.

#16 http:// on 07.31.07 at 3:08 am

The articles you cite for the number of “IT worker” jobs to be filled come from 2002, and possibly 2001. Has anything at all changed in the industry from 2001/2002 to 2007? Hmmm, I cannot think of anything, so let’s just stick with five year old data, shall we? The definition of IT worker turns out to be what ever anyone wants it to be. Indeed, the ITAA’s original estimate of 10 million IT workers in the US used a job classification so broad that it included cable modem installers, DSL line installers, and even operators of computer-controlled photocopy machines! At the peak of the dot bombs, the ITAA created their own study claiming there was a demand for 1.6 million new jobs to be filled. This claim was obviously bogus – the entire US was estimated to create a total of 2 million new jobs that year, meaning that 80% of all new jobs would have been IT jobs! A hilarious claim on its face! The ITAA estimated that 1.2 million IT workers would quit their jobs and go to another one, and that there would be 400,000 actual new jobs. The media, as usual, misread the ITAA study and ran with the sum: 1.6 million. Subsequent years showed there never was 400,000 new jobs – it was about half that number in the peak year of job growth. Now, Bob, citing 2002 era “IT worker” data, has confused “IT worker” with software engineer. Computer Science degrees (as well as several engineering, physics and math degrees, plus MIS/information systems degrees) are used to fill actual programming jobs. “IT workers” (using your 2002 data) includes tech support, network administrators and other categories that do not require a 4 year degree in any subject. It is certainly true that college students have made decisions of their own free will not to pursue CS anymore. 100% of the college students I have spoken with (and I’ve taught university courses so I’ve spoken with many of them) are well aware of the impacts of offshoring and H-1B inshoring. Quite a few would like to find a career in software development but are justifiably terrified of short careers or falling salaries or both due to an influx of imported labor from India and China, especially. These are not dumb students – to the contrary, they see better opportunities in other fields, including business/marketing, entrepreneurship, other fields of engineering, law and health care. To address demand for software developers, it would be helpful to start with contemporary numbers and talk to today’s students to find out why they are choosing careers with stable employment opportunities. Perhaps its because they are pretty smart after all.

#17 http:// on 08.16.07 at 3:14 pm

One problem is that your link for the graph illustrating the drop in CS students is broken. Other than that, this article has been very helpful to me, I’m currently a CS major who has been assigned the very trying task of writing a paper about why outsourcing isn’t a threat to CS majors, your article has a lot of useful information to run with. Thanks! (It also made me feel much better about being a CS major!)

#18 admin on 08.16.07 at 6:35 pm

Thanks for the heads up on the dead link. It’s been fixed.