22

I graduated 2009, Bachelors of Computer Information Systems, minor in Math, in western Canada. That's all my local University offered and I rationalized the minor helped even me out against Comp Sci grads. At the time I lived in a relatively small town (~50k) and had been advised by professors/department heads/career counselors that I should have good prospects finding the type of work I wanted (Junior Software Engineer/equivalent) without needing to move to a proper city, my experiences did not match up to that advice.

Obviously a lot of time has passed from then to now, I've moved into an actual city (Vancouver) with my spouse, but that hasn't improved my job hunting in any respect. I feel like the more the unemployment gap has widened the harder it will be, and that if I couldn't even land an interview as a fresh grad, my chances by now must be down right miniscule.

I'm looking for advice or direction on how to proceed. By this point I've applied to hundreds if not thousands of job postings, talked to a good number of recruiters and sought help from various local career counselors and tend to leave disappointed. I've heard plenty of advice in the past so I'll try to summarize my thoughts on them:

  • Contribute to Open Source. While I certainly enjoy using a wide variety of open source software, to the point that I run very few closed source applications, I've never had the strong pressing urge to fix or improve anything I use, so the times I've gone browsing through bug lists and mailing lists I tend to get lost and confused. I've tried looking at the actual code for a couple projects but every time I get depressed by not understanding the material or even the ins and outs of the fairly complicated code repositories. (Maybe a fault of my education, but I surely didn't have any coursework with version control, or much else helpful with going this route)

  • Make your own project/portfolio. I've heard conflicting pieces on this, some people have suggested solo projects are nearly worthless to an employer since the whole point is to show you can handle working on a team and doing all that version control/framework stuff I apparently don't know anything about, while some people seem to think the project needs to be on sale somewhere to count. All that would be well and good if I had some great ideas of projects, but as much as I enjoy programming I can never think of something that I want/need some code to do, particularly that I can do on my own with my limited skill set. I have picked up a fair bit of Python since graduating, found myself enjoying it more then the Java we were mainly taught, and started a couple silly projects on the side to learn what I can on my own. (couple of 2D games, not completed mostly due to lack of interest in the artwork side of things)

  • Start your own business. Mostly the same reasoning as above, except add on the complete lack of interest in trying to sell to clients and handle things like marketing, definitely not an area I have any motivation to go at all.

  • Go back to school. For one I would have to go into debt this time around, and for two the last time I graduated I came out with no job prospects either, so my confidence in the education system is a bit lacking. I also burned out pretty hard by the end last time, maintaining an A average through the upper level math courses left me planning to never go back to university again.

I was a good student, got Dean's list and full tuition waiver scholarships for having the top grade in my class two years in a row. I didn't participate in co-op since I focused on cramming as many free credits into those years as possible, and I didn't know how much more experience trumped paper, hindsight is 20/20 as they say.

Anyway, as the title says I'm in a rut, I've lost almost all motivation, my original "dream" job was something like, not a lot of commute time, maybe a bit under 40 hours a weak, Junior Software Engineer working up the chain, learning something at least mildly interesting along the way, and not really caring about the salary (honestly), but it feels like over the years every single one of my hopes for my starting job has been stripped away and now I'll be lucky answering the phone and asking people to reboot their modem.

I try to do some coding on my own, picked up an O'Reilly text for Python and try to at least fiddle around for a bit, but without any direction I quickly lose focus, I guess my spirit is broken by this point, I'm not trying to sound too depressing, I just don't know how to snap out of it.

Right now since the only time I get a call for work is when someone thinks there was a typo on my resume until I confirm the lack of actual work experience.

I was a lifeguard/instructor throughout University and for about a year after grad until the pool closed, I really didn't want to get stuck in a dead end minimum wage job so I tried focusing on the job hunt/moved shortly thereafter. But since then no, I kept thinking one more round of applications and surely I'll find some entry level position somewhere.

  • How can I get past the 5 year gap on my resume for a technical field?
  • Did you have any job on another field during these 5 years, or were you completely unemployed? – Péter Török Oct 31 '14 at 12:30
  • 2
    Ryan I edited your question slightly to make it more on topic with a clear question, if this changes your intent too much feel free to edit and clarify! – enderland Oct 31 '14 at 12:44
  • 1
    The point about working on open source is that it helps close a common educational gap. Most of what is holding you back from that is skills you would have to learn to work on a real program anyway. Why not learn those skills now, making yourself more immediately useful to an employer? – Patricia Shanahan Oct 31 '14 at 23:19
  • Ryan, have you ever been diagnosed with depression or anxiety? I'm only asking because I've mentored someone who's behaviour and circumstances are almost identical to yours (based on what I can gather from your post), and he suffers from both. It can be difficult to make progress when dealing with that. – Dennis Nov 13 '14 at 15:43
  • For me, it is nearly impossible to learn a new technology (programming languages, tools, etc) without actually using it for real life applications. (Books and tutorials gives me nothing). In your spare time - think of something you want to build - a website promoting yourself, or a clone of some existing smartphone app, or anything - and build it using some technology you find interesting. Even if it is not something you can sell, you learn from it and you get something to show potential employers. – JanErikGunnar Aug 15 '17 at 23:02

11 Answers 11

