views:

1895

answers:

17

I've been a software developer for 20 years. i've been involved in language development and large data warehouse development. I've worked for start-ups that have gone public, and for government contractors, and I've written a published programming book.

My knowledge is either self-taught or on-the-job. I've worked with some of the best and brightest, and they taught me well. I'm back in school now, and am weighing my options, deciding between a Computer Science and a business degree.

My question is this. What do I gain, at this point in my career, by earning a Computer Science degree? I just don't know if a Computer Science degree, at this point, is a value-add on my resume.

Edit: I'm working on completing an undergraduate degree.

+8  A: 

Is there a need? I'd say no. Would it be beneficial? I'd say yes. The only person who can say for sure is you, but I know that I now wish I'd done a Computer Science instead of Computer Engineering degree. An academic study of a subject just flexes different muscles than a practical application of said subject; it's like a mild version of mental cross-training.

Hank Gay
+2  A: 

I've got a degree in Computer Science and I thought it was great, that I'd be all knowledgeable, but that's totally untrue. I think it's good to prepare you for what you're about to step into, but it doesn't teach you everything you need to know, in fact, that's far from it.

I know programmers who've been in the industry 30 years and haven't even got a degree, yet they're on jobs paying £75k a year. Degrees don't relate directly to your experience and knowledge, they're just a base of what you may know. Plus, degrees do NOT teach you how to program properly, they teach the ultimate basics. What OO is, but not how to apply it correctly etc.

I know next to nothing compared to my colleagues, and they've got degrees in Geography.

Kezzer
What a degree teaches is the ability to learn effectively and apply that learning immediately. Doesn't matter what you do ultimately. A CS degree isn't about training you to work as a programmer in industry.
JeeBee
I agree totally :)
Kezzer
+1  A: 

I guess it's depend on your career path.

I'm in same situation as you will a bit less experience. I don't think that i miss the formal education in my day life and most of what i know i learned from smart people around me.

For my opinion the only reason to obtain formal education at this point of time is if you think that it will move your career forward i.e if your are going to more technical direction CS degree probably the right choice if you going to busyness direction MBA is a better fit.

Ilya
+4  A: 

I'd guess that you wouldn't gain much. You've got the experience on your CV to back up what you know.

I tend to think of a degree having the most value immediately after graduation when employers will use it to differentiate among all the new grads they're considering hiring. As time goes on, and you both gain and demonstrate the knowledge necessary to do the job, the specifics of what you learned in your degree become less relevant.

Of course, it could open up more job possibilities as some places probably still have hard and fast rules for who they hire. Some places may also rely on recruiters/HR who don't really know enough to identify you as a capable candidate as you don't exactly match what they've been told to look for in applications.

pansapien
+21  A: 

This question requires some serious self-evaluation. One of the subtle side-effects of self-eduction (speaking from personal experience) is that one doesn't know what one doesn't know. It's easy to learn "just enough" for a current task, and then unconsciously select tasks that use only familiar concepts.

  • Do you find some of the emerging concepts (e.g. FP, LINQ, DSLs) challenging (or pointless)?
  • Where are your frustration points on a project where you don't set the agenda?
  • Are you active in a user group/community, and able to "keep up" with the conversations?

I would talk with trusted collegues and friends who have CS and B degrees and ask them for honest feedback about where your knowledge and concepts gaps are, then go for the degree that addresses more of those gaps.

joel.neely
+4  A: 

it depends on the company doing the hiring whether they accept someone with/without a degree. But, if you have experience in compilers/language development/warehousing, i say a business degree is worth a bit more in terms of the breadth of what you'll learn (i assume its an undergraduate comp sci degree).

Chii
Yes, it's an undergraduate degree I'm working on.
Tom Moseley
I think this might be a big one, there are a lot of companies out there that will not accept full time employees into some positions without having the degree.
Rob
thought i said that above, i actually think if a company refrains from hiring based purely on a lack of degree (its just a piece of paper after all), that company may not be a good employer. My main concern is rather knowledge gaining vs time spent - a business degree has more breadth over comp sci
Chii
+6  A: 

I think the most important aspect of having a degree is if you are totally self-taught, you usually only motivated to learn the things that you find interesting, but in the school, you are taught all those things that are really boring and way too overcomplicated but in the end knowing them will serve you well.

Depending on your employer, it might or might not get you a raise, but I'm pretty sure that it will help you in your professional development.

DrJokepu
+2  A: 

A computer science degree in a reputable establishment might be worthwhile, because it is a highly mathematical subject, and the programming related aspects take a back seat. It would be for self-interest only, and even then you would find many areas to be rather too familiar. You might be better off just going to the lectures that interest you, as many places don't restrict who can go to the lectures (or view them online).

