Ask HN: Chances for Restarting a Career in CS @ 30+ ?

73 points by d33d33 ↗ HN
i studied literature and philosophy @ a german university. after my master, i joined an it-startup - and as so many of them, we failed (but i don't regret learning so much within that time). even though, i got some interviews within the last ~7 months, i still can't find an avg. job to be able to finance a small room + living expenses.

now, i'm 31. i did some cs certificates offered by edx/coursera within the last 12 months (MitX: Introduction to Computer Science and Programming Using Python, Introduction to Computational Thinking and Data Science; BerkelyX: Engineering Software as a Service; HarvardX: CS50...).

and i'm totally addicted to coding - even when i notice my lack of math skills. i spent the nights trying to understand cs concepts and couldn't sleep or stop before i found a solution (sometimes i did not sleep the whole day).

sorry for the long prologue, but i thinks it's important for my main question:

do you think, it makes sense to study computer science at the age of 31? or is it too late? do you have some experience with that? or do you work at a human resources department and can tell me if there is a chance for those kind of people?

62 comments

[ 1.8 ms ] story [ 125 ms ] thread
I had worked as a programmer for 2 years in 2000 and then worked in a completely different job. At 32 I restarted my CS bachelor's which I just graduated. Last year I got hired in a not so demanding CS job. I also took the Java Programmers Certificate. I am 34. I think you should go for it if you like it. Get some experience now and then you could branch into CTO positions.
I think your drive to learn is what's really valuable (disclaimer, I'm 23). Looks to me like a lot of people give up on learning anything at some point, and just rot away.

The fact you're still learning something radically new for you at 31 means your soul hasn't been crushed. Stay that way!

I took a couple years not coding after a stress attack, and just recently I've been getting back into it. Entire days debugging, writing, learning; it's the biggest joy I have in life besides music and my two guinea pigs. It's also the most creative and powerful tool suite I have. Maybe it's like that for you too.

I had a dilemna in my late teens, I thought it was too late to learn to program. Most of the best people I know of started around age 11. I decided I would never become a programmer, I just couldn't compete. Then I went to university and by chance, took an intro course, had a good prof, and learned anyway. I still can't compete, I only got one short job as a programmer, but I'm a lot happier for understanding how the Internet works, and my computer, and cpu design, and... everything.

So, I don't know at all how your age will affect getting hired. Maybe just don't mention how recently you learned to program :]

Regardless, I'll bet your life is more worth living for having learned more computer science, so at least for that, keep it up.

Personally I don't look at age when considering applicants...

Ok, not true. At this moment the company I work for employs mostly young people; i.e. twentysomethings and an oddball 30-35'er. I would actually prefer to hire a 30-40 y/o at this moment; even when lacking a bit of professional/coding experience.

In my opinion: Don't let the big junior-level hiring pool full of 20-30'ers discourage you.

Why, though?

I've heard many canned responses to this, mostly about youngsters having more energy and in some way that extrapolates to having more "potential" or being better for a company. But my question here is, really?

How can age alone tell you about how well a person is going to perform or how valuable of an asset he can be to a company? After some thought, I agree it is one factor, but I still maintain doesn't entirely make a case for or against anyone. In fact, I feel it's kind of unfair to those over who are "less" preferred in startup jobs. If a person is willing to learn, has talent, and is passionate — heck, give him a shot.

I'm not accusing you of doing so, just pointing out a trend. And BTW, I'm 18 years old.

You obviously have more experience in hiring (maybe even firing) people, so could you tell me if I'm right here?

Not THAT much more experience probably ;-)

You're - again IMO - right about it being only one of the factors.

The reason we hire mostly 'youngsters' (damn, never thought I would say this before reaching 30 myself) is that 'they' are more readily available. I'm in no way saying that young people have more energy, are more driven.

A reason you MIGHT consider - which I consider applicable to myself as well - is that as people 'age' their priorities shift.

I have to young kids at home (2 y/o and 5 w/o) and I consider them my absolute number one priority.

Most people in their early twenties don't have to make these priority considerations and are 'likely' to be more dedicated to your company (or at least appear to be). On the flipside: I guess twentysomethings are easier to ditch your company and leave for a better paycheck as well.

That's why I'm saying that I never really take age into consideration when considering a candidate. It just isn't a factor for me.

For me, most imporant things are (in no particular order):

