Career in computer science and/or computer programming

Good day all.

I am a freshman heading towards a Bachelors (possibly Masters) degree in computer science. I am quite certain that a BS or MS degree in CS will be quite lucrative. I desire to be a programmer, but I am also flexible. However, I’ve heard a few nay-sayers talk about CS being a dead industry, jobs disappearing “overseas,” and degree holders having to work factory jobs to make money. This seems to counter most of the research I’ve done. But I cannot, at least now, argue expertly on the computer science industry. I’m sure there are more than a few experts here. Are the nay-sayers correct? Am I in a bust career track? Should I change? I can’t imagine a university offering a dead-end degree. Also, if everyone was warned against CS and chose other degrees, who would replace the retiring CS’s? What can i reasonably expect regarding job availability and earning potentional? Please, I desire and cherish your knowledge, opinion and advice.

Thank You.

I have friends who are studying Computer Science. If you love it, continue to do it. If you don’t–stop right now. There is such a glut of people with Computer Science degrees, that unless you’re an incredible programmer, someone who lives to code (and it doesn’t sound like you are the latter), you’ll have a hard time competing. Don’t go into a field solely because it’s “lucrative”–what good is a job you hate, and worse, if it ends up paying poorly.

Universities certainly do offer degrees in fields of study that do not directly lead to lucrative jobs. Astronomy, philosophy, and English literature are just a few examples, and I’m sure you could come up with more. That doesn’t make them dead-end degrees- there are interesting things going on in those fields (well, I know there are in astronomy, and I presume there are in philosophy or English literature).

I am absolutely not an expert in all things computer, I’m a PhD student in Spanish. But, I did my undergraduate work at a big engineering/ computer school (Iowa State), and most all my good friends were either CS or CE majors, and I would daresay I have a good perspective, if an outsider’s. (I graduated in 2000, btw)

There were a couple of my friends in CE and CS who really loved what they did - they got through the classes on Pascal, and the 72-hour-marathon programming sessions and still liked their field. But there were a lot of people that burned out. It’s a lot of work, and (this is very subjective) they tended to find themselves isolated. I know three people that have done grad work in CS at UW and hate that they feel completely isolated in their own projects, rarely even talking to other grad students.

As an English (and Spanish) major, the people in my lit, philosophy and writing classes were either majors or burned-out computer geeks. There were a lot of them - they came in with lots of energy and just found themselves worn down by all the thankless labor, and ended up going in the opposite direction, ie, film, philosophy, creative writing. I knew people that tried to finish their majors because of the job opportunities that awaited them, but they were not very happy people.

As a second-year PhD student (and someone who has been in school for way too long), I would also say to not worry at all about grad school for the moment. I’m a big book/ language geek, and even I’m getting tired of the grad school/ TA grind. I know you’ve heard it before, but take some general education classes; take classes in things you’ve always been curious about, and don’t let your plans get in the way. Things can change, and usually in ways you would have sworn they couldn’t.

Oh, and I also have a friend with a CS degree, does sys admin stuff, and hasn’t been able to find a permanent job in WI for about two years now. Based on what I hear from the CS grad students I know, the field is drying up.

A CS degree really isn’t worth that much if everyone’s got one.

That would never be a problem. Most students don’t have the drive and the math aptitude to take that major. There may be a few too many for the job market at a given time, but it’ll never be the case that “everyone” has that degree. FTR I do not have a degree in CS, but wish I did. It wasn’t an option for me when I was in college.

From where I’m sitting, Room 9153 in building mumble-mumble working for mumble-mumble, I’d say the field still looks fairly healthy. My company has gone through a few layoff cycles, but our headcount by now is almost back to what it was before. Not all IT jobs can be outsourced to the Third World. Most companies need to have people who actually work for, and at the company and understand something of corporate culture and procedures.

Those I knew who were laid off have all, AFAIK, found comparable employment elsewhere. In short, one should expect it to take longer to find a job after graduation, and one should expect a certain amount of upheaval during one’s career. But to say the field is dying is to exaggerate.

It’s like they say in the stock market: past results are no guarantee of future results. Right now, it’s hard to tell if thing have been shifting because of the economic slowdown, or if it’s due to long-term market changes. It’s not a dead-end degree; at least, no more than a degree in nursing. There will be some amount of demand for computer whizzes in this country for the forseeable future, but there is no guarantee of how much the market will grow or shrink.

If you’re thinking of a MS or PhD in computer science, you should probably talk to folks in the graduate studies where you’re thinking of going. For instance, I know that UNC’s CS graduate program tends to shy away from CS majors, preferring people with a stronger math background than what many CS programs teach. They will still take in bright students with a less-than-ideal math background, but will then require them to take the appropriate math prerequisites (usually destroying the grade curve for the undergraduates in that class – d’oh).

CS has not dried up. The nature of the business has changed such that there is less demand for entry-level and mid-level positions. Also, we’re still in an economic slump.

