Would a CS Degree Be Good for Someone Over 30? 166
mbuckingham asks: "I'm 39 and have been programming for 20 years. By 'programming', I'm talking about the usual business applications type of stuff. Easy stuff really. I went to college for a while, but never got my degree. It bugs me that I've never completed my degree, but since I've always had decent jobs, it hasn't really mattered too much. I'm really bored with what I do every day, and I'm thinking about going back and getting the degree, because I think it will make it possible to move towards doing some more advanced, system-level type stuff. I know I don't want a MIS degree, because that would be rehashing everything I'm already bored with. Does this make sense? Would a CS degree or a Computer Engineering degree be better?"
Worth while? For you, or your employer? (Score:4, Interesting)
Note: 20, still in college, basing solely on conjecture and experience of colleagues and alumni.
It Depends on What You Want to Do... (Score:5, Interesting)
I have hired staff members with CS degrees who would be better off as real-estate sales staff. Conversely, I have one programmer with a history degree who is excellent at his job.
I am thirtysomething as well, and have no plans to go back to school for a CS, MIS or even a MSIS degree. In my opinion, the degree just gets you "in the door" as it were. Once you've got some (hopefully good) experience behind you, the degree becomes less important.
Keep in mind, too, that even as a manager, I get to write queries against SQL databases with 140M records - that impresses some of the young'uns.
I've been going through the same dilemma (Score:3, Interesting)
Re:I am in a similar situation (Score:3, Interesting)
In any case it'd be interesting to read about your point of view if you wouldn't mind sharing.
You might consider a REPUTABLE online degree (Score:3, Interesting)
Neither (Score:3, Interesting)
You're obviously not unintelligent. So think of what you would really like to do, and then teach yourself the langauge that would be most useful in that position. And then USE IT. Not for pay, but using it in the real world is the only way to really, really learn a language. For example, if my end goal was to be soemwhere it would pay to be known as an accomplished C progammer, I would teach myself C and then do something utterly crazy like start making simple contributions to the Linux kernel. Point to that sort of thing in an interview and you will already have established yourself as knowning (and having proved that you know) more than any other candidate.
Sure, this will be hard, and especially if you keep a full time day job it's going to be a pain and take a year or two. But you'll end up in a far better place than if you go the "normal" route.
No, this advice is not theoretical. You're welcome to ignore it, but don't do so because you don't think it would work. It does. There's a whole generation of well-paid people rather older than you who never had any formal computer training but got their feet wet in exactly this kind of way.
History (Score:3, Interesting)
When you have complete knowledge of the system you're working in, you can rely on the basic analytical techniques taught in all scientific disciplines. Most often, though, you have a complete understanding of limited parts of the system and have to rely on instincts and guesswork for the rest. That's when a knowledge of history comes in handy, if only to help you generate a list of things that could go wrong. A basic background in CS also helps avoid the situation where you get carried away with an awesome "new" idea you just thought up that has actually been around for twenty years. Spending your time rediscovering the limitations of a twenty-year-old idea is fun, but basically a waste of time. There are enough unsolved problems that you can cheat on the solved problems without worrying that computing will be too easy :-)
(Note that I'm not saying you should skip the problem sets. Quite the opposite! The problem sets are designed to impart skills and knowledge, not artificially slow you down.)
Both the applied classes and the theory classes teach you a standard vocabulary that makes it much easier to communicate your ideas to people who share that vocabulary.
Back to school ! Yes! (Score:4, Interesting)
CS Knowledge Yes, CS Degree No (Score:2, Interesting)
Re:Worth while? For you, or your employer? (Score:3, Interesting)
Some of them teach that as a business or process-centric major, rather than one centered around technical skill. For example, SE majors at my old college only took three courses that required significant amounts of programming: Intro to CS I, Intro to CS II, and Operating Systems. The result was that they could write superb requirements documents and make very nice looking UML diagrams (things that many of us learned on our own anyway), but couldn't write programs of any useful complexity.
I felt bad for them in OS. Those who didn't learn to program well on their own generally did quite poorly.
At that school, CS was mostly programming, with some theory thrown in as an afterthought. If you're interested in theoretical CS at all, it pays to declare a math minor, as it complements applied study nicely and theoretical study even better. As someone mentioned, many new graduate students are surprised at how much math is used, and having a strong mathematical background actually confers quite an edge - in my experience, more than a solid theory background, particularly at the Ph. D. level.
Math also gives you a different perspective. People look at me funny when I say that the most important areas of mathematics aren't used enough in CS, but there is plenty of room to make better use of number theory, abstract algebra, and continuous mathematics in the field, among other areas of math. I actually consider finding new ways to apply math to CS a research interest, though one that I must pursue on my own.
This somehow ended up turning into an advertisement for mathematics, but the basic point is to know what you want to do, know the fields surrounding that discipline, and choose the field(s) among them that will best help you attain your goals.
Re:I'm in a similar position to you. (Score:5, Interesting)
Your salary doesn't start again at the lowest grade just because you get a degree!? Maybe when you are 24 and just get out of Uni with your little bits of paper, you would be on $40k less than he is now, but in your example he would STILL have 15 years experience. That counts for a lot. Not as much as the degree AND experience, but a lot anyway.
If he can get decent jobs already without the CS degree I'd wonder if it was worth getting, although I've been thinking the same thing - it doesn't make the job you're in any easier (most CS after so much experience is stuff you've done before. I did all the project management and general "Computing" stuff during my GCSE/A-Levels and learnt to code off my own back. It's not failed me yet and all the jobs I've been in have been on experience and general talent.
At least at the University I worked, there were two pay grades; academic and technical. If you didn't have a degree you were confined to technical. It paid less and you were automatically given less responsibilities. By the time I got out of the job I was earning as much as the incoming academic grade employees (and no student loan debt!). Now that I think I could run a CS degree in my spare time in quick time, I might. If anything, his pay should go up for his next job, just because they will be more sure of him because of the degree - when there is a range of starting salaries, you start from the degree and ramp up based on experience. Instead of them offering you the lowest amount for that position (either as a graduate student or as uncertainty and insurance for them if they can't quantify past experience to the new job) they will start higher because of the added experiene.
It won't make any job you're in more complicated - the current employers won't think "he has a degree now let's move him on to harder stuff" - they already know what you can do, you won't be asked to do anything more than you know.
I have 10 years experience at least on my part, I used to work in the CS department in a University, ironically after I left school and couldn't be bothered to get a degree. I determined I would rather have the money and not be bogged down with loans and homework, I valued my social life more than any student could manage without flunking, and the work they did on a CS degree then was.. really a bit much. Now, I look at the work some of my friends and colleagues are doing for CS degrees, and I end up helping with their homework and explaining past exam questions to them. It's SO easy to get one, especially if you've got the experience and been doing that for years.
It will do nothing but make the job hunting process a little easier; you can't evaluate experience past a certain point, but the degree will make prospective employers at least consider you a baseline of knowledge based on the degree or certification. Oh, and if you go the whole hog you can have letters after your name in 3 or 4 years, without even flinching.
Get a degree for you, not for your employers (Score:3, Interesting)
A degree is good for everyone, no matter whether you are 30, 50, 70, or 90, and no matter whether you can actually use it for a career. The purpose of a degree is to broad your mind and make you think better and become a better human. Degrees are not designed to help you feed your stomach; this is what a job is for. While a degree that can be useful for jobs is of course better, I think you should pay attention to your mind and your education first (especially considering that you have successfully penetrated the job market), and not surrender your education to your employer's needs. Of course, if you can find a degree that is good both for your education and your career, it's better (as all win-win situations).
In choosing a degree you have to take into account:
I recommend Oxford's Software Engineering [ox.ac.uk] programme and the Open University [open.ac.uk] (UK). If you decide to take the certification route I would suggest to take university certificates in addition to professional certificates (like Cisco's CCNP). For example I have found this company [online-learning.com] and O'Reilly Learning [oreillylearning.com] offer vocational training programmes with non-academic continuing education certificates issued by real universities.