With a Computer Science Degree, an Old Man At 35?
GrApHiX42 writes "I pissed away my 20s and now I want to go to school and get a bachelor's degree in computer science. The thing is, I'll be 35 when I get out of school, and I've read on numerous sites that there seems to be some ageism going on in the IT industry when it comes to older geeks. What have some of the 'older' Slashdot readers experienced as far as being replaced or just plain not getting hired because IT is a 'young man's game'?"
To paraphrase what someone once told me, in four years (more or less), you're going to be 35 anyway. There's not a damn thing you can do about that, except die. if you don't go to school and get your bachelor's degree, then will it be any easier for you if you're an "old man" without a CS degree?
If you don't have a degree at all, then jump through the hoops and get one. My personal experience is that my salary almost doubled literally the day after I got my CS degree. If you do have one but not in computer science, then I'd suggest that you might be better off pursuing certifications relevant to the field you're working in.
If you're not currently in a computer-related field and you're asking if you should get the degree and go into it in an entry-level position, that's your call. You'll probably need that degree to break in, even at 35. If it's worth starting over from scratch, go for it.
Fortunately, I got hired by the company I'm currently at when I was 27. Unfortunately, they're going through the RFP process to outsource all of our jobs. If I'm lucky, I'll be spared. If I'm not, I'll be working as a contracter doing the same job I'm doing now. If I'm really shit outta luck, I'll be a 37-year-old in the job market in the worst economy I've ever known. It won't be easy, but at least I do have my CS degree to help me stand out from, with all due respect, people like you who don't. I don't mean to be cruel, but if it means the difference between whether or not I'm eating cat food, I'll use every advantage I can to beat you out in the aforementioned job market, including the fact that I have a CS degree.
So knowing only what you've asked in your question, my advice is that yes, it is worthwhile having the piece of paper.
but I've seen the opposite when it comes to age and programmers.
People have grown tired of these "young whippersnappers" fresh outa college with their executable UML and agile methodologies.
Where I am experience is huge.. especially just plain familiarity with software in the real world and not some acedemic fantasy land. Someone in their 50's with 30 years of dev experience is pure gold .. and companies will fight tooth and nail to recruit the old veterans... assuming they arn't off "consulting" for serious money.
Now obviously this doesn't apply in your case.. it's the experience not the age employers are looking at.. but I can't see a company turning you down based on age.. unless you're in your 50's and/or only plan on working for a few more years. Even though you may not have any programming background.. you are probably going to have more social and team skills then most people coming out of school. Just the ability to communicate ideas is massive... and a skill that just doesn't seem to be taught any more.
I think I'll make tacos for dinner tonight.. havn't had them in a while.
And I need to get my hair cut this weekend.. starting to look like a hippy.
How long do you plan on staying in the field? Much do you think you're going to gain per year from having it?
Personally, I'm 36 and I plan on working until I'm around 70. It might sound dismal but I'm guessing 70 will be retirement age when I get up there. That's nearly 35 years in the field. How much would I have to get paid extra in those years to make it worth my time? Not very much. That's the same reason I wonder why so many scoff at certifications.... for the couple hundred dollars most base certification cost you're going to make that back so fast as an entry level geek. It sounds cheesy but it's a little bit extra you can put down on a resume that will help you get up the ladder a bit faster. It's worth it.
Dedicated Cthulhu Cultist since 4523 BC.
Tell them to get off of your grass.
I'm pushing 40 this year. Been programming most of my life. Never completed my CS degree. Worked on some fairly high profile projects in NYC, Chicago, San Francisco. I would say tho, at this point in my life, I'm definitely at the Sr. level and if I was to apply for a 'real' job it would be a Director or VP/CTO position - probably in a small startup.
I know of friends consulting companies that have guys in their 20's-40's. Other friends work for big software companies and have similar age groups. In the end, if you're a good programmer and not over 50 ;) then you shouldn't have a problem. But at some point, you're going to probably start your own company or be at a level above 'straight out of schoole 20-something coder'.
I wouldn't worry about the ageism thing at 35.
there will be naysayers. You could listen to them forever and be paralyzed and always do nothing.
So there are rules of thumb. There are always exceptions, work on being an exception. The shelves of libraries are littered with biographies of successful people, almost none of them achieved it "by the book" or had the ideal life, pedigree, grades, what not.
Perhaps something like Napoleon Hill's Lessons of Success may be an inspiring read, although if you understand "I think I can" story, it gets you as much content.
Look at it this way: you'll only be 35. With 30 more years to retirement ON AN OPTIMISTIC note, assuming SS hasn't forced everyone to work till their 70th birthday.
Do what you want. Invest the hours to get good at it and stop having regrets. Having read numerous times about how it takes 10,000 hours to get world class great at something, I'm more convinced now that many of the great people are the ones that started young are because they're the ones without responsibilities and have the time. Not their youth alone. So it isn't too late, just start it and stick with it.
It depends on who you work for. In many shops, it's become increasing clear that you don't want to hire anyone under 35 or so, though without the experience you'd be right there with the kids.
The sad truth of it is many of the grads for the last 15 years are junk. Not as people - fortunately, the career still attracts a great crowd - but the curriculums now create people who think that the compiler, the runtime, and the OS are a black box. They rather literally think in terms of South Park's gnomes .. Step 1) write code, Step 3) Profit! And that mindless dependence creates people who have no idea how or why their code works or more often doesn't.
That's fine for school, but you can't ship a product writing code like that, which means we've turned out a legion of coders who are fit for writing reports for accounting instead of firmware for an engine controller or a new comm protocol. And even then, that only works because the penalty for failure in accounting reports is so low. On any meaningful project, assigning work to this generation is like building in bugs, bugs that take a loooong time to fix because the team simply doesn't understand what the machine really does.
Not to worry, there are still plenty of businesses that basically have no idea of how the software sausage is made and will merrily hire anyone with a degree, but in businesses with more experience [and more on the line] it's more the exact opposite is true. They only want the previous generation of coders, and use CS grads for tech support, or if they're lucky, to apprentice.
The above post is great except for this one line: "If you're not currently in a computer-related field and you're asking if you should get the degree and go into it in an entry-level position, that's your call. You'll probably need that degree to break in, even at 35. If it's worth starting over from scratch, go for it."
If you're already programming, but are not employed, getting a degree to reinforce what you know is a good idea and will help you with salary.
On the other hand, if you're not already programming, you're wasting your time. Programmers are (mostly) like writers or artists. You can't help it. You get sucked into it even if you fight it. If you didn't get sucked into it, you'll be a crappy programmer when you get out of college no matter how good an education you get, because you've already proven that you're not, at core, a programmer. You were handed the test and you failed. LUCKY YOU, REALLY.
Furthermore, 35 year olds usually have a life. 20 year olds don't. You really need to do something for 10,000 hours before you get fantastic at it. 20 year olds can accomplish that in three years. A 35 year old with a wife and a family won't accomplish that in a decade.
What DID you get sucked into? What did you spend your 20's on? Dig through that time and figure out what you loved. Do THAT. You'll be good at that. If you weren't a programmer, you won't get hired as a 35 year old programmer not because you're old, but because you're BAD. If you don't fail the first fizz-buzz question you get, you'll fail the second follow-up.
Set yourself up to succeed, not fail.
Not to mention extremely expensive with little real pay off.
Pure BS. I don't dispute that some schools aren't worth shit, but I'm now working on my second Bachelor's, in Computer Science, just like the poster, and I wouldn't trade it for anything. I'll be graduating pretty soon.
Here's the thing I noticed the first time around, as a Philosophy major. Take your average community college, and, say Harvard. Have a look at your typical philosophy class. Say, Critique of Pure Reason, or Platonic dialogs. Same. Fucking. Books. So what sets them apart? Well, it _should_ be the quality of the professor, right?
But this gap isn't as big as you'd think. Assuming you get a PhD teaching your class, you've got someone who point quite a lot of time into becoming an expert in that subject. Not to mention-- it's _your_ attitude that matters anyhow. Any sufficiently motivated student will have a good experience no matter who their professors are. I say this now having been through the classically horrible science-professor experience.
I've also supplemented my in-class experience by watching the CS lectures on MIT's OpenCourseWare. I would say that, in general, these guys are perhaps better computer scientists, but whether they are better teachers is in question. So this reinforces my opinion.
The bottom line is that you go back to school because you love the subject. If you think computers are cool, and you want to know more, go for it. Computer science has been the same mind-bending experience that my first degree was. This time I'm a bit more mature-- homework always gets done, and-- shit-- I'm paying for this degree out of my own pocket, so I'd better make the best of it. At work, my CS knowledge has greatly expanded my capabilities and my enjoyment of the job.
I've been hired and retained quite a few times because I have "more time in the chair". I've seen all sorts of stuff. Hell, my first networking mystery at work involved Novell 3.51 over ARCnet. I've actually run gopher servers. I've written java programs before the language even had regexes, and still have trouble with perl that uses OO stuff (and what was so wrong with chop() that we needed chomp()?). My first linux install came on 13 floppies. From all that to now I've come across an incredible amount of randomness that isn't easily searchable on Google. And all that adds up to a serious ace in the hole when things get really strange.
So when the young college grad new hire has questions like "full-on RDBMS or little serialized hash table" he gets not only the right answer but a why as to how come it was the right answer. And sometimes that answer doesn't use the latest newest shiniest thing, but he has to learn what that's a good thing. Sure, the kid wants to play with toys. But if the right tool for the job happens to be mundane, then that's what should be used. In a boiler room full of recent grads, you can get a really serious case of Techno Lord of the Flies. Old dudes can temper that (though some old dudes can go overboard in not embracing new things).
I wrote my first BASIC program well before the recent crop of college grads were born. I'm my early 40s and, yeah, I have a life. I wouldn't want to work at a company that would trade a widely diverse set of experiences for fresh-out-of-school book knowledge. Plus the social skills come into play. You know the old guy isn't likely to call in hung over on a Thursday.
The reason you hear all the talk about ageism is that college grads can get worked harder and longer for cheaper to do crappier work (until they burn out and snap). Us old guys know enough not to put up with that shit, and most employers know it too. But sometimes the balance sheet is what matters most. You shouldn't be working at that kind of place anyway. Keep your salary requirements modest and you'll be fine.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
I am a middle-aged guy myself, but that said:
Education is not a substitute for experience. Remember ISA cards, IRQ settings and COM 1,3 vs 2,4 problems, and how to work around it? Kids today don't. They depend on PnP to magically make it work. A lot of hiring monkeys don't get this but it is true. Show me any snort-nosed kid that can build a network using printer cables or old-school DOS hacks to get something to work in WindowsXP.
These are quite possibly the worst examples of experience you could have listed. Those skills are about as obsolete as making fire with a flint stone, starting a car engine with a hand crank, or feeding your program to a mainframe on punch cards. Which is to say: sure, there are specialty applications where this technology still might find some use. But overall, the reason why nobody cares is simply that the world has moved on.
True experience is not about mastery of some obsolete-but-cool-in-its-day technology, but the improved judgment that stems from being able to analyze situations and relate them to similar problems you have encountered in the past, which in turn helps you find a better solution.
My advice would be to piss away your thirties and consider the degree when you're 45.
Nullius in verba
We always have a team of individuals interviewing. But it helps that I wrote the book on the current hiring process. ;-)
(Ok, so it was a single document that acted as guidelines. But that's beside the point. :-P)
I have yet to see our team strongly divided on a candidate. Once we worked together to nail down a good interview process, we managed to separate the wheat from the chaff pretty quickly. To the point where there was no question over whether or not the person was competent or not. Either you can demonstrate an ability to handle coding and a very general sense of the technologies we use, or you can't.
Of particular interest is the Fizz Buzz test I throw at candidates. I don't care how long it takes them to get it right or if they have to ask questions. I try to make the candidate as comfortable as possible, then go through the problem with them. We sketch it out on a whiteboard and talk it out like a real design session. From that session, I can clearly see how the candidate works through problems. I can even reliably separate out what is nerves and what is a lack of capability.
It helps that Fizz Buzz has a few gotchas built-in that most people trip over. Tripping over those gotchas is not a bad thing. In fact, it reveals how the candidate attempts to create logically efficient code. I've seen a few different solutions, but I've never failed any given solution.
What doesn't sit well with me may surprise you. I don't like it when candidates attempt to obfuscate the code. Many will write in a pseudo-code that deliberately obscures the logic. This is often in an attempt to hide a lack of knowledge. Others have trouble correcting bugs. If I point out a bug (e.g. "You're off by one in your loop."), they'll go and screw up some other part of the program and STILL not fix the problem. Of course, the good candidates tend to spot the problem themselves as we step through the logic. I don't have to explicitly point it out. Finally, an unwillingness to try really tees me off. I'll happily answer all the questions they want. I'll even write large chunks of code for them. But when they manage absolutely nothing on their own, they're as good as useless. (You'd be amazed how many people survive by conning others into doing their work for them.)
No one of these points will disqualify a candidate. But given enough opportunity, the signs start adding up. Before you know it, you've got a pretty clear picture of basic competency.
Oh, and one other thing I hate: Don't lie to me. Don't tell me you've got strong experience in something when all you've done is stand near someone who used the technology. The truth will come out pretty quickly and will get you knocked off the roster post-haste. If a candidate comes up short but shows promise, I'll often recommend them for a more junior position. But not if they lie.
Getting back to my original point, if I felt really strongly about a particular candidate that no one else liked, I probably have enough credibility stored up to convince at least a trial period. But I've thankfully never been in that situation. It's usually clear if we should dump them or hire them. The worst I've ever seen was a candidate where there was a concern over the strength of a candidate's communication skills. We still hired him. :-)
Javascript + Nintendo DSi = DSiCade
I work in an environment with several people who are in their late 60s-70s. Some of them have told me stories about the days of punch cards and having to buy expensive processing time on mainframes (One great story was about an infinite loop that cost the programmer's company $10k in mainframe processing time). I will readily admit these older developers are not as quick as the younger ones. These seniors also have a great deal of frustration dealing with relatively new concepts. For example, I'm working with one on a project right now who is pulling his hair out trying to understand object-oriented programming. But you know what? Every one of these seniors is indispensible to our organization. One of them works 60-hour work-weeks because no one else in the organization has been able to rise to the task of learning everything he knows in his 40+ years of IT. Just remember that when you go into Computer Science, you are going into it for life. Everything in IT changes every five years, and you must assume the responsibility for lifelong learning. Plus it sounds like you have one big advantage over all the younger CS graduates: you know how much you don't know. : )
i ~ Celebrating Science, Cyberspace, Speculation