Slashdot Log In
Is Computer Science Still Worth It?
Posted by
ScuttleMonkey
on Wed Nov 08, 2006 03:49 PM
from the was-it-ever dept.
from the was-it-ever dept.
prostoalex writes "Is it a good idea to go into Computer Science? Yes, there are certainly pending labor shortages as Indian companies outsource to the United States, but speakers of Stanford Computer Forum generally agree that it's a good career choice. From the article: 'To ensure job security, students must learn business, communication and interpersonal skills, Vardi recommended. The personal touch will become as important as technological expertise, he said. "There are jobs galore," agreed Suzanne Bigas, assistant director of the Stanford Computer Forum.'"
Related Stories
[+]
IT Worker Shortages Everywhere 480 comments
Vicissidude writes with news from the IT front in India: "The software industry body Nasscom has warned that India faces a shortfall of half a million skilled workers by 2010. The country will need 350,000 engineers a year, but no more than 150,000 of the most highly skilled engineers will be available each year." This shortfall is fueling a new development, the exporting of Indian tech jobs to the US. But will there be workers in the US to do those jobs? Reader Jadeite2 writes with a word from Bill Gates, speaking to a business forum in Moscow, who said: "There is a shortage of IT skills on a worldwide basis. Anybody who can get those skills here now will have a lot of opportunity."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
CS Degree = no sunlight (Score:5, Insightful)
Work for talented programmers will never end. But work for programmers in general will not be as common in the coming years when everyone and their dog can make a website on My Space.
Re:CS Degree = no sunlight (Score:5, Insightful)
Parent
Re: (Score:3, Interesting)
And we'd have a lot fewer crappy websites out there [I'd guess] if more programmers had CS degrees. Not that we should regulate something like that...
Re:CS Degree = no sunlight (Score:5, Insightful)
Parent
Crappy needs to be defined (Score:5, Insightful)
So if by crappy you mean design, I don't think a degree in computer science will help. If you mean crappy as in functionality, a degree in computer science might help.
Parent
Re:CS Degree = no sunlight (Score:4, Funny)
Indeed, and seeing the average quality of commercial software at the moment it seems to me that the demand for Programmers is far higher then the demand for Computing Scientists...
Parent
Re:CS Degree = no sunlight (Score:5, Insightful)
THANK YOU. I was about to post the same comment. But let me expand on this concept that people don't seem to understand (especially programmers).
We need more CS people in general. Why? Becuase the CS degree will give people a decent technical background and understanding of computer related technology. I would much rather have a project manager with a CS degree than a marketing degree or communications degree. But I have yet to see one. Programmers tend to think that the only thing you need is a good programming staff. While that will get you pretty far, there are many other pieces of the software puzzle besides programming. I have been doing software testing and QA for 13 years. I made the choice to go down this path instead of programming. However, many programmers think that I am somehow some kind of "failed" programmer. And no, ex-programmers don't make the best QA people, no matter what Google thinks.
I think that the more people we have in the software industry with CS degrees, the better. I guess I had better qualify this with the statement that I have no real idea what CS degrees these days are like, I got mine back in '93. There was only 1 software engineering class, the rest was math, hardware/circuits, or programming. I hope that these days they have added more to the curriculum that deals with the process of developing software.
(taking a few writing classes wouldn't kill you either)
Parent
Re:CS Degree = no sunlight (Score:4, Interesting)
I did a bachelor of engineering in software engineering (finished last year), and I found that a significant portion of the degree was focused on the various processes of software development, including things such as project management (as well as a significant amount of mathematics, electrical engineering, programming and computer science subjects).
The Comp Sci students I know did a fair amount the software process work also, though somewhat less, and less project management, though this is probably a function of the fact that their degree is a year shorter, and has more electives (they could do some of the extra software process & management subjects the software eng students did as electives).
Parent
Re:CS Degree = no sunlight (Score:5, Insightful)
Now that I've been in the workforce 5 years, a lot of what I learned is very valuable. But for the first two years out, most of it was useless - I needed a background in actual application development at the low level in the trenches. I had the Computer Science, but no programming foundation to build it on - fine if you want to do testing or management, crap if you wanted to actually design and program.
Smart colleges should offer courses that cover bug tracking, source control, learning how to find the information you need in technical documentation, and especially how to read other people's code. Give a class a 50,000 line application with 20 or 30 known, non-trivial bugs in it and spend the semester showing them how to find the bugs. Give a class some applications which have very poor code reuse and show them how to break out common code into separate libraries which are easier to document, track, and debug. etc... etc... After getting my MS in Software Engineering, I was like a mechanic who could diagram the variable valve timing in a Ferrari but couldn't change a tire.
Parent
Re:CS Degree = no sunlight (Score:4, Insightful)
To me that sounds like the kind of territory that technical colleges/polytechnics should be covering. University is where you go to learn the science behind the discipline - if you want to cover the practical applications then I suggest you are looking in the wrong place.
The day universities shift their focus to creating ready-made programmer automatons for the business market is the day your C.S. degree becomes worth less than the paper it's printed on.
Computer science *should* be about karnaugh maps and logic optimisation; about algorithms and data structures; about mathematical proofs and combinatorial logic; about compiler theory & design; about all of the things that give a person a grounding in the basic fundamentals of the discipline.
Suggesting that it should be reduced to a basic preparatory course for "life in the business world" involving little more than bug fixes & refactoring is missing the point entirely. Those are things that you pick up later - things that anyone with the proper grounding should be able to learn with little or no trouble at all.
At the end of the day, computer science/programming in general is one of those subjects that no one person is ever going to be able to understand in it's entirety. Just when you think you're at the top of your game, someone releases a new library/language/compiler/interop technology/whatever that shifts the boundaries again. Having a good grounding in the underlying theory gives one an immeasurable boost in ability to keep up with these changes.
I would argue that a graduate with a computer science degree that has a basis in unchanging mathematics & the fundamentals of computer science is going to be much more valuable to an employer in 10 years than someone who has a more practically focussed 'diploma' who has been taught little more than how to find & fix bugs in a language that could potentially be obsolete.
Parent
Re:You can't code your way out of all problems. (Score:5, Interesting)
And then there are the rest of us, who write well formated, well structured, well designed code every day, but never went to collage. We did what a LOT of people did in the 80's we picked up a copy of whatever language we could get our hands on and started teaching ourselves.
We read books, we looked at other peoples code, we experimented. We wrote our own Direct to Video Memory code to avoid the bios screen write functions.
But now we are in our late 40's and not hip and cool. We don't get hired because we don't have a piece of paper saying we know something, we just have massive amounts of code to back us up, but none of the under 30 hip cool crowd cares about that, its "You got your degree from where?" When I tell them SHK ( school of Hard Knocks ) as a joke and then tell them I am self taught, I get the "We want someone more qualified" What a bunch of horse shit.
Thats the biggest problem with our society, no one values experience, no one values wisdom gleaned from 25 years of doing the JOB.Most of us don't care for the latest and greatest Ruby on Rails or Roads or even a race track. We don't do cutting edge, we do what works, we do it most of the time under budget, ahead of schedule and in code that readable AND commented.
So we will keep writing code that supports what all you "Latest & Greatest" fan boys think is SO cool, when in fact its the exact same language we built so many years ago, with a cosmetic twist.
I guess the other thing that is SO fucking depressing is that most CS or even SE grads these days don't have a clue how to create anything unless its spoon fed to them in some object repository. I asked a recent CS graduate if he knew any assembler of ANY flavor. His response was, "Well we had about 2 hours of it and some theory", but other then that all he knew was Java and rudimentary C.
A pretty sad state of affairs if you ask me. And people wonder why companies outsource.
Parent
Other fields? (Score:5, Insightful)
Yes, if you love it.
Re:Other fields? (Score:4, Insightful)
Yes, if you love it.
And no, if you don't.
If somebody is even asking the question whether it is "still worth it", one assumes that they are not in it for love.
Parent
Re:Other fields? (Score:4, Funny)
Parent
Re:Other fields? (Score:5, Insightful)
Do go into computer science if:
If you want to make money, go into business. Sciences are best suited for people who love the science and aren't worried about the wage. If you aren't sure, take a few courses first year in different areas and see what inspires you.
Parent
Re:Other fields? (Score:4, Funny)
I disagree. I love sausages. Studying sausages would entail learning how they are made. Studying how sausages are made is said to put you off them for life. Hence, not necessarily true.
Parent
You'll never be able to buy a house (Score:4, Insightful)
After 2001, I'll never trust the stock market or private industry ever again. Driving a truck is better than doing IT work for idiots.
Re:You'll never be able to buy a house (Score:5, Insightful)
I tried that between 2001 and 2003. What you need for that isn't good programming- it's good business sense and a fair amount of ESP. You need to be a good enough judge of character to know who will pay their bill and who won't when you present that final invoice. Far too many failed to pay that final invoice- and no business can survive a 50% decrease in revenue in a single month unless you were independantly wealthy going in.
Unfortuneately most programmers- me included- went into this because we *don't* have good interpersonal skills, otherwise we would have been playing sports in high school instead of messing with computers.
Parent
Re: (Score:3, Interesting)
My programming teacher always warned for this; he uses *always* some sort of timebomb (after a certain period completely de-activating the software) for his clients, certainly when they're known to not pay. After he received his payment for the last bill he sends out a patch, with "minor fixes" while actually removing the timebomb.
I'm not i
Yeah (Score:5, Insightful)
VoIP stuff seems to be a big thing, especially in developing countries(ever wanted to travel?), learn codecs, learn how to program codecs, learn how to hack Asterisk and SipX and some of ht eothers, play with Asterisk@Home.
Oh, this isn't an Ask Slashdot? Sure looks like one.
IT = boom and bust (Score:4, Interesting)
The business cycle drives investment in IT so it should be regarded as a cyclical industry just the way any capital intensive business is. As growth in IT technologies peter out (Moore's law hockey-stick growth) inevitably flat-lines as technologies hit their limits growth will fall to the same growth as the economy as a whole. Like the railroads, utilities etc.
If you are 50 or so and are looking to make a career change IT is not a bad choice - it will probably be a sound field for at least the next 10-20 years.
But for somebody who is just entering college I think that other fields, particularly anything associated with health care are better opportunities. They will surely offer careers with better sustainability than IT.
Experience degree (Score:3, Informative)
What was that about degrees being worth the extra tuition fees because of higher wages Mr Blair? So many people are getting degrees now that they've stopped being the ticket to a good, high paying job that they used to be.
Not that I'm bitter and twisted or anything...
Re:Experience degree (Score:5, Insightful)
- You got a poor quality degree (either from an institution with no reputation, or a low 2.2 or lower classification).
- You haven't done anything interesting with your time at university (join / run any student societies, etc).
- You haven't taken the opportunity to get any work experience (most universities run summer placement programmes, if you can be bothered to sign up).
You get out of university what you put into it. If you're just there to get a piece of paper, you will just get a piece of paper and it won't be much use to you.Parent
Man What? (Score:3)
need good people (Score:5, Insightful)
If, on the other hand, you want to learn CS to get a 'good job' after school, and end up going to a second-rate university where they teach you specific software instead of abstract ideas, you might not have such a good future after college.
I'm sure both types of students attend all universities CS departments, don't get me wrong. I think your attitude going into it is what matters most, if you love CS and work hard, I bet you'll be just fine. If possible, don't choose your major based on what's in fashion, do what you want.
CS != IT (Score:3, Insightful)
eg. The real-estate situation in the US is currently a bust - doesn't mean you should rethink becoming an architect, which is a seriously long-term proposition. However, you SHOULD rethink applying for a real-estate broker's license, since short-term is your concern.
Of course IT is a great industry (Score:5, Informative)
* Work on your social skills. It's not accurate along the board, but many people think that every IT specialist lives in his mothers' basement. Be sociable and this prejudice might turn out to be an advantage.
* Keep on learning. It's fun but it's also an investment in yourself. In few sectors knowledge is as volatile as in IT. Make sure you keep on top.
* Find an employer that fits your personality. Don't expect flexibility from a megacorporation and don't think small businesses will be able to buy you education.
* But most of all: Make sure you're doing something you like (most of the time). A great salary is of little use if you hate the work. If you enjoy your work, you'll be able to go the extra mile which will pay for itself in the long run.
What I am doing (Score:5, Interesting)
It used to frustrate me that I didn't know how to program C decently but I rectified that starting in 2002. I was going to start by reading The Art of Computer Programming and realized how much MATH there was, and how it would be in assembly, so I did a "shortcut" and read K&R and Code Complete and did things that way. Of course, there are no real shortcuts, and the right way to do it is learning the math and the assembly language and going like that.
This is just something I want to do. I want to stand around all those code gods and be like them (in the sense of coding and skill, not necessarily everything else). There's the old cypherpunk slogan "Cypherpunks code" and one way of learning to code is to just write code, but I want to have a track where I'm doing it the right way while I'm on the second track of actually writing stuff now.
I also find biology interesting and may take a minor (or double major) in that. I don't think I'll worry about job security much with a bachelors in Computer Science and Biology. Or even a Masters. Or Phd. I think one step at a time though.
One thing though is I want to do this. I would do this even if there was no material reward. I think that is something to think about. It would be nice if I could make more money, or get a job doing less braindead stuff, but if all that happened would be that I would know enough to contribute to the Linux kernel, or some free software projects which I like, that would be enough for me. After doing mindless BS wage slave stuff all day, it's nice to go home and do my own work where I can actually do what I want, even if I make no money at it. If I could make a living doing that stuff, so much the better, but I would go crazy if all I did was cog-in-the-machine mindless nonsense all day.
CS heyday is over (Score:4, Funny)
I'd recommend forgetting about a CS degree, computers are on their way out.
For a degree thats always in incredibly high demand.
English.
My path (Score:3, Interesting)
By this point, I thought I would be a professor. The thing is, to support myself I did computer work throughout. I finished my masters to find myself full-time employed in IT. Until I could figure it all out, I kept doing IT work and got promoted twice. I'm now a senior engineer specializing in IT security and regulatory compliance. I wear many hats in the area including policy writing.
I'm near 40 now and still waiting to find out what I'll be when I grow up....
Never had a single computer class in my life or received a certificate.
I enjoy Linux, coding & walks in the park in the evening....
Learn to sell (Score:5, Insightful)
Please excuse my rant... (Score:5, Insightful)
I'm tired of {system-,network-,db-} administration, programming, and every other trade skill getting equated with Computer Science. CS is a branch of theoretical mathematics and has very little to do with anything you can sit in front of, type into, click on, or reboot. And I don't mean this as a (serious) troll. I just hate to see the term misused, much like engineers cringe when they hear the building maintenance staff referred to as 'engineers', as in "we'll have an engineer bring some buckets up to put under that leak in the roof."
/End of Friendly Math Snob Rant
Too vague (Score:4, Informative)
WTF? (Score:5, Insightful)
Don't be fooled. Application is important, but try doing your physics homework without understanding the underlying theory and see how far you get. If you want to be respected in the industry, and if you want to find a lifetime in computer technology fulfilling, get a degree in computer science.
If your career aspiration is "high paid code monkey," then ignore this post.
YES! Computer science is great. (Score:4, Interesting)
I teach introductory CS at the University of Washington. In our course we scan through the IMDB top 250 movies, examine historical popularity of babies' names, search for codons and amino acids in DNA sequences, parse maps and topological data, compute weather stats, analyze Myers-Briggs personality testing data, and solve other exciting problems.
Best of all, there are still a ton of great jobs waiting for graduates with computer science degrees at exciting companies. UW's students routinely end up at Google, Amazon, Microsoft, Intel, IBM, Nintendo, and other great places. CS jobs pay great salaries compared to most other fields! Most of the grads I keep in touch with are living very well at a young age.
Go check out UW's computer science videos on YouTube, which talk about what this field is, and follow several women in our department as they go through a day in their lives at work after graduating:
http://www.youtube.com/profile?user=UWCSE [youtube.com]
It's Great (Score:5, Interesting)
One other trick to being successful as a software engineer is to learn technologies in high demand. If you learn Ruby on Rails your chances of finding a hot job are pretty low. You might find work at a startup here and there, but that's about it. If you learn the J2EE platform, relational databases and all the associated stuff you are almost guaranteed to find a high paying job. Go look around on job sites, pretty much everyone is looking for Java Enterprise developers, but the supply is way low.
No (Score:4, Interesting)
How come you never see people saying "Should I go into Painting", or "Maybe I'll try Music as a career". When it comes to careers that are art, including programming, If you don't KNOW that's what you are going to do, then you're just not going to do it well enough to make anyone happy.
When you wonder why virtually all software is buggy, full of delays, poorly designed and shoddily implemented--it's generally because someone is doing a job rather than creating art.
So then this is one of those cases where "if you have to ask, the answer is NO".
I work in IT now... (Score:4, Interesting)
HOWEVER, who seriously does a degree with the mindset, "This is what I'll do for the rest of my life"? Few I think, especially those looking for a career. I graduated two years ago and my life has taken me out to Amsterdam to work for a large IT company, back to my home (the UK) and I write this now in San José. I'm 23 and I spend most of my time travelling the world. What am I doing? Technical sales...
It's not math, it's not programming... it's not even software engineering. It's not anything I did at university. The Indian and Chinese guys have that covered here. They're also better at it than I'd be. What I've got was learned in the bars, at the sports clubs and on the phone begging for more money to continue my degree (and buy more beer). That's something you can't teach someone in India to do... How to work with people in the states. This means no disrespect, but someone born in India isn't likely to come to the US and wow with his people, presentation and linguistic skills. Someone born in the UK isn't going to move to the US and understand the local people.
It's a people-focussed world. Your degree is a ticket. Make it relevent to your overall goals, but focus on the other special experiences university has to offer.
Re:LOL (Score:5, Insightful)
That is like confusing music theory with music composition, something I would hope you would be aware of.
Computer science deals with algorithms, complexity notation, predicate calculus, proofs, and grammars, most of which you will not pick up by just being a programmer.
Parent
Re:LOL (Score:5, Insightful)
That's really true of most degrees, nevertheless, the structure of a formal academic environment helps many people to maintain the discipline to do it, often provides access to skilled instructors that make gaining understanding easier, generally increases the diversity of equipment and resources you have access to in the learning process, may, as a degree is something people often take note of, increase the material reward you get from it, and may make you eligible for additional financial assistance (which may or may not make up for the additional cost) and other benefits.
Whether those benefits are worthwhile for any particular person interested in getting an understanding of the field will, of course, vary from person to person.
Parent
Re:Proof of Education (Score:4, Insightful)
Often true, but not always. If you know your stuff and you prove it in other ways, the offers can come flooding in. Smart companies often employ people based on their open source contributions, for example, and pay as well as, if not better, than generic companies sifting through resumes. From the small set of people I know, the smartest are always hired because they're known in their community and the quality of their work is obvious, not because they sent off a resume. Basically, smart people don't need resumes, they have their reputation.
Parent
Re:LOL (Score:5, Funny)
G.
Parent
Re:LOL (Score:5, Funny)
Dang - and I picked quantum physics instead - oh well wrong/right again.
Parent
Re:LOL (Score:5, Funny)
Parent
Re:LOL (Score:4, Funny)
Parent
It's possible, just unlikely. (Score:4, Interesting)
Well actually you can, it's just rather unlikely that anyone would hire you, without the backing of some sort of accredited school saying that you know it. In terms of knowledge, you could know the exact same things, you'd just lack a piece of paper vouching for you.
There's nothing magic about going to school; colleges these days aren't repositories of secret information, released only once you've sworn an oath of allegiance to the guild lords; you can find out most of what's being taught in any college class by buying the book. (In graduate classes or more participatory classes, it could be harder; but I'm thinking about bachelors-degree physics and mathematics.) In large universities, many classes aren't even taught by professors anyway; just by TA's (slightly more advanced students) reading from someone else's notes or from the book.
The reason the un-degreed student isn't worth anything, is because most people don't have the attention span or discipline to actually learn that way. Therefore, if you said that you'd spent a few years months sitting in your room, studying particle physics, and done all the experiments with equipment you built yourself in your basement, and now knew as much as someone who'd learned it while studying for a degree, I'd probably not believe you. It's not that it's not possible, it's just not likely.
Degrees exist because they're a way of verifying that somebody probably knows something, without actually testing them. The more esoteric the subject, the more important the diploma becomes, because it's harder and harder to verify that someone actually knows their stuff.
Parent
Re:LOL (Score:4, Informative)
Grammars are also used in compilers and parsers... so you probably haven't worked with compilers or parsers if you aren't using grammars.
Complexity notation is important when you are optimizing algorithms... when correlated with timing information it tells you where the code hotspots are.
Predicate calculus is a little more abstract but is useful to learn because it forces you to think in terms of preconditions, postconditions, guards, and invariants, all used when you write loops, iterators, and conditional logic.
Proofs are even more abstract, but are useful when you are tracing a bug because it gives you the ability to make assertions (This should be true or false) and then test them (Why isn't this true/false?). Without the ability to do proofs you wouldn't be able to debug or test code because all you can ever say is "I think this code should do this, but I don't know why"
Parent
Re:the fact (Score:5, Funny)
Parent
Re: (Score:3, Insightful)
Get a degree in CompSci if you find that kind of problem interesting, and you'll spend three years having fun. Once you have the degree, you can do pretty much whatever you want with it.
Re:interpersonal skills (Score:4, Insightful)
Time. Somebody who is good at interpersonal skills has to spend a *HUGE* amount of time developing and maintaining those skills- time spent at parties and at bars and in social situations. Without that time spent, any human being's interpersonal skills will degrade- to the point that we consider a prisoner kept in solitary for a mere three weeks to be insane.
Likewise on the DBA side- time. It takes a HUGE amount of time to gain and maintain computer skills- starting as a teenager working on the computer in your parent's basement instead of going on dates, clear up to the guy who reads every word of the SQL user groups to keep up on the latest changes to the language in the five major dialects.
A SENIOR DBA is going to need to be the later, not the former. There are only 168 hours in the week.
Parent