However I suspect that many places offer degrees with the CS title that are little more than learn-to-program courses. This would be totally useless for someone who can already program well with many years of practical business experience.

The business degree would open up new avenues in terms of work and earnings, if you wish to move away from what you've been doing for the past 20 years. I haven't done one, so I can't really offer much advice here.

JeeBee
+1  A: 

Shoot... I didn't even need a high school diploma to get a tech job. (I have it now, btw. 3 weeks of night school that made up an entire year of public school grades - go figure.)

Do I wish I had that extra knowledge? Yes, but...

A degree isn't going to make you a smarter person, its only going to give you extra knowledge that you may (or may not) find useful in your life.

StingyJack
+2  A: 

I've been down this path and would recommend it with the caveat that you pick subjects that you find interesting but are not yet wholly competent in. I chose math (discrete methods) and IT management as my major and minor subjects, and found the experience enjoyable and the added knowledge highly beneficial and practical. As I have worked for myself for the last two decades, nobody has ever asked to see my qualifications, and I doubt they ever will.

IMO, degrees, diplomas, certificates, etc... are pretty useless scraps of paper but a good 3rd level education is invaluable, as is continuing education on an ongoing basis.

Shane MacLaughlin
A: 

I think that it would be worth your while to obtain one as a CS degree will give you a wider understanding of some subjects or topics that you may know nothing about since you have not come across them in your job. In the future such things will be beneficial to you.

Ian Devlin
+1  A: 

I've been in the field for a while. Before development I was a network admin during the rise of the Certification > Degree mentality. I did a lot of self learning and ended up with a Bachelor's degree in Computer and Network Security instead of Computer Science or Information Systems. Looking back, there's a lot of fundamentals that I missed out on and sometimes feel like I'm playing catch up.

My recommendation is that if you don't have a degree, strive to get one. While it isn't the most useful to be honest, it can provide a decent foundation and also is a great differentiator when applying for different jobs. Also, if you are wanting to teach, it's a great start for a Master's degree too.

JamesEggers
+2  A: 

I think this is a question that is going to come done to a question directly back at you, namely "Where do you want to go with your career?"

If you are content with being just a programmer (e.g. just writing code) for the next twenty or so years and see your self moving to a different industry then a degree might not be such a big deal as long as you can prove you have the skills in interviews. The only catch here is that some companies do filter resumes off of keywords and missing any of the "degree in" keywords might close some doors before you even get to an interview. However, there are also quite a few people that get their jobs by knowing someone, so that may not be such a big concern.

If you see yourself wanting to eventually move into management, then a degree in business might be a requirement for that position. This is going to depend heavily upon the company and what one company cares about, another one could care less.

If you see yourself wanting to move a bit more into the software engineering side of things, then the degree is likely going to be a requirement as most of the positions I have seen with that title seem to require at least a Bachelors degree in either computer science or software engineering. It might be possible to get one of these positions, but you are likely going to be competing a larger group of people that have the degree which puts you at a disadvantage.

If you want to eventually be working on advanced projects, then the degree is likely going to be mandatory. While a lot of the ventures in the realm of computers were done by people without their degrees, the field is much more mature now and in most advanced projects groups, all of the lower level members have their Bachelors degree and most of the upper level members have their Masters degree or even their PhD.

Some of that was a bit of global advance to people starting out in the field or looking at getting into the field. So a bit more targeted at yourself, in your case, a purely computer science degree would likely not be a value-added as you have already likely seen most if not all of the material at some point. In your situation I would personally consider doing a business degree that is computer related or do a normal business degree and pick up a minor in computer science if you are worried about people "keywording" your resume. There might be some value in getting the minor if you can pick most of the classes and odds are most schools will let you by pass the introductory level classes.

Rob
+3  A: 

The degree in computer science is useless. Read this article:

http://www.dellanave.com/blog/2007/05/31/a-computer-science-degree-does-hurt-a-lot/

john
Interesting article; naive conclusion.
Joey Adams
+1  A: 

Why do you want the degree?

To shore up on the theoretical side of things that you've missed on?

To shore up the ol' resume?

I think at this point, the first probably makes more sense than the second, with 20 years of experience.

kyoryu
A: 

I did a degree in Electronics and Communication and joined software industry. Now i wish i had done Computer science instead of electronics. Never too late.

ckv
A: 

Getting your foot in the door without a related degree can be a daunting task. Nowadays, even if you want to make it to an entry level position, you require a degree. A computer science degree not only adds value to your resume but is a mark of proficiency. Potential employers are seeking graduates who are well conversant with the fundamentals and advanced concepts of computer science. A computer science degree entails a wide range of courses which helps you build a strong base for a lucrative career.

Samuel