Computer Science as a Major and as a Career 578
An anonymous reader writes "IBM DeveloperWorks is running an interesting Q&A with Director of IBM's Academic Initiative, Gina Poole. In the article she talks specifically about taking computer science as a major and ultimately as a career. From the article: 'There are a couple of reasons [for the decline in science and engineering degrees]: one is a myth, believed by parents, students, and high school guidance counselors, that computer science and engineering jobs are all being outsourced to China and India. This is not true. The percentage of the total number of jobs in this space is quite small -- less than 5%. According to a government study, the voluntary attrition in the U.S. has outpaced the number of outsourced jobs to emerging nations. Further, for every job outsourced from the U.S., nine new jobs are actually created in the U.S.'"
Re:Go for it! (Score:1, Interesting)
They just want a java programmer or whatever their latest inventory project demands. Then it's off to India!
Re:Go for it! (Score:2, Interesting)
Re:Go for it! (Score:3, Interesting)
Re:I guess good CS doesn't mean good math (Score:3, Interesting)
-Best Regards...
Re:From the article (Score:4, Interesting)
Having worked a contract at one of IBM's places in Austin, I want to chime in and say this is completely correct. At IBM you need the "soft skills" all right. If you don't ass-kiss and boot-lick, you're not going anywhere.
That was the only place I was actually glad they cut my contract short, as it was obvious they weren't interested in keeping someone who focused on getting the work done, as opposed to sucking up to the right people.
Dilbert realities of the corporate coder. (Score:5, Interesting)
Consider it if you are really love coding, and are extremely good, and confident enough in your skills to job jump, or set up your own consulting buisness etc. Unless this is true. Run, don't walk to another faculty.
Here is the reality of working as a developer in a big corporations. Crushing deathmarch deadlines. Tons of off hours solo work, and continual outsourcing. So much process overhead that it will suck any of the joy out of design/coding that ever existed for you. A process that is now vain as there exists a multi-million LOC monstrosity that is always ready to collapse.
Your interactions will consist mainly of mind dulling staff meetings, early morning, barely intelligible conference calls to far off lands attempting to keep outsource staff up to speed (good luck with that) while the real work will be long solo hours staring at a machine (evenings and weekends if need be).
I have always considered myself pretty good, but not the best. The only ones who really get much out of this job are the best.
I could go on, but hey it is a beautiful sunny Saturday and I have to go into work.
Re:Computer Science... isn't (Score:3, Interesting)
Science: Algorithm Analysis
Not Science: Requirements capture, Most design work, Debugging
Science: Big-O analysis, graph theory, computability evaluation
Not Science: Distributed systems design, system architecture
Science: Developing machine vision techniques
Not science: Racing automated vehicles across the desert
Science: Relational calculus
Not Science: Database administration
Is the non-science stuff Computer Science? No, but it's software engineering / IT / etc. Is it mandatory to understand the science bits to do the non-science bits? No, but often it helps a whole lot.
So, it's valid for "Computer Science" to be a branch of "Science", but perhaps you think otherwise because there are things that you'd say are within Computer Science, that are not actually science. I'd agree with you there, but I'd claim they're not computer science either.
Re:Computer Science... isn't (Score:3, Interesting)
"Computer science is as much about computers as astronomy is about telescopes."
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim."
-- Edsger Wybe Dijkstra (1930-2002)
Re:That's Not Why (Score:3, Interesting)
Average salaries coming out of my university (Score:1, Interesting)
I can also personally attribute to this fact. I'm a junior in CS w/a low GPA. I recently got an internship offer w/a major corporation for this coming summer. I have 3 friends who have GPAs > 3.6 in chemical, electrical, and biomedical engineering. The chemE couldn't find anything for this summer. The biomed and EE got internship offers, but I'm going to be getting paid more than them.
It still doesn't make sense to me how I'm getting paid more than 3 engineers w/amazing GPAs, while I'm sitting here w/my crappy grades, especially at a school where engineering is the focus.
My point? If you're in CS and absolutely love it, but are having 2nd thoughts b/c you feel the market is weak, don't change majors, b/c whatever fears you have about the market are just simply untrue.
The article misses a point (Score:2, Interesting)
IBM'ers perspective (Score:1, Interesting)
1. There -is- a career track for non-management types that goes to the top of the company. From Senior Engineer, you have Senior Technical Staff Member, Distinguished Engineer, and finally IBM Fellow. The rough part is that the VAST majority of technical staff will NEVER make it passed Senior Engineer, even if they spend their entire careers are IBM. Why? Because IBM is chock full of super smart people, and unless you have: a PhD, a huge portfolio of really innovative patents, a successful track record on dozens of high profile projects, and finally, are recognized as an industry leader both inside and outside of IBM - You are NOT going to be a IBM Fellow.
Corollary to 1. Many many MANY people in IBM realize the above. A lot of them are your manager. Unless you are obviously IBM Fellow material, they will openly encourage you to consider joining them in management. Take their advice for what it is - ADVICE. Or do what I do and blow them off for at least a decade of two. There's quite a lot of interesting work to be done, and they need many more mid-level engineers than they do IBM Fellows.
2. Bureacracy. IBM has almost 100,000 engineers. If you can't live in an environment with lots of silly rules and requiremnts, you will probably not be happy. I came from the military, so I don't mind the BS.
3. Outsourcing. My group may have hundreds of engineers working in India, I'm not sure of the exact number. But it's funny, they didn't lay anybody off saying "You have been replaced". They came to us saying, "Errmm, we hired a bunch of people in India, can you find them work helping out?" I have never worked in ANY development situation where we couldn't use more (talented) people, so we had quite a few things for them to do. It's very possible that IBM India will displace some of us eventually, but I don't see it happening unless the economy takes a huge downturn.
4. Research. IBM leads with technology. I can't think of any other tech company that still does basic research. All the products I've worked on at IBM have come out of IBM Research. Intel doesn't do basic research, they "partner" with Universities and Government. Microsoft has "research" but I think they're just more for show.
All in all, I've been happy working at IBM. It hasn't all been beer and skittles, but I've also worked at other tech companies and I'm happiest where I am.
Is it better in the US? (Score:2, Interesting)
Therefore I took the job offer to one of the few R&D positions available in this part of the world from american companies (yes, there is also R&D outsourcing), earning about $30k/year (that is triple of the nation's average), but I clearly see that my capabilities are above to what is expected from me (but I enjoy the job, but miss the tight challenge). Therefore I present cryptology lectures to my colleagues to help them to raise their level and to not to allow my brain to become rusty and further deteriorate.
But as I am turning 29 in the next two weeks, I feel this would be my last chance to try PhD programme and still can't find any suitable and motivating theme
Is this also problem in the USA, or you just have overload of interesting research topics and miss those that would like to participate in the research?
Re:As an IT/CS employer, I know something about my (Score:1, Interesting)
I call BS.
I'm a 21 year old male, you couldn't tell me apart from your average person on the street (nothing horribly wrong with me), easy going and a little-on-the-shy-side personality who started programming on the Commodore 64 at age 6. My dad had an at-home software company, so this was bound to happen. Peeks and pokes were "magic" at the time, but I understood everything else I was doing. Fast forward 15 years, I've got 10 years of C++ and at least 5 of Java. Instead of rock collecting or whatever the hell else kids did in their childhood, I was coming up with things like recursion before I knew about them. I've even gone to college to try to get a degree because "you must have at least a B.S. degree to work at X" and I must say the coursework has been laughable to some of the personal projects I've put together.
I've managed to scrounge up two full years of formal-tie work experience, and my performance (what a shocker) has indicated I'm worth a lot more than the minimum wage (and less) I've accepted just to get said positions.
I've posted resumes on services like Monster, attended several college career fairs, and despite my exemplary grades and enthusiasm, jobs and internships invariably go to seniors. That was the first thing they ask, and when I hand them my resume they mark that I'm "only a freshman," "only a sophomore," and even "only a junior." To date I've gotten zero interview opportunities, and I've been actively looking for three years.
What more experience do you people want from me? This industry only took off 15 years ago, if you expect four-six years of formal education and five years of job experience, why don't you STOP LYING and just admit you'll only hire people older than 27 who happened to become hobbyist computer programmers as soon as the technology was out there?
-Mike
Undergrad Student of Truman State University
for a resume e-mail freazer at gmail dot com
Don't be so mundane. Seek personal improvement (Score:3, Interesting)
The best reason to get a good education is the more Socratic one: to become a better person. A complete, well-rounded curriculum might seem wasteful to the "just enough to get a job" crowd, but it results in a person who is generally more competent for life ahead. And as for Computer Science, learn more of the How and Why, and less of the What. That person might be less attuned for a given employer. But that person will have a much wider world of employment ahead in general, and will be more recession-proof in the end.
Re:Go for it! (Score:3, Interesting)
Basically, there is a small small set of people who are true enthusiasts, who soak this stuff up through their skin because they live, drink, eat, and sleep CS. For them, it hardly matters _what_ route they take. But for regular people who are doing this as a job rather than an obsession, you can either put in your 4/6/8 years in school to learn stuff in a format designed for learning, or you can spend 2x that learning it on-the-job. If you learn it on-the-job, it will be much more authentic knowledge - you will not only know things, you'll know why they're important to know. But you have to be hella motivated to go that route.
-scott
Re:Go for it! (Score:2, Interesting)
As a professional in the field, I too assumed that outsourcing, layoffs, and the bust in the dot-com bubble would have been the reason for declining enrollments. The article, based on a survey of 836 high school students in 9 high schools (7 California, 2 Arizona) proved otherwise.
The top three negative influences appear to be an aversion to sitting in front of acomputer all day, the fact that they are already sold on another major, and that they would like a more people-oriented major or occupation. (Taken from section 4.3 of Why Students with an Apparent Aptitude for Computer Science Don't Choose to Major in Computer Science written by L. Carter, Point Loma Nazarene University).
People equate Computer Science with Programming. CS is more than just programming. If all you're doing is programming, then it's easy to see that you can be outsourced. If on the other hand, you show what else Computer Scientists are involved in - robotics, algorithms for movie special effects, improving the quality of life for people with missing limbs and for people with speech impediments - interest might pick up again.
The author had five implications of the survey in order to improve undergraduate enrollements:
Having gotten my BS in Computer Science 23yrs ago, I can see that the curiculum must change - can't just be teaching programming. Need to look at the advances in computing - courses about hardware architectures, applications of computing (weather modeling, human genome, etc). Programming is dry, and not what I do all day - why should it be taught that way?
jerry
What about the lack of engineering? (Score:1, Interesting)
You look at all the consultants and the books they are writing and then the people actually drinking that koolaid, the reality is that if you're a remotely decent coder and you don't mind not doing engineering you can get a decent wage in a "code it and forget it" style and hopefully move on before the problems rise. You don't need CS for that, you don't need a masters in SE for that.
To be completely honest, if you're approaching it that way, you might actually enjoy it a lot more than if you really care about solving real problems and delivering robust, reliable and high quality solutions that might be deployed for 30-50 years. Just bang out some quick web UIs on some open source database stuff and by the time there are "problems" they'll probably "need" to build a new web page anyways. There is a remarkable amount of that going on and I almost think that the rest of us are suckers for letting it happen or not doing it ourselves. Look at the Ruby on Rails thing, there are two companies generating hype, writing books, teaching classes, etc.. around it. No substantial real world users of it, they have books on how it's "enterprise ready" and how to "get real" with it and people are eating it up. It's great stuff but there is much more sizzle than steak and the whole idea is to be on to something else before those problems become real.
top end pays too little (Score:3, Interesting)
This a minority view point but I think one of the reasons for for declining enrollment in computer science and engineering in general is that these fields pay too little. Yes, there are million statistics that say average salaries are high for CS grads. However, if you compare the top 10% of computer scientists (in terms of skill and effectiveness) vs the top 10% of investment managers and then look at the their pay, you'll see radical difference. A really taltented and well paid computer scienceist might make a 180K a year. A talented investment manager is going to be paid in the millions. Really talnented doctors aren't as well comp'ed as investment managers but make much more than computer scienctists. Same for lawyers.
Sure, you can gamble on stock options but its a gamble. This is not field where talent alone gives so any certainty of retiring rich. Most of really smart CS people I know are leaving the field and getting MBAs.
Re:As an IT/CS employer, I know something about my (Score:3, Interesting)
Then post your high paying job openings right here and now and let's just see if your money is where your mouth is. The fact is, talented and experienced people actually are plentiful. You just have to look around better. And you may even be misreading the resumes for all I know (I've met a few managers who couldn't do that ... which is needed since techie/geek type people can't write good ones). The local grown talent is here. You're just not making the effort. And the big corporations that also don't make the effort can easily fall back on the body shop sales people that come in carrying a few CDs full of resumes from the workers they are selling. So it's certainly a lot easier to sign an outsourcing contract than to take the proper steps to find someone as specific as you want.
Keep in mind that the more specific you want to be about finding the person to fill the job, the more work you have to do.
How many online job web sites do your jobs get posted in? Do you post in at least 10 of them? Or are you expecting the candidates to spend 100 hours a week hunting through all the repeats of the really stupid underpaying jobs on dozens of these sites. Now it isn't your fault that the online job hunting methods are so fragmented (because of way too many job sites, and too much clutter and noise on the big ones). Unfortunately, it's what you're stuck with just as much as those of us hunting for work are.
And by all means absolutely do not dismiss any candidate because they are currently unemployed. If you think unemployed people can't do the job, then all you are doing is making worse the very problem you seem to claim does not exist.
BTW, please include salaries in those job opening listings you post here. Let's see if your pay level really does indicate your belief in this shortage.
And why are you hiding behind "Anonymous Coward"? Afraid someone will be able to track you to your company and find that you aren't really hiring at all?
Re:From the article (Score:3, Interesting)
- Retaining good working relationships with other teams, for when you need their assistance on other projects. (Example: Not pissing off the useless IT department and then having to ask for their help setting up an external server.)
- Meeting corporate mandated standards. (Example: Meeting accessibility requirements, even if you happen to know that nobody currently using the application uses a screen reader.)
- Moving in the same strategic directions as the rest of the company. (Example: Not building applications with
- Eating the right dog food. (Example: Not using Oracle-specific but extremely handy SQL extensions if you work for IBM.)
- Reporting results. (Example: It's a pain in the ass to summarize what you did each week/quarter, but management need to know, and you need them to know.)
- Ensuring supportability. (Example: I don't care if Eiffel or OCaml are the greatest and most productive languages in the world; enterprise business applications need to be written in languages that you have a chance of finding programmers proficient in.)
- Evangelism. It's not good enough to get the job done; you need to get the word out that you're getting the job done. A big company is a microcosm of the business world--you have many of the same problems, such as getting funding, getting awareness, getting buy-in, attracting users.
The above concerns aren't IBM-specific; pretty much any company that hits a few hundred employees will have them. But yes, lots of people who are narrowly focused on technology will see them as "sucking up" of one kind or another.
[Disclaimer: My opinions, not IBM Austin's.]