Recent grads need to be aware of the changing practices of software production. There is a growing realization that coding is grunt work that can be done by high school graduates, IF they are working from a design created by a talented software architect. This is the reason for the growing popularity of strategies friendly to modular design, such as Java and UML. Companies will assign their best talent to designing the software and documenting the design in requirements papers and UML diagrams. Then they will send the design to an off-site code factory to have it implemented. This strategy isn’t a cure-all and it isn’t flawless, but it is the future.

In summary… CS students should realize that these days the money is in designing, not coding, and pursue appropriate studies. Study UML, study problem-oriented math, study software design techniques. If you get a chance to take a course in queue theory, I suggest doing that as well. Of course you also have to study some amount of coding… you need to focus on modular, object-oriented languages. But always keep in mind that the money is no longer in “if/then” statements.

dies laughing

Sorry, sorry. You do have a point, in that there will always be some need for computer people, and the industry slump probably won’t last forever. But a CS degree isn’t the guarantee that it was just a few years ago. If you have a BS and a lot of practical, hands-on computer skills (which my CS program didn’t give me), there’s a chance that you can get a job making decent money. But don’t bet on it.

–c_carol, severely underemployed CS graduate

I went to college as a CS major, switched to Math/Stat, and am now a CS Ph.D. student. In college it seemed to me there were three kinds of people who majored in CS: those who liked the “computer” part, those who liked the “science” part, and those who were in it for a good job. People in the first group just want to hack, and they don’t get much out of the classes. A lot of them drop out; they can get good jobs without a degree. I was in the second group, and that’s why I’m a Ph.D. student now (after a short and mostly unhappy career as a programmer). People in the third group mostly ended up switching to business majors with CS minors. That might be your best bet—it would probably lead to a computery-type job on a management track.

I don’t understand all the handwringing and laughing about what a horrible field CS is, because it’s a normal field with above-average salary potential and lots of jobs.

I think that some people started their formative years in CS during the tech bubble, and developed some unrealistic expectations. Back then, you could ‘company shop’, with multiple offers. Employers would bid for your services. I knew guys with four year diplomas and five years of experience pulling down $120K per year. Those days are gone.

But now that reality has set in, you’ll find that CS is still a fine career. Entry level salaries with a BS can be in the 40-45K range, and after a few years of experience you can be making $55-65K. If you’re really good at what you do, you can double that by moving into team lead and management positions.

If you don’t like CS, then you’re in trouble, because to stay competitive you’ll have to continue learning for the rest of your career. If you don’t like it, it can become a real drag.

But there are jobs out there. Outsourcing has only taken a small percentage of jobs, and a lot of those are in things like quality assurance and customer support. And many of those jobs are coming back - if my company is any example, outsourcing to places like India hasn’t turned out to be the financial winfall upper management thought it might be. There’s some serious reconsideration going on around some of these decisions now.

I’d like to second all of Sam’s post, and add a bit of my own:

A degree in CS doesn’t mean you have to be a programmer. There are a lot of jobs in the tech industry where it’s a big help–I currently spend about %70 of my time doing programming, %20 being an Oracle DBA, and %10 doing system administration. Take the time to learn about and get experience in auxillary fields–get in-depth knowledge about one of the big RDBMS’s, or networking, or a particular operating system, etc. You’d be surprised how much more useful that kind of knowledge will make you as a programmer.

And I’ll second what iwakura43 about quiting now if you’re in it for the money. There may be a “glut” of CS degrees, but there sure as hell isn’t a glut of people who truly understand programming…

I got my PhD in Computer Science 24 years ago, and I’m not burned out yet. (Of course back then there were only 168 PhDs in my year.) First of all, you don’t have to be a traditional programmer. I specialized in computer architecture, and started doing CAD software out of school, so now I’m more an engineer than a computer scientist. I agree you should only do this if it is fun, but you should also look for other stuff you like, since there are fewer people expert in two areas than just one.

Ditto to what NattoGuy said.

I graduated with an EE degree in 1996 and have been doing CS work since graduation, from entry-level development to business analysis to system architecture. If I could go back and redo some of my class work I would definitely do some course work in the system architecture arena. From my experience, entry-level and mid-range developers can at times (unfortunately) be looked like at like cogs in the machine that can be easily fired and replaced. Alot of management thinks one Java guy is as interchangeable as the next Java guy. But, if you can get yourself into a system architecture and design roll, you’re the guy that actually knows (hopefully :slight_smile: ) how your system works and it’s interactions with other systems out there, and most management will think twice about getting rid of a person like that.

Now, no one is going to hire a fresh grad as a designer/architect. You have to put in a couple of years of good ol’ programming grunt work. But, I think the design and UML courses can significantly improve your code and gives you a leg up on moving up into a designer position.

Also, CS is a tough field to work in because the industry moves at an amazing pace. While someone that gets an accounting degree in college can rely on that basic set of knowledge for quite a long time. In CS you always have to keep studying and stay abreast of the latest technologies.

One last piece of advise, CS is a very good field and I would recommend anyone going into it. But, for the foreseeable future, you can’t get too comfortable with a job. It’s been an up and down employment scene in IT the last 8 or so years. I’ve had my good and bad times (as I’m sure alot of other IT Dopers can atest to, as well). Just make sure you get your core skills down pat (good programming practices, good design skills, good documentation, etc.), and keep up to date on other technologies, and I’m sure you’ll do fine.

