Would a CS Degree Be Good for Someone Over 30?
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?"
From my experience thus far (3rd year CS major), getting a CS degree involves very little programming, and involves a whole lot of theory, particularly math. If you're interested in the theory and mathematics of it, by all means, get a degree in CS. If you're not, the piece of paper will still break the corporate ladder's glass ceiling for non college graduates. However, realize there are other options, depending on the university: for me, there's IS (Information Systems), IT (Information Technology), CE (Computer Engineering), and HCI (Human-Computer Interaction). Those majors, with the exception of perhaps CE, won't seat you firmly into operating system land, but will open up broader opportunities than a straight CS degree would.
Note: 20, still in college, basing solely on conjecture and experience of colleagues and alumni.
I think - honestly - that a CS degree at your time in life is worthless for the most part. I am in a similar situation, in that I have a degree in International Politics. Yet, I've been programming since age 11 and working professionally as a programmer, project manager and systems development manger since 1993. Many of my staff have CS degrees. However, I find that a CS degree does little for ensuring a person is well-suited for the task of developing software and/or running systems.
:P
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.
The Kai's Semi-Updated Website Thingy
I decided to go back to school to get a math degree, and either minor in CS or make it my second major. I'm 29, not 39, but I've gotten bored with coding business apps too. I decided to focus on math because it opens up other areas, as well, such as EE, ME, finance, structural engineering, and many others. I think I'd rather work with robotics than develop desktop/server apps, because I'll actually be able to physically interact with my creations. You might consider something similar to get more interesting work. I enjoy doing the math, hence my major, but anything with embedded systems work may be more interesting to you and therefore, CE might be a better tack.
In any case it'd be interesting to read about your point of view if you wouldn't mind sharing.
-- the cake is a lie
I am helping a friend with her degree from the University of Maryland(they do a lot with the military community and I am a contractor and she is the wife of a soldier) and from what I have seen the program is pretty decent, if a bit light on programming. They actually do real discreet math for instance(they have to prove a lot of things), and I was surprised since before I held a pretty dim view of online programs. I still hold that view on most programs(University of Phoenix being among the chief offenders), but there are some decent ones that you can do while still keeping your job. Hell, the company might even pay for it. My advice would be to find a program that is associated with a good program in meatspace and see what the requirements are. Even if you can just do half the degree online, that can still save you a lot of time and money, two things pretty much everyone is short on.
Monstar L
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.
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.
I'am almost 32, and like you, I did not complete a CS degree when I was 21. But, I've been working as a programmer, DBA, project manager, system administrator for the last 10 years, with some pretty good money. I then decide that it was enough, that I need to have this CS done at once. But wait.. They won't accept me at first because I haven't been at school for a while (universite de montreal, that is). I have to do some credits to 'prove' that I am still schoolworthy. I don't think it's much fun first, I wanna do CS. But while doing these credits, I discover that I can really use my computer skills at a professionnal level, but in another faculty. So I've applied in an Environmental Geography program, and I like it ! I've been doing it for a year now, doing remote-sensing and numbercrunching with ease. I work part time at my last employer, and it's ok. Less money, but enough to do a trip per 2 years oversea, +the usual stuff. I think that when you are 30 and going back to school, you really know what you like, and what you don't, compared to youngster around. And experience cannot be so much learn at school neither, so you can really keep it up if you want it. Good luck to you ! flak
I'm barely over 30 years old, and I've worked in Microsoft, Cisco, Stanford, Juniper and other Major high-tech corporation as a Senior Software Engineer, and I didn't graduate from high school or even offically become matriculated to a University or take an SAT. I did audit many core CS courses at a top school (UC Berkeley) for no credit, and hence would like to think that I know a bit of CS. My opinion is that having Computer Science knowledge (not IT knowledge) is more important than the degree, but having the degree is of course a way of getting there.
I don't understand why you'd take a pay cut.
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.
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 programme and the Open University (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 and O'Reilly Learning offer vocational training programmes with non-academic continuing education certificates issued by real universities.