The Changing Face of Computer Science
For another facet of CS education, HangingChad writes "MSNBC is carrying an interesting article on the changing demographics of IT workers and education. The upshot of the article is that older, working adults are taking IT related courses for advancement while comp sci continues to slide as a career choice in college, which the researchers in the article attribute to perception issues." From the article: "In fact, as the technology-dependent United States struggles to stay ahead of the Bangalores of the world, the Higher Education Institute at the University of California-Los Angeles found significantly fewer students at the college level -- 60 percent fewer -- wanted to study computer science in 2004 as opposed to the year 2000. "
thats why no one whats to work in it. low pay, high pressure and no job security.
If you mod me down, I will become more powerful than you can imagine....
So the news in this article is that MIT, Cal-Tech etc don't churn out
the most CS degrees? Did anyone even think that? Top tier schools
have never been known for quantity, they are known for quality.
That's what has always separated them from other schools, not how many
graduates they produce. High quantity schools generally don't have a
good reputation, why do you think the MCSE is worth so little, because
everyone has it. So the fact that DeVry is churning out more
graduates than MIT is hardly news worthy imo.
Next they are comparing the number of people entering CS in 2000 to
the number entering now? That comparison is farcical at best. In the
year 2000 there were still many people entering the CS field because
of the boom years, when working in the IT industry was the equivalent
of the gold rush. Of course there are less people entering now than
in the year 2000. A more legitimate comparison would have looked at
the number of people entering CS during the pre-boom years rather than
during the boom years.
While I agree that we should encourage more people to enter IT related
fields, I don't agree that using misguided statistics is the best way
to go about it.
Doug Tolton
"The destruction of a value which is, will not bring value to that which isn't." -John Galt
As an ex-CS major let me tell you one reason people are leaving. Even though I plan on going into a CS related field the courses offered by my college (UCI) were very poor. Also there was no way to test out of redundant courses. Many of my classmates left for similiar reasons, and some even abandoned CS altogether as they weren't sure they would be able to compete with outsourcing and get a job
Philosophy.
Goodbye to all those who just wanted to get rich quick. I look forward to working with you brave students who are chosing your career based on a love of technology.
TODO: come up with a clever sig
Back in the day when code needed to be efficient at a theoretical level, when compilers and related research was at the forefront of technology itself, and when the computer was the target of research, there was a need for a lot of computer science. Nowadays, there is not as much of a need for true computer science as there used to be. Instead, there is a greater need for people who know other types of science/engineering and have the programming skills to use a computer to solve non-computer problems.
At the career fairs I went to as a computer science major, everyone was interested in web development, flash, java, etc. The CS department at my university doesn't teach these things; a person can learn these through the Information Technology department, however. If all of the money is going to people that don't mind building websites and putting cute flash animations on them, why pursue a degree in computer science?
I thought education and career are like stock exchange, you should always buy low and sell high, but most people tend to buy high and sell low.
And most people that have been working for a while (I haven't worked that long, so I can't speak for the truth of it) say that you should find a job you enjoy. You are likely to spend 40hrs a week at work, if not more. Not including mundane tasks like commuting, eating, sleeping, housework etc., there's really not enough hours of spare time to make up for a job that sucks. Even if it pays well the best moments of my life were far from the most expensive ones. That (apartment, car, computer, tv etc.) is for the inbetweens. The best moments are made by people.
Live today, because you never know what tomorrow brings
WHY THE FUCK WOULD ANY STUDENT IN THE US EVEN CONSIDER SPENDING 4 FUCKING YEARS, $40,000+ DOLLARS, 1.5 YEARS OF JOB SEARCHING TO EARN $10.50 AND HOUR ON A LEVEL 1 HELP DESK!? THAT'S THE REASON YOU FUCKING ROCKET SCIENTISTS TURNED REPORTS!!!
I've been in this shit for over a decade and I tell you this in very simple terms:
Computer Science as an industry is following that of the TV and VCR repair men. When TVs and VCRs are expensive they get em fixed. When they're cheap, they replace them. Computers are less and less a science as the hardware and software gets easier to install and maintain. Even computer programming is becoming more and more accessable to people as the higher level languages become more user-friendly.
Early on there was Computer Science. Now they have splintered into various factions like various specialized sciences following certain areas, (MIS,IT,DBAs,Programming, etc.) Because they is less and less need for the broad generalized Computer Science types enrollment would obviously go down. Just because TVs got cheap doesn't mean that electrical engineers demand went down or that scientists that research phosphates and optics are losing pay and prestige, but how many people in the last 20 years have a SMALL ELECTRONICS degree? Hell do they even offer that anymore?
-=[ Who Is John Galt? ]=-
I've got a better idea.. How about just studying a subject you have a real interest and/or talent in, and not worrying about how big your paycheck will be?
Okay, so there are some obvious limitations to that scheme. For instance, if your main interest is studying ancient Peruvian pottery, you may want to seriously consider a backup plan -- unless of course you *really* don't care about money. But beyond that, choose something you enjoy doing and run with it, and forget about what the rest of the herd is doing.
Back in college, I lost count of how many of my fellow CS majors were just in it for the money, and had no particular interest (much less talent) in CS. What a waste!
Because you can't get a fuc|ing job to save your g0ddamn life, and if you do, it's working for fuc|tards who have no idea how trained and skilled you are.
Kids... forget computers. Completely.
Become engineers and program only when it applies to your project.
Save yourself from the frigging YEARS of torment I have put myself through. Nothing like being unemployed (from your field) for 3 years to make you bitter.
It's interesting, people say adapt or die, and that's true. But the choices facing my generation in the US are pretty poor. The technical fields are going overseas. What's left for the nerds out there?
This is complete bullshit. Look at how all the CEOs are complaining about lack of CS graduates here in US. Its quite simple. When they move the jobs to india/china they can say that they we dont have enough people here. Just look at the layoffs. This is a delibrate attempt by these people to keep putting out these kinds of reports.
"There is no flag large enough to cover the shame of killing innocent people."--Howard Zinn
A lot of people were taking CS majors in 2000 because the perception (somewhat true) was that being a CS major alone was enough to get recruited, then you could quit school and make a load of cash.
Now of course you have actually finish your course work, and even then there's no overpaying job waiting for you, even though I'm sure you'll find a job.
A lot of guys at my school picked CS because they figured they'd get rich quick, they didn't love it. I've always thought that if you love what you do and you're good at it, you'll do alright in life.
insert inflammatory anti-microsoft comment here
And most people that have been working for a while [...] say that you should find a job you enjoy. You are likely to spend 40hrs a week at work, if not more.
I confirm this.
I worked hard during the dotcom bubble and did good on it, both in terms of salary and stock, mostly because a wise person, older than me, told me it wouldn't last and that I should save the money I earned.
With that money, I started studies in a totally different field. Now, I'm paid a lot less, but I don't have crazy hours, I don't worry about stress and future heart problems, I do a job that I like, and my quality of life is much better.
So it is true what they say. Money isn't all there is in life. You can be a lot happier with simple things, like starting and quitting work every day at the same hours (instead of working insane overtime), having free weed-ends for the family, and (in my case anyway) having the satisfaction of producing things that people instantly appreciate, instead of hidden code that nobody cares about once it's compiled.
And the pay cut isn't a problem, it's just a matter of understanding what's important in life, and leaving the world of silly consumerism behind. If the job pays the bills and leaves enough do have disposable income for the usual pleasures in life, and not worry about next month, that's quite enough for me at this point in my life.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Is it the computer science I learned, ie how to turn an undergraduate into a graduate student? Where everything is theoretical because that's how they like their graduate students?
Or are we talking about a DBA? Or someone to make sure your Exchange Server is up and running?
Computer Science at MIT, Carnegie Mellon, Stanford, Berkeley etc isn't about learning how to be a DBA, its about acquiring the tools necessary to do research at a higher level. Who needs an algorithms class when you can just use the sort functions available in VC++? Or who needs to read a research paper about ISAM or BSTs when its already implemented and ready to use in SQL Server?
I'm reminded of "Profession" by Asimov. Is the purpose of higher education simply to show people tools and how they work so they can have a skill or to teach people why the tools are they way they are and (hopefully) help them to make the tools better? To me CS has always been the latter.
Note, this is not a put down to DBAs, sysadmins, etc. They have their own creativity and processes that I admire and respect.
I find it silly that multi-billion dollar corporations think that there's a shortage of creative people out there willing to work in Computer Science. I would think the answer would be obvious. CUT PROFITS, FUND SCHOLORSHIPS AND RESEARCH GRANTS YOURSELF. Don't wait for a government that you're already avoiding paying taxes to to spend taxes taken from poorer people on R&D. Don't expect that just because you can get a coder in Bangalore for $2.50/hr that you can hire somebody in Seattle for the same price. And if you want loyalty from your employees, you need to show loyalty to your employees- by banking their salary several years in advance so that you don't have to lay people off when you hit a rough patch. THAT is the cost of having good people- so don't come whining to us that you can't hire people if you're not willing to pay for the cost of educating them.
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
I think the biggest problem is that the average high school senior actually beleives that going into computer science means that he is going to learn how to make web pages.
For the most part, the math part of CS is completely useless unless you're doing something in a field which specifically requires it, i.e. fluid dynamics. I started out as a engineering tech and can do circuit analysis and whatnot, but when I went back for CS the math requirements kicked my ass. I left for a cool job in NYC doing video editing, which I knew a lot about and required only timecode math and hex. So it depends on where you want to work. For some things you really need that math, but you're doing a database? No.
So go back and take all the programming courses you can, and other intersting things, and then go get a job. Do not let it stop you if you're interested in programming.
The revolution will NOT be televised.
In one of my senior CS courses, the professor asked what the department could do that would make things better for the educational experience. He was expecting things like more course offerings, more focus on newer languages and approaches, stuff like that. The response that resounded with too many of the students was that the professors should do a better job at helping the students learn how to translate a project specification into code.
Sorry, but translating a project spec into code is not CS. Hell, its not even science, its an art that comes with experience.
I've worked with few CS majors in my career. Well, maybe about 50% of the people were CS, the other 45% had _insert random degree here_ and another 5% had none.
I would imagine that CS majors are in decline because graduating from a CS degree does not teach you much about most of the IT jobs out there. System administration, programming, DBA, etc, has little to nothing to do with computer science. Granted there are some programming jobs that utilize a CS person, but that is in the minority. Most programmers are code monkeys that, err, translate project specs into code for non-commercial (custom or inhouse) applications like for another company, government agency, or what have you.
They don't want to learn stuff outside of class.
I don't know where these poor puppies work. Oh, maybe thats the tech support people that still live in the US.
I think more are not looking to go into CS not because there are not companies wanting to employ CS people, but because said companies want to employ CS people at unamerican wages.
I can corroborate this.
I work in Telecom and every few years one of the various companies that employ engineers, programmers, etc. in the area flushes its staff in a major downsizing or closes up shop entirely and the newly unemployed disperse and wind up in the same role elsewhere, if they manage to find work at all. A few years down the line the new employer will fire a chunk of its staff or close up entirely and the cycle continues. People may even be fired by and subsequently hired by the same company as its fortunes change. It creates a pretty wide network of nomadic professionals who all know each other, assemble in familiar patterns and relative positions at various companies and thus never seem to advance in job roles.
It seems like every single person at my place of employment has had at least three jobs in the past ten years and that many have been unemployed for more than a year during that time period. I've been at the same place for around three years now and have managed to survive several "scares," which leaves me wondering whether I'm playing the role of Damocles. I guess you could qualify the past ten-odd years as anomalous and make a good argument for your case, but I'm not entirely sure.
~Someday, I hope to be an aspiring author.
Having recently graduated from a rather rigorous undergraduate institution with a degree in CS, and planing on going into the Ph.D. program at another well-respected school this fall, I find myself taking the "science" part of "computer science" pretty seriously. Somebody more famous than me once said, "Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes, or chemistry is about beakers and test tubes." That might not be strictly true, but it's the right idea. In my mind, being a computer scientist implies that one is engaged in real scientific research. A degree in computer science should come with an understanding of the history and theory behind the actual systems we use every day, an awareness of the open issues in the field, etc.
Somehow I get the idea (and feel free to correct me if you know better) that a "CS" degree from DeVry might not match my understanding of the term. That's not to say that there isn't a place for this sort of education -- I'm all in favor of competent entry-level programmers, web designers, DBAs, whatever it is that DeVry actually trains one to be. But to use a (probably flawed) analogy to other disciplines, this sort of education is to CS as auto repair is to engineering. It takes a not insignificant amount of skill and knowledge to be a decent auto mechanic; I'm not trying to knock DeVry graduates. But I wouldn't expect a mechanic to be able to do fundamentally new things in the space of automotive design any more than I would expect a DeVry CS major to do real computer science.
(Yeah, I have some idea of how pretentious and condescending that sounds. Go ahead and mod me down.)
Better to light a candle than to curse the darkness.
I'm a little uncomfortable that even here on Slashdot, the terms 'IT' and 'computer science' get liberally mixed together as if they are interchangable terms.
'IT' is about people who shuffle around business information. And maintain printers and networks and mundane tasks. Data janitors, basically.
'Computer science' is about algorithms, the theory of data structures, etc (and 'paradigms' of objected oriented what-not and fad trends, of course).
They aren't interchangable terms.
It may be that "the best people" form a bi-modal distribution: those who feel the road to happiness lies in having more money (money == equipment [toys] for cool things), and those who feel it lies in having more time (time == freedom for cool things).
I feel working in software is the best of both worlds: being paid lots of money to do the things I want to do anyway, i.e. tinker and hack. I still recommend CS as an undergraduate major to smart people who like to tinker.
Unlimited growth == Cancer.
The ammount of therory in CS is what is killing these programs. What is needed is job training.
I used to think that too, but I eventually figured out my professors' point. University is for learning things you aren't likely to teach yourself. Applied stuff is relatively easy to learn on your own or on the job. Theory isn't.
Now, using a broad definition of the word theory, courses do need to do a better job of keeping up with current CompSci practices. Design patterns, testing, etc.
I pity that you never found the beauty in what you did. Or at least that you didn't enjoy it.
I'm 17. I've been working summers and Fridays as a coder since I was 14. And it's a wonderful job.
I'm CREATING things!
"May the days be aimless. Let the seasons drift. Do not advance the action according to a plan."
No, bad monkey! No banana for you.
The math (among other things) is what separates the Engineers from the Code Monkeys. Writing a simple program rarely requires a good mathematical basis. Your average java-xml-buzzword compliant web app doesn't need them. Welcome to blue-collar coding.
Queueing theory, filtering and FFTs, algorithms and complexity, physics simulation (think games), priority scheduling, error detection and correction, high availability, and so on, these things require you to understand more than code. It requires you to be an engineer, not a typist. To design things properly, to understand the implications of complex interactions, runtimes, hash collision probabilities, statistical breakdowns,... y'know, real math.
Barbie: Math class is hard.
Engineering is hard too, baby.
After a 4 year CS degree, plus 4 years industry experience, I still don't know how to write a VB app.
But I can learn by Thursday.
And that is why I'm worth hiring. I actually turned up to my first job with a book on the language the application was working on, was written in (Tcl/Tk). If having to learn the language as I went along slowed me down, certainly no-one noticed.
Now, my degree did cover quite a bit of practical stuff (including programming in C, assembly and Java, database commands, etc), but also covered a lot of theory (big-O, algorithms in general, data structures, graph theory, social aspects of computing, etc.). I don't know how many CS degrees stick too much to the theory?
So the fact that DeVry is churning out more
graduates than MIT is hardly news worthy imo.
I think the better point to make is the type of grad that DeVry is churning out. I don't think the authors of this article grasp what "computer science" is. I mean, take a look at the article for a second...
Adults, many of them women and minorities, are realizing they have to go out and obtain degrees in computer science to advance or just keep up at the workplace.
Wait a second, is the workplace suddenly requiring that their workers need to know the inefficiencies of a Bubble-Sorting algorithm? Are they expecting their employees to understand that it's a bad idea to short a +5V with a ground without putting at least some kind of load on the circuit? These are some of the things I learned in Computer Science, and I really don't see someone needing to study data structures and how to implement them in C++ or Java in order to succeed in the workplace.
In fact, on DeVry's own list of Undergrad Programs, I don't see Computer Science anywhere. There's "Computer Engineering Technology" (also classified as "Computer Technology"), "Network Administration", and the one that I'm betting the article considers computer science, "Information Technology". The objective's page for IT lists the following concepts taught: "basic foundation in programming, systems analysis and design, database design and management, and networking... Incorporating a strong applications-oriented component...Integrating general education competencies such as applied research, written and oral communication, critical thinking, problem-solving and team skills." I doubt they get any more complex with their studies than what I learned in high school Computer Science class (one sem. VB, one sem. hardware / networking / research).
The article's really twisting the true definition of computer science. Fear not, nerds of the universe, these "35-year-old African American or Hispanic women" tread not on our turf! I'm more afraid about my job being shipped off to India.
Yeah... because enjoyment pays the mortgage bill, health insurance, car payment and puts food on the table.
I'm so tired of these namby pamby touchy-feely types acting like it's okay to just barely etch out a living as long as you enjoy it. I'm sure it means a hell of a lot to your kids that daddy enjoys what he does for a living while they're wearing down hand-me-down clothes from two decades before and your wife is stealing toilet paper from her work because you have to scrimp and save to "enjoy" your job.
Find something you're good at and exploit the fuck out of it. Whether you "enjoy" it or not is completely irrelavant.
In the beginning, most programmers had degrees in computer science and were relatively expensive. They worked in computer rooms and were treated with some degree of grudging respect (although companies never liked having to pay them well, they didn't make too much noise about it).
During the internet boom, several things happened to not just turn over the apple cart, but rather smash it to flinders:
1. Worldwide infrastructure was built out because companies knew they would be able to globalize the labor pool eventually, and they were willing to invest in this;
2. Companies like Microsoft, perceiving both a need and a high demand, worked to make programming more "accessible" to lower-skilled individuals (InDUHviduals, as they are called in Dilbert);
3. The Y2K panic caused all sorts of people who didn't have a strong CS background to jump into the field after totally inadequate training, and this trend virtually exploded when small internet companies started hiring anyone who so much as knew HTML and called them "Developers" and "Webmasters" (this totally devalued the Computer Science degree, as did the wholesale dropping out of school of company founders).
Cue the tech crash. Then, cue 9/11 and the recession.
Corporations now have the infrastructure to offshore whatever they want, and they have the H1-Bs and L-1's to replace people here. They go berserk, contracting out everything tech-oriented, and even start contracting out business functions, legal work, medical transcribing, you name it. If it's portable, it goes.
A few years go by.
Most people, not being totally fucking retarded, realize that they don't want to study computer science as a major anymore. They study something with better prospects, like art or medieval French poetry. A few students go Comp.Sci knowing they'll be unemployed, because they really dig it, and they'll go on to start the Napsters of the future (good for them, I say).
Suddenly, corporations have a problem.
Our colleges don't produce many computer scientists anymore. Those that DO go all the way to the Ph.D aren't Americans -- and they're going back to wherever they came from to start their OWN companies instead of being Good Little Immigrants(tm) and working for a corporation.
Some suit, deep in his six-martini lunch, wonders aloud, "Hey, wait a minute; if all these guys are going home and starting their own companies, and they have access to a really cheap labor pool, and the infrastructure we built up lets him sell his stuff to everybody worldwide, and we trained him and everybody in his neighborhood back home in OUR core business... Wait, I had a thought... What was that... Oh, yeah, so, if this Indian guy Apu, or whatever, does that, then isn't that competition? Like, with US?"
All lunch conversation dries up for a minute. The suits all look at each other.
"Say, old boy" says the Yale Man, "Do you mean that by outsourcing our entire tech staff to India, we trained and prepared this new guy's -- Apu, did you say? -- entire company for him, and at a moment's notice they could all decide to stop working for us and compete with us instead, leaving us gutted without any technical staff at all?"
"Umm... Maybe?" the first suit is starting to look a little green. Maybe six martinis were a little much. He eats a mint.
"And," Yale Man continues, "As Bill mentioned, nobody in America is studying computer science anymore because we told them to study business and move up the food chain, so we'll be (as the locals say) shit out of luck?"
"Uhh..."
"Oh, dear. Perhaps we should have Fortune write an article, and inspire young people to study computer science and math again?" He looks around at the other suits. "Surely we can appeal to their sense of national pride, and their desire to not see their own country's corporations fall by the wayside?"
And, here we are. What an interesting time this is...
Farewell! It's been a fine buncha years!
Happiness doesn't buy money, and money doesn't buy happiness. They are two separate things.
I've had the mid-bucks, and not had the mid-bucks, and far as I'm concerned I'm a lot happier when money is available than when it's not.
But I would not make fun of someone who's happy with his life and who he is. There are all too few people like that nowadays. The unhappy folks I know are just waiting for an explosion.
I know, because I've seen more than one of them explode.
Not a pretty sight.
D
And the pay cut isn't a problem, it's just a matter of understanding what's important in life, and leaving the world of silly consumerism behind.
As much as I want to agree with you, I can't.
Sure, you don't need a 10 thousand dollar plasma tv to be happy. You don't even need hot water to be happy. But it helps!
One of the things I'm looking forward to in the next ten years is travelling. Europe, Hawaii, that kind of thing. Can you do this while working at Burger King? No! What about a $10/hr tech support job? Possibly, if you live frugally (read: cheap).
Leaving the world of consumerism is definitely an option. However, if would like to see the world and enjoy "luxaries" of iPods, not having to shop at Walmart, etc, Getting a well payed job is probably the way to go, even if it sucks.
to learn OO
OOP is full of hype-induced crap. You didn't miss anything. There is no objective evidence it is better for most domains. Niches maybe, but not universal.
I left IT and went back into academia.
My income is a fraction of what it was. When I get to tenure-track, it will only start to get close to early-mid career in IT.
But guess what? Because I'm happier, and not spending against my dissatisfaction with my career, I'm actually saving more money than I did before. That, and cooking at home instead of going out, result in a net improvement in my standard of living.
So while it's a big commencement-speech cliche to say "follow your bliss," I'll say: follow your bliss. Better to enjoy a life in the five digits than chafe against one in the 6 digits. I waited about 3 years too long before I made the move. And now - I can futz around with code and systems and stuff for fun (and even still do an occassional contract gig for an extra burst of cash, if I want to.)
"Wait a second, is the workplace suddenly requiring that their workers need to know the inefficiencies of a Bubble-Sorting algorithm?[...]"
Damned ! I managed rookies for some time now on java projects... They don't even know what is a computer anymore ! Round tripping to the DB, what is the problem ? Allocating 1GB on the heap, so what ? sorting then filtering a collection, it works no ?
Learn an assembly language, what is a microkernel, how a compiler works and just forget about it the next day and you'll be way smarter than the average developper that have no clue about what they are doing.
And that is why I'm worth hiring.
s ton.html
I'm sure you are worth hiring, but for what you would probably demand in salary with a 4 year CS degree and 4 years industry experience, I doubt you'd be worth hiring to write that VB app you were talking about. No offense, but this to me, is a common misconseption. "I've been programming for 4 years and can learn VB from a book in 2 days," while I have no doubt that you could, in no way compares to "I've been writing apps in VB for four years."
With the abundance of 4 year CS degrees floating around, and the abundance of those with CS degrees that can have programmed in VB for 4 years, do you really think that you are worth hiring for that position?
Sure, you know all the theory behind a visual basic app, and hey, you've got your book, and that's great. But what you don't know, is all of the things that you learn in the trenches (as you are an experienced coder I will assume you know exactly what I am talking about in this regard).
Joel has an article that touches on this very issue, in the article he states: "Leaky abstractions mean that we live with a hockey stick learning curve: you can learn 90% of what you use day by day with a week of learning. But the other 10% might take you a couple of years catching up. That's where the really experienced programmers will shine over the people who say "whatever you want me to do, I can just pick up the book and learn how to do it." If you're building a team, it's OK to have a lot of less experienced programmers cranking out big blocks of code using the abstract tools, but the team is not going to work if you don't have some really experienced members to do the really hard stuff."
Sorry for the rant, but I'm tired of hearing disgrunteled programmers that I know complaining about not getting that "Java" job that they applied for when they had 5 years of experience programming in VB. "Just give me a book! I can learn it in a week!" They say...
It's just not the same thing. And I wish people would stop believing that it was.
Here is the like to the article that I refer to:
http://www.joelonsoftware.com/articles/LordPalmer
You are still in time. Seriously consider keeping coding as a hobby and pursue a different career path...
The mass of lower-middle-class wannabees taking computer science courses reminds me of the fad of training people to be keypunch operators in the 1970's. It was popular by the time it was obsolete. So computer science isn't quite obsolete yet. But where keypunching became technically obsolete most programming jobs in the West are becoming economically obsoleted by the Third World.
Whether the undergrads are right to shy away from CS depends on what else they are doing. If they're smoking dope or studying Critical Theory or Gender Studies they'll be SOL (poop out of luck) in the job market. Go find Norman Matloff's home page and read about the careers available for CS grads: lots of CS grads don't get jobs writing code. While searching for the reference I came across these two articles by Norman I also recommend: see this article or this one in rebuttal to an economist.
It only makes sense that if you lower the price paid for CS grads with H-1B visas and off-shoring, you are going to discourage knowledgable people (middle class college freshmen) from majoring in CS. That women and people of color are now being conned into working super-long hours for modest pay is just deja vu all over again.
To quote Norman Matloff:
I18N == Intergalacticization
"An inch of time is worth a foot of jade;
no day comes back again."
"A witty saying proves nothing." ~Voltaire
"d'Oh!" ~Homer