The Continuing American Decline in CS
abb_road writes "America's recent dismal showing in the ACM Programming finals may be more than just a bad year; a BusinessWeek article suggests that the loss is indicative of the US's continuing decline in producing computer scientists. Despite the Labor Dept's forecast of a 40% increase in 'computer/math scientist' jobs, planned CS enrollments have plummeted from 3.7% in 2000 to just 1.1% last year. Other countries, particularly China, India and Eastern Europe, are working hard to pick up the slack, with potentially serious long-term effects for the US economy. From the article: 'If our talent base weakens, our lead in technology, business, and economics will fade faster than any of us can imagine.'"
More demand for me! I'm raising my rates!
Never go to sea with two chronometers; take one or three.
Counterstrike is old.
I graduated in 2000 when life was sweet for Computer Science majors. When the bubble burst, there was a false impression that computer related fields were doomed. I always found that amusing because our whole society is based on technology and will always need people to run it. Media reports and articles on websites like this didn't help either. They gave the impression that Computer Science wasgoing the way of the dinosaur when it truly was healthy.
http://religiousfreaks.com/This is just more of the H1B lobbying to raise the cap on IT staff which is wanted to keep the price of IT staff depressed.
If you look in USA, everywhere but the Valley has an oversupply of IT people, my own employer just recruited a load of experienced staff in Portland, many excellent programmers too.
ACM contest is fun but that doesn't mean that the winners are the world's best CS people. Nope.
I majored in computer science, but I don't feel comfortable entering it as a career field. I spent five years in the military, so I am not as cutting edge as I should be, not to mention a complete lack of experience despite being 27 years old. I buy books and keep up with things well enough to be a good hobbiest, but it is rough being in the tech world post-boom. I will go to law school, and hopefully provide a much needed technical viewpoint to the legal system that is currently strangling technological innovation in this country. I think some of the first things that law makers could do would be to reduce restrictions on people who want to study technology, such as the DMCA. As long as India and China can provide competent coders for less money, we will continue to lose jobs. That is part of globilization, and is no different than factory workers losing theirs in the last century. The key is to find the jobs that Americans can do for less opportunity costs, or that other countries can not do at all yet. Globilization is a good thing overall, as the standard of living will rise throughout the world, but it is very painful now, especially for people in the computer industry.
http://bgcommonsense.blogspot.com
*Of course, this is assuming that the U.S. has an actual shortage and the study isn't some ploy to get cheap code-monkey labor for Microsoft, Intel, et. al. I'll let my fellow slashdotters belabor that point.
It can't be both that the programming field is in danger because we're outsourcing all our programming work, leading to no jobs for programmers, AND be that we're in danger of not having enough new programmers.
1. People still smarting from the tech-bubble popping? Check.
2. New home machines much less accessible to proto-hackers than machines like the C64? Check.
3. Popular culture that denigrates "geeks" and "nerds" and makes it a social crime to get A's? Check.
And people are confused about a decline in the number of student engineers?
Clear, Dark Skies
As a graduating computer science student (and long time professional), I was interviewed on this topic by George Mason University's student newspaper. I also wrote a little piece of my own on the declining number of CS students:
I have two perspectives on this -- one, as a veteran software engineer, and two as a computer science student.
I chose computer science because it seemed to make sense, given my job as a software engineer. However, many years of interviewing and hiring have shown me that a computer science degree is not necessarily going to be of any use to a software engineer. The position "software engineer" could mean any number of things. At my company, it requires a wide domain knowledge of different applications, almost none of which are addressed in GMU's computer science program. The computer science program teaches programming at the most rudimentary level, and is not even remotely adequate for a job that requires programming. However, a computer science degree does introduce important concepts that are necessary for understanding the underlying principles of working with computers (even if it isn't presented that way), and also teaches logic and problem solving, which are fundamental to any technical job.
As far as students not choosing computer science, I think there are a number of reasons. At GMU (and my previous university) I used to hear all the time, "oh, there's too much math required for a degree in computer science, I'm switching to a degree in information technology or business information systems, because there's not as much math." Also, when the Internet "bubble" burst, I think a stigma developed, where people don't think they'll be able to find a job in the computer industry when they graduate, or that they won't be able to get the kind of pay that they would like, or have job security.
I think it's a sweeping generalization to say that the US is lacking computer science students. What the US is lacking is individuals who are sincerely interested in developing their technical skills and solving interesting problems for their own sake, rather than people who are trying to find the easiest way into a high paying position that they care very little about -- having worked with both, I'd choose a British Literature major who does programming on her own, just for fun, over a Computer Science major who hates computers, but just wants a high paying job.
--brian
I think this is a direct result of our colleges encouraging mediocrity and making it very difficult for advanced students to, well, "advance". Colleges are built around helping out the most mediocre students get a passing grade, and just letting the gifted students learn on their own. It is the same thing that happens in our high schools.
My girlfriend is just finishing her degree in Education, and it is horrible just how bad it has gotten. They have dozens of programs designed to helping out disadvantaged children and poor performing students, while the gifted students are left to their own devices. My boss is from Europe, and their schools (at least in Sweden in the 1980s) encourage their best and brightest. The gifted students are the ones that are going to make the biggest difference in the workplace, while the struggling students are simply going to fill up the jobs that dont take much skill.
If we want to keep up in a technologically advanced world, we have to start caring about our gifted students, not just helping the below average ones pass school.
--
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
As a student at a major university (the University of Michigan), I must say that our CS department is extremely lacking. Computer Science must be taken either in the form of Electrical Engineering and Computer Science (EECS) - where CS is combined with EE (lots of useless info) or through the School of Literature Science and Arts (LSA) where the CS program is more direct, but students are required to take the EECS classes. One of the biggest problems is the use of the most basic programming class as a 'weeder' class instead of an actual learning tool. The class is made excessively difficult to weed out students (even though the students may simply take more time that 2 weeks to get acclimated to programming). The problem might be with curricula.
I studied CS in college and got my BA. I got out school and was immediately bombarded with hundreds of requests for 3-6 month, low-paying contractual positions for programming/systems administration/etc. What wasn't being offshored was being outsourced at ridiculous levels. I took a look around and realized the only people with truly stable positions were IT management. I talked to others and they agreed. So I went back for my MBA. When I graduate I'm going to be looking to leave the programming/administration side entirely.
When you're faced with poor, unstable job prospects and declining salaries due to offshore competition, what do you EXPECT us to do? The smart ones are realizing management (unfortunately) is the way to go. The rest will wither and die, unfortunately.
Computer Science != Software Engineering. CS is more research oriented, basically an applied math degree. CIS, IS, Information Management and Software Engineering are more where your day-to-day programmers should be coming from. Unless they are lumping these areas under CS then the statistics may be meaningless. Are we looking for researchers or people who will apply the technology?
Stalin said "Quantity has a quality all its own", which may have been valid in an industrial economy. What is not apparent is whether it is valid in a service economy. I strongly suspect, and some of the numbers I have heard about the best programmers being 10x more productive than the average programmer reinforces this, is that it is not valid to use an industrial paradigm in a service industry. But I think most managers, political leaders, economists and average Joes just don't get this. Too often projects fail beacuse to save money the work is given to the lowest common denominator in programmers and managers. Whether in-house, out-sourced or off-shored. And make no doubt about it, software is a service industry.
Finally I say, good riddance. This is as good a way to filter out the riff-raff as any. Let those who love the field be the ones who enter it and stay in. They are the ones more likely to develop the tools needed for the next generation of development, both in terms of process paradigms as well as actual software tools.
putting the 'B' in LGBTQ+
It's certainly never been "cool" to be a programmer, but for a while there it looked like that was the way to go to earn massive $$$. Dot Com crazyness was in full swing and many of the students who would normally get MBAs tried the CS route instead in the hopes of getting some of that fat venture capital and possibly ride the bubble.
Those days are over (for now) and those students have gone back to pre-law or MBA courses. Also, the fact of the matter is that in a CS cirriculum (like engineering), you're going to work twice as long as your English/History/MBA friends who are always out partying and never seem to study. You'll be taking the "hard" math courses while they're learning how to draw graphs incorrectly in Economics. They'll have plenty of time for shmoozing with girls while you work on two projects until late in the night. When you graduate, they may very well make more money than you (or they'll end up broke and living with their parents, depending on how good their network is by the time they get out of college).
On the other hand, you'll be creating something that will be useful to people. Those guys will often only manufacture bullshit for the rest of their life.
I read the internet for the articles.
You have the wrong perspective on the education. CS is applied logic and mathematics. Read this carefully changed copy of your post if you don't understand:
"Because the field is undefined. What is a mathematician? What do they do after they graduate?
I earn my paycheck doing accounting, in all that encompasses. I went to college for a year and half before I realized that the education I was getting wasn't going to prepare me for my chosen profession.
The schools get math majors ready to be theorists ( bad ones at that ). That's it. There is a huge gap between what the schools teach and what businesses need from their accounting personel.
I'm more valuable now than I would have been had I stuck around and graduated."
Now, you can't teach problem solving, but it's hoped after 4 years in school you have some idea of how to be useful. Learning technical trivia is easy; anyone can do it. It doesn't take a genius to change an oil any more than it takes a genius to administrate a small network. However, understanding the deeper concepts (CSMA/CD!) and other principles is very useful if you are a computer scientist.
The difference between a degree and a certificate from a trade school is exactly what you mentioned; people go to a trade school to learn how to do 1 job. People go to University to learn how to solve a superset of problems, which they can apply to any job they want from a particular perspective. I can attack problems of compiler theory, networks, operating systems, programming language theory, etc, because I'm well grounded in the theory behind these concepts, and have experience (both in class and with jobs and projects I've worked on around school).
In 20 years, the tools you use will have changed dozens of times. In 20 years, Dijkstra's algorithm for finding the shortest path on a network will likely be just as useful for link-state routing models as it is now. So your final sentence, "I'm more valuable now than I would have been had I stuck around and graduated." is probably wrong, because you didn't understand why the education was useful. Maybe you weren't cut out for it, or maybe you just wanted money now. That's ok. Just don't preach it like it's the gospel truth on Slashdot.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
Damn, where do you live? Im thinking of moving my company to your town if people actually only expect to make $20k a year doing programming work. We pay between $30k-$40k for relatively inexperienced programmers, and that is in a small town of about 30,000 people where you can buy a big house for $200k. I worked for $21k for about a year while my friend and I were starting up the company, but that was only because of the growth potential of the company we started.
You can surely make alot more than $25k if you really looked. For gods sake just find some kind of niche software, program it yourself in your spare time, and start selling it online. That is what I did, and I do not think that I am a rare genius. I didnt even have much freetime, but you can make $25k working part time at a factory while you are doing it.
Only people with no motivation or no skill make $25k a year for any extended period of time. You claim you have the skill, so it must be a lacking in motivation.
--
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke