I have a friend who wants to switch careers and become a programmer. He has been studying and practicing and is pretty close to making the switch. A few weeks ago, he happened to meet a RCG (recent college grad) who is looking for his first programming job. The RCG was telling my friend about how frustrated he is, because he does not have a job lined-up yet. I was pretty surprised to hear this. Mostly because I know that the demand for programmers is high. Nearly anyone in IT will tell you that finding good programmers, is pretty tough right now. The demand is definitely higher than the supply.
So, why is the RCG having such a hard time finding a job? My friend pointed-out that there may be a significant gap between the demand for experienced developers and entry-level developers. I had to acknowledge his point. The job market for RCGs can always be tough.
The challenge for RCGs
So what is it that makes it so hard for a new programmer to find his first programming job?
- Most programming teams know that new programmers still have a lot to learn. Customers don’t give partial-credit for incomplete assignments.
- Breaking in a RCG is a pretty big investment and yields a net loss in productivity for the first 6 months
- Breaking in a RCG properly, requires some skill and patience from his mentor. If you mess it up, you will get no ROI.
- Roughly half of all RCGs will leave their first job after 1 year, because they took the job only to gain some experience.
That first year, is nearly a throw-away for both the RCG and the employer. It is an economic mote that lies between you and your career. So, as a RCG who is trying to land a job, you have to figure out how to overcome these obstacles. Hint: you are on the right track by simply reading about how to overcome this, as opposed-to the folks who sit and wonder. To move forward, you must acquire skills for job-finding (and winning).
First of all, before you go any further, you really need to set your own expectations properly in your mind. As I have mentioned, your very first job might not span your entire career. So, let’s just get that concept out of the way. Also, considering the other deterrents for a company to hire you, it might be more fair if you were to pay your first employer for the experience that you will gain and the productivity that they will lose. Seriously, some gratitude and humility (on your part) is in order.
Okay, now let’s talk about how you overcome the hurdles, and land your first job. Here is your list of strategies and techniques:
- Get your foot in the door – My first IT job was as a software tester. I had a degree in engineering from U Mich, but I did the testing job to get my foot in the door. Once I was in, I eventually got pulled into a software dev project. Btw, during an interview, your interviewer might not like it, if you say that you intend to move-up/move-on asap. The person who is hiring you, may have to train you. Maybe this position has a real need and they need someone to take it seriously and not just bounce-through in a month. You need to promise to do the best job you can, at the task that is assigned to you. Let the future take care of itself. During an interview, focus on “the now”. You won’t see what the future brings, if you can’t get through today.
- Be willing to do some free work – It feels demeaning to do free work, especially if you hear about others who are making bank, right out of college. However, take the free work very seriously. Get your head around the fact that you are paying this company thousands of dollars for the experience. Work hard on it like it was your first job. Earn an “A” on this project. Then, put it on your resume and bring some screen-shots and source-code to prove that this project is not a joke or somebody else’s work. It is only relevant as a first job, if you treat it that way.
- Persuade someone to give you a shot – When you get into the interview, be ready to talk some smack and brag a little (without overdoing it). The phrase that should be going through your head is this: “I am ready to do some really good work. I can do this. Put me in, coach!”. If you are asked about your opinion of any technology, your response should be “I love it, if you do”. Seriously, they want to determine if you are too opinionated to be molded. Your first job will be: “have an open mind and learn”. Convince them that you want to earn an “A” at their company and you are ready to study and work hard.
- Networking: Talk with other developers, neighbors, friends and family, uncles, etc. and find out who might be hiring. Be willing to maybe beg a little – This has worked on me before. I’ve met n00b programmers who were brilliant and just needed a shot. I persuaded my boss to let me bring-in this new guy. It was a lot of risk for me, but it paid-off because I believed in the guy and he lived-up-to his claims. It worked for me and for the RCG. Win/win.
Without a doubt, there are four things that you need to do to prepare for landing your first programming job.
- Your n00b resume will be very different from a Jr. programmer or Sr. programmer resume. So, focus on making it look like one. Do not try to represent yourself as something that you are not. When you become a Jr. or Sr. programmer, scrap the n00b resume and start over.
- Start by doing a web search to find some nice examples. Make sure your resume looks nice. Spend 4-12 hours making it. Yes, you read that correctly. Just keep reading it and tweaking it. Make sure that it looks very very attractive.
- Don’t bother with listing a bunch of jobs in an un-related field of work, unless those other jobs have specific relevance to your new job. For instance, I was in the US Army from age 18-21. The only skills that were relevant were my experience with electronics, troubleshooting and security. My rifle marksmanship and excellent driving record were not. So I didn’t mention those.
- Do: list all of the technologies that you have learned and your (relative) experience level with them. Do not: over represent what you can do with those technologies. Do not: list stuff that you HATED to work with, unless you are willing to outgrow those feelings and learn to love it instead. (for example: COBOL and Mainframe assembler)
- Ask three (successful) people to review your resume. Ask for suggestions. If the suggestions are stupid, (such-as: they are outdated in comparison to online examples) then ask a few other people what they think about the whacky suggestions before dismissing the ideas.
- Job search
- Decide where you want to live, or if it doesn’t matter (hint: location flexibility can really help, a lot, but you may have to move to another city, or incur an hour commute, for a year or two, so acknowledge the cost and logistical challenges of that, but don’t just reject it)
- Dice.com is probably the most relevant place to search. Monster.com is pretty good too. There are several job search sites that share data because they are owned by the same company. So you may see a lot of duplicates. Oh, I nearly forgot http://careers.stackoverflow.com is pretty good, but it is mostly for experienced developers.
- Contact some recruiters, placement agencies, consulting companies, etc. Once they get your resume, they might be able to get you into some places that you didn’t think of. Some popular companies like this are: Accenture, HP (formerly EDS), IBM, RHI. There are probably 100 companies like this with different names in each town. Ask around.
- Apply for 5-8 jobs per week, until you get some interviews. Once you get 3 interviews, stop applying until the interviews are over and you hear the results. Repeat as necessary (forever, if necessary).
- Research – Study for your interview just like it was an exam. Know what to expect and know what to say and what not to say.
- Interview questions – find at least 30 interview questions and practice them. Maybe even make flash-cards to prepare. No, I’m not kidding. Just like a speech for a college class. Stand up and practice your lines until they are natural. Then practice a few more times.
- Research each place that you are interviewing so you don’t show up and ask stupid questions about what the company does, etc.
- Prepare a few good counter-interview questions. Don’t just come up with your own. You might come up with horrible questions. Write down your questions and stick to your lines.
- Get one nice suit, shirt, tie, socks and shoes. $400 to $500 might seem like a lot, but it is a drop in the bucket, compared to your new salary. Make sure it fits and looks nice. Buy some breath spray. Buy a leather organizer or attache’ to hold a copy of your resume and a nice leather-bound notepad. Do–not show up looking sloppy or cheap.
- Use goog/bing maps to find the place, several days in advance and determine how long it takes to get there. Be a stalker for a day, and drive from your house to the parking lot on the day before, so you know you won’t get lost.
- Get up early and have a very light breakfast: toast and butter. Don’t have an empty stomach or a full one. Your nerves might make you want to barf. I recommend eating two hours before your interview and only drink water. You can go back to normal eating, after the interview.
- Get there 20 minutes early. Stay in your car. Check your appearance and review your resume. Practice your lines again.
- Walk in the lobby 5-10 minutes early.
- Be polite. Shake hands firmly. Make eye contact. Show good posture. Try to relax a little and be confident.
- “Do you have any questions from us?” Don’t ask about salary, or benefits. Do ask: “What will I do here during my first month?”, “What opportunities and challenges lie ahead for me?”, “Which technologies are you using?”, “How aggressive are you at keeping-up-with technology?” – Always ask “How soon do you intend to fill this position?” and “How long until you make a decision?” “How soon should I expect to hear from you?”
- “Anything else?” Yes, mention that this is your first interview and you were super nervous. You weren’t sure how this was supposed to go. How good/bad did you just do? Do they have any suggestions for you. Tell them that you really appreciate their advice and you hope to get better at interviewing. And then thank them again, and smile as you look each person in the eyes for a few seconds.
What to expect
- You should get a call within one week. If not, then you should call them and say “I’m not badgering you, I just want to keep in touch”
- Some places are indecisive. Don’t wait forever.
- When a place hires you, they will want you to start within a week. Be ready to actually start right away.
- When you land that first job, you will feel awesome and a little nervous. Don’t let it go to your head, and don’t worry about nervousness. You will be fine. You really will. I know what I’m talking about, so relax.
- Things will start out really slow. Much slower than in college. Don’t worry. They will get really busy after 4-6 months.
- Be ready to volunteer for any new ideas that come up (in your department). Once your schedule is full, ease-up on the volunteering, until you earn a few wins.
If you don’t land a job in your first round of interviews
- Apply for another batch (5-8) immediately.
- Also, evaluate yourself and identify two or more things that you need to improve so you will do better in the next round. Practice more. Revise your resume. Ask a friend to practice-interview you and give feedback.
- Never give up. Keep trying new things.
- Get resourceful. Ask others for advice or ask them to introduce you to someone who can help. Try to humbly ask for advice from your dad’s friends and your friends’ dads. Also ask relatives, neighbors, college advisors (where you just went to school). Ask about any coop programs or internships.
- DO NOT get a job flipping burgers or selling used cars. Stick to your line of work or something very close.
That should do it. If you still can’t land a job as a programmer, after doing all of this stuff, then leave me a comment at the bottom. I love solving problems.