40

Are you sure you're vaguely competent?

I mean, there are plenty of people who get good grades, but are completely incapable of doing the actual work. Sure, the lack of work experience is a big problem. Sure, the CIS degree is a big problem. Sure, living in a small town is a big problem. But after 5 years of interviewing, someone should've taken a chance on you - if for no other reason than they thought they could pay you next to nothing.

Are you sure you want to?

If you can't bring yourself to code anything you want, why would you code what others need you to? The single biggest indicator of success at being a computer programmer is coding in your spare time. You get the practice, skills, and knowledge that programmers rarely get in the workplace due to their hours of meetings/process/bureaucracy.

Get something.

It took me 8 years out of college to get my first programming job. I was in the unfortunate position of having no degree. I took a job as a technical support phone monkey that I got by spamming the hell out of anything vaguely technical entry level in a 20 mile radius. Turned that job into a sys-admin job. Turned that job into a QA job. And then spent 18 months honing my programming skills and spamming pretty much every programming gig that used the languages I knew (even though all of them also used languages I didn't). And I got a so-so programming job, with a horrible company, with a horrible salary. But that turned into a good programming job with a great company with a good salary.

Look, QA work is horrible, soul-crushing drudgery. But it's work. It's experience with the software development process. It usually gets you the opportunity to script up some automation. And it's something that few people actually want to do, so you'll have less competition. Even amongst QA people, there's the joke that QA is the minor leagues for programmers.

Point is, you might need to get creative about where you look for your stepping stones. And I would encourage you to apply to many jobs. I mean, just go nuts. All it takes is one person to take a (ill-conceived?) chance on you and suddenly you're not "unemployed for 5 years" you're "professional programmer".

  • 3
    @Ryan - that is... astounding. Hopefully those resume workshops help. – Telastyn Oct 31 '14 at 14:17
  • 2
    QA and QE positions are rapidly evolving from being the last man in the pipeline to being an interconnected part of the development process. Good QA anymore is automated and good QAs and QEs work to automate the process. QEs especially focus on writing the framework through which automation can occur. If that's not creating solutions I'm not sure what is. In some situations QE has a wider toolset and required knowledge base than traditional devs. Complaining about QA from how it used to be run or how terrible companies run it is a poor measuring stick IMO. – Nahkki Oct 31 '14 at 14:43
  • 2
    @Telastyn: It's pretty astonishing to me that a modern company would be without QA/QE. Your experience may be typical for the particular region or subfields in which you work. My experience counters that. We may just have to agree to disagree. It would be pretty cool if you could stop panning the field as a whole. – Nahkki Oct 31 '14 at 15:04
  • 4
    If you can't bring yourself to code anything you want, why would you code what others need you to? I have to disagree with this. Personally, I actually do better with a task assigned to me (You there! Do this.) than I do with something I want to do myself (Man I really need to make an android app that does x... look a squirrel). I'm not sure if I'm in the minority, but I have trouble actually building anything of my own but I've been fairly successful building stuff for someone else. The challenge is getting started. I started a job 4 days after my AA (WAY under paid, but experience) – WernerCD Nov 1 '14 at 2:46
  • 2
    @Andy - you're entitled to your opinion, but in my experience, no professional software engineer comes close to actually programming for 40 hours a week at work. And even then, they're not going through the iterations of design/implement/evaluate necessary to actually get good as program design. – Telastyn Nov 1 '14 at 20:52
25

TL;DR

After reading through a lot of your comments here:

  • STOP MAKING EXCUSES AND FEELING VICTIMIZED.

Do you want to get out of this 5-year rut? You need to be receptive to advice and curious, not defensive.

Step 1 of this: Ask questions about how/why to do the things people are answering here.


Motivation/morale

I'm sorry you are in this situation. It's not fun to feel hopeless - especially for such a long time.

The first thing is that if you are resigned and fatalistic about your prospects this will come out in your interactions with companies. No one wants to hire someone who is obviously miserable and cynical.

Some suggestions here:

  • If you don't exercise, do so
  • If you don't read, do so

Jobs do not float out of nowhere in even the best of circumstances for most people. It sounds like you want a job to just appear, inspite of knowing many reasons why it's unlikely.

If you don't have faith you can actually change your situation you will never do so.

Reality check

Well I have to be realistic, I don't want to work 60-80 hours a week, I'm not ambitious to want a huge house and 2 cars and so on. I understand it may not sound normal, but why should not wanting to work tons of hours be seen as a negative? I'm really not trying to sound spoiled/entitled, but I did work real hard, and it got me to what, do it all over again? I'm a bit older now, I value my time a bit more highly, I want to work, and do something I can enjoy and contribute too, I don't want to spend another 5 years repeating the same cycle ad infinitum.

You can't dictate your entire career path. Not wanting to work a ton of hours is fine. But you still need a job.

As an aside, you in fact do sound quite entitled. "I worked hard, now I should have an easy job matching all the conditions I want even though I have 0 relevant work experience." Employers don't care, they want to hire someone who can do their job, and rosy dreams don't get projects accomplished.

Experience

Not having any relevant work experience and a 5-year old comp sci degree is not a good place to be for finding a full-time entry level position.

What does this mean. It means you aren't "just graduated from undergrad, use those strategies" anymore. You need to do something different, what you've been trying hasn't been working. It hasn't worked for 5 years so I'm not sure why you expect it to work now.

  1. Stop feeling sorry for yourself. Don't let yourself have any sort of a victim complex, feel wronged by society, etc. If you do this is going to come through and be a huge turn off to those you interview/interact with.
  2. Figure out how to motivate yourself to actually program. All your examples make it sound like you don't actually want to do this. If you can't do this or even be remotely interested, you should consider whether you actually desire a job doing so fulltime.
  3. Stop applying for entry level positions. Ideally you want to apply for some sort of internship or part-time positions. Why? Because frankly someone with no experience and a 5-year old degree. Your primary goal needs to be getting experience someone else sees as meaningful.
  4. Be willing to work for free. Generally I wouldn't recommend this but frankly like I just said you need experience. Look for non-profits in your area. Ask if they have any projects they need to do.
  5. Go to networking events. Look at meetup. Look at LinkedIn. Find out what events are happening. Go to them. Learn, ask questions. You will find people are more sympathetic to you in person than via a resume. See the first point here as well as the section on motivation/morale, though.
  6. Take an online class. Coursera is a great resource. There are many other free but structured online classes. This can help with your "want to program but no motivation" issues.
  7. Lose the "I want to only work 35 hours!" attitude. Ok, so you want to dictate your job to your employer? You can do this -- when you are a highly desired candidate. You aren't. Most people have to compromise on something for their first job(s). By self selecting "work under 40 hours" you basically are self-selecting out of probably 99% of jobs, and you are not qualified for the 1% you can dictate that for.

What you are trying to do is not impossible but it is going to be hard and require a change in tactics.

  • 2
    +1: Specifically for the stop feeling sorry for yourself and figure out how to motivate. The 2 biggest stumbling blocks. When I'm hiring, I want someone who is hungry to solve problems and make things happen. I'll take a highly motivated individual with zero experience over a lump with 10 years under his belt just about every day of the week. One can be taught. The other one can't be bothered to learn. – Joel Etherton Oct 31 '14 at 13:14
  • 1
    I'm not sure I agree with #3. There's so few positions actually listed as entry level, and probably even less for less qualified people. This guy needs his foot in the door somewhere. Anywhere. – Telastyn Oct 31 '14 at 13:22
  • 1
    @enderland - A bad one. And there are plenty of bad managers. – Telastyn Oct 31 '14 at 13:30
  • 7
    @Enderland - I have a notepad that has a list of suggestions from this thread on things to remember and work on, clarifications on some things I didn't know, more data on subjects where I continue to get conflicting advice, and useful personal notes like " < 40 hours == taboo". I apologize if I've sounded defensive or combative in my comments, I've had a pretty rough night, and while I always expect a certain degree of criticism and hard words on this type of subject it's hard not to get a bit emotional sometimes, this is pretty serious business for me. – Ryan Oct 31 '14 at 16:22
  • 1
    @Ryan It can be slow, expensive, and frustrating trying to hire a programmer. If you give the impression that you might leave within five years, or even at all, and the hiring manager thinks about going through the process all over again, it is likely to devastate your chances. As for hyper-specialization, you will find that becoming an expert on any one technology helps you learn every other technology. Many of the core concepts are shared, and those that aren't will stand out and be easier to learn, as long as you stay open-minded. – Keen Nov 3 '14 at 15:07
23

I've lost almost all motivation, my original "dream" job was something like, not a lot of commute time, maybe a bit under 40 hours a weak...

I was a lifeguard/instructor throughout University and for about a year after grad until the pool closed, I really didn't want to get stuck in a dead end minimum wage job so I tried focusing on the job hunt/moved shortly thereafter. But since then no, I kept thinking one more round of applications and surely I'll find some entry level position somewhere.

How can I get past the 5 year gap on my resume for a technical field?

You haven't done any real work in 5 years?

You need to get going - now!

  • Get on a payroll - now. It doesn't matter what you do, it doesn't have to be technology-related, it doesn't need to be professional. At this point, it just needs to be a real job. Demonstrating that you actually want to work is important, particularly if you haven't worked for 5 years. Right now, an interviewer would wonder about that.
  • Decide for yourself what you want to do. (You've written a lot about what you don't want, but little about what you actually want to do.) If you really want to be in software development, you need to change your attitude about working hard. "A bit under 40 hours a week" is probably a bad goal for someone who wants to work in software (depending on your locale/culture) - never mind for someone who hasn't worked in 5 years.
  • Determine what it will take to get where you really want to go. If that means more education - get it done. If that means working a part-time job in addition to your full-time job - do it.
  • Decide for yourself if you are actually willing to work hard to get where you really want to go. Everyone can have "dream jobs". But dreaming is the easy part (infants and dogs dream). Doing something that takes you a step toward that dream is hard. And only you can decide if you want to work hard or not.
  • Consider other professions. What you have written about yourself doesn't sound compatible with most software development positions I know of. Find something that suits you better and doesn't require you to work harder than you want or work hard on the kinds of things you don't want to do.
  • Consider what kind of work or other activities would have a chance to get your motivation back. Perhaps it's a job, perhaps it's family, perhaps helping others - it differs for everyone. Being unmotivated tends to make it hard to convey the attitude you want to project during an interview.
  • 11
    It's not about the number of hours per se... it's that one of the first things you specify in a dream job is a limited number of hours. An employer is going to have a more favourable view of people whose dreams are "doing what I love doing", "taking on big challenges", "producing something to be proud of", "being part of something bigger than myself" - not because they will willingly work regular 60-80 hour weeks, but because they won't be miserably unhappy if one happens in extremis. If personal comfort is goal #1, then Joe is right, look for something more routine and predictable. – Julia Hayward Oct 31 '14 at 14:08
  • 6
    @Ryan: I think that after having had 5 years of "spare time" it's probably a good point to remove that as line item you still need. As Joe said, go get a job. Any job, right now. I'd have a very hard time hiring someone that sat out of the job market for 5 years immediately post college. Regardless, if the career you are searching for isn't one that you are more than willing to give "personal time" for, then you likely haven't picked the right career. – NotMe Oct 31 '14 at 14:40
  • 1
    I'm from Finland, and most people work 37.5 hours a week here. Over 50 hours a week is quite abnormal. Working hard doesn't have to mean working long--look at Nokia, Rovio etc. Of course, don't expect salaries to be the level they are in the USA. My point is, it's not unreasonable to want to work reasonable hours (but it might be difficult in your area with your resume). – dancek Oct 31 '14 at 17:49
  • 2
    Let's not dwell on the 40 hour thing. It's perfectly reasonable to expect that. Yes, lots of people in IT work stupid crazy hours, but there's also lots of people that work perfectly sane hours as well. It's a red herring in this discussion. – DA. Oct 31 '14 at 21:57
  • 3
    Get on a payroll - now +1 - I took a 21k/yr job out of school, 40 hours/week... 4 years later, I now make more than double that but in my situation it allows me to live more than comfortably with a family even if it is below "average". The key is experience and wins under the ole belt. – WernerCD Nov 1 '14 at 3:15
11

Looking at your list of 'collected advice' and your thoughts on all of them something stands out. I'm going to call it a derivative of 'Fat kid in a candy shop'.

There, in that list, are a series of potential action items. Any one of which, ignoring your perspective on them at the moment, would at least change your situation and most would change it for the better(I'm a firm believer that 'I don't know what to do' is a terrible reason to get a Masters).

Consider a fat kid in a candy store. Sometimes what happens is they just fall over and start crying. Why? Because they want to eat all the candy but the reality is that they can only eat so much and, even that, has to come a couple pieces/handfuls at a time. They are spoilt for choice and what this often means is they don't make a choice. This is where you are. You are a fat kid in a candy store(probably not literally). When presented with options, a nearly infinite amount of options in fact, you both rationalized why none of them were worth doing AND fell over crying(metaphorically) by not doing any of them.

You have a couple of problems here. First you've fallen victim to something a lot of CS students stumble over. There are a literal ton of CS students out in the world with perfect grades and heavy course loads. Taking more courses and getting the highest grades possible isn't a bad thing unless you do that in exclusion of doing any extra curricular or external projects. The reality is that there are these tons of students who did exactly what you did - they went to school, took all the CS courses, got the highest grades and..... so? What makes you stand out? How many schools offer your degree in Canada? What makes you stand out from every other student who put their head down, took some classes and got some grades?

Your second problem is wanting something to be perfect. Perfect should not become the enemy of good. Your situation would be much better if you just did something. Sure writing an opensource project that sorts your personal music files isn't exciting or world changing. But it's something and right now that's more than what you have. There is no 'perfect' project or 'perfect' activity that will let you write a few lines of code and drop a cushy job in your lap. But every single thing on your list has and does work to get people's foot in the door at companies every day. Many of your assumptions('companies don't care about personal projects' in particular) are bunk. What a company wants to see when they interview you is that you are self motivated, driven, interested in solving problems and are capable and willing to write code. There is no better way to do this than to have personal projects online and/or contribute to projects. Sure maybe they don't particularly care about your app that collects, sorts and rates animated cat gifs on the internet but they care that you identified a 'problem', came up with a solution and implemented a proof of concept.

Your final problem, and this might sound a bit mean, is that it doesn't really sound like you like programming all that much. I'm not necessarily saying you need to code up your own OS or something to be a programmer but the fact that you can't point to a single line of code you've done for the last few years is a bit troubling. To be completely honest you also sound a bit depressed - whether it's from the situation itself or not doesn't really matter. You should find someone to talk to and work on building some healthy habits. A lot of programmers have been there, myself included, and depression is a beast. Git it sorted. But in addition to talking to someone consider what kind of job you really want. Explore this. There's no shame in not being a coder(no matter what us nerds say) maybe you're interested in a different aspect or maybe you're interested in something else all together. Find a single person who has a job that you could see yourself in and happy - then find out what that person did to get there, what kinds of projects they worked on, what sort of jobs they looked for, what sort of certificates and programs they used. Use that to make a plan.

Because that's the answer to your question: "How can I get past the 5 year gap on my resume for a technical field?"

Step1 - Make a plan. Figure out exactly what kind of job you want to get, figure out what other people who have gotten that job have done.

Step2 - Start networking. Join coding groups in your community. Most cities have meetups for different languages. Pick something(ANYTHING) and just start meeting people. Submitting applications is not how people get hired anymore, networking and meeting people is how you get hired.

Step3 - If you want to get a job that involves programming write some code. Put it online. Doesn't matter what language, doesn't matter what program... just write some code. If you seriously haven't been writing code for the last 5 years your skills are probably incredibly out of date and rusty. Start writing code!

Step3(alt) - if you don't want to be a programmer that's not a shameful thing. Figure out what does make you happy. 'A job' might be a short term answer but the reality is that this is a career you're potentially looking at for the rest of your life, take some time to make sure you end up going in a direction that will make you happy beyond 'I have a job'.

Step4 - Find someone to talk to. You sound depressed and that's not a shameful thing. Lots of programmers are or have been depressed. Lots of people in general have been or are depressed. It will only get better when you do something about it.

Step5 - Just do something. Not 'more applications' or more 'fat kid in a candy-store'ing. Just do something(even something small) differently. The cool thing about ruts is that although they are hard to get out of, often even small movements can make it easier.

  • 2
    I really appreciate your answer, it actually made me tear up (not in anger or anything), and I think I see your point the most clearly of all the advice I've gotten over the years. I think it's going to take a bit to really hone in on what I really want, but thank you for saying what needed to be said, but I think you probably nailed it by the way I'm currently reacting. – Ryan Oct 31 '14 at 15:07
  • 1
    If you wrote an app that automatically sorts and rates animated cat gifs there are numerous companies that would be interested in you. That stuff isn't easy.. good advice all around. :) – NotMe Oct 31 '14 at 20:54
10

Working sucks. Sorry.

This doesn't mean everyone hates their jobs, because a lot of people love them. But just the general "Ugh. I have to get up and go work for the man." sucks. You need to get over this hurdle. Accepting that in order to be a productive member of society, you need to sacrifice some amount of control over your life. You will be taking orders from a manager, abiding by corporate policies, and in most cases of salaried employees working more than 40 hours a week.

Work isn't convenient.

If you want to get a job in tech, you have to win the interview. The easiest way to make your interviewer believe you're the right candidate for the job is for you to believe you are. You can't walk in there all timey-wimey and expect them to strongly consider you. They want a guy they can drop something on you and you just take care of it. From what I read, that doesn't sound like you at this point in time. I would be afraid to give you important assignments for fear you might try to change them to be more convenient.

Can't win if you don't play.

How many tech jobs have you applied to over those 5 years? What steps have you taken to actually get a job? And you said you want to work a little under 40 hours a week, but work your way up the ladder. With that kind of attitude, you'll retire an intermediate developer. Seriously. Now, I'm not going to say that you have to spend all day, every day, every night, every weekend at work to move up through the ranks, because you don't. But I would set a realistic expectation of an employer saying 40 hours a week but that you'll be spending at LEAST 42. Remember that you're in competition with unmarried 20-somethings who really don't mind spending 45 or 50.

Next steps.

You are lacking three major things: experience, flexibility and confidence. You could try working open source to build your experience but that generally doesn't build you project management experience (someone else is managing you). You also mentioned maybe doing freelance (starting your own business). Start with something small or volunteer (like a church's webpage or something). This will give you the experience in both technical work and project management. Set real dates and deliver by those dates. Work through issues with the client. Once you have a small portfolio, and a grasp on how to handle a client, get yourself out there for paid freelance work. Note that if you advertise volunteer freelance work, and a business responds, you should not do the commercial work for free. Stick to something non-profit. For commercial "I need experience" work, just charge very low fees and make it clear to the client that it's a learning process for you. The last thing you want is a bad reference from a commercial client.

In the mean time, APPLY FOR JOBS. For the love of Pete, apply for jobs. Interview. Even if you think you aren't going to get it, apply. You need the experience interviewing to land the perfect interview.

Also keep in mind that as you transition from freelance to full-time, you're going to be finishing those freelance jobs in the evenings until they're wrapped up. Don't drop the client's work or you won't be able to use them as a reference in the future.

  • I wish I'd never mentioned that 40 hour dream... (All the people I know and my own experience was "full time" 35 hour weeks, granted not IT, but I didn't think there would be such a backlash for desiring that) And to be honest I probably would be satisfied as an intermediate developer, so long as I was good at what I did, I don't care about chasing promotions and raises, honestly. As to how many jobs I've actually applied for? Many many hundreds, likely over a thousand. I have worked full time before, it's been a while, but I do know how to buckle in and do the hours. – Ryan Oct 31 '14 at 15:22
  • 1
    Why do you wish you hadn't said how you feel? The whole point of asking for help is being fully honest so the proper concerns can be addressed. And you might feel you'd be satisfied as an intermediate developer, but trust me, it will wear on you having peers moving through the ranks while you sit still. – corsiKa Oct 31 '14 at 17:52
  • I feel it's mostly detracted from the overall advice I've received, while having a good work-life balance, and maybe less hours/week then some (and equivalently less pay) seems like a lofty goal to an inexperienced grad that should take what he can get, that detail by no means influences my current work expectations in the short term as some people seem to think. I suppose it's hard to predict the future of course, but I also think that if the day comes that I seriously feel left behind, I'll accept the trade-off of increased work hours/stress to try and increase my salary/position. – Ryan Oct 31 '14 at 22:52