* Cultural match (/ Social skills)

* Drive (want to learn, want to make stuff)

* Pragmatism

* Tech skills

Could you please clarify about "cultural match"? Provided that the person is good and kind, but e.g. likes different music genres, or thinks that hunting is like a killing a human (while some existing teammate is hunter), would you consider this case as a cultural mismatch?
Although this is more of a personal thing I would never judge people based on their musical preference (that's what headphones are for ;-)) and hobbies. Cultural is - for me - a combination of drive (yes, one of the other factors) and the ability to work with others without driving them to tears. That and a flexible sense of humour ;-)
Its never too late. Its like picking up painting or writing literature or any other artistic avenue. In some cases the restrictions like languages are like the limitations of a canvas. You will encounter, a number of times, code that will be beautiful enough to be framed up.

Keep at it! And, welcome to the community!

"What hackers and painters have in common is that they're both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things. They're not doing research per se, though if in the course of trying to make good things they discover some new technique, so much the better." - http://www.paulgraham.com/hp.html

Gee, I hope it's not too late. I'm 32 and been doing this as a hobbyist for a few years now and plan to do it for a job at some point. Since when was 31 old?? What the hell.

All I can say about this is that I'd be doing this no matter my age. I love it and I'll continue to do it without ever doing it as a career. Screw what everyone else thinks, be a man. You should take the same attitude. I decided at a certain point, I'll just do it on my own for my own clients if I have to. Make your own job. But knock off this 'am I too old', you're just out of diapers bubba.

Are you askin whether it is better for you to get a CS qualification, or whether you should get experience? (For example, by contributing to open source projects)?

Real work with real people should be useful. You get to demonstrate ability to collaborate, sometimes with difficult people.

It's never too late. You have shown you possess the desire and drive to learn. I think a good next step is to write some code and put it up on GitHub where prospective employers can see that you have written something. Good luck!
Try and become a DBA. They are kind of expected to be old (as in 40+) and can rake in the $$$. Although the kind of "coding" you will do will be limited to scripting, SQL, and maybe some ORASQL/APEX.
Not sure this is the best advice. Most DBA's are not developers, and the line of work isn't the same. OP probably wouldn't make it to his goal, he'd just end up with money.
Disregard this advice, do whatever you enjoy the most, there are plenty of good jobs for anyone who is passionate and has good people skills. I know my work is very strict on anti-age discrimination.
I'd like to echo to disregard this advice as well.

I work for a company with a lot of young programmers and I recently hired a bright guy in his 30's who decided change career paths.

Do what you love and work on side projects that you will love. It will go a long way in an interview if you can bring us and show off something that you loved working on.

As a consultant, I've known several programmers that started later in life. Some at 30, some at 40. One was a car mechanic for 20 years before starting a CS career. All of them are very good at their CS job. I think the years of experience in a non-CS branch helps them see different perspectives, things that career programmers tend to miss or consider unimportant.

So by all means, go for it. It might be a little more difficult to find a job than a younger person, but you'll manage. Good techies are always in short supply.

and i'm totally addicted to coding - even when i notice my lack of math skills. i spent the nights trying to understand cs concepts and couldn't sleep or stop before i found a solution (sometimes i did not sleep the whole day).

That sort of thing sounds terrible to people who're recruiting. The fact is being good at making software is about 20% actual coding ability, and 80% being diligent and organised, communicating with other people, and willingness to trudge through boring tasks like writing documentation and attending meetings. Faced with two candidates, one of whom is all "I love coding and I don't sleep if I'm working on something!" and the other who is "I like coding, but I put it to one side in the evenings to socialise, watch movies, read books" it'll be the second candidate who gets the job every single time.

If you want to get your first (or second, whatever) job writing software concentrate more on the 'getting a job' part than the 'writing software' part. Demonstrate skills that will show you're a person who is nice to be around. At the beginning of your career that is far more important than being able to solve hard problems, because the 'solving hard problems' bit is going to be someone else's job.

I wouldn't employee either. The first one sounds like they have some issues. The second one doesn't sound like they have much passion.

I'd say something like "I'm passionate about coding". :-)

I just want to point out that you don't need to (formally) study CS to become a programmer. Sure, having some knowledge about how computers work and what different data structures and algorithms are there helps, but you don't need 3/4 years of university for that.

I would suggest you take a semi-ambitious software-related goal that will nicely showcase your skills, and achieve it. For example, if you want to be a web dev, make a web-app that will allow people to order food online/in a restaurant using their mobile phone. You'll learn a lot in the process, and it will serve as a proof that you're capable and not a bullshitter to potential employers.

I don't think it makes sense to study computer science at an actual university, as you indicated you really like to code.

My strategy would be: learn one language very well, preferably a practical one like Javascript/Ruby/Python/C#/Java, do a small but significant (don't spend more than a month or two full time on it) open source or MVP project in it. This project will be your portfolio. Make sure you know at least the basic syntax of those 5 languages so you know which will suit you best.

After you have your portfolio project, you can be confident in applying for a job, if you picked one of the first 3 languages you might want to move to a big city like Munchen or Berlin that has lots of young companies to improve your prospects.

The key to being a good programmer in my opinion is to know about as many techniques and solutions as possible. This is why even during your process of learning your primary language and acquiring your first job, you should allow yourself to be distracted by fancy techniques and impractical languages. Learn languages like Haskell, Lisp, Erlang, C, don't become proficient in them, just enough to understand why they exist and why people love them, perhaps pick one of them up as your secondary language.

Also read a few of the good books you would get to read if you had done a university. IMO read "Computer Networking: A Top-Down Approach" by Kurose, and "Operating System Concepts" by Silberschatz. Unlike most CS books these are very practical and easy to read. If you'd really like some more heady stuff, try "Computer Algorithms" by Van Gelder. Although it's sort of out of fashion I think I have to recommend "Design Patterns" by Gamma (gang of four) as well.

Perhaps I'm an optimist, but I think if you're focused you could do all these things in under 6 months. And you would have made a great start as a programmer. On a university you'd spend at least 3 years doing this, 3 years you could also spend getting real experience, making a living and perhaps start a family. In my opinion that would be a waste. If you really aspire for a degree, why not do it when you retire? Also if you must study now, consider a Fachhochschule, as it would focus more on coding than on maths and other side acts of CS.

Good luck, and if you need more book recommendations send me a message.

For what it's worth, here's how my path looked:

* Graduated at 25 * Worked editing photos of sports apparel for 3.5 years. Spent most evenings coding what I could and making things that were useful at least in theory (ridesharing web app, etc.) * Got a terrible job at a content farm in LA (not the one you're thinking of) working in ad trafficking. Took a pay cut to do it. Made a lot of tools with the the Google DART API in Java saving the company hundreds of thousands, which meant they were willing to let me continue on these wacky side projects. * Got another job as a Technical Account Manager based on my work in HTML/CSS/JS and Java. Product flopped, but the experience was great. Learned Python and Django while I was at it * Moved to Ireland on a lark on a working holiday visa * Got a tech support position at a domain registry (not registrar). Stagnated a bit since nothing was going on yet without any domains being released, but practiced while I could, in particular brushing up on network knowledge * Was recruited by and accepted a position at a PaaS company in Dublin as a support engineer, at roughly triple the salary I was at in LA. I spend most of my days working with iOS, Android, and Unity SDK's. I do a lot of debugging by trawling through logs. Have worked with Mongo quite a bit for this.

I am 31 - but the part where I got the crap job in LA I was 28, so I don't think you're too far off. Also, I'm not a "developer", but I hope I can become one in a few years' time.

Out of curiosity, what kind of money did you start at in your job in Dublin? I've been toying with the idea of moving to the UK/Ireland, and from what I've been able to gather pay seems to be really low there? For reference, I'd consider anything below 2500 euro/month after tax to be "really low" for knowledge work where you're doing something useful.
Hi e12e, I've messaged the email address in your profile.
In case anyone's curious, my degree is a B.A. in Physics. B.A. primarily because I was in a school where switching majors was virtually impossible and I couldn't hack quantum lab.

I also think going to Defcon every year for the last 5 years helped quite a bit too.

I have anecdotal evidence that pursuing a full CS degree is not necessary to find a programming job but what might help is following some offline (official) lessons as my girlfriend did or getting certified in a technology you want to work with. So my advice would be to keep searching for a job and to continue learning and make your efforts visible (blog, github, etc.). Bonus tip: add some contact information to your web profiles like this one on hn.
Don't mind the lack of math skills. For a lot of programming tasks they are completely irrelevant. I studied some CS and later history at uni and I always felt that the things I learned studying history has been more useful for me than the CS courses were.

Writing good software is very much about abstract thinking and good language skills. I think you'll find that the things you learned studying literature and philosophy may be a lot more applicable that common wisdom suggests.

I got my first job as a programmer at 26, with only a BA in philosophy in my pockets and no previous work experience whatsoever, so I'm pretty sure you can succeed, and you don't need to go back to uni for that. Sure, I was a bit younger than you, but I didn't have previous experiences in IT as you have. I did have some open source contributions to show, and I think they were a determining factor in landing that first job; maybe you could find an interesting project to contribute to as well. But the most important thing you should remember is that your kind of education makes you an oddball in the field, and this can work for you as much as it can work against you. It will raise some suspicion in the interviewer, but it will also give you the opportunity to stand out among other candidate:

- philosophy is in a way a perfect alternate education path for a programmer, as it trains analytical skills and critical thought.

- it also usually gives you communication skills that are rare among computer people; you are probably able to express yourself in a more appropriate and fluent way than most other people applying for the same jobs, and this is something that can really work for you during an interview, as long as you go in confident.

- as a last bonus, it can show that you are really passionate about programming, and you're not another run-of-the-mill guy that got a CS degree as the safest way to be sure to have a paycheck at the end of the month.

If you find a way to make interviewers consider all these things, I think you'll land a job in a reasonable amount of time.

I wrote a programming book. Excellent source of instant credibility. Computer science is a bit of a waste of time in many respects, lots of self taught people around (I did 2 semesters of comp sci courses, and a bit of AI stuff when I was a psych undergrad).
You talk about 'career in CS' but what you describe is 'being a programmer'.

'Career in CS' = MSc then PhD then postdoc in CS, making you ~ 40 when you will qualify for ~E2000/month jobs. So yeah, too late; also, not worth it (but that's a different topic).

'Being a programmer' = hitting the pavement hard to land your first job, transcend 'junior' status in 2-3 years. There are plenty of corporate programming jobs you can talk yourself into at your age.

Then there is 'I want to do only cool and hip things with computers and get paid well for it'. That doesn't have anything to do with age - or maybe a bit, but either way, it'll be a long hard road ahead.

I agree with most of what you say, but: 2000 euro/month -- as a finished Phd in CS?! That's ludicrously low?

Still, there's a difference between working as a developer/architect/engineer -- and doing CS research. I'm guessing op meant a career in "software engineering", not "computer science".

Depends of where you are.

Probably ludicrously low for Germany/Switzerland/Nordic countries, likely on par for Spain/Italy/Portugal (and maybe Eastern Europe ?).

Company and sector also factor heavily, and number of paychecks as well (in Spain/Italy is common to have 14 paychecks for year).

Edit: Also, depends whether we are talking about pre or after tax (I assumed the latter)

Sorry I meant that as the salary for a post-doc, which you will be for 2 (if you're top of your field) to 6-8 years (if you are a postdoc for longer, you should reconsider academia imo).

Also I meant 2000 pre-tax, but when I look at it, it seems that in some Western European countries you get paid more; like 2500-2800 pre-tax (I know several postdocs in Southern or Eastern European countries who would jump with joy with 2000 pre-tax though).

Don't think a PhD means you will earn a liveable wage! I personally know of a post-doc in economics (not paid like CS I think, but certainly normally one of the better-paid fields) who came from Eastern Europe to Belgium where he qualified for the equivalent of welfare payments ('leefloon'), which basically meant he made less than 817 euros a month!

Ah, yes, that makes more sense. I was more thinking as a researcher/architect at a private company after getting a phd -- in which case it sounded very low.

I never read op's post as an "actual" "career in computer scinece", more as a "career in software after maybe taking some CS (be that bsc ms phd or just a few courses)".

As for a post-doc in economics -- I would expect them to make more than minimum wage -- but again, if the goal was to make as much money as possible, I'd assume working as a consultant for Pwc or somewhere like that would be much better paid than continuing doing research in academia. Very different career goals though!

Another alternative is to look at one of the well paid but not very glamorous options such as Salesforce development - they have their own language (APEX), data query language (SOQL) and piles of other proprietary stuff that most developers won't touch with a barge pole.

However, if you are competent and can stand the poor development tools (I couldn't) then I suspect you could do pretty well....

Same goes for a lot of big-ticket commercial applications - mainly CRM and ERP, they exist in their own wee worlds of complex requirements, poor tools and high daily rates!

When you say "~E2000/month jobs" do you say it based on what? On personal experience? As far as I know, corporate labs (which is an alternative to academia) are paying much more...
'Careers in CS' don't exist in the corporate world, certainly not in Europe.

Not personal experience in the sense that I took that route, but in the sense that I know plenty of people in positions like that.

Then again, fuck some anonymous dude on the internet like me - for all you know I could be a bored 13 year old pimply-faced teenager in Boca Raton trolling would-be academics online during his civics class. Check out job posts for postdocs on university websites, your eyes will start welling up when you see the salaries advertised there.

Careers in CS most certainly exist at Google, Yahoo, MS and Facebook, several of which have research labs in Europe (see MSR, Yahoo Barcelona, Google Zurich).
I went to tech school at age 41, after owning/managing in the restaurant business my entire adult life. I worked full time and studied full time and helped raise my little 2-year-old boy. I got my degree this spring.

Now I'm 44 and working my first job as a .NET developer, and I've never been happier. I have encountered no resistance to my age, quite the contrary: I've never felt more welcomed and encouraged than I do now in the coding community.

IT is changing rapidly, and you hear that all the time. But it's not just changing technically, it's also changing socially. That's very important to remember. If you are smart, and if you have the "knack", and if you work your butt off, and if you have a modicum of charm and social polish and confidence, you will have no trouble getting a job.

The world of coding is not monolithic. It is not homogeneous. To put it tritely, it is amazing how diverse a room full of coders can be....

I got my BS in CS (US) from mid tier state school at the age of 38. I think getting a degree later in life is an advantage, people see my graduation date on my resume and assume I'm younger than I am. Some people say I look younger as well.

I'm a team lead now, and if anything, I see younger devs as a liability. IMO you gain a certain level of pragmatism and persistance from working on large (crappy) code bases for a few years. When faced with challenging bugs, I see some younger devs giving up too quickly.

It takes time to develop the 'large code base skill', and I'd rather not solve you're bugs while you do. Especially if you're telling me how great language X is, and we should move to it.

Maybe you actually should move to language X.
My advice: if you already can program in python. Try getting programming job somewhere, if its difficult to get, try building some stuff and put them in github, so people can "See" that you are passionate. You dont need a degree, just coding skills.

From there, once you start working, you can choose to work 35h per week, and spend the rest of the time teaching yourself more skills.

I'm 33. I learned web basics at 15 (HTML, JS, eventually CSS) and dabbled in that on a personal website till about 25. Meanwhile, I got an English degree, including a single calculus class. At 30, just after the birth of my daughter, exhausted by my stupid day job (not remotely CS related), I started teaching myself Java, then Android dev, then Python. I was on the verge of going over to the .NET dark side when I found a job that wanted Python and Java and SQL and oh, could I teach myself some Objective-C and write a small iOS app? It's with a small company, the benefits are meh and the pay is average for the area and I absolutely love it.

I feel pretty lucky to have stumbled into this. I think it's mostly repeatable with the right company -- small, probably not a traditional development house or major corporation (the company does a lot of industrial automation, PLCs and such, I do the PC side).

FWIW, you're exactly the kind of person we hire.

Funny, I was almost exactly 31 when I decided to abandon my small business and go into web development. I have a degree in Psychology but had a long hobbyist programming history going back to writing BASIC programs on an Apple IIe, then later some dabbling in Assembler, Pascal and C.

From 2003 to 2010 I built LAMP stack bespoke websites for a modest living and then joined a startup that was using Ruby-on-Rails.

Now I make > $100K and get job inquiries twice a day.

It is definitely possible to make such a career change, but it is challenging to find just the right environment to be able to do it and still make a living while learning. For almost a decade I had to rely on my non-programming work skills to still have value to an employer while learning. For me this was Desktop publishing and light system admin work. It was also difficult to find increasingly complex real-world projects to work on to push me to learn more.

CS has to be one of the only tech field where one came build up a career even after 40.

If you are capable of continuous learning,and computers are a real passion then nothing is impossible.

Prior experience in a sale or management position can even be a plus to your resume.