Good luck.

I do computer stuff for a living. No degree. No schooling at all. No certifications(yet). The market where I am it is pretty good. At least for me. I think the kicker for me is I have a lot of experience on a lot of OS’s doing alot of things.

After a long time without a job, due to personal reasons, I just jumped back in and am making ~40 a year. I’m going to go get my MS cert and that’ll bump me up some. One of these days I’ll go get a degree and that will bump me up some more.

Anyway, CS isn’t going to be dead anytime soon. They are farming some coding stuff out but they will always need upper level developers. They will always need network people as well.

I believe that security is going to be the next big area for programmers. Security for alot of things is pathetic right now. For example, my sister forgot her 23 character password for her Windows laptop. It took me about 10 minutes to break into it. Not good.

If you like math and CS then security might be an area to focus on.

Slee
.

I’m a second year CS student in the UK. In the first year, our classes were huge. They’re now approximately half of what they were last year, due to dropouts and they’re expected to drop again going into the last two years. There’s a lot of maths involved with CS that tends to put a lot of people off who don’t really want to do it.

I forgot to add, in the UK at least, the next shortage of graduates appears to be in the chemistry field, so I expect that’s where a lot of high paid jobs will start appearing.

CS major here. Graduated in '85. At my university the CS degree was from the Engineering college (and as such, was heavy in math, physics, logic design, circuits, etc.) Be aware there are differing “types” of CS degrees, some tend toward a “business” goal, others more toward science and engineering. You would do well to quiz your university about which companies hire their graduates. This may have more influence on your ultimate career than you think.

Also, at least in my corner of the field, companies will usually defray, or sometimes pay in full for your Master’s degree (my company pays tuition, books, and even provides loaner laptops if needed). You might want to look into this before starting your master’s program.

Thirdly, is there anything in your past that would prevent you from getting a gov. security clearance? Nowadays, a security clearance is a kind of “gold standard” in computing jobs. Ability to get (and maintain) a Secret and/or Special Access clearance can make a big difference in your long-term employment picture.

What he said. After you have a few years under your belt, starting your own company and doing independant work can be lucrative and rewarding if you have the time and business sense to do it yourself.

But about the CS degree. Don’t know about your university’s program, but if its anything like mine prepare yourself for many hours in a computer lab basking under flourescent lights, nostrils filled with the smell of curry :wink:

I went back to school in 1999 to complete my college degree, which I decided to do in CS (instead of music as I had started out to do in the 1980s - what was I thinking?!?).

As my classmates and I made our way through, we went from wondering what we were doing getting a degree in a field where someone who took a weekend course in web design was making high-five-figures, or even six, to wondering why we were getting a degree in a filed that wasn’t hiring.

In the spring of 2003, one of my professors (who was also a software engineer at TRW/Northrop) dragged us all together to present the conclusions drawn at an ACM meeting on the future of the industry in the States that had been held but a week earlier. Their findings:

  1. Mangagement was sick to death of spending money on IT.

Between the over-speculation in the dot-com bubble and the Y2K incident, the top brass just didn’t want to hear any more about expenses. Add to that the feeling of being had by the hype about the “new internet economy” and wondering if all that money you spent on “millennium-proofing” your system when it became clear that some were taking advantage of the general lack of knowledge about computers to make a buck, and you get a business climate where computers are a dirty word. Plus you had the general economic slowdown, and money was shifted to focus on other priorities.

  1. Jobs had been lost, but not a huge percentage of the filed, and many would come back.

A lot of computer jobs disappeared for a variety of reasons, but the field was still large. Management did not want to hire right then, but they ran on IT, and within a couple of years, their systems would no longer meet their needs and hiring would start again. Overseas outsourcing was a problem, but, while it would end up working for some larger companies, others would realize that the logistical problems of getting quick turnaraound on software being created by people many time zones away who work in a with a different set of techniques and don’t speak your language would destroy the supposed cost savings of the lower salaries.

  1. The field would continue to be slow, perhaps for a year or two, then begin to rise again.

All these factors would combine to create a much healthier hiring climate in this country.


I graduated that May to what one man who couldn’t take me on to his software firm called “the worst IT job market in the last 20 years”. Most of the companies I called that summer had closed up shop. Computer Science is a very volatile field, and we are in a slump. Eventually, I fell back on years of education experience, and am waiting out the slump teaching Computer Science at a small private academy. I was the only one of 200 candidates for the job who had ever done any teaching. The rest were out-of-work computer professionals.

However, I have seen signs that the ACM was right. Any number of news stories showing smaller companies regretting their outsourcing decisions. A lament by larger companies that no one seems to be majoring in Computer Science just as they are preparing to ramp up domestic hiring within the next couple of years.

If it’s a field you love, it isn’t dead, just changing around completely as it is wont to do every few years. Stick it out, keep your knowledge and skillset very up-to-date, remember that University Computer Science courses are not always there to teach you what’s current (some still regard it as quaint side-branch of Math), make sure to take advantage of any decent-sounding internship available to you, and you’ll do just fine.