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.
Do you have confidence in your ability to learn? Will you stick to a four year commitment? You need to answer both of those questions honestly before you head down this road.
The other question is "what will your opportunities be like when you get out?" and that is going to depend in part on what you do during these four years. You might consider trying to get into a company now that might need your skills later. It's sometimes* easier to move around from within a company than to get your foot in the door.
* Guarantee not included.
John
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.
My husband was 36 when he got his Computer Science degree. It was a few months before getting his job but this was also at a time when the job market was in a slide. Once he got his first computer science job and some experience he had no problem getting other positions as follow up. Plus, he met me and have been relatively happy together now for 23 years so his degree helped in other areas as well, at least in my opinion and my husband is smart enough to agree with me. So I would definitely say go for it
I used to be an adult but then I grew up.
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.
Honestly, I've worked with guys in their 40s and 50s relatively new to IT. I've never heard of ageism in my experiences. Hell, the fact that you posted to Slashdot probably is enough reason to hire you!
I swear to God...I swear to God! That is NOT how you treat your human!
Not to mention extremely expensive with little real pay off.
Colleges have become diploma mills... where you go so you can get Real Good Jobs (R) in the future.
They are becoming less and less the places where new ideas are born and old ideas are challenged.
Mod me down, my New Earth Global Warmingist friends!
I say go for it. Consider that we live in a generation that will probably live to be 100. And you'll likely work till 70+. You'll have 35 years doing what you want, to earn enough money to support you for the following 30 years.
I'm 47 and going back for Geology. I'll probably finish at 55, but I'll still have 15+ years to work. My motivation, is that I don't see my career in Electronics being able to warm down to retirement. You're either in or out, nothing in between. But I see Geology as being something you can take on smaller jobs, and slow down to retirement. From what I see, it's much broader than Electronics. Hey, but that's my rainbow...
- High Tech workers, please say NO to Union Carpenters, their Union sees fit to control our compensation.
If you are older, people will expect you to be experienced and thus fulfill a more architectural or managerial role.
He's likely to get a managerial role relatively quickly anyway. Unless he spent the last ten years in a coma, he should have more mature people skills. It's not something that you can easily shortcut.
-- Support a free market in the field of government
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.
I did it. I managed grocery stores through my 20's and early 30's. I got my degree at 35. While in school, I quit the grocery business and went to work at Comp USA (Yeah yeah I hated the place too). Started as a sales weasel until there was an opening in the Tech dept (repair and service).
When I got my degree, I had a few years of IT (yeah yeah, Comp USA and IT don't go together.) under my belt and got a job in a University IT department as a Help Desk Service Coordinator (one man complaint department). I got this job because of my dual abilities of being able to manage people (from the grocery business as a manager)and because I understood technology with my repair bench experience. I hated every minute of it but it got me in the door.
One of my responsibilities in that position was to work with the different IT departments that were constantly bickering over whose job it was to take care of any given situation. I earned a reputation as someone who could troubleshoot AND get things done. When a position opened as a domain/exchange admin I jumped at it and got the job.
So 9 years after getting my degree I now manage the windows admins, unix admins, mainframe admins, and DBA's at this University.
Yes, you can do it.
Now the bad part. In order to do this, I went into extreme debt paying for school and working for peanuts at Comp USA. It took me most of those 9 years to pay off the debt I accumulated while getting to where I make a decent living now. It is a lot of hardship, a lot of dedication, and some luck in landing a position.
If you are ready to take the step, good luck to you!
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.
(currently trying not to piss my 20's away)
Misspending is what youth is for. The wine is never so sweet as it is upon the lips of youth.
Help stamp out iliturcy.
I'm about to be 45, and I've been a software engineer since I was around 18 (started way before, but didn't get my first "real" job until then).
Since then, the highest title I've reached is... Sr. Software Engineer, which is where I've been pretty much most of my career. Never had an interest in management, Lead, or anything that would take me out of the trenches of coding.
This also means my salary has been capped where I live at around $125K or thereabouts.
I had some strange idea that the more experience I had, the more money I'd make, no matter what my title was... but I've hit the wall.
There are some who are good at managing people and projects, and some, like me, who just like the CRAFT of it all, and not the overly-serious nature of the responsibilities one takes on in a management role.
Do you have any opinions on that to add here? Maybe I should Ask Slashdot myself? :-)
- Tim
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.
I switched careers from air-fright driver/dispatcher to C++ programmer in my late 30's, on the strength of a two-semester community college certificate program that I never even finished. The key for me was enthusiasm. I had done some futzing around programming at home, and if you haven't been (or whatever equivalent aspect of IT you are interested in - make the appropriate substitution from here on), then you are barking up the wrong tree. One thing that will help you in early attempts at getting a job is expressing that you not only want the job, but you want to be doing programming. If you really want to do programming, then you already are. If you are a good enough actor to fake the enthusiasm, go to Hollywood, you don't need to waste your time as a code monkey.
My first job was an internship, for $8.00/hr while I drove a cab at night. It wasn't even a programming job, it was a data entry job. The data entry system sucked donkey balls, so I rewrote it to be fast enough to make up the lost time and still finish the project ahead of schedule. That looks good on the resume. If that's the kind of thing you can see yourself doing just because it is fun, or because you see crap and know you can do better, you will probably do well.
My current job I got partly on the strength of a recommendation from one of the young hotshots already working there. He had gone to the same community college at the same time as I did, and noticed me helping out others in the lab, and told the boss about it after my interview. Enthusiasm again.
So the first criteria is that you really want to do programming. If you don't, your age won't matter. If you do, your age won't matter... much. You'll have some explaining to do as to why you are starting so late if this is your "life's calling", but experience, skill, and enthusiasm will overcome those doubts.
This isn't a business for young hotshots and cowboy coders anymore, its all business, and there is big money on the line. Companies want people who will produce, and not just produce "beautiful" code, but code that will sell. At our age, we have one advantage over them young whippersnappers: we have experience at providing business value to those we work for. We have experience at gaining and using experience. What we lack in drama, we might just make up for it in consistency and reliability.
But don't expect it to be easy. The first few years will suck. The pay and the hours and the working conditions will suck. And unless you've already written some kind of take-the-world-by-storm software product in your spare time, your code will suck. You're starting from scratch no better, and no worse, than a kid fresh out of college, and your position at the bottom of every totem pole will be just like it is for those 20 year olds that don't have a mortgage and car payments and kids to feed.
Keep at it and use the experience you already have and the experience you'll gain every day. If this is what you really want to do, the thrill of learning and mastering a new skill will carry you through it. You'll have to prove yourself just like anyone starting from scratch does, but don't try to do it by out hot-shotting those kids, prove yourself by being reliable and professional. It is harder to break into this kind of business at a more advanced age, but most of the difficulties come from you yourself (we have different expectations, flexibilities, stamina, and abilities at 40 than we do at 20), not from predjudice on the part of those you'll be working for.
Insightful and funny are really the same thing, except one has a punch line.
Thus spake the master programmer: ``When you have learned to snatch the error code from the trap frame, it will be time for you to leave.''
The Tao of Programming, Book 1, Verse 1.
One of the problems with older programmers is that they cling to archaic concepts like their old favorite programming languages - C, C++, Assembler, Fortran. They worship at the shrines of the old pantheon of Wirth, Venn, and Turing. They don't grasp the modern subtleties of .NET and the modular beauty of DirectX without deliberate effort. They think that security is some absolute virtue having to do with cleansing your inputs, trusting noone and considering pathological conditions.
Pity them. They don't understand the beauty of rapidly advancing the user interface until the end user can with little understanding of the underlying technology create vast perfect representations of his vision until the whole thing seizes up just before he saves it just like it's a Visio diagram. That's computer science at its most cruel, its most perfect. If those geezers don't get it it's because they just don't understand how things are done these days. They've lost touch with the course of modern progress. They'll never be able to code a word processor app that consumes all the processor power of a quad core with 8 gigs of RAM. They'll never get why automatically executing code attached to a word processing document is an essential feature. They just don't know and they'll never know because they're old.
Pity them.
Help stamp out iliturcy.
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
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.
Exactly, and bang-on about the communication thing. I'm just a piping designer, though, and nothing pisses me off more than having to babysit a poseur who can't admit s/he doesn't know something. To learn you have to know your own limitations and ignorance. I have a lot of both but I'm not afraid to admit my shortcomings.
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