9

I'll try and give my best advice, not sure you'll like all of it. I've been a developer for 20yrs+, also development and team manager so here's what I see (and probably other hiring managers):

  1. General - what do you do otherwise? You come across as not actually that bothered about getting a role. 2009-2012 was a tough time (I was made redundant from a big bank myself and took 6 months to get back in), but in the meantime there is a lot you could be doing to make yourself hire-able. Alternately if you've been doing something else, what skills can you bring to the mix, the things that grads won't have, such as (for example) management, customer facing skills etc. This all counts in the CV as long as you can demonstrate the relevancy to the role you try for.
  2. Source control - I would expect all developers, other than straight grads, to able to use source control, whether git/subversion or tfs (or whatever). You need to learn about this, you will use it constantly in a job.
  3. Open source - this is a good way to learn, about code; about (distributed) teams, about things like code reviews (and source control). You don't just dive in, I'd find a project with the skills you want to show to employers and talk to the more senior people about where you could add value.
  4. Own project/business - as you say you have no experience, so whatever you do runs the risk of being badly designed/unusable/unmaintainable. You need to learn about the business skills of being a developer before you can succeed with your own vision.
  5. Back to school - not worth it in my opinion as well. Not just the debt, but you're already competing against someone 5 years younger (i.e. a graduate), more delay will make it worse.

