Ask HN: starting a career in software dev in my thirties, am I nuts?
I am technically minded, I did my first degree in Elec. Eng, which I finished in 2000, and was exposed to some programming.
I spent 5 unfulfilling years in tech support at a big global company, then went travelling for a few years, then came back and did a software degree in 8 months at the age of 30 (due to the fact that I already had exposure, they allowed me to skip some credits). I came out with a high 2nd class honours from this, which I felt was pretty good considering the amount I had to learn.
Since I graduated in 2008, I opted not to jump into the first job that came my way, and instead started studying Ruby on Rails, jQuery, and more recently BDD with Rspec and Cucumber, as well as working on some projects and building wordpress sites in between for a little extra cash. The idea was that this time around I would get work that interested me instead of going through the motions.
Recently I've been looking for employment, and haven't been successful, although feel as though I have come close once or twice.
Still, I'm starting to get a sinking feeling. I don't have enough experience to get started, and I can't get started without experience. It's starting to get me down a bit. I'm 33 now, and I need to start my career already.
I would love to know what insight you guys have for me in this situation.
cheers
Paul
84 comments
[ 2.1 ms ] story [ 147 ms ] threadNever too late, and frankly I think you've done good getting grounded in things like BDD/TDD. There are people I know with 10-15 years of development experience that don't know about TDD, much less use it. It's not a silver bullet, but I think demonstrates a lot of forward thinking.
Have you considered just being an independent service provider? Looking for 'employment' isn't going to necessarily get you all that much more than you'd get if you got your own short term contracts. At the same time, different people have different needs - perhaps you have some need for 'employment' in the traditional sense?
I'm sensing some independence though - travelling for years, went back to school - jumping in to a new arena - etc. You may not fit well in most traditional employment situations.
How are you making money right now? How are you getting by? Are you doing any web work for hire? Could you do more? Does that not appeal to you?
However, the truth is 30 is not young for an entry level developer. Most 30 year-olds are accustom to a higher income than a 22 year-old CS grad, and this might make some employers adverse.
Keep pounding the pavement. With your engineering background you should be able to find a good job. It might take some time in this job market, but keep at it, and try to pickup some freelance to pad your resume.
Having some familiarity with both fields, entry level programmers in the United States routinely make twice (or more) what L1 tech support workers get.
Horsepuckey. Can you FizzBuzz? If so, you're experienced enough to get a job as a developer. What you need to work on is not your programming ability -- that is what professional experience is for -- but your competence at marketing yourself.
You will probably not be hired to fill a hole labeled "I need a developer who does RoR, jQuery, Rspec, and Cucumber." First, most of the people who need exactly that skillset don't have the budget to hire anybody. (No offense to present company who may use exactly that skillset.) Second, most developers start with semi-relevant experience and gradually learn more about the stack their current job (or project at the job) involves. I was a Big Freaking Java Web Apps dev for 3 years and I started not knowing SQL, Spring, etc etc. That was fine -- it just meant my first several months involved doing an awful lot of iterating over hashmaps (java.util.* is my second home) when not reading code and tutorials.
Now, in terms of marketing yourself:
1) Make stuff you can show off. This distinguishes you from the 90 out of 100 candidates who are incapable of making stuff. Making stuff is the core developer competency. (Actually, it might be #2 after communication skills.)
2) Polish your communication skills. See #1.
3) Start networking. "Send a resume and pray" is jobseeking for people who enjoy unemployment. Know the decisionmaker beforehand. There are a variety of ways you can get started on this today -- for example, start writing a blog about the kinds of problems you have solved or will eventually solve for the kinds of people who will hire you. This gives you something to talk about. Alternatively, talk about what other people are writing in the same field. This has a long payoff timescale but the rewards can be fantastic.
Also, don't neglect traditional networking: business cards, meeting people face-to-face in your local community, etc etc.
> Make stuff you can show off.
if you have a good portfolio and can convince someone to look at it, they will care much less about your experience, grades, etc..
Add what Patrick wrote above and try to review your situation in this ligth.
I am always so surprised when I hear that, and have a difficult time believing that's true. With only an extremely beginner's level understanding of Python, I can solve FizzBuzz. Can I get a dev job?
I know modulus isn't necessary, but I can see someone not doing the problem if the solution they are turning in is in a less elegant way.
If you prefer, you can substitute a similar problem which doesn't require even fourth grade math. Here's one: write a program which calculates the sum of all numbers between 1 and 1,000 whose digits sum up to 7. Or write a program which takes this post as input and tells me what the 3rd most common letter used was.
My Python answer:
Anyone have improvements on that?(I used the range (1, 1000) as opposed to [1, 1000], but it doesn't make a difference since the edge values don't have digits that sum to 7.)
And frankly I'm not sure if its faster to convert to string and back to int, or if it would be better to just use modulo arithmitic to get the values associated with the ones/tens/hundreds.
In any case, what you have is certainly readable though.
I'm going for 'a'.
And, according to http://en.wikipedia.org/wiki/File:English_letter_frequency_(... (via http://en.wikipedia.org/wiki/Letter_frequency) your four most frequently used letters match the table for English.
Tested in Python 2.7:
Edit: See my later response for something using the 'collections' module.I didn't know what fizzbuzz is until I read about it on wikipedia. But I frequently run into "web developers" that don't how sessions work or how cookies work and don't understand what CSS does. But i figured it was just these guys who give programmers a bad name. I had no idea it was really that bad and extends to the basics of programming.
edit: definitely broad strokes
And no, I don't feel sorry for people like this. Despite their glaring incompetence they still manage to snow people into hiring them. Some of them easily make $500,000/year and up if they remora themselves to the underbelly of a large company and emit horrible VB code.
Failing that, if worst comes to worst get income support (if that's what your country has) and/or a part time job and create a startup... At the very least a startup is an awesome resume piece to show prospected employers.
Maybe I've been hanging around here too long but my first thought in response was "you probably don't". As in, you probably don't need to add more features before you start plugging, MVP and all that. :)
While I cannot remember the syntax off the top of my head, I am pretty sure I could write out how to do this in BASIC. I have not had a programming course in 22 years. Maybe there is hope for me.
We have hired people who did this to us. People who are extremely, pointedly, relentlessly interested in working for your team are much more attractive than job ad respondants.
If gaming is really a dev's passion, they should already have compelling work they've done on their own, a substantial portfolio, some contacts developed, etc. If not, it's probably an unrealistic flight of fancy, and it should be recognized as such and discarded.
If, however, you want to be a SysAdmin, or otherwise work on boring back end bullshit, my experience has been that if you don't mind being part of a department nobody listens to or cares about, game companies are good places to break into the industry (or to earn more than you would be worth elsewhere.) It's frustrating because you clearly have little autonomy or power, and management knows just about jack about ops work, and god help you if you interfere with a game's release schedule, but eh, the pay is good relative to the skill expected, and they are willing to hire people who are worse or less experienced than average, mostly because they don't know any better.
Two came from emailing the contact address on our website; one through a referral from a mutual friend.
Actually; one of them came from a conversation about whether their company and ours could work together, which weirdly morphed into us offering him a job. Thank goodness for no NDAs/non-competes!
If I saw this kind of drive I would (and have in the past) overlooked people's actual experience. Someone with a go-to attitude and very eager to increase their skills will always do well in an interview with me.
Good luck and don't let the current job market bring you down - it'll happen sooner than later.
My advice would be to get a related job in a shop that uses a similar set of technologies and has programmers on staff. Keep working on your skill set, and get some mentoring from an experienced programmer.
Another avenue I would recommend is to work on a high-quality open source project to get some experience under your belt.
The question may seem unhelpful, but I suspect that in the answer may lie a problem that is going to persist throughout any type of career change that you attempt.
Sounds to me like you probably have bucket loads of experience compared against a recent grad. You've held down a job, traveled, went to school twice. Your current skill-set includes a lot of soft skills (people skills) that many experienced developers lack. I'd suggest putting that foot forward.
So no, you are not nuts. Life isn't a race.
I'm well on my way to having a nice portfolio of failures before I hit 30, and it's looking like I'll find success at < 40. I've learned too much from my failures at 26 to think that you could get a good sampling before 30.
Humans live too long to worry about rushing it.
As I see it you have a few options:
1. Create something meaningful, on your own, and publish it. Having some applications even when they do not generate revenue, can act as your experience. It will certainly help in marketing yourself.
2. Consider starting in another role in a software company, like Quality Assurance, then try to moving into a developer role for the company.
Having said that, I think we have an innate tendency to... acclimatize as we get older. We start to expect that things should come easier. You'll need to counter that if you continue this path. Expect it to be very hard- on the learning side and the self-marketing side and the delivering value to your employer or own business...- and deal with that reality instead of assuming that the difficulty is somehow related to your age or self confidence or how long it took before you got whatever degree etc. etc. Step up.
As other people have said, put some stuff up to showcase what you're capable of. If you work on a side project that you can demonstrate to people and possibly get some revenue (or at least public recognition) from it'll help improve your personal brand, which in turn will make it easier for you to get hired, providing the jobs are around in your area.
I'm 34, and have a job with Java technologies that pays the bills, but I can't help to hack small projects after hours. I often feel that I need to escape that 'sinking' feeling, so I'm trying to build my own small business right now.
If you review other posts here on HN, you will notice a pattern of people which feel on a crisis around our age. It's common. But it's not the end of the world. You are not old, and you've proven to have the will to keep going forward, so just keep trying. Best wishes!
As for getting into it... glad to hear you've had some success with interviews. My biggest bit of advice to you is to get your hands on a good data structures and algorithms book (Java is fine), and learn the crap out of it. Since you like programming, you'll enjoy this, and it'll help you in interviews and as a programmer. In particular, make sure you know:
linked lists binary trees (be able to code insert, traverse, find on the spot; read about delete but don't worry so much about keeping it all in your head) sorting (quicksort, mergesort, maybe a few others) read about balanced trees, b-trees, etc, follow and try out the code, but don't worry about keeping it in your head Hashmaps (what's a hashing function, how to keep good performance) Graphs are fun, and once you can code trees, you have all the tech skills, but the algorithms in graphs are very interesting... and now and then does come up in an interview. SQL - I still get asked about this a lot... know the basic stuff (select, conditions, joins) cold, and also make sure you know some of the grouping functions (HAVING) and how outer joins work. Anything more elaborate will get you points, but probably won't hurt you if you don't know the answer.
Personally, I find it slightly obnoxious that interviewers rely so heavily on this stuff, but it is actually kind of fun. I always review this carefully before an interview. It can make the difference (in fact, I'm pretty sure I missed out on a job because I let it get stale and fumbled around too much... it's a shame, if I'd spent my usual 8 hours preparing, I probably would have rocked it).
It's a lot to learn, but it sounds like you enjoy this anyway.
One other thing... to get experience, try taking on a small software project for your current employer. Once you've done it, you'll have "official" experience. Sounds like I started in a similar spot to you (math major with some CS coursework), so I had to work a little harder to convince employers I could write code. I think EE would probably put you in a pretty good spot, so you really just need to convince them of this thorough those technical screens (which is why I so strongly recommend you read up on data structures).
Also to the OP: this book is good, and a must read. It will help you a lot on the fundamentals of CS. http://www.amazon.com/Algorithm-Design-Manual-Steve-Skiena/d...
what got me back into programming..my A.A.S. 2 year degree is in accounting and Computer Science..my time at Purdue University was in Molecular Biology was that I started building computer applications while at Purdue University.
Once you get something built and start showing it to people..someone shows up sooner or later with a job offer.
also what helps ..show off your projects here at HN..
Your are not nuts.
So Paul if you could build any Ruby on Rails Application what RoR application would you build?
Side Note: In fact all my successful interviews involved me showing something that I built.
I've had a great time doing software work, but the first year or 2 I was doing it were frustrating for the number of things I still did not know how to do. It is a little bit amazing how many different things you have to know to be good at it.
Anyway, my own experience is that it can be done. Of course, 2010 is a tough time to be starting in any career at all. You did not mention which country you are in, but from the way you talk about your schooling, I assume you are in the USA. The recession has been intense in the USA, see this chart: http://calculatedriskimages.blogspot.com/2010/07/employment-...
One change I've noticed in the tech industry since 2005 is there is a much bigger interest in knowing frameworks, rather than simply a computer language. Maybe 10 years ago a person could say "I know Java" or "I know PHP" but nowadays its more like "I know Spring, Hibernate, Grails" or "I know Symfony, CodeIgniter, Drupal". So my advice is to pick a specialty.
you're not nuts :) I studied Civil Engineering at university, and then faffed around for the next 10 years because I didn't know what I wanted to do. I discovered my passion for programming at the age of 32 through the initial Ruby on Rails podcast. Unfortunately I couldn't program at all at the time, had never knowingly used unix and so spent the next 2 years teaching myself most evenings after putting the kids to bed.
The key thing for me actually landing a job was through meeting up with a local programmer. I'd discovered his blog, realised he was local and arranged to meet up with him for a beer. He told me that there was a Ruby User Group in town and so I plucked up the courage and went to the next meeting - it was great! At the third or fourth meeting heard through a fellow attendee that the company he worked at was looking for rails programmers. Two interviews later and I was employed.
I'm not a world class programmer. But I consider myself very fortunate to have discovered my passion at what seemed to me at the time so late in life. Many people never do.
And getting a paycheck as a result of that passion is better than a kick in the teeth ;)
All the best mate.
Eric