Is Computer Science Still Worth It?
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.'"
Is studying philosophy worth it?
Yes, if you love it.
You confuse computer science with computer programming.
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.
GPL Deconstructed
I think there's always room for good people in CS. If you're a type who goes to Stanford/MIT/others and gets a degree in CS because you love learning about computational processes and have a natural drive and curiousty, my guess is that there are plenty of firms willing to hire you.
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.
As a professional software programmer for over 20 years, I'd advise anyone who wishes to still be programming professionally in their 50's to spend a summer selling used cars. Being able to sell yourself will be much more important in the later years of your career than your technical knowledge will be.
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
I have found there are just two ways to go.
It all comes down to livin' fast or dyin' slow. -REK, Jr.
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)
My beliefs do not require that you agree with them.
My software engineering degree required a lot of presentations, a handful of written papers, and a lot of discussions on software development models, good design procedures, formal verification of code, testing practices, and so forth.
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.
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.
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. ~Albert Einstein