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.'"
This is your boss, I demand that you lower your rates or I'll hire less-expensive overseas developers.
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/In the US, we are motivated by one thing - Money.
If CS Majors made as much as doctors or lawyers, more people would take math and Computer science courses.
Because the field is undefined. What is a computer scientist? What do they do after they graduate?
I earn my paycheck doing network admin, 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 CS majors ready to be programmers ( bad ones at that ). That's it. There is a huge gap between what the schools teach and what businesses need from their computer personel.
I'm more valuable now than I would have been had I stuck around and graduated.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
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.
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.
As a long-time computer professional and contractor, when I went to grad school to get a masters in computer science, the tax law gave me no break whatsoever. I cannot deduct my tuition as a business expense. On the other hand, if I took some vendor-specific courses from Cisco or Microsoft, I could take a business deduction. How messed up is that?
It also seems that there are not very many Americans in my CS courses either, but there are many students from China and India. Does anyone have any comments on the fact that China and India sponsor education in their countries, whereas we in the US barely support it?
Let's see if we can figure this out. American kids aren't going into CS -- why? Perhaps because:
Did I leave anything out?
GetOuttaMySpace - The Anti-Social Network
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
Who in their right mind would enter a computer science course today, knowing that innovation is not rewarded any longer, but legal paperwork is? The shift from spending money on R&D to spending money on IP attornies that started en-masse around the time of the dot-com crash is one of the main causes for lack of interest in hard-core Computer Science.
Seriously... I did CompSci in 1980, but today I'd much sooner go for a career in IP law. Better security, more money, nicer cars.
Kill software patents, and the spirit of innovation may come back. But it may also be too late. It takes a full generation (25 years, or more) for a strong IT culture to grow and flourish.
If a CEO makes $147,000 per day, well that's market forces. If technical people start to break into 6 figures annually, well that's a threat to our global competitiveness which must be remedied.
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.
That'll be a good first start.
If I were going to college and I saw a glut of underpaid foreign workers holding H1-B visas, I'd think twice about CS.
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+
...I am sure it will be said in this thread many times, but I bears saying for reinforcement, just incase some corporate type actually sees the thread.
Its damn simple why go into CS when most CS jobs are getting outsourced/offshored for cheaper rates. This is causing a Glut of talent in the market and cuasing the rates that a company will pay for CS talent to go down. It sucks as a job course in life.
If US companies cut the crap and word gets out that they are willing to pay for talented CS people at decent rates and the workers don't have to be concerned with having the job cut out from underthem, then the enrolements will go up.
Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
I don't want to argue about whether the perception is true or not, but rather how the preception affects the issue. From what I have heard (anecdotal eveidence, but we all have it) many people in th US are shunning CS because the perception is that you won't be able to get a job. As I said, I am not arguing reality, just perception. A lot of people assume that you will maybe get a job for a couple years before you have to train your replacement in a third world country who will make $2 an hour.
I would solve this by making companies show that there are NO Americans at all who can do the job before getting an H1B. Also, I would love to see companies that are shipping jobs away boycotted.
And All I Ask is a Tall Ship And a Star to Steer Her By
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.
ACM contest is fun but that doesn't mean that the winners are the world's best CS people.
:)
Certainly true, but then again, that could also be said about almost all other such and similar competitions. Nevertheless, trying to discredit those people by simply stating that "we didn't go there to compete, but to have fun" is just silly, to say the least. If you go to a competition without the wish to win, you shouldn't be there, do something more fun, or someting more productive. At the end, they were who won the competition, and whatever you say, after the race all it counts is who came out winning.
Prior to highschool (yes, before highschool) I also was at some local, even regional programming contests, and we had to solve quite good and challenging - now thinking back to them - problems in a few hours. Even when I knew that I won't be able to solve one in time, I tried to come up with some tricky solutions. It was fun, even if some other way of fun than your fun
All in all, these contests have nothing to do with real life problems or with real life work, or whatever. Still, quick problem solution and a special algorithmic and mathematical (and combined) way of thinking can be very useful in both (i.e. real life and these competitions). Neither winning nor loosing such competitions means much in the real world, still, it can be a measure. And this is for college students, which means those that can find their fun in such coding, they will have fun. The rest can find their fun time someplace else.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
Thank you...this was my thinking exactly. After the past 4+ years or so of hype AND actual practice of off-shoring of IT jobs...young students are seeing and perceiving that this is a lot of work and study, just to get a job with pay that is lowering, and a market that is tightening? Who can blame them? If you love computers, it isn't like you can't still play with them as a hobby, but, make a living some other way. For years the companies have been preaching that the code monkey jobs are going overseas to low wage computer 'sweat shops', but, the managerial and oversite jobs will stay in the US. Well, guess what? Students tend to listen to things like that. People are naturally going to go where the money is. If I were a student...I'd certainly be looking for what I could make a good living at see what interested me in that field...and work towards that goal.
The one good thing out of this is....rates for current IT workers should improve. The downside is...that major corporations will argue there is a shortage of US workers...and we NEED more H1-B visas, and maybe train some illegal-immigrants to improve their lot...and flood the US mkt. with cheap labor...and drive down the wages again. The problem is...the corps have the money to buy this policy, and unfortunately the govt. isn't representative of the people any longer, but, of the corp. with the biggest contribution.
Light travels faster than sound. This is why some people appear bright until you hear them speak.........
I look at the garbage that passes for entertainment and I can't help but think how stupid we've become. I look at how everything in our lives gravitate around the pursuit of pleasure and think how lazy we've become. People can't even be bothered to use their turn signals anymore - why should we expect them to want to understand anything technical? I look at how people vote ("Bush says he's a christian - that's all I need to know when I go to the polls") and I wonder why we go out of our way not to have to think. I watch the news and the top story is continually about how much we're paying for gas and say "Damn straight!" and then piss and moan about how much it costs to drive our SUV's to work.
If we can't be bothered to do difficult things then we deserve to lose the rewards that difficult things reap. Now watch as the "Move to France then!" rebuttals start pouring in - underscoring the whole point of my post.
The job market seems to be fine here in Columbus, Ohio. I graduate from OSU this spring, and I've had three job offers (with a solid salary for around here) and more interviews that I had to turn down already. My fiancee, who will also graduate this spring in CSE, has had the same experience.
We're both solid programmers and/or computer scientists, but I don't think anyone talking in this forum is complaining about a lack of jobs for crappy graduates - although, perhaps, that *is* what this is really about. I don't care what the job market is, someone with the ability to succeed will, in something.
Now... whether this job I'm taking will still be around in 5 years, or if I should still be in it if I want a pay raise, that's an another story, and another part of why people aren't touching computer science.
Regardless, though, all the competition says is that the Chinese ACM team cares much more about it than the American team did, and worked harder for it. Good for them, I say, and it would be nice if the American team took it more seriously, but it says absolutely nothing about the general state of computer science programs in America.
That's like saying that because an American won an olympic medal in track and field that Americans are in better shape and run faster than the Chinese.
> CS enrollments have plummeted from 3.7% in 2000 to just 1.1% last year
That tells me nothing! 2000 was the height of the dot-com bubble. Give me the numbers for planned enrollments from 1990 to 2000. And then 2000 to now! I bet it went up with the boom, shot down with the bust, and has been rising since.
"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."
4. Geeks and nerds have a superiority complex? Check.
5. Geeks and nerds have the social skills of a potato? Check.
6. Other countries are minting their own geeks and nerds? Check.
7. Geeks and nerds !== CS or technology. e.g. History nerd.
I wish people would stop using statistics exclusively from 2000, whether they be CS enrollments like here or related stats. In 2000, we were at the height of the tech bubble. Lots of people and money went into tech that should not have. In the case of people, that meant (among lots of other things ... don't want to oversimplify) lots of CS majors who had no aptitude for CS. It's not a realistic number.
What I'd like to see are multi-year numbers that give us a better idea of the trend, both pre- and post-bubble. 2000 was an anomaly. 2000 was unsustainable. 2000 was when things went kablooey. We don't want to go there again in a hurry, so quit talking about it.
Lies, damned lies and statistics. Couple of random thoughts:
1. It is my observation that bright students in developing countries often gravitate to math/science fields at a higher rate than in the U.S. That isn't necessarily a good thing. While such countries may produce engineers and computer programmers at a high rate, they may produce doctors, research scientists, economists, etc. at a lower rate.
2. In China, India and Eastern Europe, my impression is that more bin-sorting goes on with regard to who can attend what university. In the U.S. you have bright, capable people spread out across more buckets. In India especially there is a well-defined pecking order among universities, with the very best students routed to the most presitigious school.
3. Having participated in the ACM contest at the regional level, the results aren't all based on raw talent. Extensive practice can give you a distinct advantage. It may be that the non-U.S. teams simply prepared better. Being poorly prepared for a contest doesn't mean the U.S. team members are generally incompetant.
4. If the ACM contest is more popular at non-U.S. universities, those countries may be better able to attract the top competitors from their respective talent pools. At the large state university I attended, tryouts were hardly advertised, and I knew many smart, talented people who just weren't interested in competing.
5. It may be a good thing that CS enrollment has dropped from 3.7% to 1.1%. When I was still in school, during the boom times, about 20-30% of my classmates probably shouldn't have been there. I shudder to think of the code they're producing right now.
It seems that a lot of the comments here see a massive paradox in the (employer) stated lack of supply of CS practitioners, and the (employee/student) stated lack of demand.
Having been through the job search process a few times (and having read the recent academic articles on the subject), it seems the problem is this. Employers in North America are no longer willing to help develop software professionals. In other professions, we see employers taking an active interest in professional development from the entry level up.
Lawyers article for a year, and have a well understood progression from articling student to partner. Throughout the process, the contributions made are appropriate for their level of progression and an appreciated, relevant part of the practice's business. As a result, the legal field has a downstream supply of experienced lawyers, and even students and fresh grads can find work.
By contrast, the tech industry seems to expect experienced developers to appear out of thin air. Industry participation in internship programs is down. Postings for entry-level and early-mid level positions are practically non-existent. Yet demand for 10+ yrs experienced developers is high. Well, guess what? Experienced developers don't just pop into existence. The industry recognizes that much of the innovative work (that they need experienced developers for) isn't amenable to offshoring. They need to recognize that by offshoring the entry-level grunt work, they are starving their future demand for experienced developers (and ultimately rendering future innovation far more difficult).
I think this pretty much describes my perception of the issue as well. I freely admit my perspective may be distorted, since I work doing a lot of "business transformation" ('outsourcing' is such a dirty word these days), but I wouldn't advise a young person to go into CS. If they're really interested in computers, maybe CompE -- since at least then they'll legitimately be able to call themselves an engineer -- but even then I'm not sure that it's worth the investment of time and effort for the pay and security. Unless the person was really motivated and hell-bent on doing it, in which case I wouldn't stand in anybody's way. The market will always have a place for terrifically motivated people in any field, but the great majority of students (at least when I was in and I don't suppose it's changed much) pick a major because it's reasonably interesting, they think they'll be good at it, and it looks like it'll offer them a job. For a bright person with a reasonably diverse skillset, there are a lot of other jobs which are harder to offshore than CS positions (at least the real coding ones).
On the other hand, I think there's a perception out there that I'm hearing from companies that the quality of a lot of big state-school CS programs is pretty dismal. Apparently -- and again, this is perception, which may or not be fact, but it's still important -- a lot of "Computer Science" grads couldn't tell a compiler from a debugger and wouldn't know C from SQL; their experience is maybe some web development or HTML stuff and a smattering of userland application experience. In short, the U.S. CS grads they're interviewing aren't getting experience in the stuff they need: DBA stuff, systems administration, and commercial development methodologies. Now I don't know what the curriculum is in modern CS programs, I haven't had any reason to look recently, but I'd be interested in knowing what it is, and whether the stuff I'm hearing is based on fact or just frustrated HR types who are getting the bottom of the barrel because they're under-offering.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
I'm sorry, market justifications for naked greed don't wash. Remember the hostile takeovers in the '80s? Perfectly viable companies were bought, ransacked, people laid off, and materiel sold for scrap to make a few people rich, simply because the stock market capitalization of the companies was lower than their actual value. You could argue that this ultimately resulted in a correction to market capitalization values, but by any objective standard it was bad, bad, bad for the economy, the country, and the human race as a whole. CEOs making obscene amounts of money happens because of a nouveau aristocracy disconnected from the greater society gets to make decisions that benefit themselves exclusively, not because they provide any kind of value to said society. It's time to take back the ill-gotten wealth, in my opinion, and by force.
Legislating it is an atrocious idea. The reason the companies hire out elsewhere is because it is economically advantageous. The solution to this isn't to tell the companies "don't act according to reason when presented with data; act against reason." The solution is to correct the conditions that are causing it to be more beneficial to hire out elsewhere (if that is a desired end... I don't care, myself, for the reasons stated herein). Adding a disincentive appears to accomplish this, but it is mere cookery that covers over the disease.
This is basically the same thing as telling a civil engineer to build a bridge over a 2000' river. He'll build a 2000' bridge (well, probably 2500' for stability, but you get what I mean). But wait! We've gotten funding for a 4000' bridge... and because of existing laws, we need to "make it to specifications!" So we tell the engineer to build a 4000' bridge over a 2000' river instead of changing (or better yet, removing) the ridiculous law. A multitude of laws doesn't make abuses fewer, it just makes them more obscure.
Legislation is the enemy of discretion. Discretion is the son of civil freedom.
I'm sorry but the majority of U.S. are the laziest people in the world. There's a reason why all of our industries are getting trounced by other nations. 8 hour work days, 5 days a week and retirement at 65? (Yes, I know there are exceptions to that but that is the average worker) We're seriously overpayed for the amount of work we do. Our education system is going down the drain. Most countries that used to send students to us now have better schools anyways. Our auto-industry is being whalloped by Asian markets because they can produce something better for cheaper, even after import taxes. People also complain about Mexican immigrant workers but the fact is, they work 10 times harder for less money than most U.S. workers, and they do jobs that most U.S. would smirk at. Most U.S. workers are spoiled and it's going to catch up with us real soon. In fact, it's probably already here.
I also went to the ACM world finals. We didn't do that great, but we did alright, and we had fun. My university was one of the best in the US in CS, but there was never even a chance of our winning ACM overall, and we never thought there was.
The reason is exactly what you describe: the groups that are winning the contest right now are putting in immense effort, going over literally thousands of ACM-style problems. They spend hours a day on it. They have entire libraries of pre-coded functions and solutions that they can plug into all kinds of problems whenever necessary.
Now, in contrast, at my Big Name CS School, most student energy goes into our classwork and other CS-related areas, and the ACM contest is a hobby. The team is generally chosen by sending out a mass email to the CS department saying "Anyone want to be on our ACM team?" The first year I did it, they had to send out the email repeatedly because they couldn't actually find 6 people (two teams) to send to the regional contest. Once you're on the team, every 2 or 3 weeks we would meet to go over some problems. The ACM problems are fun and interesting, and require problem-solving and basic knowledge of algorithms, but they are not "computer science," and all of us knew it. You put code in those problems that you would be ashamed to put into a production system, because you're on a time limit and it works.
Bottom line, the US's "poor performance" in this contest is not indicative of poor education any more than the US's "poor performance" in the chess world during the cold war. Russia thought it was very valuable to have the best chess players be Russian (proving that Russians were smarter, etc.), so they threw money at it, and had their promising players study intensely, at the expense of a conventional education, focusing entirely on becoming the best chess players. American chess players, for the most part, still went through a normal highschool and frequently college education, and while some were very devoted to the game, hardly any studied it with the state-sponsored fervor of the typical Russian prodigy. And so what? If the goal of your life is to be good at chess, then the Russian model is better, and if the goal of your life is to be good at the ACM programming competition then you should spend hours a day studying old ACM problems, but if you want a good general education (or even a good CS education) that is probably not the best use of your time in college.
I've worked in industry, and now I'm in theoretical CS, and neither area requires thinking similar to the ACM competition. Those problems are great, and doing well in the contest requires knowledge and talent, but to be the best takes a very specific kind of knowledge that is not nearly as useful in any other area of CS.
This article is FUD.
I am the man with no sig!
I definitely don't support outsourcing, but I think it's a little misunderstood, too.
Based on what I've heard from several people working in large companies, outsourcing isn't always just about the money. They've said that, all costs considered, it really doesn't save that much money. But the work ethic in certain countries is far better than what they've experienced here. Deadlines are met, micro-management isn't required, and the workers are willing to put in that proverbial 110% if needed. Now, they concede that in the long-run, it's probably not sustainable, and will cause problems when the project is handed off, but for projects that just need to get done now, it's the way to go. So perhaps it's not just price, but the price/performance ratio that keeps companies from hiring domestic...
I'm 20, and have been doing high-level IT consulting for a few years now. I dropped out of college while pursuing my CS degree (for personal reasons). I'd be lying to say that the reason I stick to IT rather than finish my degree is because of outsourcing, but the media and public at least make it seem like the market is evaporating. I think there will always be demand for CS majors domestically, but you better make damned sure you're not like all the paper MCSE's, and that you really know/are passionate about what you're doing.
Slashdot: News for nerds. Stuff tha-- MICRO$OFT IS THE DEVIL!!1
When the government counteracts the corrective force of the shortage, the government inevitably suppresses wages and salaries or prevents them from rising higher. This phenomenon is well explained in standard textbooks about economics.
The correct way to handle the shortage of high-tech labor is to prohibit the government from intervening in the labor market. Specifically, Washington should terminate the H-1B program. Washington should also terminate the the free flow of goods and services between the United States (which is a relatively free market) and (relatively) non-free markets like India and Mexico.
When the American government allows the free flow of goods and services (e.g., outsourcing) between India and the United States, the Indian government intervention that has destroyed the economy of India and that, hence, has produced millions of underemployed Indians damages the operation of the free market in the USA. Specifically, Indian workers in the non-free market of India now determines the pricing of labor in the American labor market.
Washington should promote and protect the operation of the American free market by allowing free trade between the United States and only other (relatively) free markets like Canada and Japan. The free market itself will correct any shortage of computer scientists by dramatically raising wages and improving working conditions, thus attracting more people to become computer scientists. Wages eventually will rise to a point at which the supply of computer scientists satiates the demand.
Similar comments apply to the market for unskilled labor. To resolve any labor shortage, the free market will automatically produce more unskilled labor by raising wages and improving working conditions -- if the government stops importing Mexican illegal aliens to eliminate labor shortages. When Washington floods the unskilled-labor market with illegal aliens, Washington inevitably damages the normal corrective force of a labor shortage and, hence, damages the operation of the free market.
"but what CS problem that I might encounter in an upper-division CS course requires the use of Diff. Eq., Linear Algebra or Physics?"
What CS problem might you encounter which doesn't have those elements!
How can you be competent to tackle an optimization problem using even the most elementary gradient descent type operation without a good grasp of calculus and differential equations (even if it is painful!) - and linear algebra is absolutely vital to the matrix maths used in Computer Graphic/Bayesian Inference/Circuit Synthesis.
Google's PageRank algorithm as an example - it might just be 'code' but to understand it you need to know that it involves multiplication of some huge sparse matrices - the last person I want working on my algorithms is someone who couldn't hack linear algebra at college.
I would solve this by making companies show that there are NO Americans at all who can do the job before getting an H1B. Also, I would love to see companies that are shipping jobs away boycotted.
Why do we have to ensure jobs for anyone who is even the most minimally qualified? If a company wants to bring in smart foreign workers, since they are smarter than the folks at home, then more power to them. By propping up poor CS students, we are doing the same thing the RIAA does that we hate so much: getting government legislation to keep around a failing business model/person.
I'm in my second year of a CS degree and I do support immigrants and having offices in other countries. I think Google does it the right way: hiring people in other countries for their remote offices, while at the same time, still hiring lots of Americans as well.
You may be marginalized in the short term, but in the long run, the globalization of knowledge jobs is a good thing.
My guess is less enrollment in CS programs is due to understanding that the job you are going to get is most likely has little to do with science. Like maintaining the code, or even developing your own. Nothing glamorous about it. It is should be properly called 'IT' - information technology. Note that more and more universities have programs in CS and programs in IT. May be IT enrollment goes up? At least if you're enrolled in IT, you know exactly what you are getting it and what kind of job you can expect.
This is what has been pissing me off to no end... I'm at my best in terms of programming skill at 39yo, but companies expressly want college newbies they can exploit (read: harshly control and financially rape). Companies just don't want experience any more.
Why would anyone who is sane go into a career that's all but guaranteed to be cut off at age 35??
Steve Magruder, Metro Foodist
First off, the real issue here appears to be lack of CS and Math-related research-style positions.
A quick search of job boards will show you that nobody wants to hire entry-level computer programmers / network admins, so anyone quoting a lack of bodies is BSing you. We've discussed this issue on /. before now.
The author may think that he's hit on an issue, but his arguments seem specious and his research is very shallow.
From TA:
Specious #1: OK, first, if China AND India have ONLY 3x the # of grads, then the US is doing great! China AND India have 2.4 billion people, the US has 0.4 billion people. So the US has 2x as many engineering grads per capita. Why is this number cause for alarm?
Specious #2:What's more, this isn't really the issue anyways! Because your regular CS grads aren't doing "innovative, ground-breaking research", they're programming Database front-ends and administering networks. What you really want to know about are your Masters and PhD grads, but he fails to provide any relevant numbers for these.
My experience: I looked in to taking a Masters in 2004 at my Provincial University (~30k students). I wasn't eligible. I graduated with a 4-year Honours Co-op degree and a B to B+ average. It turns out that they were so flooded with students (mostly foreign) that the required average was now an A and they even closed the application period 3 months early. They were turning away some of their own grads.
So if we've run out of profs and we're turning away interested grads, does that still mean that we're behind? What's really the issue? I'd say it's money.
CS work is difficult. It requires years of study to be correctly proficient and continuous study thereafter. And to top it off, most IT workers are putting in massive overtime and are generally overworked (esp. the Network guys). So IT workers want to be well-paid; but nobody wants to pay for this work!
General programming work is quite expensive and the ROI is usually long if there is one (some software projects have no ROI, they just need to be done). Software itself is expensive to create and productivity of staff varies wildly b/c the learning curve can be very steep. Nobody wants inexperienced IT staff, so IT workers want to be well-paid.
To make this even more expensive, computer programmers in the US are bringing in Internationally exorbitant rates (one IBM programmer for $125/hour or a 25-man team from India?)
So at the end of the day, where do you put the CS PhDs? Where are they going to work? What are you going to pay them? Of course if companies won't afford CS Bachelors what is the industry for CS PhDs? How many CS PhDs do we really need? Wouldn't we rather have the best brains go into Med studies (seems we're always at a Doctor shortage here in Canada)?
(Please if you have answers, I'd like to hear them, these are not meant to be rhetorical questions)