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/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.
ACM contest is fun but that doesn't mean that the winners are the world's best CS people. Nope.
Who wants to play around with a general purpose computer when they can be sued for just about anything under the DMCA? Seriously, the reason I got into CS is because I had a computer to play with and a computer systems lab in high school. These days everyone is expected to just consume what's already been developed instead of creating something new.
Besides, with the DMCA and all the vague patents out there, the risk of law suit is quite high if you dare try to write some cool software. Innovation is dead, and I feel sorry for everyone growing up in school now. The opportunities to learn and explore are severely limited now in the fields of advanced technology, which seems to me is opposite of what you would actually want.
I made a MythTV box to watch TV. Every day that goes by I feel more and more like a criminal.
--- witty signature
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
the problem? who's to blame?
graduate school admissions for computer science.
"oh you went to harvard and studied anthropology, sure, you're better than the kid who went to a small state school and studied computer science. okay we'll take you."
the current attitude of admissions for grad school is so bad that this is the actual truth. someone once tried to justify why harvard anthropology kid (straight out of undergrad) was better than midwest comp sci kid.
honestly, academia is behind this decline.
When I was applying to grad school in the midwest ... I was told by a pair of CS Department Chairs and my own undergrad advisor that I had a an excellent chance at getting in ... simply because there aren't many good young white american applicants anymore.
... I got in, and quickly became a prof favorite ... but there weren't many others around the department like me.
End of story
*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 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?
Perhaps Americans are instead signing up for MBA programs combined with courses in Hindi, Tamil, Urdu, and other languages needed to effectively manage software projects when a great number of your programmers/coders live on the Indian subcontinent.
My sig is too lon
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
Does the percentage mean number of collage students entering the field? Personally I've noticed that the colleges are mostly full of computer stupid students. I've tried two colleges over the past two years and I was disappointed with the level of the computer science majors. Some of my high school friends have noticed that and already dropped out and are working in computer related fields so I think those numbers don't show much. On another note have they ever though that maybe those of us who have skill enough to be in the programming challenge just didn't feel like it, didn't have time or some other excused that we all tend to come up with in the computer field.
You have to actually look at this like you do stats about Apple Computer:
... a lot more. Therefore the actual number of enrollments may actually be HIGHER.
... but individual unit sales are 2X because there are more people buying computers
There are MORE college students today than 6 years ago
Apple Computer:
Marketshare is lower to flat
Yell & scream & rant & rave... it's no use... you need a shaaaave ~ Bugs Bunny
Look around, how many software packages are available to encourage, enable and are targetted to 8-12 year olds. NONE. There was a point where schools were attempting to teach that age group fundamental computing. Not script writing for games or website design. Basic computing. Heck schools aren't teaching the other stuff either. More n more of the materials to learn computer programming is being geared for and designed for college students and professionals. You have to inspire kids to want to do programming. I think the trend towards fewer programmers has less to do with competition from India but rather from the failure of the industry to develop tools and materials for the age of child that can best be inspired to dream of that career path. Waiting until college is a wee bit late. The age to inspire is the 8-12 year olds. That is when I learned to program. Things were simpler then but the core documentation was readily available and affordable. Not so anymore. The trend toward fewer CS majors began 10 years ago when materials suitable for the 8-12 year old began to disappear.
hmmm
Intron: the portion of DNA which expresses nothing useful.
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.
It's not only the Decline in CS, is the decline in everything : http://www.imdb.com/title/tt0090985/
Ceci n'est pas une Signature !
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.
A result of the sensationalist junk about poor job prospects for IT professionals.
I am not sure what some will think about this but I think one of the reasons that there are not as many CS degrees being given out is people are realizing they do not need a degree in CS to get a job in computers. As one poster already put, he did not even finish his degree because he did think it benefitted him, I will not argue that just point out that there are not many other "professions" that you do not need a degree in to get into the business.
I do not know how many people I've met in my 7 professional years that either a)said they did not have any degree at all or b)said they got a degree in some other program and many of them not even in a technical profession. I think this is the larger problem. Our industry is one of a few where they want highly talented individuals, but also want a break on price. Easies way to do this is let anyone in which drives cost down because it is not specialized. For those of us that are CS Majors think how much more we could demand if someone from outside of the degree program could not come in and take our job. Also think how much more weight might be given to us in project management as well. If someone knows that this person really knows what they are talking about because of his education and experience perhaps those ridiculous deadlines might be fewer and fewer.
What differentiates them from the rest is that they actually prepare very hard for it-- with actuve faculty and school encouragement
Maybe in preparing for the ACM contest they actually *gasp* learn something about CS. And it's great that they have school encouragement, we should only hope to see more encouragement out of the universities in America.
Most others just show up, expecting to have fun.
Bit of an unfair generalisation. I'm sure everyone tries hard to win. Nevertheless, the Russians and Chinese have been winning these contests of late and you shouldn't discredit them by (effectively) saying: "Us Americans didn't try".
"Dewey, you fool: Your decimal system has played right into my hands!"
Perhaps the reason that the US is experiencing a decline in producing computer scientists has to do with the decline in employing them? It's a little difficult to believe that the "concerns (of losing your job to outsourcing) are overblown" when those of us in the industry saw almost every single one of our peers lose their job in the last 5 years.
Even the article qualifies the security of tech jobs:
Programmers with leadership and business skills will do just fine.
Translation: You can be a programming manager, but you can't make a living doing the technical work.
Dear American Business(tm): You want technical people? Take legislative steps to protect their employment prospects. Otherwise, stop whining about how nobody wants to go into a technical field.
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.
Please elaborate on how you arrived to this conclusion.
I am a junior in CS. That means I am not smart, right?
Computer Science is exactly that, Science.
You don't go to school for 4 years if you want to go be a code monkey, just like you wouldn't get a Ph.D. in Chemistry if you were going to enter pharmacutical sales. A Computer Science degree allows for study in the area of new algorithms, new computing paradigms (grid, neural net, et al.), and other RESEARCH oriented goals.
Computer Engineering on the other hand allows people to gain the skills needed to participate in industry, leading teams of developers and (hopefully) using methodologies taught in school.
Code monkeys go to ITT Tech for 2 years, get a cert in Java or something, and then go on to be programmers. The reason it's easy to outsource programming is because almost anyone can do it for cheap. I'm not trying to undermine the responsibility of programmers in any way, but when you can get a guy for $10,000 a year who has a full fledged degree, vs Joe Nobody from ITT Tech, you're going to do it and save the big salaries for the managers (not PHBs, but smaller scale tech managers with degrees in software engineering).
Perhaps, the current number of the practitioners of this particular Art reflects the demand?
The articles talks about the number of new CS-majors "in pipeline", but how many have exited the workforce in the same time?
In Soviet Washington the swamp drains you.
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.
'cause here, schools figured out that they can make a VERY GOOD living from milking students---and almost literally making them work for them a few years of their lives.
Education isn't supposed to be amount $$$, but often times, it seems that's the -only- thing it's about. Schools want tuition dollars... students just want the damn diploma (worthless paper in itself)...and that's how you end up with lots of seemingly educated folks who cannot do anything... yet still have to work for 5 years to pay off their diploma.
Note that the countries mentioned as `progressive' have relatively cheap education that's mostly based on merrit and not on financial standing... Also places where a `diploma' itself has very little meaning.
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+
You would probably find it easier to retain gainful employment if you would work on your spelling and grammar.
With a huge budget deficit, neverending wars, a corrupt Congress & White House, outsourcing at every level, a growing gap between rich and poor, and stagnant wages, I would say the US is in decline - period.
He who knows best knows how little he knows. - Thomas Jefferson
It's kind of funny that Computer Science is on the decline, despite the fact that software engineer is considered the best job in America.
Badass Resumes
Maybe the reason people are not going into CS is because most companies in the US are farming off the stuff a comp sci major whos starting out in the field would do to these 2 dollar workers because its cheaper.
This is a common popular belief, but where are the numbers to back it up? As the article mentions, the Dept of Labor forecasts that growth in CS will be 40% between here and 2012 -- and those are domestic number, not worldwide. If you read the "Best Jobs" article in Money Magazine from last week, you'll see that their growth prediction is similar (46% over the next 10 years).
The fact is, these jobs are not all being shipped overseas. The rate of CS/CE job production domestically is far outstripping the rate of outsourcing of these jobs. Unless you have some facts to back up your claim?
Hear, hear!
I have also participated in the ACM programming contest (only got to regional competition, but it was fun). I had the unusual experience of having a programming-related job while I was still in college, and I can certainly confirm the parent's description of ACM programming contests being far from real-world earning-an-income coding. It's clear when you realize that an 8 to 5 desk job is much different than you remember from the contests in college, but it's really clear when you've already got a programming job and you go to an ACM programming contest.
The really successful coders are the ones that can learn new APIs and languages over a weekend. They're the ones who can communicate with non-technical people. They're the ones who can write a design for an application that will take a team of twelve developers a year to implement. The ACM programming contest compares to real-life CS work in the same way that a lumberjack competition proves a person's suitability for work in the logging industry. In both cases, the two sets of skills (contest vs. real life) overlap very little.
I pity the foo that isn't metasyntactic
...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.
When I was in high school, I ran track (poorly), played hockey (poorly) and dated (poorly). Then I got to college and was mightily impressed by all these kids who had been in the International Chemistry Olympiad or Physics Olympiad or whatnot.
Check back a few years later and I seem like a much better hockey player, now that I only play against other researchers. Meanwhile, the former Olympians have never done anything that's reached my notice. Maybe they quit and went to hedge funds and have been succesful there, but certainly not in chemistry or physics.
What I'm listening to now on Pandora...
Out of the small May, 2005 class of ~20 computer science students at a small state university in the midwest, I know two that are still working part time in unrelated fields, looking for work related to their degree. The only people I knew that were working immediately after graduation were the ~50% that were working before they started the degree program and three students that grabbed the only three internships in the area.
There are tons of listings for sysadmin and programming jobs in Indiana, Kentucky, Illinois, etc., but you almost never see any entry level positions. It took me six months to find something, and that was a fluke.
Are there any places (other than Cali) where recent graduates are quickly hired? I'm certainly not aware of any.
With this smaller field you get fewer high performers. Why is it we in the UK are useless at sports when compared to the US - we have fewer athletes so the chances of people being off the top end of the bell curve are slimmer.
So the net result is that we have both a shortage of IT posts as they're being outsourced to India and a shortage of high performing IT specialists because the supply pool is smaller.
Where you're spot on is that we won't change anythign by wingeing.
init 11 - for when you need that edge.
You know it's sad when you read the title and immediately thought CS meant counterstrike.
Look no further than the book pubishing Industry. The way that mathematics is taught in America is a product of a system based upon publishing. The resultant fragmentation, complexity and discontinuity of the material for the sake of satisfying bureaucratic guidelines and upping page counts negatively affects outcomes. Mathematics is the largest and heaviest book in the backpack. Its rediculous.
Disclaimer:: this is purely anecodotal and from one univeristy...
I was a computer science major for 3 years, but was always taking classes outside teh department "for fun". Half of my profs were non-native speakers which made difficult subjects even more difficult. For example, a friend of mine went an entire semester of assembly trying to figure out what the hell a regis was. The professor was simply referring to registers, but never bothered pronouncing the whole word.
In computer architecture, the book came with a cd full of power point review slides. Because the prof couldn't converse in English, she just read the slides offered by the CD. OK, great. But when you don't get what the book is talking about, the review slides/therefore class notes are in the direct language of the book, and the professor can't converse in English-- you are screwed.
My point isn't that CS profs have accents. My point is, Universities aren't hiring based on teaching skills and the students pay for it. I don't need fluent speakers, but I do need someone who can explain difficult concepts in understandable terms.
When you live in a society that advertises to kids that playing some sport is more important than learning or creating something new. It's even worse when some guy who runs around throwing a ball to another guy makes millions while your average computer person (who has spend around 100k going to school for 4 years) will maybe make it to middle class after 5 more years of working in their chosen profession. I'd have to say what pisses me off the most is that some white trash chick like Britney Spears can become one of the most popular with our kids simply because the RIAA uses her looks and sexuality to sell CD's. Hell, it's not even about the music anymore. Basically we tell our kids it's more important to be pretty or famous than to be smart and hard working.
This is a pretty small sample, and might be just random: In all my CS classes thus far in the last three years, I have had only 4-8 other students taking the same class (not that big of a CS school). However, apparently, they are expecting to have the first fully enrolled (intro core) CS classes next year for the first time in a number of years.
The traditional way to recruit more people into a profession is to up the ante: more money, better benefits, more chance at career advancement. Trouble is, the offshore competition makes this route less desirable. Why would a company jack up their expenses to hire locally when they can outsource and save money? I know this is very simplistic, but don't hold your breath waiting for that 20% raise or big fat hiring bonus.
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.
Sounds like the .COM crash. Problem is we're lazy but at the same time, no one wants to sit and code for 8 hours a day.
[%] Cingular Ringtones
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.
I am a junior in CS. That means I am not smart, right?
I think it has nothing to do with being smart.
If you went into CS for the money and the girls, well, maybe...
A career choice is for most of us not mostly about money, but more about self respect and the occasional really interesting work that makes up for lack of sex.
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.
Computer science and computer engineering are not the same. Computer engineering is related to electrical hence the reason why they are usually combined into dual majors. Even your university made that distinction and my universtity does also.
Ooo man the floppy drive is broken. No wait. The computer is just upside down.
When people talk about Computer Science, they usually mean "programming." There is a difference between CS and programming. Are the companies complaining about a lack of programmers, or research & development Computer Scientists?
I'm about to graduate with a BS in CS, and frankly I don't think it's what people expect. I'm not a *really* qualified programmer, I do have experience with programming, but I've got no industry certifications -- I'm not a software engineer. However, I have been prepared to move onto a Masters in CS, which is when the interesting work starts. A BS by itself doesn't do much, it's too general. But, without it, you couldn't do any of the real CS work.
I think one of the biggest problems with Computer Science is that most people don't know what it means. "Computational Science" is a much better name, since the field is really about finding ways to solve problems. Given information, can you answer a question. That's about as broad a definition as I can think of. Notice there's no mention of code, programming, or computers.
There's a famous quote, "Computer Science has as much to do with computers as Astronomy does with telescopes." I suspect this isn't verbatim, but the meaning is there.
There are rare exceptions. Most of my employers have had an 'expert' career track where you become a highly specialized crack coder that can be quickly offloaded to a high-priority project. But if you're goign to do that, you may as well contract.
There's other factors. First, about 75-80% of new job posting (in my area, anyway) are for contract work. Guys with wives and kids and mortgages tend to be less interested in temporary employment, and once you live from contract to contract with no group health coverage for a few years, you get sick of it and bail.
The industry changes rapidly, so you spend a lot of time either keeping up with new technology or you languish and become a relic who is stuck maintaining legacy code rather than doing new development. Again, if you've got a wife and kids you may not be all that interested in spending your evenings in classes or learning some new language. Few employers will pay you to learn a new skill that you only need so you can find a new job somewhere else.
We teach "computer science" classes that are really about "software engineering," but we have a bunch of theorists and scientists teaching an engineering discipline. The result is a bunch of really shitty engineers who don't know how to build anything. Computer science needs to be a scientific examination of computing, and it's a degree that maybe 2% of programmers actually need or would use. The bulk of the curriculum can be learned from books with minor guidance by most students. Comp sci should be renamed to Software Engineering and should be moved into engineering and taught as engineering discipline, both in terms of software construction and UI ergonomics. Most engineering deparmtments have at least some kind of ergonomics group, and software ought to be a part of that. Some schools have already moved in this direction.
Programming jobs are readily outsources, and easy to cut when the budget tightens. The aisles of grocery stores and the counters of GameStops across the nation are manned by guys in their mid twenties with $50,000 of college debt and a 4-year degree in a science.
You can hire one great programmer for $90,000/year, or two entry-level programmers for $45,000. Sadly, the guy making $90,000 doesn't do twice as much work. He may produce less buggy code, and do it faster, but businesses like warm bodies. And most compaines have hired enough "experts" at $90k who busted out and didn't produce much of anything that they'll roll the dice on the guy with 2-3 years of experienc who they can slightly underpay. If he doesn't wise up and leave after 3 years of a 1.8% raise, they'll have a guy with 5 years of experience who is SEVERELY underpaid. It's a win-win situation for HR.
It's not a lifestyle for everybody. Granted, I'm generalizing a LOT here, and there's a good deal of variance depending upon what industry you're in. I've worked in finance, medicine, telecommunications, marketing, customer relationship management, administration, all kinds of fields. The career is just not for me, and I was a lifelong programmer. Started when I was about 11 years old using GW-BASIC on an XT clone running DOS 3.3.
This is not a slight against those of you who are still in comp sci careers and love it, but most of the people I know who are very intelligent and very talented have moved out of the field. They've found a way to make more money doing less work and wit
"I have never won a debate with an ignorant person." -Ali ibn Abi Talib
Of the kids who I have seen drop out of CS, most go into something "easier": liberal arts, advertising, MBA.
You are correct that many kids get weeded out at an early point in their CS program and move to something easier, liberal arts, yes, MBA, no. I have BS and MS degrees in CS and I'm now working on an MBA. I am tempted to say the MBA program is more difficult but I am probably biased since I am in the midst of its heavy workload. I understand your impression, I used to have it. I took lots of history classes for fun, getting an A or B+ took nearly no effort. I expected topics like marketing would be just as easy. However I am now in a marketing class and using more advanced math than in nearly all my CS classes. I studied CS in the University of California system, the MBA is also at a UC campus so I think I the CS / MBA comparison is fair.
Programmers do algorithms, developers put something in the hands of the end-user to actually use, have fun, and make money with.
Now, most universities abroad are filled with programmers that are dying to get a job in the next Microsoft, HP, or Intel campus that opens up in their country, to sit back in a cubicle and code algos for the forseeable future. And there's a place for that, but for the money, I prefer the all-round developer any day.
Newsfollow.com
The latter notion reminds me of the book Bait and Switch: (The Futile Pursuit of the American Dream) by Barbara Ehrenreich. In it, she fluffs up her resume and goes searching for work that pays a minimum of $50,000 with benefits. She attends workshops, seminars, coaching clinics, and other things to improve her likelihood of finding work. Months later, she fails to reach this goal and in turns calls the American Dream a pointless pursuit. I realized this is not true, but that she was just too damn picky. Nobody can realistically expect a job paying $50,000 annually without qualified skills and plenty of experience.
Is this a reality of American developers? Perhaps indicative of why fewer students graduate with CS because they are not as qualified as they could be if they graduated in other disciplines?
For he today that sheds his blood with me shall be my brother.
I don't see why CS is inherently a US discipline. It seems to me a lot of the US strength in CS/IT comes from historical reasons ( such as many of the advances which actually brought us computers in the first place of course ), and that it also happens to be where a lot of the money is. Consider how technology has spread around the world - there is no reason why other countries shouldn't feature more prominently in CS. History is just that - history. Things change and the US doesn't have a right to dominate CS/IT. When the US was building code breaking computers in the 1940s, was there even a similar sort of computer in India ( not counting it as part of the British Empire as it then was ;-) ? Of course other countries are going to get stronger in CS and the US is going to lose out to them to some degree.
;-). Decent developers yes, computer scientists no. My brother has an MSc in Marine Biology, he agrees that just having a BSc doesn't make him a scientist and he didn't really start to learn how to be a scientist until he started on his MSc.
/. and it helps to be clear about these things :-).
I work in the computer graphics field. From reading research papers, SIGGRAPH proceedings and the like I know that many, many people not from the US are doing a great deal of research. In fact it might even be the majority. Of course many of those people actually work in the US, and that is a large part of what has made the US strong in CS - so many foreigners are working in the US. The US is very lucky it has been able to attract those people away from their own countries to contribute toward the US dominance of the field to date. As someone not from the US myself I can't help feeling maybe the home countries might have been better off if those people hadn't gone to the US ( not that I'm judging those who've made that choice, by any means ).
Of course something else to consider is how many people actually studying and graduating in CS are what you could really computer scientists. I mean, a CS degree is just what you do to get a development job, it's a prerequisite for so many jobs. I don't have much formal CS training myself, but I've worked with people who have CS degrees and I think it would really be pushing things to say they were computer scientists
Another thing is that the drop is compared to 2000, which is still bubblish times for CS/IT. I used to work in the boatbuilding industry in New Zealand. When I was training NZ won the America's Cup and that caused a massive amount of interest in the marine industries. The year after mine was filled with people who thought they would train to become boatbuilders because there would be so many jobs available in the near future. Many of them had just a vague interest in boats, and some didn't seem interested at all. A fair few didn't even finish the course. My point is, as others have said, whenever there is a "bubble" in some industry you always get a fair number of people looking to enter the industry who are after the job and not really in it because it's what they really want to do. BTW, in case you're wondering I'm no longer in the marine industry due to health problems, but my plan was to work as a boatbuilder ( something I'd already been doing as a hobby ) and gain wider practical experience before moving on to yacht design.
Personally, as a non-US member of the IT industry, who works with lots of other talented non-US members of the IT industry, I'm not sad to see countries other than the US progressing toward the forefront of things. I'd also like to emphasise I feel no ill will toward my colleagues in the US, because, you know, this is
I also apologise to actual computer scientists for using "CS" so loosely in the above...
Regards,
Jo Meder
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.
For example --
- "I need a programmer who knows how to rewrite the code that someone here in the US created 10 years ago, so that it's up to date. It's a very esoteric program. But someone in India already knows it, I guarantee. So I will not hire or train someone here to do it, because it can be done more cheaply, *and right now* if I farm the work out overseas. " -- but in exchange, you have sold off the investment in the programmer here in the US who might have created the code you will use 10 years from now.
- "I need furniture for my new house, and I want it cheap and relatively sturdy. I'll buy stuff from Walmart or Ikea, because it satisfies both those requirements." -- but in exchange, market share of domestic (high cost) producers is tanking, and in 10 years, there will be no more domestic furniture producers because no one has been trained for that job anymore (or can find it a sustainable livelihood).
There are better examples I'm sure, and these certainly aren't new thoughts, that haven't been written tons of times elsewhere, but I for one (maybe because I'm not out there searching for a job in frustration) see it as an evolutionary transfer of wealth and assets from the rich to poor. As we (as a country) get old and rich and fat, there are people who are willing to do our work for us cheaper and faster, and better, and who will rise in power because we (just through acting by our human nature individually) create, as a group, these forces that none of us can individually resist.It's fascinating, but sad sometimes, because the "we" in the above statements isn't a single person who can learn from mistakes or change his/her behavior -- it's usually the next generation that suffers from the shortsightedness of (or irresistible economic grounds laid by) the previous one...
Oh, so ACM is nothing? So let's look at TopCoder rankings, where none of your points apply. And what countries we see at the top? ;)
1. Poland (Central Europe)
2. Russia (Eastern Europe)
3. Canada (Northern America)
4. USA (Northern America)
5. China (Eastern Asia)
Surprising?
Always put off dealing with time-wasting morons. If you would like to know how... I'll get back to you
I tend to think that part of the problem with the decline of any engineering or science degree is the fact that the current social trends sorta swing toward distain to hatred of anyone showing any level of intelligence above most folks. Mind you, it doesn't take a genius to learn how to program or install a network beyond knowing your basics, but it still does require some analytical skills that are often looked down upon as 'nerdy' or worse 'elitest.' And that bothers me because in the 1950s about half of all degrees, for men and women, were in science or engineering. Today, the number of science/engineering degrees only make up a fraction of one percent now. I don't expect most of my 'peers[people my age]' to understand why I love knowledge [I'm a CS major with interests in mathematics, physics, neurology, and cybernetics] for its sake, most tend to ask me why I read. I've been been told by my 'peers' that reading is stupod. Imagine that, a society where even reading a book for fun is stupid...Then, it's really no great wonder at all to realize why even CS degrees are on the decline...
-- Bridget
Where have I seen this before?
ACM contest is fun but that doesn't mean that the winners are the world's best CS people. Nope.
:-) which is not a bad thing per se: to be able to love the work you do.
What it does mean though (in your own words) is that "Chinese or Russians or East Europeans" "prepare very hard" and not only "for it".
On the brighter note, I am pretty sure that Americans certainly won in having more fun
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
I know I'll get flamed to hell, but screw it. If we truly* have such a shortage of computer scientists, then let's recruit the foreigners and bring them in as immigrants. Remember all of those European scientists came to the U.S. before/during WWII? How much of the American technical supremacy of the 20th century can be traced back to their contributions? The best way to develop/maintain technical prowess as a society is to secure the best intellectual capital.
Actually a lot of the current high tech supremacy the US has today is a combination of European knowhow (primarily Nazi German, just compare state-of-the-art Allied and German military projects at the end of WWII) and the USA's commercial muscle, imagination and will to exploit it which is a factor that is often overlooked. A large part was also down to looted technical documentation and research data. There is a famous story of a lead engineer at North American working on the F-86 fighter who went to night school to learn German in order to fully exploit the research data he had been given by the US intelligence services. Apparently he subsequently completely redesigned the aircraft. While that may not be a 100% true story German data and German and other European Scientists certainly had a major effect on the US aerospace industry. It would be hard to repeat this phenomenon today, the influx of sensitive scientific data cannot be replicated since the nations that possess any data of value to the US are neither in ruins nor under occupation by US forces making the wholesale annexation of their entire cutting edge IP impossible. You may, however, expect some success in recruiting some foreign workers who buy into modern variant of the good old 'streets paved with gold' myth.
Only to idiots, are orders laws.
-- Henning von Tresckow
Okay, I will give you that. It just sounded like you were saying that anyone who went into CS for any reason was making a bad decision.
Well, as a completely disinterested bystander in this imbroglio let me offer a few comments. The Duke team was not ill-prepared. The Duke team consists of first-rate people/students, not "second stringers". Lots of teams got crushed (and disproportionally US teams got crushed). If you look at the results you'll see teams from these "elite US institutions": MIT, Cal Tech, Princeton, CMU, Rice, ... Only MIT did well (top 12). Canadian teams have done well for many years and did so again (Waterloo, Alberta).
The teams from Harvard, Stanford, ... didn't make it to the finals. Why? As an earlier responder wrote: preparation and interest. I'd still go to these schools (and Duke) to hire people for Google, Microsoft, the next start-up, etc. But the students at these schools, and others, have many and wide-ranging interests. They're not completely dedicated to this contest and that's what is required to do well in addition to knowledge and ability.
Salient post.
Indeed, there are some jobs "going overseas," but it doesn't stand to reason that the entire field is going with it, or that new jobs/technologies will not be created in the future. The main article seems alarmist. OMG, we're running out of coders, we'll fall behind! If this indeed bears out, it's likely that talent will begin to move here. It's why most of us are here. If there are good paying jobs in America and no one is applying for them, the free market will pull in required labor. No one is applying to do a lot of the low-wage manual labor jobs, for example, so Mexicans are coming here to pick up the slack. Trying to prevent foreign outsourcing or competition is a temporary, reactionist solution to a percieved problem. It will only result in ever greater global pressures on an artificially inflated wage structure, and degrade our eventual global competitiveness. A parallel would be astronauts in the ISS. Without the pull of gravity, their muscles atrophy. They must exercise vigilantly to retain their strength, so they can function back on Earth. They won't die if they don't, but after too long they'll be unfit to cope with gravity when they finally return. It's a force we must adjust to. You can ignore the cost or quality of Indian programmers or Chinese sysadmins, but that doesn't make them disappear. They will still be there and still affect you, visibly or no.
It amuses me that they focus so much on Computer Science enrollment. My experience is that a lot of the best programmers don't have a computer-science degree, or even math- or engineering-related degrees. Out of the last 6 months' worth of applicants I've interviewed where I work, the best one had an education degree. The people with CS degrees have, by contrast, been uniformly lacking in basic programming background and skills. It's not limited to the US either, it goes for the non-US applicants as well.
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.
Laywers and business men are produced more and more every year, so things look bright... oh wait, they dont produce anything, they just sell and sue...
First off, as a country we are living FAR FAR beyond our means. You only have to consider the almost $1 Trillion (yes, Trillion with a 'T') a year in the budget deficit. That implicitly means that are are borrowing $1T mostly from foreigners, to subsidize our standard of living. In other words, we're a borrower nation gone nuts, paying off our debt with yet more debt.
What does that mean for graduates? Well, consider that basically what it's saying is that our standard of living is being propped up by borrowed money. In order for salary increments that many of us techies saw in the boom years to continue, we would only have to continue and increase that crazy borrowing streak of our nation as a whole, since we're living well beyond our means.
Now onto the problem of Management and Finance getting more recruits: I've found in my career, that 'knowing the numbers' of your business and/or company, is the absolute fundamental requirement to rise up into ranks of company officers. Not knowing the numbers means that you cannot really claim to have a birds eye view of the picture of your contract or engagement, because you have no sound basis to make any judgements. All you know is your code -- and how much different is that these days, then car factory workers who assemble parts on an assembly line, and who don't pay attention to market trends, the cost of inventory, the costs to the company, etc.
We've got to stop imagining programming as being a field where you can experience boundless salary and title inflation. It's silly to think so, because in the end, it's the management and finance folks in an organization that really make the stretegic decisions, and it cannot be any other way.
All in all, I think programmers complaining about the job situation in our field need to reconcile themselves with the fact that Computer Science is like English -- you can learn it anywhere in the world be just as good at it as anyone. The real value you can build in your career and in yourself, is to get to 'Know the Numbers', so that you can add some strategic decision making value to your self, thereby making yourself more valuable to your company. That, in a nutshell, is the best way to progress in your career, and keep your salary and title on the right slope.
Yeah. You certainly don't wanna be the guy who broke the curve. Especially if some of the class knows where you park.
Shit like this pisses me off. Both my high school and my college chose speakers at graduation based on popularity. Both times I had the highest GPA of anyone in the class. I was never allowed to speak at graduation, or say anything.
The only incentive one has for overachieving is success in the workplace, and you might not even see that. And the payment is years of punishment at the hands of your peers.
I never liked my generation, anyway.
:(){
I went to college as a CS major, but then dropped it when I saw I had to take a crapload of irrelevant classes such as Calc 2, Calc-based physics, and the likes. I wanted to program, not be a rocket scientist.
.NET.
;)
4 months before I graduated I found a great CS job, doing programming in
Go ahead and mod me down now, for being a MS fanboi.
My point is, I didn't graduate as a CS major, but rather with a BA in "Interdisciplinary Studies". My employer didn't care. I can churn out clean, reliable fast code <Insert 'omg you cant do that with M$' joke here> in a resonable amount of time, which is exactly what CS people do.
Allow me to use the Baseball World Cup as a metaphor. In that event, either the US or the Dominican Republic should have won if you strictly base it on the talent of the players. Unfortunately, it's not that simple. There are other factors involved, such as nationalism and the existence of MLB in the US, which become factors influencing the amount of preparation put in by each of the teams (Cuba being an example of a year-long affair). You can see the same thing with the US's basketball team, though some of that failure is attributable to the differences between NBA and international style basketball.
In this competition, I think international teams simply care more. They probably spend a lot of time preparing for it and the teams become highly specialized at winning programming competitions. I'm not saying those skills don't translate into useful skills in RL, but I think we should take these results with a grain of salt. I would put our best programmers against those of any country in the world, but they're too busy doing relevant stuff.
(%i1) factor(777353);
(%o1) 777353
... but some of the applications are very high tech. People say that CS is in a decline and that CS is gonna die and that China and India are gonna take over, well, I have my doubts. There are the people who talk, and there are the people who *do*.
Being in a position as an ex-programmer / now PHB.....We hire 3 or 4 programmers a quarter. They send us the resumes, and we weed through them paying attention to experience, accomplishments and education, ignorant of the race, culture or country of birth. Many of these that look promising get invited for an interview.
The sad part is -- There are many American "trained" programmers that have been making a living as "programmers" for many years....And they don't know very much about computers or programming.
I always use the example of comparing the programming field to such skilled professions as plumbing and landscaping. If you have a plumbing problem in your house, or need a sprinkler system installed in your yard -- you can open the yellow pages and be pretty sure that the people listed under each profession are going to be able to solve your problem (no matter how "unique" and "undefined" it is) -- and your decision usually boils down to cost and availability.
In direct contrast to this, you find many people offering themselves out as contract programmers that are not problem solvers -- and do not know very much about programming. They would not last a week as a plumber or landscaper.
To make a long story short -- I don't know what it is, but even though we are not outsourcing or having our work shipped off shore -- most of the qualified
applicants (to put it bluntly) are not born nor primarily educated in America.
To put it even more blunty -- on a scale of 1 to 10 points, if we gave 3 bonus points for being born and educated in the US....We would still be hiring 95% of people from India or China.
(+1 Funny) only if I laugh out loud.
From the original article:
"When BusinessWeek visited Duke on a Saturday in early April, it was clear why many American students don't have the intensity of their overseas counterparts. There are a zillion distractions. The campus was like a carnival, with concerts, outdoor parties, and sunbathing on the grass. Meanwhile, the programming team was sequestered in a concrete-and-steel computer science building writing algorithms on whiteboards and tapping out C++ code on a PC."
Why not do Buisness degree and have more time for fun, and less chance of being offshored later. Less late nights and weekends at work staring at a computer screen.
"but they are all governed by one rule: How many students can we graduate?"
I read your original post in this thread, and said to myself "what the fuck?" but it was this statement that forced me to respond.
You're completely wrong. Scholls don't give two shakes how many students they graduate, and in fact would be very happy if only the very best graduated.
No, schools are interested in how many students they can ENROLL. No part of graduating from a university helps the university, and if they are graduating mediocre students, that devalues their program over time.
However, if the schools enroll everyone, yet graduate only the students who deserve it, then they get the best of bith worlds, that being a large (paying) student body, but a small (qualified) groups of graduates.
What you said simply isn't accurate, period.
"The government grants you rights, not the other way around."-- beav007. Yes, these people really exist...
It's not like we have no precedent for expanding our R&D with immigrant scientists. Some of "our" greats were immigrants of other countries.
The real question is not "How will we compete?" but rather "Are we willing to court immigrants as we used to to compete?"
Don't answer quick, becuase it's not an easy question to answer. There are serious ramifications.
Not to mention that I've said before that the media is overstating (greatly!) the direness of our science and technology situation in the U.S.
Tom Caudron
http://tom.digitalelite.com/
-Tom
Forgive nasty comment. Anyone who puts their butt on the line in a difficult competition has my respect.
an ill wind that blows no good
> 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.
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.
That's not the fault of the degree, it's the fault of the person pursuing the degree who doesn't know what it's good for. Being a system or network administrator is only tangentially related to being a software developer.
The schools get CS majors ready to be programmers ( bad ones at that ).
Only true if you go to a school with a third-rate CS program. The program I attended has more than adequately prepared me for everything I've had to do in a professional capacity.
There is a huge gap between what the schools teach and what businesses need from their computer personel.
If what your company "needs" is an IT guy, then of course a CS degree is going to be of limited use (as you seem to have found out). Go get an Associate's in IS/IT instead.
the coolest club on
My thinking on it is that departments will have to continue to become more self-sufficient, and thus will have to get professors based purely upon the criterion of research, meaning what research dollars can s/he bring to our program? And as demand for CS professionals goes up, those professors who are great instructors, but who don't care about research, may be lured into the work force.
This is clearly a bad thing, but there could be some benefits if education adapts by offering more project-oriented curricula, allowing undergrads to become involved in some of the research projects.
We'll see.
(%i1) factor(777353);
(%o1) 777353
"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 find it rather amazing that there isn't already more of this. When it comes to immigration, it almost seems as though many people with real skills are lumped in with unskilled labor sneaking across the border (thus proving the U.S. commitment to the idea that "all men are created equal", I suppose). While there are some immigration programs for people of "exceptional merit and ability" and similar categories, the number of people who get in this way are a tiny fraction of the people who could truly benefit the U.S. economy.
If you're a smart, motivated person with high potential, but not already world-famous or rich, your options for entering the U.S. are limited to non-existent, practically speaking, other than getting in a line with waiting periods up to and exceeding 20 years.
One standard argument justifying this situation is the economic competition: an influx of smart workers would drive down wages for Americans. But this is a logical error, with roots in 19th century economic thinking, that drives so much immigration policy. The point, and it's worth devoting its own paragraph to, is:
Knowledge work is not a zero-sum game!
If someone's going to come up with a new invention, a new product, or a new business, where do you want those people to do that? Inside the U.S., where all the benefits of the new development accrue to the U.S. economy, or outside the U.S., where the U.S. risks ultimately becoming an importer of that thing, further increasing its trade deficit?
Up until now, the U.S. dominance in science and technology has allowed it to essentially ignore this point except in the most extreme cases, which is where that "exceptional merit and ability" immigration category comes in. But with increasing competition from highly-motivated, high-population developing nations, and major economic and technological assets being "globalized" to other countries, previous tactics won't be enough. To have any hope of retaining its competitiveness in the long term, the U.S. is going to want to start doing a better job of importing some of the cream of the crop from those competing nations.
But it seems that the combination of "democratic" egalitarianism and Republican protectionism is enough to completely block this line of thinking. The U.S. is going to have to wait until its economic ass is being kicked, but good, before it changes its policies. By then, it may be too late, and the U.S. role as world science and technology leader may finally be over.
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.
CS may be in decline, but the business school equivalent seems to be doing very well.
And from I've seen,the reported salaries tend to show why. People want job skills, not useless theory.
I think so many people went into CS without a love or appreciation for it (or its baisis in mathematics). As a consequence the market was flooded with fools looking to make a buck. This was devistating because it turned the field from one of an applied academic dicipline to one of comodity output.
.com rush, but they pulled the field down to their level rather than rising up to its level. You don't hear much discussion about mechanical/civil engineering going offshore because those fields are applied academic diciplines; not commodities.
Not only do I hate working with these people, who are remnants of the
Programmers are a raw material much like wool, cotten, corn, or ore. Programming has become assembely line work. Not only does this frustrate me because it is such an interesting area of study (and one still in its infancy), but like any commodity we (CS professionals) have to compete squarely on price. Perfect market.
It makes it that much harder for the business/joe sixpack world to understand that programming != programming.
God, I can't stand when these business analysts whine about the decline of CS majors in the US. Gee there "BusinessWeek", maybe you should run an article on how treating people who train for difficult careers like shit makes other people, gasp, not want to be in that field.
"Gee, all we did was outsource their jobs to other countries so we could buy bigger mansions, what's with the unsportly attitude here? I can't help trying to make a profit for my shareholders, but I'll be damned if some foreigners from wherever overtake us in technology and commerce. Come on, guys... it's just as our President says, no one can out-compete the american worker!"
Yeah, I'll probably get modded down for this, but whatever. I'm tired of all these analysts complaining about some impending economic doom followed by... sitting on their fat asses. If the folks at places like BusinessWeek really gave a damn about anything other than their own bank accounts, they'd try and change the way that the US does business; but the chances of seeing an anti-outsourcing, anti-big-CEO-salary article that champions standing behind your employees rather than shifting them about as human resources is about as likely as Rumsfeld apolagizing for ineptly costing thousands of civilian lives and going off to live a life of penance in a rural Buddhist monastery (well, shit, if I'm going to be modded down by one of those neo-con/techie hybrids, might as well get everything off my chest.)
Ex nihilo nihil fit.
-I won't even mention the USPTO and american fair justice system ("the one with the more money always win") that would make us european laugth if it wasn't hype for our politicians to copy your mistakes.
This IMHO the largest threat, actually. This may irrepairably damage our tech industry. It is becoming increasingly risky for a company with money to produce new systems, because of the sheer number of infringements this involves and how much someone would like to sue that company. I've seen this from both the open source developer side and the huge company side, and what is going on is appalling -- mass siphoning of resources from developers and engineers to lawyers and "patent entrepreneurs".
I can think of a number of reasons why the US does well.
* Europe generally has heavily protectionist labor laws. In the US, if a programmer sucks, he's generally fireable at-will. If a company sucks, a programmer can walk out tomorrow. In Europe, you tend to be looking at mandated long warning periods on each side, mandated severance pay, and so forth. The benefit of the European approach is more stable employment. This doesn't come for free though -- it's harder to establish a meritocracy and connect with the best workers. The recent protests over French employment law were incomprehensible to me, as an American (where laws guaranteeing that employees could not be fired without "just cause" for a a certain number of years after they started working were possibly going to be rolled back). If you're worthwhile, your employer isn't going to fire you, and your employee isn't going to leave you. Forcing the employer to do otherwise is not economically free.
I work with some Germans -- they take their eight-hour workday *very* seriously. My understanding is that a German manager that requires an employee to work beyond a certain amount of time becomes personally liable if, say, that employee gets into a car crash on the way home because he is tired. This may be great if you want stable employment; it's not so great if you're trying to get a company going, especially in a market where time-to-market is crucial.
* Venture capital. I remember reading an analysis that dated back before the dot-com boom, and remember reading that it is much easier to get startup funding in the United States than it is in many European countries.
* A large market is easily accessable. The US is well-to-do, and just about everyone speaks English (though Spanish is upcoming). It's easy to write a software product and sell it to everyone in the US. I was debating this subject with a gentleman who runs a German software development firm the other day -- he commented that a US software developer doesn't need to be able to sell to Europe, but that a European software developer generally does need to be able to sell to the US.
* Good education. Expensive, granted. I still see lots of grad students studying in the US from overseas.
* Savings are more liquid. In the US, you tend to have more money going to the employee and staying with him, due to lower tax rates. That means that after a few years, it's easier for someone to take his savings and make a (possibly risky) gamble and start a company. Of course, he might wind up fairly poor in his old age as a result of this; Europe would tend to subsidize that old age more heavily.
* Paul Graham has his own take on this, which seems to be some sort of fuzzy claim that Europeans culturally focus on long-term planning and polishing products, and Americans culturally focus on quick-and-dirty and a rapidly changing market. His arguments seem to be mostly anecdotal, but they are at least fun to read.
* You mentioned deficit financing as a drawback. Deficit financing is bad only *in the future*. It's great in the short term. The faster the national debt grows, the faster resources flow to the US in the short term.
* My understanding (though I'm not aware of the specific
Any program relying on (nontrivial) preemptive multithreading will be buggy.
Here is what amazes me. That people can sit and say that off-shoring is natural (it is) and in the same breath think that everything connected with the issue is also natural (it isn't).
A simple lesson in very basic economics is in order. This is just to make my point complete before you read the article.
Normally in an industry there is hysterisis between things. a kind of resistance to changing movement (not always a lag unless you always flip the equation to form it that way).
So in a given year a certain amount of people enter the work force. Depending on whether there is growth or demand for them, they will collect a salary for doing their job. If demand is high, then there will not be enough of them, and the salaries will rise. If demand is low, then many will be out of work, and salaries will drop.
This is the natural order.
Off-shoring doesn't change this because off-shoring has costs involved other than salary. In many more detailed studies a lot of off-shoring (at least in the early period of the shift), is basically a null win. It shifts costs around so managers and their own can claim any reasonable gain (this is why new CEOs always restructure. If they didn't, then you could clearly measure their effect, if it all changes, you can't connect anything other than the large result. And the large result can be blamed on good management or bad times).
Off-shoring required shifts in expenditure and is not as easy as just saying we are hiring other workers. Its impact naturally would not be willy nilly and such under NORMAL circumstances.
However here is whats abnormal.
Take that simple model that I put up, and you can see that at its core off shoring is just another business choice and as such doesn't effect that model. if an employer can make more money this way, despite the added or rather different expenditures surrounding both choices, then fine, they will make that choice in the time they think is prudent.
Now take that same model, and inject 100 thousand temporary workers at artificially low salary. These workers do not have the same expenditures as resident workers, and these workers can be more easily blackmailed given their worries about sponsorship and deportation.
This is a new dynamic. Suddenly a subset of companies has an artificial competitive edge. They can acquire employees at a reduced salary and insurance base, for as long as the artificial (system short) bridge exists.
The natural effect of this is to artificially depress the salaries of those that are residential. It creates a competition between non resident temporary foreigners vs permanent resident citizenry. Given that the foreigners are temporary, they have an artificial advantage.
So what happens to our model? it plods along reacting as it should without regard to sources. The model does not care where resources come and go, only as to the hysterisis between those actions.
What would be a normal lag that would drive up salaries, thereby creating incentive for education and those committed to filling that salary, gets shorted. The salaries do no rise, and so the numbers of individuals entering higher learning for a career do not increase.
When large corporations are seen to cheat the visa program (every large firm breaks the visa law in that they do not place Americans that can do the job first. Period. That's what the requirements of the statute demands, but is not enforced. So the actual impact is even larger than what it should be given the statute)
So the market always reacts the right way given the forces injected into it. in this case, h1b visas depress salaries because they are applied to cut costs rather than to fill unfilable openings (as detailed in the statute - how many that argue this subject have actually read the statute? If you haven't shame on you for even participating, your no better than the girls that were signing to end suffrage. They haven't read or remembered the subject, and don't know what is in the subject they are commenting on, but that d
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).
"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 not only a computer science issue. This is, or soon will be, true for all technical professions.
And don't think business or professional services are safe from faltering.
Unless we strongly invest in education and our youth, the sun will quickly set on the U.S. of A.
I thought there where talken about Counter Strike...damn it!!!
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.
Good conclusion, but I can summarize it more briefly:
Hackers are wonderful. They're also rare.
Any program relying on (nontrivial) preemptive multithreading will be buggy.
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.
Actually, I been using a $3,000 USD tax credit to learn new job skills by going back to school. Uncle Sam has been picking up the tab for the last five years for me to learn computer programming and networking on a part-time basis (usually two or three classes per semester) to upgrade my skills from being a software tester. I now have a help desk job where I'm making $5/hr more than my software tester job.
As for graduate school, get real. You pay through the nose while going, you're shackled to debt for 10 years, and, assuming if you haven't been downsized out of your chosen field, you might reap the rewards of an advanced degree before you retire.
Chances are if someone is smart enough to be a real software engineer and not a vb.net code monkey they are smart enough to see that it's a horrible market to be in.
I've been a programmer for 10 years, and was a 2004 ACM world finalist and even had small contract position at NASA. I dropped out of college because I couldn't afford it, and can hardly find a job. When I do find the occasional job it's making $8 hr doing Oracle and webdesign.
You might say it's because I don't have a degree and that is somewhat true. But at the same time almost all of my friends who stayed in school and finished live at home because they can't afford to move out and 3/4 are either jobless or doing something else completely not related to programming/computers.
You want job security become a lawyer, doctor, truck driver or nursing aid. I've moved to 3 different states to find a secure job that pays more than $8 and those are the only things I see as constant.
I'm not trying to troll, but it's frustrating to be in my 20's and can't find a solid career to get into. Hell I'd go work in the mines or a steele mill.. might be crap work but they make $13+ hr, career for life, health and 401k for themselves and family.
Heres the answer and its pretty simple but no one has mentioned it. Tution. Engineering displicnes cost more then business and arts and sciences because of materials. Dont believe me, catch out tution at a private school and see if they charge more for engineering. I know my school does.
a te_schools_in_India/
But in public schools they cant do that. So what do they do. Enforce higher standards which in turn get students out of engineering. Once the student has moved to another major, the school is making more money because it cost them less per student.
In europe india et al. there is no TUTION SYSTEM. Schools just recieve money from the government so student have zero/minimal fees. http://en.wikipedia.org/wiki/Private_college#Priv
Therefore, if a school moves a student out of engineering they still make the same money.
Im not saying that the school is purposly trying to fail you but the reality is that the school is better off with one less engineering student and one more business major
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 assume that you aren't contracting as an employee of your own corporation. If so, you should be able to deduct education costs as a business expense, up to $5250 under an educational assistance plan. IRS publications 525 and 15B cover that.
I also wonder whether you could take it as a deduction on your personal taxes. Have you spoken with an accountant? Pub 15B under Working Condition Benefits discusses deducting education expenses if they would be deductible by the employee as a business expense, and mentions specifically a test of whether "[t]he education maintains or improves skills needed in the job."
Larry
So what if the number of students has dropped. It should drop. Why? Because all those students that would make crappy computer scientists looking for a quick buck are getting other degrees. The real geeks that will be great coders are still there. So, the stat really shows us that 2/3 of the CS students in the last few years are now getting general business and art degrees like they should be.
This is slightly offtopic, but I'm hoping some people will catch this question and give me their advice. Please resist the temptation to mod it down.
I work full time as a software engineer (eg, I design and write software). I graduated with a degree in CS and Economics a year and a half ago from a well-ranked state school, but my GPA wasn't very good. Getting married, getting a job, and growing up a bit has changed me a lot, though, and I want to increase my education.
I'm thinking of trying to get a Masters of Software Engineering (MSwE) from UMUC. I don't have the time or financial situation to go back to regular UMD for a MS in CS full-time, much as I would like to, and I've heard anecdotes that the department doesn't like to waste time on part-time students. And, frankly, I don't really care for another two years of algorithms - that's not what I'm interested in as a professional (although, obviously, I try to keep on top of new developments).
Is this worth my time? I don't want to spend 3 years on this, and then find out that employers see it as a joke degree, and actually have it _devalue_ me. But I would like to go back and get some graduate education, even if the school is less than stellar.
Any advice would be greatly appreciated.
-Erwos
Plausible conjecture should not be misrepresented as proof positive.
The trouble with using the ACM contest as a gauge for our abilities is that it's not representative of our technology foothold.
;).
The contest is actually better representative of the theory research talent we have upcoming (which is important too I suppose).
The questions given are the "ah-hah!" types. You can stare at them for hours and yield nothing, or others can do them in minutes. They're not software questions; they're math questions.
Our decline in presence here is due to a numbers of things:
1.) Time students have between jobs and activities.
2.) Lack of appeal to businesses hiring. Winning the ACM is a big "I'm smart and possibly a diva." It's not a "look, I have job experience!"
3.) Other countries ACTUALLY HAVE CS DEPARTMENTS. We should expect hard competition from them. They do make up the other 97% of the worlds population
However, the incredible decline in CS enrollment is a bad thing. Although, could be a good thing for those of us who enrolled anyway! Although it's pretty heavy competition sometimes, actually working with peers who really want to be developers; those curved classes can end up curving a bit less.
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!
the persian link is a crappy ass program page that causes you to reboot to get out of it. it also requests forum pages that say i hate ni**ers... if i lived near this person, i would make sure to turn their house gas off then back on while they were sleeping... many people may find themselves out of a job because of this asswhipe... who is probably happy... happy that they are a defective human being. that their lives are so small and such that the only pleasure they can get out of them is to be a worm and hurt peopel they dont know from a distance. just because you dont use plastic explosives in your bombs and that all the people you blow up arent in one room, doesnt make you a terrorist of sorts whose only goal is to hurt the masses of people that think to read you. they trust you, and you betray that trust... may you recieve the same amount of trust in your life as you sow...
Nobody plays Counter-Strike anyway.
(No I didn't readd the article)
You've either got to be joking, or very young.
Hello, Bill Gates, world's richest man. Uh, Steve Jobs. Those names are known.
Geeks & nerds enjoy a social position not seen since the 1950's. I'm thinking back to the 80's: when the whole 'Revenge of the Nerds' franchise was born. It was silly stupid caricaturing of what would later become the slick stylish and edgy characters we see on something like CSI.
damaged by dogma
Nobody is going to shell out tens of thousands of dollars on an education that will only return less than 25% on their educational investment. Skilled CS's in this country are undervalued. All the work goes overseas to individuals who will work for less. Unfortunately, this country is expensive, and no one is going to work for pennies, or struggle to take low paying jobs because of foreign competition. With technology at it's highest mark across the globe, CS's are or should be a hot commodity. I mean, computers, devices, and hardware is everywhere, and needs to be maintained/engineered, and is thought of as being a major dependent necessity in modern society (hmmmm, just like doctors and lawyers it seems, who btw make a lot of money, but I don't see them getting outsourced). My advice to any programmers/IT profs, don't sell out. Keep your value high, just don't settle for a job because you need one, make them beg for your employment. Trust me there are companies out there in desperate need of domestic employment, and will pay good money for your skills.
You see, ACM finals require you to have a lot of practice in certain idiomatic programming problems and an ability to code map any new problem to one of the standards and code it up quickly.
This is actually a pretty useful CS skill, if you're faced with writing something more complicated than Accounts Receivable. The technique is called reduction, and requires you A) be familiar with a large set of problems solved by Dijkstra and a ton of dead men from the 50s and B) the efficiency of these. Being able to reduce a problem to one of those well studied ones has a number of benefits, not least of which is that you'll be able to demonstrate, when the boss approaches you, that the problem is intractable. Whether he believes or understands you, well, lets hope the world's best business people aren't German or something.
I'm curious to hear what you think it means to be very smart and good at CS, when reduction isn't part of that qualification.
I Browse at +4 Flamebait
Open Source Sysadmin
I haven't reached your notice either. That's not because of a deficiency in my achievement, but because you are not omniscient.
Your logic, she's not so good.
Why yes, I AM a rocket scientist!
While I agree with the overall attitude of your post, I am just reminding everyone that one of the primary reasons Einstein and the rest of those European scientists came to the U.S. was because they were trying to escape Nazi Germany.
"America: at least we're not Nazi Germany!"
I Browse at +4 Flamebait
Open Source Sysadmin
And that is the difference between Eastern Europe and US. In the US you do it for "fun," while in EE you do it for survival. They need every little advantage they can get, and having that title around their neck actually matters.
The ACM contest is irrelevant, what is relevant is the mindset differences it highlights.
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.
As for graduate school, get real. You pay through the nose while going, you're shackled to debt for 10 years, and, assuming if you haven't been downsized out of your chosen field, you might reap the rewards of an advanced degree before you retire.
I guess it depends. I got a masters from a highly-ranked public university. I picked up a job as a graduate research assistant, which meant my tuition was payed for, plus a small stipend that helped with the bills each month. I came out with about $10,000 in debt (half of which I took out to refinance credit card debt with cheap student loans). My first job involved a 215% pay increase. Ignoring the greater job satisfaction, personal satisfaction I get from education, and all other "intangibles", I recouped my financial losses in less than 3 years, and should spend the next thirty years in a higher earnings bracket than I could have w/o getting an advanced degree.
...sometimes, in order to hurt someone very badly, you have to tell that person terrible lies. - PA
True, but it is a fact that most competitive schools inflated their CS requirements to unbelievable proportions. I know a programmer who chose CS over EE 15 years ago because he wouldn't have to take Differential Equations, Linear Algebra and three semesters of Physics. I found that when I was slated to transfer to Berkeley, I would not only need all of the aforementioned courses, but I'd also need to take the entire lower division introductor series over again because Berkeley and Foothill couldn't work out a transfer agreement. Now, I actually ended up majoring in English (and thanks to my extradisciplinary skills I'm employed as a technical writer), so I can't answer this question, but what CS problem that I might encounter in an upper-division CS course requires the use of Diff. Eq., Linear Algebra or Physics?
The other side of the story is that you're totally right about coding being different from CS. The problem is that most HR/Business types don't know the difference. Heck, we all know most of those people don't know their own ass from a hole in the ground. These types posted job ads requiring 5 years experience in Java when the technology was, in fact, only 2 years old. But, when they're going through applications at a rate of about thirty per minute, they're immediately going to toss anybody who doesn't have a 4 year CS degree. It seems the best course of action is to expand software engineering programs to fill the void and make sure those are focused on turning out pratical, level-headed engineers who can solve a variety of problems but do not care to learn any more about math or physics than it takes to get an equation from a mathematician or physicist and implement it.
I'd rather have a guy who majored in philosophy who has a collection of vintage C-64 hardware then some Java turd who got cranked out by the state U.
Other than the philosophy major part, I agree with you and was going to make a similar post. One annoying factor I've noticed in my time in university is that they spend very little time, if any, on the classic languages. Instead of learning old fashioned C, you are given assignments to do in Java and C# -- even C++ gets a bad rap from many pointy-headed academics in my university. I'm not saying Java and C# are bad languages, I'm saying it'd be more pragmatic to take baby-steps on the syntactically-lighter C before delving into Java and C# which have more syntactic complications. That, and C forces you to consider how the computer's architecture behaves -- ie, buffer overflows when you're not careful with arrays.
The AI course I'm taking is only briefly touching upon Prolog -- which I get the impression that nobody except mathematician types use (I am nowhere near what you might call a "mathematician") -- with only occasional, yet rude dismissive mentions of LISP -- the course is otherwise way too heavy on theory without any application of such theory. Then again, professors seem to shy away from anything that even remotely suggests programming a -- gasp! -- videogame (where else can you program and learn AI that doesn't involve a government contract?), even if it were to be based on a classic board game like Chess. No, no, everything must be taught in the "program an algorithm for the sake of programming an algorithm", so that I may conveniently forget about it when the semester ends.
And assembly? Not even in the embedded systems course (although, despite that, the course's material is -- FINALLY -- something related to what one might encounter in the job world). The only course I've ever taken, remotely similar to teaching assembly language, has been a course using a fake, fictional machine called Pep/7 -- all I can say is that if such a machine existed, even RISC enthusiasts would have said "damn, bro, put some more instructions on that chip". Where is the fun in learning assembly if there's no risk in hanging your machine and having to reboot when fucking up something you shouldn't have done? I doubt any ASM guru would tell you they never, ever hanged their computer when they were novices. More substantially, where is the fun in learning assembly if you're not learning a non-fictitious instruction set so that you may have something meaningful on your resume? Perhaps I'm naive in assuming that's what college education is supposed to be all about.
Tenure is also a bad thing in computer science. I've had three-too-many old professors whose minds have climbed to the peak of Mt. Senile, way out of their league in today's world of technology, who should have retired when the Internet bloomed -- and they just won't go away. Yeah, call me a cold-hearted bastard, but in any other field of work, if you can't perform your job, you're fired.
Slashdot requires you to wait longer between hitting 'reply' and submitting a comment.
I said that 5 years ago and I still seem to have about the same amount of principle on my student loan I did 5 years ago...
Bruce
Today is a good day to code.
Those short Topcoder contests have similar problems. The person who has the most revelant "toolbelt" and is most practiced with their "tools", that is, the person with the bigger, better organized encyclopedia of ready made solutions is going to win. This is not necessarily the person with the greater insight and inventiveness. The winners will have coded up some common stuff beforehand, found some other stuff online, and organized themselves so they can find what they need quickly and adapt it with a minimum of time and effort. Nothing wrong with that; there's nothing holy about reinventing the wheel other than you might be infringing copyright if you don't. The contest is a good measure of resourcefulness and preparedness, and not such a good measure of general knowledge of CS, insight, and ability to innovate.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
...is because many universities do this on purpose. This and Engineering are the two departments that insist on weeding out potentials. And they are doing it the wrong way. They are getting rid of CS hopefuls in the first year by creating classes in a much harder than normal fashion, no support or real help for creating programs and a very arrogant and unhelpful staff, except for one dedicated individual. It seems at the University needs a total overhaul in its CS department as well as new and more dedicated staff.
You start hiring less programmers and pay less to those you've already hired - wages go down a bit - people realize it's not worth it to bust their asses for years for a degree in CS and choose something else - supply of engineers becomes scarce - wages go up a bit - people see engineering as a way for them to earn above average - the number of CS graduates rises.
This is a cycle, and we're riding the upward wave right now. To ride the upward wave at this point, though, you need to be pretty good at what you do. You need to be able to justify your existence within an org and show that you're a better alternative to an Indian guy who copy&pastes large chunks of code instead of using a loop (and don't get me wrong, I'm not saying all of them do).
Once (and if) the market becomes white hot, people will start hiring everything that moves, like they did in 1999, and offer insane salaries and profit sharing. That's a big "if", though. Good news is, India is in "white hot" phase right now, which means salaries skyrocket and quality of work goes down the shitter (because the number of people who are _good_ can't keep up with the demand, so they hire _everyone_).
That's a most interesting point, thanks. I am a small business owner and am incorporated, which does make the tax law seem a little backward if a sole proprieter can take a deduction but a C-Corporation cannot. Bottom line, I think, is that if big business -- who are among those who say there is a shortage of IT talent -- wanted a tax deduction to send employees to school, they would have gotten one under a Republican President and a Republican Congress. Despite all the statements by Bill Gates and others, American IT "talent" is just not that important to them.
----
If short term thinkers get results, the results are short term.
Despite the Labor Dept's forecast of a 40% increase in 'computer/math scientist' jobs,
First, this Labor Dept forecast is fantasy. They're bought and paid for by industry lobbyists to plant such stories in the media before the lobbyists ask for an increase in temporary visas.
There ain't no shortage of CS, EE or any other technical people! There never has been and never will be!
The market works. Right now there are probably more than a million displaced technical people who've taken jobs in non-technical fields because it was all they could get. Prospective students see this and think twice before slogging their way through computer science or engineering courses. These are some of the most difficult, intense, time consuming curricula at any university. If the reward ain't there or is substantially diminished, students avoid those majors. As Norm Matloff has pointed out, enrollments in CS have historically risen and fallen in lock step with the actual demand for CS graduates. Outsourcing and offshoring enables companies to jettison their American workers while keeping their American markets, at least, for the time being. My employer is expanding operations in China and hiring developers there rather than adding more workers in the US. So we don't have many openings for developers in the US today.
Wansu, th' chinese sailor
"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.
This is an excellent post. I just wish you could get enough people to read it to actually make a difference.
If you're paying to go to graduate school in a "science" (quotes because computer science is more engineering than science, if you ask me), you're doing something wrong.
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.
This kind of specialty degree in the US, where nobody is willing to learn math anymore should be one of the highest paying positions today, but the new world economy is killing it in the US. Why work that hard when you can get a better paying job without the difficulty of the education?
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.
Beautifully put. I think it would be fascinating to see a more worthwhile survey, one that takes snapshots of people doing programming-related work 5 years after graduating from college, 10 years after, and 15 years after. Then find out what these programmers studied in college, and how they became programmers.
This makes me think of high school. There were a few kids at our school who were really into business. They took the business class, ran the student store (which, I confess, was a great source of Zots candy, but I digress), and generally made plans to make lots of money. They weren't necessarily the people who became entrepreneurs. In fact, I don't know if any of them did. Most of the really successful entrepreneurs I know got interested in business as a vehicle for making something real. They had an idea and wanted to turn it into a business. They learned business techniques along the way, and in so doing became good at business.
How many humanities majors own their own businesses 10 years after graduation? How many of them are programmers 10 years after graduation? I think these are good questions, and if we had the answers to them, we'd know a lot more about what's really doing on in the US IT market.
Read the EFF's Fair Use FAQ
It was always my impression that going to graduate school for a science-related field was very appropriate; what about research?
Are older, more experienced professionals valued for their ability, or spurned for their unwillingness to work 60-hour weeks?
Are IT professionals continuing through a long career in the field, or are they burning out and leaving after 5-10 years?
Is the unmet demand a fundamental problem with supply, or with the price employers are willing to pay, both in terms of wages and in terms of working conditions?
It often sounds (and experts say) that IT in North America is practicing something akin to slash-and-burn agriculture---get the fresh new CS grads, work them like dogs, and throw them away when they burn out 10 years later. (EA---the whole game industry, really---for example, is infamous for this.) Just like slash-and-burn agriculture, burn-and-churn IT is unsustainable, and an inefficient use of resources.
If employees don't want to work for your industry, maybe the problem isn't with the employees.
quotes because computer science is more engineering than science, if you ask me
Any school that doesn't treat it as such, is one that I personally will not hire from. But then again- unless a company is willing to PAY for the education, they don't deserve to hire somebody with that education to begin with. I would not encourage any student to go for a CS degree today- and I certainly wouldn't advise anybody to pay $40,000 or more for an SET degree that is apparently only worth $10,000 a year from who they are hiring overseas.
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
... but on the other hand you seem to be conflating computer science with the IT field. The vast majority of IT positions do not require computer scientists to fill them in the same way that the vast majority of positions in the construction industry do not require architects or engineers.
A rider on the general immigration bill Congress was considering before Easter break increased H1B visas by 200,000. Its was one of the these "midnight" admendents added a few hours before the bill was to be voted on so no one would see it. The bill was tabled until after Easter break because there is no strong overall immigration consensus yet.
Jim Cramer wrote:
> Plus, AMD is a company now run by engineers, whereas it was once run by
> salespeople. During this management changeover, the company began to
> gain market share. Intel took the opposite route, Cramer said.
>
> The company was founded by engineers and scientists who
> "outmanufactured and outengineered the other guys." Now it is run by a
> sales guy, and the company is slipping, he said.
Have a feeling they're right when they say lines like that and they're wrong when Harvard says lines like
> the last thirty years have been dominated by professionals with
> strong analytical abilities...the future will depend on individuals
> with skills of inventiveness, empathy, joyfulness, and the ability to
> find meaning
The trade deficit says engineering produces more value.
That is what this issue of MoneyMag says. There was even a thread in /.
(Too lazy to find it and post a link)
If there is a demand, and if there is a shortage of supply, the
pay will automatically go up. Trust free markets.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Of the two best young computer scientists I know, one is running a hedge fund and the other is working for a derivatives firm in New York. The young Stanford students I talk to are going into finance, law or bio.
To pick just one example, the Kalman Filter, which is used for everything from radar tracking to helicopter stabilization, relies on linear algebra. And physics gives an excellent background in learning to apply mathematical modeling techniques to real-world phenomena. One of the best (or at least most interesting) distributed version control systems out there, Darcs, was written by a physicist, in the Haskell programming language (the latter of course being based on the lambda calculus, another seemingly esoteric subject which is so fundamental that it really ought to be taught in high school). Darcs is based on a physically-inspired theory of patches.
There's a problem here which was described by Paul Graham as "The Blub Paradox" (in Beating the Averages). Graham writes "But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up." It's not easy to correctly assess that which you do not (yet) understand.
I agree, this is a big part of the problem. This comes from the fact that everything about computers, and particularly software, is so relatively new. As alluded to elsewhere in the thread, you don't get HR people trying to hire mathematicians or even economists for accounting positions - they know better than that. They just don't know better than that, yet, when it comes to programming, particularly in "IT". And this confusion affects academic curricula, too - universities want to satisfy the commercial demand with subjects they already teach, and academic computer scientists don't want to turn themselves into a Java instructors any more than they absolutely have to.
I think that'd be a start. However, I also think we'll eventually find that the tentacles of software are so diverse that "software engineering" is too broad a subject, and we'll end up with a "software school" analog to "medical school" or "law school", where a wide variety of subjects are taught, including theory, engineering, and other topics. I notice CMU has a "School of Computer Science already, and Northeastern has a College of Computer and Information Science, but most other institutions still treat CS and related disciplines as a "department".
It utterly befuddles me how so many comments in this discussion conflate the IT sector in general with the field of computer science. The truth is that the vast majority of IT jobs do not require a computer scientist nor have all that much to do with computer science. Just like there is a difference between a plumber that puts together a system of pipes and the engineer who designed the system and a difference between an electrician who wires a house and a scientist who studies various forms of electricity, there is also a vast difference between a computer scientist and a programmer, dba, network admin or help desk monkey. While it is true that these positions deal with some aspects of computer science, they dont require computer scientists anymore than a rocket scientist is required to pilot a rocket into space.
I'm guessing they aren't wanting to pay enough? I mean, I'll go anywhere for the right price...but, it would have to be a LOT of $$$'s offered to make me move to NYC and work.
What is enough? These companies are paying market rates. Check Dice ~80K-140K. There are plenty of applicants, they just don't seem to be able to understand basic problem solving. Maybe the money is not enough, but what would be enough?
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
ise.gmu.edu
GMU has an MS in Software Engineering. What do you think of this degree? There don't seem to be alot of degrees like this around the country.
Or maybe not. Perhaps there was a reason that the anthropologist was picked over the comp sci major.
Our gov't several years ago set out with a plan and malice aforethought to torpedo tech salaries in this country by flooding us with h1b visas and looking the other way when cheap foreign labor starting taking jobs that more expensive - and talented - older American programmers should have gotten. They compounded this with tax changes to make outsourcing to other countries cheaper. They did all of this at the behest of large tech corporations. And now they are reaping what they have sown and all they can do is bellyache about it? Well guess what? We've set up our country to provide large labor markets for suits and lawyers, so now everyone in college has read the handwriting on the wall and decided to be a suit or a lawyer. And why not? Tech jobs are hard, they tend to be boring and annoying and rewards are few in this day and age when a suit's mistakes and not technical excellence are what decide a product's success or failure. Money was one of the big factors in keeping people in tech jobs. Now all they have left is job satisfaction in working on FOSS and - surprise! - it's not enough to keep all the tech jobs filled. There are only two kinds of people in Washington: morons, and Evil-Suit-Bastards. Not that I'm bitter or anything...
In a Ph. D. program, universities pay YOU! (usually)
On the one hand, this is bad for America. On the other hand, I've been getting more cold-calls per week from companies and recruiters based off a 3 year old resume than I've gotten since the golden years of 1998-2000. The job market for programmers is red hot, at least around me here in San Diego.
Going to a contest with no intention of winning can be fun. When I went to the ACM world finals it was in Shanghai. And that was fun.
I have to agree that the main difference between the US and others in that competition is how seriously they take it.
For example: each team is allowed to take 3 identical binders with 100 pages of notes and code samples. The typical russian or chinese team would take 100 pages of carefully crafted and culled programming solutions and algorithms.
My team took 100 blank pages. And even then we had to go shopping at a Chinese super-store for paper and binders about an hour before these things were due.
When I worked in tech support for a major OEM PC builder, one side of the mouth said, "Be sure to give the ultimate customer experience." But the other side of the mouth appended to that statement, "As long as it only takes 14.7 minutes average call time. Your ass is grass if it takes longer."
Friends don't let friends line-dance.
Many employers make silly job requirements so they can go to the department of labor and complain that there are not enough "qualified" employees to do the job so they can hire some cheap H1B1 visa's or outsource to India legally.
Those offers were there just to make there case.
PS... do you really think management is safe from outsourcing? After all I bet an Indian manager where the programmers are would be alot more efficient and could communicate with the programmers directly? Hmmm.. now how much would an MBA here make again?
Get a CPA or something else instead. Management and senior level IT workers are going next as whole IT departments go oversea's where the cost of integration is lower.
http://saveie6.com/
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)
Here in Brazil with 25k dollars you get experienced professional programmers with that sallary, even dough some languages earn more than that, but you get the idea. You cannot beat outsourcing, it's just cheaper! with 20k dollars you get medium experienced developers. Outsourcing will be the way for the next couple of years, for medium, large companies, and 5 years from now small companies are going to start outsourcing. Imagine how much you can save on outsourcing your software. If you are interested I can even help you outsource. Peace
I think the problem here is that college kids have finally realized that no longer can you just get a CS degree and start making 60k+ a year right after you graduate and it discourages them to the point that they pursue other things that while they will also not make 60k+ right out of school, they will enjoy it more while they are in school. It is almost irrelevant how talented you are when you get out of college now, because companies are much less willing so it seems to pay young kids high salaries. Someone graduating top of their class as a CS undergrad will still get an entry level programming job when they get out of school sadly. Now that many companies are making it almost mandatory to have an MS in CS(see Google's career pages) it makes it very discouraging to young kids in the US.
http://www.denialofreality.com/
Those are all hurdles, making it harder, not impossible, and you're an idiot to act like anyone said so. Sufficent motivation can overcome them.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
The thing that bothers me the is the dismal minority/female enrollment. I have seen intro CS lectures with 100+ students but only 5 women, 1 african-american, and two hispanic americans. If we want to plug gaps in the IT workforce this would be the best target for untapped talent.
bash-2.04$
bash-2.04$yes "Don't you hate dialup connections?"| write USERNAME
The majority of software engineers that I have worked with have other degrees and either minored in CS or took just a few CS courses. In my experience (and this is a generality, not an absolute) those that had other majors have been more productive at coding due, I believe, to the broader knowledge base. How many software jobs are there for people to create code that doesn't require domain experience?
It is long past time for us to move the fundamentals of programming to being required base courses for most all degrees, in the same vein as language, math, and science fundamentals. Instead of CS graduates, we need human interface design grads who have had CS courses, doctors who have had CS courses, engineers who have had CS courses, economists who have had CS courses, business majors who have had CS courses, accountants who have had CS, etc.
Perhaps this is exactly what is happening. I'd rather see a study indicating the number of student-hours spent in CS classes than a study indicating how many people are majoring in CS. CS is for those who are going to teach and a few others who are going to create operating systems, database engines, and a few other applications that don't require extensive knowledge of another domain.
I know several very smart people who were rejected from UIUC's CS program in the last few years. It's amazing though, that seems completely inconsistent with this steep drop in numbers. Are schools simply accepting less people, or what?
Sendou Wave Kick!!
Isn't the pattern rather obvious by now???
[That huge, double chin that Thomas Friedman has is hiding an alien!]
Just observe our president and vice-president. These two are obviously superior. Look how knowledgeable they are about Middle Eastern culture and history - they freaking brilliant.
Otherwise this administration would be experiencing real problems in Iraq and elsewhere throughout the Middle East. Yeah, Mustafa Attaturk has nothing on our homegrown geniuses.
["I'm hearing voices." Geo. W. Bush]
As a person in high school, the time has come where I need to decide which path I want to follow for a career, but when I was starting to show interest I've been bombarded with differing views.
One one hand, my father who works in a Fortune 500 company tells me that I shouldn't even think about doing anything with programming or software engineering, etc. His primary reason is that this field doesn't have much job security and its impossible to know even if today is your last day before being laid off. Which I do completely understand,
But then I turn on CNN and I see one report saying how Tech jobs are being outsourced and then I see another news report saying how we(America) are lacking CSs or related.
And here I am totally confused, I don't really know who to listen to, family or media???
That's the main reason why I've steered myself away from programming, tech, etc. Instead of going through college to find out if I made the right decision or not, I chose something else that doesn't interest me as much, but I know there is job security.
I also know that many others are in my boat too, If we can just get a reliable source to tell us the truth, that would boost confidence of the future students, and hopefully this will happen in the future.
no text
Everytime you kill a kitten, god masturbates.
Everyone wants x amount of experience but they want to pay only entry level clerical wages for that experience. In addition only short term contracts are offered with little prospect of extension (to cover funding grants). It's happening today and it's happened 15 years ago when I chose the clerical path and ended up in a comfortable job that is paying more than those round robin funding grants positions. When computer science (and all other sciences for that matter) start requiring highly experienced people for low wages to drive their business models then the market is seriously skewed by government interference of some sort.
We are a small software company in New York City and we pay competetively, quite a bit higher than the numbers that I have seen floating around on these forums (but then again, we are in NYC). Now, of all the resumes we get or we pick up from job posting sites 80% are people from India and China. Maybe it is the fact that we are in NYC, maybe its the sites we are looking at, maybe its the way we recruit, but we see almost no US-born applicants for programming jobs.
What we value the most is excellent problem solving capabilities. The few US-born people we have interviewed have shown very good problem solving skills and very good communication and written skills, and we'd obviously prefer hiring top-notch people who could do hard core programming, talk to our customers, and write internal and external documentation that people can understand. We have frequently had a problem where we know we can't expose an engineer to a customer because their English is not very good, or we prod our engineers to write more readable documentation, things that a US-born person should take for granted (yes I know, many Americans are probably just as bad, but its a matter of scale - we've actually rejected good candidates because we simply can't communicate with them).
We found that other companies also realized how rare these traits are and the process of attracting and hiring someone with these abilities has become brutal. Even if you manage to secure someone, there is always the risk that they get poached a few months later by some other company that is willing to give up more. I have a hunch that most good US-born engineers never put up their resume somewhere because they are snatched up before they get to that point. With that in mind, every meeting we have internally we urge our employees to send along any resumes of friends or anyone they think is good so we can try to get them before they put themselves out on the market (one of our best developers I recruited right out of a programming class I was teaching). So from my vantage point, the demand is enormous and the supply tiny. And so we will hire Chinese and Indian programmers because we have to. Of our development team 65% were born in either China or India, even though all the founders were US-born.
So when people say that there are plenty of American programmers out there that can't get a job, I say I don't see it. In fact I see the opposite, the ones we do interview know they are in such high demand and have been asking for higher salaries as a result.
One last thing that I haven't seen a comment about yet. I don't know about any other software engineers out there, but I got into this because I absolutely love to program, not because I looked at it from a pure money perspective. I mean, are college students really choosing majors and choosing jobs only because they pay the most and not at all because of what they actually like to do? And I don't consider this a dead end career. Does anyone truly think that all demand for good developers will simply dry up? That 10 years from now there will not be a need to write software anymore or that there won't be any challenges in software development anymore and that all software will be written by sweatshop programmers? Do you truly believe that salaries are the only criteria companies use to evaluate employees? If so, you really have your head in the sand.
So in conclusion, I'm hiring US programmers (that means you slashdotters)! If you are a good problem solver and Java is your language, go to http://www.audiumcorp.com/ and send us your resume. Do it not just for the excellent opportunity, not just for the good salary, not just because you love new challenges, do it for your country :)
An engineer is someone who spends 3 hours trying to solve a 2 hour problem in 1 hour - Anonymous
burden yourself with tons of student debt, when your job will be outsourced or you'll otherwise be out of that career within five yers?
Longshoremen in my area are heavily unionized, will never be laid off or outsourced, and make well into the six figures for 35-37h a week.
--- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
> 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.
:) is more of SWE :)
OTOH, none of those things are CS ! I teach CS at Southern Poly (a state university in Georgia), and we have CS, IT and SwEng degrees. DBA and SysAdmin are more IT and commercial development methodologies (whatever that means
I'm not sure what do employers expect from a CS grad (and probably different people expect different things), but I try to create in my students the ability to *learn* new technologies quickly. So although they don't *know* DBA stuff, they can learn it in a weekend of no sleep.
So what you are saying is that those countries value academic acheivement more than your country does. If it was a football competition do you think it would be taken more seriously in your country?
Australian running a company that does C# / C++ / Java / SQL / Python / Mathematica
'If our talent base weakens, our lead in technology, business, and economics will fade faster than any of us can imagine.'"
I don't see what the big deal is. Isn't money supposed to drive which careers people go into? It was "market forces" that promoted the idea of offshoring and H-1B's while many of us had nothing but pinkslips. Market forces don't seem to favor computer careers these days: expensive education, constant change, instability, long hours, etc.
Now they say money-based economics is NOT working and that we need to use some kind of social pressure to steer people to the "right" careers?
What gives? Does economic incentives drive the economy or doesn't it?
Table-ized A.I.
US Schools will have consistently produced the most qualified students in academia. There is no sign that this will change because schools in the US have the most funding, best professors (as researchers), and best overall reputation. It's cyclical since reputation attracts the best students, and those students enhance a school's overall reputation. A short term shock, such as a decline in enrollment, does not seem to have any long term implications. I also do not see any non-trivial change for American technological superiority. Again US schools produce most of the research in academia - be it CS or economics or engineering - and these schools attract the best students. I think the real problem is how US policy is turning away these foreigin geniuses who obtain their PhDs at top US schools. That will hurt the US in the long run. Not these labor market factors. I mean who really cares about the typical coder at a firm? These are easily replacable. Geniuses in academia are NOT easily replacable.
You, and university administrators, divide thing us like this:
a. CS degree, pure theory, LISP/Haskell/OCmal/Scheme/ML, Turing machines
b. trade school, slap together a Windows business app, Visual Basic
To you, "trade school" is a great way to insult people who care not
for your ivory tower. Neither of the above is any good for:
a. embedded systems bring-up
b. giant C++ apps like Mozilla and OpenOffice
People like you have blocked the existance of the degree programs that
are sorely needed. To some extent, EE is filling the gap. That's sad,
because it waters down the core EE curiculim which ought to be about
stuff like wave propagation.
Seriously though.. not everyone is cut out for CS and not everyone is cut out for college. If college does not work, try a vocational program. Never going to college is not the end all. Who cares what China and India do. Outsourcing is going to happen whether we like it or not. I'm kinda glad there are less graduates in CS. Just because China and India have more does not mean they are /good/. Why do people equate China and Indian education to something near perfect? So we have a small percentage of the population that are smart. The people are the same there as they are here in terms of intelligence. There is not something special in their water. Remember, there are differing levels of intelligence.
My point was that if you're 1) graduate studies material and 2) in a "science" field, that you won't pay out of pocket for graduate studies at a reputable school. Through TA/RA/Fellowship money, you'll get paid (not a lot, but paid) to study/research.
Yep. I wouldn't have even considered transferring into the Engineering CS track.
I was actually targetting myself at the L&S CS program. IIRC, there were like seven requirements for declaration: 65B, calculus physics, natural sciences Diff. Eq/Linear Algebra, Calculus, Discrete Math, and Circuits. They strongly wanted you to have 5 of them completed by the time you transferred. Circuits weren't offered at Foothill (but rather De Anza, which is not too far away). I had calculus and natural sciences squared away. Diff. Eq. was proving pretty hard. I hadn't yet taken linear algebra, physics, or discrete math. On top of that, I had to complete my breadth requirements. Normally they don't want you to do this if you're a CS major, but one of the conditions of my guaranteed transfer agreement was that I complete breadth prior to entry.
The real kicker was the fact that my sixteen units of CS coursework wouldn't articulate and I'd have to take them over again. Apparently it was just a big political thing in Berkeley at the time: they wanted everything done from a very theoretical approach, they did everything in Scheme, and they were really difficult about giving other colleges course equivalency. Foothill's CS courses would've satisfied requirements at any other UC, but not UCB. None of the counselors brought this to my attention at the time, but then again, we all know that community college staff, counselors in particular, are utterly braindead.
The upshot of it was that if I worked my butt off and taken a full load the entire time with very little room for extracurriculars or working, I could've transferred only to have to take a year and a half of remedial coursework that I anticipated would be unnecessarily tedious to separate the Big Geeks from the Little Geeks. This would've meant, in the long run, staying on for an extra semester or two in Berkeley, and accumulating another year's worth of debt.
Anyway, I'm not really fishing for sympathy per se. Rather, despite my talents in the subject, the university made it unduly hard for me to get what I wanted, so I decided to major in English instead and program in my spare time. UCB set up red tape to discourage people from getting CS degrees, and it worked. Looking at the L&S site now, it seems like their requirements are less draconian. It's not regret I feel, really. I just feel like I was cheated.
Browsers! Hell, when I started we didn't even have binary. Binary is for hippies! Ones and zeroes holy bejeebers, we would have been glad for it. Try writing a whole compiler in unary. We had nothing but zeroes! And don't even talk to me about self documenting code.
And Jolt and Bawls, you little sissy men. We were lucky to have water. We would have to go down to the river and make our own durn water. We'd grab two hydrogen atoms and one oxygen atom, and smash them together. Took forever to make a pot of coffee. Starbuck's! Sipping your latte...
I agree with you on the CPA stuff. Of course the real gold mine is anything in the medical fields, particularly Geriactric type fields, Medical equipment anything or any kind of Nursing. With 75 million or more baby boomers heading into retirement you will retire a millionare. Of course the boomers might vote to open the border to get cheaper nurses and orderlies, but the future demand will be staggering. For CS and other software people, you are screwed. My company is splitting the differce with China and 50% of all management, development, project management and test engineering jobs are going over there. If you are not in the top 50% of your chosen IT profession, my reccomendation would be to get fuck out because you are going to be competing with the 50% of the experienced IT professionals that get let go. The only saving grace is that unemployment is creeping closer and closer to pre bubble levels but I doubt that those jobs will be in anything that can be eaisily outsouced.
"There is nothing to do it. But to do it." -Floyd Pepper
Computer Science should not be able Enterprise Information Service. It should be about computation. With the Computer Science in the US rushing to "meet" the market demand of Web programmers which are easily outsourced to more focus education in China or India. Computer Science for the 21st century should be able how to design algorithm to the emerging new computation media like biology, nano machines and other which will require a real understanding of computation and how to design algorithm for them. There are after all a migration path in the information service sector. Like the migration of farming and labor intensive jobs to low cost countries like India and China, America can still maintain its edge in the field by looking at the real meaning of computer science. My favorite quote is "Computer science is no more about computers than astronomy is about telescopes" from Edsger Dijkstra.
Only people with no motivation or no skill make $25k a year for any extended period of time.
You forgot "no greed," or some qualifier like "in the UNITED STATES" or some other highly developed country. For example, consider Peace Corps volunteers. Some are very talented and motivated. They live on peanuts, and they change the world at a grassroots level. I'm not one of them, but I've seen what they do and it looks like very satisfying work.
$META_SIG_JOKE
Which is essentially meaningless, or even worse for ignorant fools like you, a GOOD thing. Why? Because people BUY our debt. If it wasn't a good investment they wouldn't have anything to do with it.
Banks buy the debt of people and trade them in lots. a large percentage (compared to the past), go belly up, and banks go in and collect the collateral assets.
think hard about what your asserting. your assertion is that because i am a good credit risk today and they are willing to sell me rope to hang myself, i am in the best of health?
debt must be serviced. the money that goes into servicing a debt is lost unproductively if the debt was not for a productive purpose. your wrong to think that every purpose america puts its money to it gains returns. if so we would not have to keep borrowing to pay the interest on our borrowing.
to make our analogy a little better... the bank when it comes to seize my assets because of inability to pay that debt finds me sitting on a nuclear bomb.
This is why they don't forclose. The other reason is that they then lose the money they invested.
However this does not mean the well is bottomless. China is already saying enough.
Our federal spending went from balanced to astronomical in 5 years. We are spending 2.7 TRILLION a year.
And if you don't think the nuclear bomb analogy is a good one...
Then how about the fact that the US now spends more money on military than ALL OTHER COUNTRIES COMBINED!
You have taken too many Keynesian drugs... Rampant debt and inability to pay it down is not a sign of fiscal health.
Up is down
Good is bad, bad is good
Nuclear bombs are called peacemakers
Debt equals fiscal health
You are a victim of easy speak. A dumbing down till concepts are whatever they say they are, rather than what they really mean. Often they mean the opposite or expand a small truth to be encompassing.
In case you didn't realize the emperor has been propping up the economy with a few major things. A whopping 43% increase in taxes paid by us (since the wealthy were forgiven), opening up our natural resources (we don't manufacture, and so rather than re-mold our resources into products we sell a finite supply to someone else - manufacturing is the source of all wealth - forget services, you cant increase value by washing each others windows, at some point value has to be injected into the system, just as value (trash) leaves the system - converting raw materials into products creates that value), and he has put us in tons of tons of debt. In fact if it was not for these (socialist) programs dating to the thirties, the mean salary of the average American would be 107,000 dollars... not less than 35... their meddling has cost you 75% of the value of your labor and returns. (Do you think the past is a special case when doctors were willing to do more for less? No. its that people could afford to pay the doctor. Only Keynesians will think that putting a billion dollar bureaucracy between doctors and patients will save money - if they get paid, where does the money come from? oh... from the money that the doctor would get for treating the patient, and so the patient gets less treatment in exchange for having that organization. Note the organization is not on the patients side, so the patient is the one who gets milked).
Much of Keynesian economics is a pyramid scheme. It relies on someone else taking the hit later and us not understanding why we are sufferent. Hegelian dialectic then demands that we spend more money (throwing good after bad) to implement more stuff that breaks windos so we can point to inflation and say look... we have twice as many dollars than we ahd before!!!! (too bad they buy less than one tenth what they used to). Who cares if you have a billion dollars if that's the price of a stick of gum? This is the fallacious game they play, because it allows them to keep winning the bets
Fortunately that's nowhere near my experience; you can easily make a lot of money as a software developer or administrator, at least in the Chicago area. I've been working as a developer (Perl, C, Java) and admin (*BSD, Solaris, AIX, IRIX, Oracle, DB2, MySQL, etc.) for about seven years and I just broke six figures last year. A good friend of mine was making well over six figures after the same amount of time with his company.
In my case, I've always joined companies that were in a business other than software for sale, but needed someone to run their UNIX systems and create software to help sell their products. In my friend's case, he's a core developer in a small company of less than fifty people writing telephony applications and the supporting infrastructure (least cost routing, billing, etc.); the business would not be able to operate without him. Also, this idea that you'll sit behind a keyboard for eight hours a day simply isn't true. I spend a lot of time doing things like meeting with business people, implementing their processes electronically, writing documentation, planning software releases, evaluating new technology platforms, mentoring other members of my team, etc.
As far as I can tell, if you're truly a well-rounded and knowledgable developer or admin, and make yourself indespensible to a company, then you'll be paid very well. That being said, there are a lot of companies that are simply looking for code monkeys, do not work for places like that.
...richie - It is a good day to code.
The number of lawyers turned out by the US is more that their engineers. Even more arts degrees than engineering degrees. And they expect that will not eventually create an economic collapse? Too many drones and not worker bees in the hive, results in no honey.
"Contrary to Slashdot's belief, the stupid have the same rights and moral status as the intelligent."
Therefore competition is immoral. "From each according to his ability, to each according to his need."
Hey! Wait a minute... Sorry, it's been tried. Doesn't work.
Like the other response says -- it is only over the last several years that the competition has gotten so serious in some areas. There has been relatively little corresponding change in how US teams approach the competition.
Or why one of the US teams looked like they had just walked out of "a minor car wreck" if they really went there just for fun and not expecting to win.
I never said that every US team realizes they will not win -- just that ours did. I would speculate that this team just assumed they were the best, since they were always the best in their region, and didn't realize how seriously some countries are taking it right now. Even if you don't work on it for hours a day, it can be jarring to go from being the best all the time to being soundly beaten. To drive my chess metaphor entirely into the ground, think of a highschool chess team that can beat anyone else at the school and thinks it is therefore hot shit. If you send that team to a serious tournament against some of the eastern highschool players that spend most of their days practicing chess, they will probably resemble a minor car wreck too... but this says nothing about the countries' respective math education programs.
The rest of your response descends quickly into troll territory, so I don't really want to respond to that. In short, the article gives no substantial evidence for its claim that US CS is declining (relying mostly on the programming contest), and neither do you.
I do agree that the US education system is not what it should be. But the article doesn't deal with any real issues of innovation or research productivity or even the less academic issue of industry productivity, or in fact any other relevant measure of "decline," which is why I call it FUD.
I am the man with no sig!
If you would like to live in a state like China, I suggest you go move there. China is succeeding because our leadership sold out to international corporations that saw more money in selling out the American middle class than they did in real patriotism.
China is what the lassei-faire would like to turn the US into. A slave state governed by elite individuals while the rest are mired in misery.
You do not free slaves by trading with the slavemasters. In fact, you end up enslaving yourselves. The sooner we ban China imports, the better off we will be in the end.
-------- -------- Support Wesley Clark for president!!!
Capitalism is just a temporary state imposed by nation states. Without regulation captilalism rapidly devolved into feudalism as the leading actors consolidate and secure their positions such that their is no need to compete. Once there is no need to compete, only a select few benefit from the system, at that point economies wither and die such that their only point is to serve that elite few.
-------- -------- Support Wesley Clark for president!!!
All kidding aside, there is no such thing as a weeder class. If your school's equivalent of CS 302: Intro to programming is too hard for you, take the hint. Same thing goes for your school's equivalent of CS 367: Intro to data structures. While those are considered our "CS weed out" courses, if you cannot breeze through them, how in the ever loving fuck do you plan on surviving any 400 or 500 level CS course?
I'm dead serious here. A CS major is not for everyone. If you can't earn an A in those two courses while maintaining an aggressive schedule of extra-curricular binge drinking, what makes you think that you can pass CS 536: Compilers, where you get to write a compiler? Or CS 537: Operating Systems, where you get to implement an operating system? If it takes all the academic strength you can muster to pass the intro classes, the upper-level undregrad courses will kill you. You will fail. And you will fail hard.
By the way, if UM is anything like UW, you have to take like 1 course that is crosslisted with ECE. The only thing difficult about that course was getting out of bed for an 7:50a lecture while still drunk from partying the night before. So quit your bitching about having to take engineering courses while you're not in the engineering school.
Seriously, why do you want to major in CS in the first place? You don't seem to enjoy it, and it doesn't seem to come naturally to you.
"Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
Interesting that among all of pundits willing to weigh in on this issue, the one thing missing is that none of you seem at all concerned that today's teenagers are very much into exploiting computer technology for their needs, but so few want to figure out how it works. My question to y'all is... what will you do the next time you are standing before "the great and powerful Oz" with your own kid or a neighbor's? Will you encourage him or her to look behind the curtain?
I disagree ... I think the ends do not justify the means. I'm one such person who has bills to pay while waiting for absurd things to work themselves out (I work in an IT industry too, and have felt 'the pinch'), but relief of inconvenience is a terrible reason for doing something detrimental. The basic idea of it would be to choose pleasure over health -- a choice all too frequently made -- instead of health over pleasure (the wise choice, when a choice must be made).
Buzzt Wrong answer. Look at the guys we look up to and those who we have worked with and know to be sh!t hot. Being programming-obsessed is critical to being a VERY GOOD programmer. And we're talking about ACM contests, there should be nothing less than the obsessed. Sure, it's healthy to have balance in life, but how many programmers are really healthy? To be an amazing computer scientist and software engineer, you should be obsessed with computer science, software engineering, mathematics or something in the ball park of our decipline.
If the standard bod obsessed with his decipline puts you off studying CS, then prehaps you don't belong in the camp, since you're not really striving or passionate about being more than a substandard computer scientist. If you respect those smelly, dirty centres of knowledge that live in the lab or are reading scientific texts for fun, then you should be encouraged to meet with them and fore-go the rich-boy party.
my 0.02 EU's.
Here in Germany, we keep hearing that there's not enough of this or that kind of engineer or other diploma-holder. Then, there's a rush at the universities because everyone thinks it's where the money is only to find out there was a sufficient amount of qualified people in that sector already, just not enough for companies to pay lower wages - more people, more choices, lower wage. I wonder if it's the same in this case?
If a train station is a place where a train stops, what's a workstation?
...was that professors are expected to split their time between research and teaching. I had one teacher that scared me to death the first day of class because he had a Ben Stein, boring, high school math teacher sort of voice and I was sure I would be asleep inside of 3 minutes. As it turns out, he was a high school math teacher, but he turned out to be a bad ass instructor. He would periodically pause in our Data Structures class and diss various design decisions in Java.
Problem was, he just wanted to teach, and the U wanted him to also do research. So he left for some U in Alaska, and was replaced with a prof some some place in Asia who would teach AND research. While he was a nice guy, he couldn't speak English for shit.
My high school would force everyone all the students to attend pep rallies at the school's gym before a wrestling meet or basketball game. However, you wouldn't see anything approaching that for the debate team or student government. If schools would emphasize athletics for the whole student body and give out letter jackets to the chess club, it wouldn't end derision from team athletes, but it would help imo.