You need to be involved in a project, with team members and mentors. Once thing I'd think about is charity, a number of charities need software and there are organisations that put people together with charities to help them out.

A quick google came up with http://socialcoder.org/, an example of what I mean (Don't know them from Adam myself so caveat emptor, but gives you an idea). You'll get a chance to give time and learn the skills you need, and it's stuff to put on the CV, probably with brownie points for the altruism.

Other than that, think about if this is the direction you still want, the hardest thing in this industry to work with are the journeymen who don't have (or have lost any) passion for development, it's the thing that drives good projects.

  • 1. When I first graduated I understood the market was tough, had a decent savings and an adequate job for the moment. Back then the advice I got was just be patient/keep applying, but at some point I think simply too much time has passed being patient. 2. Yeah I guess I know the basics, but with no practical experience I assumed perhaps incorrectly this would be covered in an entry level position. I agree with the need for a team and a mentor, I'll try and follow that route some more. I used to have the passion, loved the design side as well as the code, hopefully it can come back – Ryan Oct 31 '14 at 13:03
  • It probably would be covered at entry level, but your 5 years down the line which is why I suggested you need to find ways of applying your experience from the roles in between. You may find that getting a role with focus re-gnites the passion (sounds like a catch 22 eh), but that's why I'd go for something you can join (and a volunteering thing makes it harder to say no to you), then use that to get the fire going. Likelihood is also you'll have something real to put on the cv, open source can need someone to look at commit history to verify. – The Wandering Dev Manager Oct 31 '14 at 13:20
  • There seems to be a lot of catch 22's involved in this ;) But yes the more I've been thinking about it the more I agree with the need for a team/mentor and I certainly have the time to volunteer if I can just find the right group. – Ryan Oct 31 '14 at 13:37
  • @Ryan - Challenge yourself to learn source control from online resources (you don't need a formal teacher). As motivation, you need to understand that if you cannot or will not do this, you may not want to be a programmer as much as you think you do. – user8365 Oct 31 '14 at 13:41
4

I think your solution needs a number of components.

  • First, I'd try to pick up some motivational books/recordings and read/listen regularly. Focus on anything having to do with positive thinking and the like. I know it sounds corny but trust me, I was out of work for almost 2 years and it's easy to let your spirit get crushed. It's important that you have some way to remind you to be positive and forward thinking. That's where the rut comes from.

  • Second, I would try to get into some open-source development. I know you said you haven't felt pressure to contribute anything but you need to suck it up and do it anyway. The bottom line is you've got to do something to keep your interest in development and this is the best way to find something that may be intriguing to you. Making your own portfolio is a waste of time in my opinion for someone who has little motivation to begin with because coming up with your own ideas requires a motivation all its own. So I would put on your big boy pants and do what you need to do to get involved in something. If that means learning version control then do that too.

  • Third, don't stop looking for work. In my family, we have a saying: When you don't have a job, your job is looking for one until you do. Vancouver is a good sized city so you should have plenty of opportunities to apply for work. Whatever time you have during the day that would be spent working if you were employed should be devoted to activities that will help you find work. This means networking, reading, anything that isn't just keeping you in your rut. Trust me, at some point something will stick and you'll find work. Also, don't think any position is beneath you, including positions outside your field. Your self-worth will be enhanced by working, even if it's just something menial because you're contributing to your family.

Above all, whatever you've been doing the last 5 years hasn't been working so you need to try something different but stay busy and be persistent and positive. If you work at it, truly work at it, something will come along. But stay actively moving forward. By definition, a rut is something you're stuck in. The only one who can get you unstuck is you.

3

On three occasions in the last few years I have encountered people in a similar, if slightly less serious, situation who have managed to resolve their problem. I'll briefly sketch out the local terrain, their circumstances, and what they did. I'll call the parties involved Alice, Bob and Chris. These are not their real names, nor necessarily their real genders.

A key problem in my area is a lack of graduate-level jobs. Graduates are in some ways a cost to employ, as they have a lot to learn about the field of software development that must be taught them by more expensive software engineers. Companies therefore look to hire people who have a year or more of experience, and the developer market rate rises very rapidly in the first few years. Getting that first year of experience is hard, and it's much harder if you're a graduate gone stale.

Case studies

Alice

Alice came out of university with a very weak degree in a mathematical discipline that was not CS. She spent some months, maybe a year, fruitlessly hunting round for jobs. In this period she settled firmly into the conviction that she wanted to go into software as a field and began working on turning herself into a software engineer. Alice was a close friend of mine socially, and at the time Alice approached me I was working in a small unsuccessful startup I'd co-founded. I knew more of the details behind Alice's degree problems and had some confidence in being able to train Alice to do the job - she was bright enough, and very motivated. We couldn't pay Alice very much, but we had her perform testing and do a little bit of coding. The company ran into serious problems a little later, and Alice had to look for a new job, but she'd put significant effort in to learn the ropes of software development and had a good chunk of a year of experience on her CV. She went on to an engineering company, and from there has become a software project manager at a major banking institution.

Bob

Bob also did a non-CS mathematical degree. While Bob did a little better with the degree, he spent a year or two subsequent to university without really settling into looking for jobs, and when he did, the jobs weren't there. Bob also wanted to go into software. Bob began to spend a lot of time programming in his spare time, mostly games, and spent a good chunk of a year doing that before another mutual friend of ours gave him a break. Our friend had been working on a small contract for his father's company at weekends before his own job had got too involved for him to be able to work on it very often, and the contract involved some very mathematical code. Bob took the contract over and - well, it was hardly full-time work, and there were long delays suffered between Bob making the changes and getting feedback from production, but, importantly, it was months of CV experience. Bob went from there into a job at a very incompetently run company which had just lost almost its entire development team, picking up a few more months of experience there before the remainder of the experienced developers quit and he realised he was in over his head. This was however enough experience to get more interviews, and Bob recently got another job with a startup.

Chris

Chris dropped out midway through a PhD, burned out, and took low-paying jobs for the next couple of years. He wanted to get into a job that would use his brain more, but didn't really know where to begin or have enough energy to do so. For a period he was barely making ends meet. When I ran into him I was involved with another startup which routinely employed undergraduates to mark up test data. Undergraduate performance varied however depending on the constraints of the university year, and Chris was potentially available all year round. The work was repetitive and not well paid, but at that point Chris needed any sort of income and was happy to have it. His intelligence, diligence and meticulousness were noted by others at the company, and shortly after I left they took him on as a software tester. Within his first couple of weeks they had him writing code.

Important points

Small companies are much more likely to employ you than bigger companies.

Smaller companies operate on a more personal level. There's less process to be satisfied. If you're cheap enough, and can make yourself actually useful, there's much more room to negotiate a position.

Who you know matters intensely early on.

When your CV is solid gold and your interview skills are dynamite, you don't really need to know anyone. Recruiters will come to you, companies will woo you. Early on, though, having someone's trust socially can be crucial in persuading them to give you a break.

Strive to be much better than the average graduate.

Alice and Bob worked very hard to understand both the technical parts and the process of software development. Chris was even more careful and dedicated than the graduates who were employed to mark up test data, who were some way more meticulous than the average themselves. There are not enough entry-level jobs to go round. When you gain enough experience to be considered for them, you have to be able to stand out.

This likely means you need to be programming in your own time. Solo projects are of limited value to an employer unless you can show you actually released working software at the end - but the skills you build in working on them are hugely valuable, and many companies will give points for passion. I doubt anyone contributes to open source projects without having worked on their own projects previously.

Your first job will not be a graduate job.

Your first job will be part-time or very badly paid. To get a graduate job you would have to compete with recent graduates, and they are better placed than you are.

However, as long as you can write:

"Employed by X from such-and-such a time to such-and-such a time. Did ."

it doesn't really matter whether X couldn't pay you some weeks, you worked a three-day week, or a month went by without you getting to write code. You absolutely need to address the balance yourself if you aren't getting coding time, so you really do have the skills your CV purports to show, but a CV is a highlight reel in which you only ever talk about the parts of your job that will sound interesting to future employers.

Advice

Find a mentor.

Ideally you want to have access to someone who knows the Vancouver software industry in some depth. Who else do you know who's a software engineer? Do you have software engineer friends? Do your friends know software engineers? In particular if you can find someone who knows a number of the small companies in the area, they may be able to get you into a position where you can negotiate to help one of them out almost on an internship basis. More than this, they can tell you the basics of what you need to research to be able to work in a team in a software company. An ideal mentor is one who's been a hiring manager.

Find a creative partner.

You have no ideas for a personal project. There is an endless stream of people out there who have lots of ideas and no ability to turn them into code. They want to make a game or a website or an interactive art installation - but programmers are expensive and learning the skills is hard! As it will turn out, finding the right creative partner is also hard, but having someone to keep happy with your progress will help you as you develop skills while working on your first proper failed project. Be in no doubt that it's the skill development that matters here.

Consider starting as a tester.

It's much easier to persuade a small company to employ additional cheap test resource than to get them to let you near the code. I've known a number of testers who've made the jump to developer. Be prepared to do a bunch of background reading on software testing if you go this route.

Offer your services at a heavy discount to small tech companies, explaining you need experience.

This is tricky without a more personal connection to those involved. I've turned down many internship requests because an intern is frequently more cost than benefit. However, there are two things that make interns difficult to employ - firstly, they leave just as they've started to get useful and secondly, they want to do the interesting bits like research instead of the dull bits like testing. Explaining you have some coding ability, but are willing to be a general dogsbody about the office may take you a little further. Be open to part-time.

Consider other fields.

There is a lot to like about software as a field. These days, however, getting into it requires a lot of work if you falter after university. The amount of work only increases if you don't have a network of people locally who can help you. Your circle of friends may not be software people. That could however represent an opportunity in another direction - perhaps they can think of a job more in line with what they do that would suit you. Having the help of someone already in the field makes a big difference.

3

What you do isn't nearly as important as how you do it. People suck at evaluating competence anyway. What they respond to is attitude. Even these answers are responding to your attitude. Find something to love, sacrifice for it, and share your enthusiasm for it.

I've been coding since I was 10 years old. I love it. Getting paid to do it is the greatest privilege of my life. I'll be coding long after anyone cares. Stories are what get you the job. You define yourself with them.

That said I've been in the same boat as you. The way out is to stop worrying about what you are and grab anything remotely close to what you love. Pride is useless. Push a broom for a tech company if you have to. I have to do tons of mindless stuff just to get a chance to code. It's all worth it just to see something I made compile, run, and be used by actual people.

If you can't show that you love it then that 5 year gap means your degree has expired.

2

All interesting responses, but only 2 sort of helpful ..

I've been a software developer/engineer for 20yrs+; but broader across: scripts/coding, software (re-)engineering, and information security/governance.

Nobody telling the unvarnished truth (myself included) was fully employed, and doing what they really wanted, over the period 2009-2012. Just be honest in your CV.


You need to build and refresh your actual skillset(s):

  • Training/Mentoring - You taught lifeguarding. Get back into it, regardless of whether they pay you. Teach at night classes, in mathematics or software. If you are good at exams and study, teach that.

  • Mathematics - What can you apply this to? Environmental studies, public surveys, political parties (electioneering), budgetary/accounting, etc.. Can you teach it? Have you figured out any way to actually apply this pure skillset?

  • Software Engineering - If you were taught this, you can probably teach it. Good programmers are born to code, they need little training. Engineers are created by careful mentoring, and taking the time/effort to accumulate the required knowledge across each sector/discipline. What are your real and established skills in the discipline? Can you design, requirements gather, review code, document? Do you want to learn how?


IN CONCLUSION:

There is nothing stopping you from becoming an integral part of Mozilla, Ubuntu, LibreOffice/OpenOffice, etc. FOSS (free & open source software) projects. Twenty years ago it would take $10k for the computer, $20k for the software license (plus runtime licenses), and additional training. Now it is all FREE.

There is nothing stopping you developing your own application (desktop, online, or mobile app.) that demonstrates your abilities/skillset(s) (and that will lead to gainful employ).

You have asked the question; now you need to move on.

  • 1
    Why contribute to project if they do not benefit you? The OP needs inner motivation. – Thorbjørn Ravn Andersen Nov 1 '14 at 10:37
  • Not a valid question. If you meant '.. if they don't pay you', then: Working begets motivation, begets experience/opportunity, .. begets paid employment. – david6 Nov 1 '14 at 22:15
  • No, why should the OP contribute to a project he does not use himself and does not benefit from? In my opinion he needs all the help he can get - motivation is a big part of this. – Thorbjørn Ravn Andersen Nov 1 '14 at 22:55
  • @ThorbjørnRavnAndersen, you can also look at it from an different angle. While OP is contributing to ANY kind of project, OP will learn (about version control, coding in that particular language and coding with others). That way his programming skills will improve (I hope) and he can show company's his "work" in the field. – Mathlight Nov 1 '14 at 23:04
  • 1
    Sure. I just think that you would get better results by carefully picking a project that actually interests and benefits OP. – Thorbjørn Ravn Andersen Nov 1 '14 at 23:20
1

Besides doing all the work to get back in the workforce, I would suggest that you find something computer related you could pick up as a hobby which you could use to 1) have fun and 2) pick up and improve your skill set at your own pace.

I would suggest looking into controlling things using an Arduino.

An Arduino is a very small and cheap computer which is well equipped for interfacing with other things, like controlling lights or measuring temperature etc. For instance you may want to turn on a given lamp when it is dark, or have a timer on your coffee machine so your coffee is ready when you get up, or remote control your camera so you can do time lapse sequences.

By doing something you actually want, you get the necessary motivation, and you can get something up and running pretty quickly so you get the successes rapidly.

Not the answer you're looking for? Browse other questions tagged or ask your own question.