by d33d33 on 7/7/14, 8:06 AM with 61 comments
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?
by uptownJimmy on 7/7/14, 10:13 AM
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....
by roel_v on 7/7/14, 10:11 AM
'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.
by tinco on 7/7/14, 9:27 AM
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.
by ThePhysicist on 7/7/14, 12:17 PM
For a more detailed answer let's first have a look at the facts: You're 31. You have a University degree in Philosophy. You have several years (?) of work experience in a startup. You're passionate about programming. You're based in Germany.
Should you go study CS to land a job as a programmer? It depends.
In Germany, I think it's always beneficial if you can show some formal certificate or University degree in CS or a related field if you apply to a position as programmer: The lack of IT talent is not as big here as in the US, so most companies have a larger pool of candidates to select from and will actually care about degrees and relevant prior experience as a programmer, especially if they're big corporations. So if you want to go work at BigCorp, a CS degree will open many doors for you.
Startups might be more pragmatic when it comes to hiring programmers without formal education in CS, although salaries tend to be much lower there (especially in places like Berlin where there's a large influx of programmers from abroad).
I think a good strategy for you could be to keep working in a field were you can use your prior experience to make enough money, but where you can progressively add more and more programming and technical tasks to your job (e.g. working as a technical project manager could be interesting).
Concerning CS degrees I would have a look at part-time programmes offered by Fachhochschulen (FHs), since most of them have an excellent reputation in the industry, offer very pragmatic and relevant curricula (as opposed to some academic CS programmes) will even allow you to work on your degree part-time, or at least give you the opportunity to already work in a company during your studies.
by troels on 7/7/14, 9:50 AM
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.
by blzabub on 7/7/14, 10:46 AM
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.
by BuckRogers on 7/7/14, 8:47 AM
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.
by chton on 7/7/14, 8:58 AM
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.
by CalRobert on 7/7/14, 9:27 AM
* 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.
by Xenmen on 7/7/14, 8:37 AM
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.
by onion2k on 7/7/14, 9:02 AM
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.
by lultimouomo on 7/7/14, 10:01 AM
- 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.
by jsamuel on 7/7/14, 12:45 PM
I've got a lot of similarities with your story.
I dropped out of EE in 1997 when I was 18. A few years later, in 2003, I was about to begin studying writing and literature when I realized that my hobby-become-job, programming, was what I was truly passionate about.
At first, I tinkered with useless online courses (they were much more useless ten years ago). I finally put life plans in motion so that I could study CS at a university. I began studying CS in 2006 with the goal of becoming a security expert. I got my undergrad degree in CS when I was 30.
While an undergrad, I got involved with research and decided to go to grad school. To give me more experience, meet more people in my field, and generally improve grad school options, I took an extra year doing research in a CS department before applying to grad programs. In that time I published a research paper with people I'd admired from before I went back to school. I got my choice of top research programs and went to grad school in 2010.
In 2012, I realized academia wasn't for me and had a startup idea I wanted to pursue. Now, two years and a huge amount of learning and new experiences later, I've got a quickly growing startup with amazing people on our team. I no longer write much code, but I love my new challenges every day.
You don't know what you'll end up doing, but if you know you want to study CS, then start as soon as you can. Life's too short to delay doing what you know you should do.
by arisAlexis on 7/7/14, 8:24 AM
by mlangdon on 7/7/14, 10:21 AM
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.
by d33d33 on 7/11/14, 12:38 PM
Thanks to your influence, i applied for a cs-study starting in october. I guess within the study i'll have better chances to get job offers in germany (thx @ ThePhysicist).
I really like the strategy, that tinco advised - i'm leaving to a bigger city next month, enhance my coding skills and try to put sth. on github. Managed to get some used versions of "Computer Networking: A Top-Down Approach" by Kurose, and "Operating System Concepts" by Silberschatz (+ some math books) :) And i appreciate the troels' objection not to study cs just because of being weak in math. lultimouomo, CalRobert, fillskills, qgi and more motivated me to go for cs, even though i have my background in arts.
by fillskills on 7/8/14, 5:24 PM
Because of such friends/collegues I have been doing some research checking out which CS field is in the most demand. So for someone else who switches careers late, it might be easier. My site is not live yet, but here is the research from jobs in Silicon Valley and Los Angeles markets:
https://www.dropbox.com/s/b7f4sigbrzhnleu/FillSkill%20Market...
Hope it helps
by engassa on 7/7/14, 8:42 AM
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
by qgi on 7/7/14, 12:07 PM
From my experience you don't need a university degree to get a decent programming job if you have some patience and can demonstrate that you're passionate about it (which your cs certificates clearly communicate).
If you want a formal education, I can recommend http://www.oncampus.de/medieninformatik.html
Feel free to send me an email (qgi at offliners dot com) if you want to hear more about this.
by tomp on 7/7/14, 9:06 AM
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.
by aikah on 7/7/14, 11:39 AM
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.
by sbarg on 7/7/14, 8:49 AM
by mostlybadfly on 7/7/14, 4:19 PM
Like you, I obsess over the things I've been learning and finding that this is bigger passion than many things I've done in the past.
Just keep learning and keep working on things. It will happen eventually. I have much more to learn but I am just learning now that I need to stop worrying about an age and just go fort he job that I want because it will happen.
by e12e on 7/7/14, 8:41 PM
"Architectural Styles and the Design of Network-based Software Architectures
Dissertation submitted in partial satisfaction of the requirements for the degree of
DOCTOR OF PHILOSOPHY
in Information and Computer Science by Roy Thomas Fielding (2000)
Dissertation Committee:
Professor Richard N. Taylor, Chair
Professor Mark S. Ackerman
Professor David S. Rosenblum"
Any formal logic in that philosophy degree you have? (Also, every time I look up that dissertation: Wow, look at that dissertation committee!)
by eliben on 7/7/14, 11:57 AM
Yes you can definitely do it. Many, nay most 30+ y.o. treat this profession just as another job without a particular liking to it (not that there's anything wrong with it - I'm just stating facts). I think you will overtake them within a couple of years with this passion.
by illogical on 7/7/14, 1:06 PM
That feeling you described is also very familiar to me: After starting a MOOC I caught myself wandering back in the problem I was trying to tackle when in the bus or train.
It's scary that we also share the "lack of math skills" but I'm planning on doing something about it. Maybe Khanacademy is a good start.
by gissolved on 7/7/14, 9:40 AM
by bulte-rs on 7/7/14, 8:39 AM
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.
by TeeWEE on 7/7/14, 10:14 AM
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.
by DanBC on 7/7/14, 8:47 AM
Real work with real people should be useful. You get to demonstrate ability to collaborate, sometimes with difficult people.
by singingfish on 7/7/14, 10:04 AM
by rodrigomangue on 7/7/14, 11:36 AM
by cafard on 7/7/14, 5:56 PM
by sidcool on 7/7/14, 10:48 AM
by smegel on 7/7/14, 8:50 AM
by michaelochurch on 7/7/14, 11:56 AM
Though it's too late to restart, it's not too late to resume your career. It's a matter of how you present yourself and what you are trying to do. You can't devalue your own career path to this point. You have to be able to make the case that it's relevant to the job. Literature: you developed an aesthetic sense by reading well-crafted fiction, and you have a sense of narrative. Philosophy: you're used to ordered, logical, methodical thought and you've applied it to a wide array of human problems. Failed IT startup: you've seen how companies operate in good times and bad (OK, maybe just bad) and developed leadership skills (transfer over different experience if you have to). EdX/Coursera: you're capable of learning hard material on your own. A lot of people play around in Coursera, but people who actually finish hard courses are pretty rare (and that's not a flaw of Coursera; it's just an artifact of how people explore and think).
I think every programmer in machine learning feels a "lack of math skills". I was very strong in math in high school and college, placed in a few national math competitions, and sometimes even I struggle with machine learning papers. Keep in mind that you're trying to absorb a month or few (or years) of someone's work in a few hours. (I studied pure math, so I hadn't gotten "down and dirty" with linear algebra for years when I started studying ML.) Except for the full-time category theorists and advanced probabilists to whom gnarly integrals come naturally, we all feel inadequate here. If you just keep studying and keep sharp, you can get yourself ahead of 95% of professional programmers quite quickly.
do you think, it makes sense to study computer science at the age of 31? or is it too late?
Fuck no, it's not too late. If anything, 31 is too early to stop learning challenging things (which many people do, sometimes even before then).
do you work at a human resources department and can tell me if there is a chance for those kind of people?
As you get older, your best bet is less often to go directly through HR. If you're at an HR wall, you're more likely to face prejudice and harsh age-grading than if you meet someone at a conference. Certainly by 40, almost all of your jobs will be found through networking rather than job sites or front-door applications. Is it ideal that things are that way? No. It's something to keep in mind. The good news is that you're probably way more socially capable and confident than you were at 22, so the networking is less scary.
by yummybear on 7/7/14, 11:40 AM