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.'"
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...
I can't speak for other parts of the world, but in the Netherlands IT is one of the best sectors to be in. Frankly, I have a hard time understanding all the people on slashdot talking about how shitty a job in IT is. Maybe things in the states are totally different (for one thing, the wages are even higher than here in the Netherlands). But there is little reason why IT could not be a pretty good career choice. Of course, there are some things which might help you along:
* 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.
The concept of an "IT" job is way too vague to be useful. IT has long since split into various disciplines (eg. hardware guy, code monkey, dba), and now those are subdividing even more. While there isn't that much difference between being an oracle dba vs. a mysql dba vs. a mssql dba, there is a big difference between being a java/c#/c++ coder vs. being a site builder, and a huge difference between being a site builder vs. a dba. The differences in these fields are reflected in what CS (or related) degree (or job skills) one might want to pursue. The real question(s) ought to be "Is Still Worth It?"
Grammars can be used in programmatic and automatic test script generation. You probably aren't using automated testing if you aren't using grammars.
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"
GPL Deconstructed
Software Engineering teaches you the disciplines of proper planning, estimation, design, and quality assurance.
It does not give you the knowledge necessary to keep your code clean or your site loading fast. That's programming knowledge!