How to get your first Dev job with no experience?

I really wanted to write this article as I see so many young developers struggling with the thought of getting their first dev job.  I was in this same boat 7 years ago. I was a late comer to the tech industry and had many other jobs before entering IT.

It is very hard when every job add says at least 2 years experience and has a list of “proficiencies” a mile long.  These are more designed to show you the areas of tech the position(s) may cover do not be put off by these. People who have the experience and the full list of proficiencies is what is known as a unicorn.  Have you ever seen a unicorn?

The truth is in most developer positions you end up working on something you have never touched before but may have similar traits to something else you are more familiar with.

I feel like the focus is wrong, the questions are always what language do I need to learn or which frameworks do I need to know?

Obviously you need to know some stuff entering the tech industry as a developer but I assume you learned the fundamentals in University or other online courses already.

Why would a company bother hiring someone with no experience?

Say it with me, because they’re cheap!!  If a company gets the right candidate who is a great learner and hard worker they can teach them the skills required no problem and get a good year or two out of them before they ask for a pay rise.  But what you get is invaluable, you get exposure to project management and work methodologies (Agile,SCRUM etc etc), team work and collaboration experience, obviously your technical skills will improve, possible exposure or at least awareness of system architecture, multi environment systems, system infrastructure, DevOps and the list goes on.

My first job I took paid $45k including Super Annuation (401k for US readers).  For a Dad of 2 that was not a lot of money, but I wanted the experience so much.  I gained so much experience and doubled my salary in 2 years.

The money doesn’t matter, the experience does.

Tech skills by themselves will not get you the job

When an employer is looking for someone to join their organisation, they need someone who can work as part of a team.  Therefore they need someone who can communicate clearly.  They need someone who can deal with stress as the job can be stressful.  They need someone who can say “Hey I’m new to programming but I understand the basics and am willing to listen and learn from my colleagues”.

Companies need someone who can be repeatedly told “Your code doesn’t work” without getting angry or throwing a tantrum.  They need someone who will fit with their culture, which you wont fit with every culture but hopefully will fit with most.  You need to show them you will be an asset to the office, you need to show them you will be easy to deal with.  You need to show them you can maintain a conversation.

Only after all that does the tech part matter.

 

How to land the interview in the first place?

The first impression you make on a potential employer is in your application letter

 

Spend lots of time researching and practising writing your application letter.  Spend a little less time learning every programming language under the sun and work on your application writing skills.  You need to demonstrate good communication skills as you will be writing lots and lots of emails to lots of different people most likely.  You will be writing developer documentation which needs to be clear and concise.  The person reading the application needs to be able to see that you can communicate clearly in writing.  Demonstrate your personality and use polite language in your application letter.  For a no experience developer include how much you love learning and are excited by programming and the industry in general.  If you have a couple of small projects in Github or Bitbucket etc mention those in your resume.

Have one or two complete projects in your repo if you want to show projects, small but complete.  Do not spend hours and hours on these, demonstrate you understand basic concepts (Classes, methods/functions, conditionals, loops etc, possibly crud operations or API consumption if you feel like it, HTML and CSS if its relevant to the position you are going for).  Again it wont be your tech skills that seal the deal on a job application but good to demonstrate basic understanding of concepts.  Take a look at freecodecamp or something similar for project ideas.

 

Taylor each application to the specific employer

Do not use generic content within an application and send it to many employers.  You need to answer the question “Why do you want to work for our company?”.  Of course the honest answer most of the time is “Well I just need a foot in the door so ill take what I can get” but in this case I wouldn’t use that response.  Google the company see if you can find out what they do and find a way to genuinely say you are interested in what they do.

 

Use a business letter template

Google how to format an application letter and format your application letter as a business letter.

 

Apply Anyway

Apply for all the jobs even if you don’t have the long list of skills asked for. If you are not quite right for that position they will have your info for future projects where they may need graduates/juniors.

 

Add a picture to your resume

When an employer gets a resume its a lot easier when they have a face to put the facts to.  Add a nice smiling picture at the top of the resume.

 

How to prepare for the interview(s)?

Usually tech companies do two or three stages of interviews, the first is a general get to know you.  This is where you appeal to the people interviewing you.  They see if you are going to get along with the rest of the staff.  They are checking what your attitude is like.  They are checking how you present yourself and how you will present yourself to customers or stakeholders.

The interviewers will also be wondering how you have been spending your time, if you spend time making things and learning in the areas they are looking for.  All they are looking for is a genuine interest not an expert.  When companies interview a graduate or someone with no office experience they know what they are getting so don’t try and trick them just admit to being inexperienced but have a passion for programming and will be willing to learn.  Be humble, take onboard anything they have to offer.

 

Ask Questions!!

 

Research the company before your interview. Ask questions which let them know you researched the company. “So I see you worked with X Company what did you do with them?”  Interviewers want you to ask questions.  They will usually ask you at the end of the first interview after they have told you all about the company and what they do, how many staff they have, if they are a big or small company, how the company came about and the company goals etc.  They want to know you are interested in the company and have listened to what they have told you about the company and are now curious about the finer details. Be interested as they are telling you about the company and respond every now and again with “oh ok I see, 600 employees wow that’s quite a lot”.  Do not sit like a stunned mullet with no feedback.  If they say something funny then laugh, show your sense of humour and add to the humour if you can.

Example question: So if I was successful what would my day to day routine look like? Prepare questions beforehand.  Research methodologies like AGILE/SCRUM, Waterfall or any others they mention in the job ad or the recruiter tells you about.  This is just again so you have some idea when they ask you “Have you heard of AGILE?” which they will (I use AGILE as an example because its common these days).  These are ways and processes of working and important to know if you are working in a team.

 

Second Interview

Usually more tech oriented, but before hanging up or leaving from the first interview, ask all the questions you need to ask.  If they mention a tech challenge, ask as many questions as you can about it.  Its ok to ask, do not pretend you understand if you don’t.  Most interviewers are wanting you to succeed they are not trying to trick you or out to get you as it can seem sometimes.  Interviewing is a draining process these people have to do as well as their day job and they want to find the right candidate asap.

Again if you are asked to build something, make it solid and not full of unnecessary fancy code.  In real programming world no body cares about the worlds fanciest code, they care if it works.  Now on saying that some make sure you display that you are aware of general conventions around naming of variables, functions, classes etc. Comments are nice and general readability is good but take the simplest route from A to B is what I mean here.

Third Interview

Much like the first but most likely with a member of People and Culture team or something similar or your potential new team lead.  Checking work eligibility maybe salary expectations.  “What is your salary expectation?”, its ok to say “I’m not sure” if you are not sure.  You can ask “Have you hired someone similar in the past?”. They will usually then throw out a number and it will be up to you to negotiate this but without experience you don’t really have too much wiggle room.  If you have gotten to this stage it means they are very interested and want to get you onboard but they will not pay very high as they understand what they will be giving you will initially be better than what you are giving them.

If you are going through a recruiter you may not get a number thrown at you and the recruiter will negotiate for you.

 

Conclusion

As you can see the process has very little to do with your technical ability when applying for a graduate position or similar.  This changes when you have experience and a body of work to support you or are applying for more senior positions but for your first job focus on your people skills, communication, application letter writing.  Also the first job I was hired for, I hadn’t even finished my degree yet so start practising your application skills asap, you never know what can happen.

 

 

 

 

Daniel

I am a web / software developer and I enjoy writing and talking about all things tech and a lot of things non tech including music, golf, motorcycles, video games. I try and keep up with all the latest news and movements in the web space and content marketing. Share your stories with me.