DEV Community

What are your tips for getting your first programming job?

Ben Halpern on January 14, 2017

Collapse
 
oneearedmusic profile image
Erika Wiedemann

Follow up on your applications! I know a lot of people are hesitant because they don't want to be a bother, want to give due process, etc... but communication is key.

I don't suggest repeatedly sending an email 2-3 days later, but if you haven't heard anything back after a week and you're genuinely interested, let them know you're still looking forward to their response in a quick 2-3 sentence message.

One place I applied for completely lost my information. I followed up, sent a new copy of my CV, and received an interview.

Collapse
 
graffic profile image
Javier Gonel

Human errors happen and your tip is good to double check on the recruiting team.

But beware of places where they "loose candidates". Why are they loosing them? Is that an example of how the company will deal with you as an employee? Is that how they value fellow engineers?

Collapse
 
ben profile image
Ben Halpern

Yeah, I totally agree. The candidate who follows up is going to get more attention and there is no downside even if they end up going with someone else.

Collapse
 
graffic profile image
Javier Gonel

1) Focus
You can apply to every job where you can submit your resume. Or you can target them. Both require time.

You might think that sending (and keeping track of) 100 CVs is fast, but it will take the same time or more than filtering first and then targeting your resume and cover letter. Also I believe you will get better response rates and that will motivate you more.

2) Keep track
Yes, open your applied.txt and keep track of your moves.

2) Understand that you still don't know what you enjoy doing.
I've seen it many times with first timers. They apply, they get the job, and then they realise that they don't like that kind of job. Understand that a company will set a probation period so you both can check after some time if everything is ok.

3) Relax and smile
First time in a big building. First time talking to a person that could be your colleague. Remember to be yourself, even if it is a young yourself, still student yourself. They know it is your first job, don't try to hide it.

4) It is not all about code
You see that dev there? You might spend more time speaking with that person than to your friends. Did you enjoyed the interview with your interviewers? They will ask the same question to themselves.

5) Keep doing interviews.
Remember point 1? Add some extra companies just to warm up interviews.

Collapse
 
gurchiekt profile image
Thomas Gurchiek

Number 5) can be a daunting one. Though it is needed sometimes to get your mind in the right place to feel comfortable answering questions on the technical portions.

I would also say apply for positions that are slightly above your experience level. For instance, if you have 1-2 years of professional experience apply for the positions that are wanting 3-4. Sometimes employers will pick your brain a bit to see what you know. You would be surprised that some will make exceptions. Never hurts to let them know you are interested in advancing in your career.

Collapse
 
craigcottingham profile image
Craig S. Cottingham

Meet ups and user groups. I've gotten more positions in the past 25 years through people I knew than applications I sent in.

Learn aggressively. Present something at a meetup; in my experience they're always looking for presentations, even if it's just a 5-minute lightning talk. Show that you're eager and able to learn.

Collapse
 
polyov_dev profile image
Evan Derby

Make projects! As long as you can show that you've got skill, and you can show that it relates to what the company is looking for, then you might just be of value. The projects don't have to have legitimate value or purpose, they just have to help you develop your skills.

For my first programming job, I hadn't gone to college or gotten any certificates yet: I just had a whole bunch of projects that showed my (future) employer that I knew what I was doing. When they brought me in for an interview, they asked me to explain one of my projects. The same thing kept happening for the other jobs that I got, despite my having some work experience on my resume.

Collapse
 
ben profile image
Ben Halpern

Absolutely. Projects have the bonus of being the best way to learn.

Collapse
 
mattbontrager profile image
Matt Bontrager

Breadth and depth.

Breadth: Have a broad base of knowledge across the spectrum of computer science. Understand that your primary function as a programmer within the context of a larger organization is to solve problems; sometimes very difficult problems, the solution of which may come from any number of different technologies.

Depth: Increase your value to the organization by being an expert in one particular discipline. After previously establishing that you have many different tools in your toolbox (breadth), show your prospective employer that, when it comes to your particular specialty, there is none better.

Admittedly, to develop a genuine expertise, true depth, takes time. Since this is your first programming job, you may not have that time. The way you overcome that challenge: you have to have a genuine passion for your technology of choice. Develop projects on your own to demonstrate your passion.

Collapse
 
ferkungamaboobo profile image
Doug R. Thomas, Esq.

Our team is broader than straight programming, but I think the broad digital realm can get the same suggestions. A big thing for me as a the supervising manager and initial interviewer is narrative -- when you have a good story, a good "this is what got me into digital stuff," or a good "this is how I can use my past experience that isn't necessarily digital to help the team," I feel more compelled to move someone along the hiring path.

An example from me - I connected what I now know as UX to survey design in my political science background, and UX and behavioral conversion rate optimization is a big part of my wheelhouse right now. Making those connections also shows that you're capable lateral thinking - a huge skill in programming, especially in smaller and less-organized teams.

Collapse
 
aaroneiche profile image
Aaron Eiche

My first programming job was at a small company. The thing that really pushed my boss to hire me was that I took the concepts that we'd spoken about and implemented them in a simple example application. It was probably done the wrong way, but he told me later that that had really impressed him.

Having work that you can show these days is a must. Having work that is relevant to the position you're interested in is a leg-up.

Collapse
 
mathur_anurag profile image
Anurag Mathur 
  1. Relocate to the town/city/area of maximum opportunity.
  2. Do not restrict yourself to a particular domain, try to be a generalist initially. Specialise later, with sufficient experience.
  3. Always write a forwarding letter with your resume, which explains your intentions clearly.
  4. Always follow-up after applying. Weekly follow-up is ideal.
  5. During the period when you are searching for a job, keep practicing your programming, problem solving and communication skills. Most interviews are won with a combination of these three.
  6. Aim at the complete spectrum of opportunities. Do not restrict yourself to a set of "hot/in-demand" companies. Landing a job in first go in such companies for inexperienced candidates is tough.
Collapse
 
kwelch profile image
Kyle Welch

You have to be willing to adapt. I remember my first position was a JavaScript position at a point where I was not even sure I knew JavaScript. I was able to land the job by having the willingness to learn and the determination to become better. The position quickly changed to fit my skills and accommodate my strengths will still allowing my to grow. Many years later these are things I still look with new opportunities; the change to grow as a developer and provide value by leveraging my strengths.

Collapse
 
dakebl profile image
Dale Blackburn

A few tips:

Be honest about your abilities.
Be enthusiastic to learn (and be vocal about your desire to do so).
Brush up/start to learn any prerequisit tech.
Be friendly and try to relax.

One of the most understated considerations is often team fit, and the is arguably one of the more important qualities that a team would seek. Practice your soft skills and set realistic but positive expectations into the recruitment team.

Your goal is to be enthusiastic, optimistic, and above all, someone that people would want to work with.

Collapse
 
hamatti profile image
Juha-Matti Santala

People have given great advice on having hobby projects and following up on the applications so I won't go into them. My advice is to network and be active: attend hackathons and meetups, show that you are willing to learn and take on new challenges.

It can be intimidating first (I bailed out of my first hackathon after 3 hours of not doing anything) but you'll get there. Many teams are happy to take a junior into the team to teach, just be up front about it. Meetups are great ways to learn new things, meet new people and get your name/face into the minds of people.

Collapse
 
oscherler profile image
Olivier “Ölbaum” Scherler

Under 22 years old, diploma from a school that didn't exist two years ago, ten years of professional experience, five years experience in technologies released a year ago, skills of a senior, salary expectations of an intern.

Collapse
 
rod750 profile image
rod750

Apply even though you do not meet the requirements. One requirement of my first programming job was have a degree in computer science, I didn't have it but I got the job because I showed that I had the skills.

Have passion to learn and display it in the interviews. I interview programmers and those who get my attention are those that get excited learning new things, and demonstrate to have skills to learn fast.

Write code: personal projects, experiments, every little piece of code helps to show your skills and what are your areas of interest.

Collapse
 
arggrande profile image
Adam Grande

Use whatever opportunities you can to build your experience.

Are you entering things manually into a spreadsheet? Build a little VBA app that'll speed up your data entry.

Do you need to do reporting on some spreadsheets? Write a macro (or a console app) that'll take all that information and spit it out into something coherent.

I think its super important, especially in the early days, to take whatever you can. It doesn't need to be a massive custom build app in the latest frameworks (though hell, if you can do that good luck to you!). It just needs to be something demonstrable, where you can prove you've learnt something, and that you're willing to be inventive.

Another thing you can do is to reach out to not-for-profit/charity organisations, and see if there's anything small they need built. A lot of the time, these organisations are strapped for cash and will appreciate any assistance. Before starting any work you still probably want to talk to a lawyer and ensure you're not signing yourself up for trouble.

Collapse
 
grappleshark profile image
Tanja Lichtensteiger

There's a lot of good advice on this thread already, so I will just say: show willingness to learn more. Show that you want to invest in your self development, that whatever tools are thrown at you that you're open to them and spend time learning (and failing). Enthusiasm for this is attractive to an employer. I've hired people who didn't even fit 70% but I could see the potential to be developed.

Collapse
 
mikengarrett profile image
Mike 🤘

Focus on learning what it takes to contribute to a team or community of people from different backgrounds. Being a good developer means being able to translate ideas into functionality and being to communicate the challenges with that process to someone with no technical knowledge.

Collapse
 
isaacdlyman profile image
Isaac Lyman • Edited

I won't give any specific tips (a lot of good ones have already been shared), but I'll tell you how my two brothers and I did it.

My older brother started coding in high school. He was really good at it and picked up a few gigs before he went away to college. Later on, he got a job as a QA Engineer (if there was ever a job more in demand and less in supply than software development...) and after a year or two writing Selenium test suites, his company gave him a spot on the programming team.

I also coded a bit in high school -- I wrote programs in BASIC on my TI calculator to make my calculus homework go faster, and messed around a little with Visual Basic, Dark Basic, Python, C++ and a couple others -- but I wasn't nearly as prodigious as my brother at that point. In college I got a job doing technical support on campus, with no qualifications other than "I'm good with computers." Student jobs tend to have lower barriers to entry. There was a lot of downtime at that job (there was a period of, like, two months where nobody was opening strange email attachments; it was great). My coworkers watched Netflix and surfed the web during downtime, but I decided to spend that time learning HTML, CSS and JavaScript. I bought a domain name and built my personal website.

After that year I took two years off to serve as a Mormon missionary, and when I came back, the software boom was in full swing. I couldn't pass any coding interviews, but with my tech skills and the courses I'd taken toward an English degree, I got a job as a technical writer for the university's online education department. I shared a cubicle with some of the QA engineers, saw a lot of the work they did, and realized I'd be good at it. I offered my help to their team lead, who was surprised but offered me a couple of tasks to see if I could figure them out. (I could.) Whenever I had time to spare from my regular work, I would help out the QA team, and eventually I changed my job title to "Technical Writer / QA Engineer". Not much later, I changed jobs to another department, doing QA engineering for a higher rate per-hour. I worked hard there (in the words of my supervisor: "The first QA that's written any useful tests") and before long they offered me a spot on one of their web development teams. And a few months later they moved me to the architecture team.

A few months before I graduated, my brother referred me to a startup, who offered me a part-time position, transitioning to full-time after graduation, at almost double what I was earning. I said yes and I've been with them ever since. So much for my English degree.

My little brother has always been good with computers, but never did any coding. University wasn't for him and he was struggling to decide where to take his career. My older brother and I encouraged him to try programming; for some reason we thought he might have a genetic predisposition for it 😉. So he signed up for a local code bootcamp. He just graduated from it a month or so ago, and he already has a paid internship lined up with an awesome company...as a QA engineer. And there's a good chance they'll take him full-time once the internship is over.

I guess the three of us have walked a very similar path.

Collapse
 
triplejdev profile image
Rhymes Toasterface

I would say to remember that as well as finding a job (that you may need BADLY), you need to find the right job.
If you’re looking for your first job, there must be a reason? Why do you want to do programming? Use the same thinking to find the company that fits. It may be tempting to take the first job to get a foot in the door of the industry, but quickly that job could become a run of the mill daily grind.
If you can, hold off. You’ll know the right one when it comes along.

Collapse
 
nixcraft profile image
nixCraft

Not a tip, but here is how I got my first gig. When you are in school start contributing to your favorite open source projects. Take part in mailing lists. That is how I got my first gig. It was a simple Perl script help that leads to getting me an interview and later job too. I hope this helps someone.

Collapse
 
erebos-manannan profile image
Erebos Manannán

When applying for your first job, you should accept that no matter how good you might be compared to your school mates or similar you are likely far from being a good programmer. However, there is some hope with proper work experience for you to become one.

  • Figure out what kind of things make you excited, do you want to work on web frontend, server-side applications, desktop applications, OpenGL, C#, or what?

  • Try to find some companies that you find interesting and are working with the things that make you excited.

  • Figure out from their job applications, blog, application code, GitHub, etc. as best you can what technologies they are using. Pay attention to any extra tools they mention in their job applications as useful to know for the job.

  • Try to learn some of these technologies, and look into alternatives. Publish your code in GitHub.

  • Try your best to pay extra attention to things that will be important when working in teams: README.md with clear instructions on how to use the project, clean code with clear structure, automated tests, decent version control practices.

  • Start sending out applications with the best CV and introduction note you can come up with, spend time looking up templates you like and actually filling in interesting information. Keep your CV down to 1-2 pages. These can gladly largely be copy & pasted, but mention why specifically the company you're applying to seems interesting to you. Make sure you include links to your relevant and most impressive GitHub projects.

Now, if you do manage to get yourself an interview they will not likely be impressed by your existing knowledge, but passion and drive to learn can be very strong indicators for success in a working environment.

It is very common, especially for junior positions, for the companies to ask for you to perform a small programming test. You should expect to spend a few evenings on that at an early stage in the interview process.

Prepare to be questioned about every decision in your code, and people pointing out bugs and such. They will likely want to hear your reasoning to see how much you only copy & pasted other people's stuff without understanding it.

Hiring a guy who has no practical work experience is always a big risk and an investment, they will not want to do it unless it seems you are worth it so do your best to convince them of your interest in learning from them.

Collapse
 
peazzoni1 profile image
Aaron Peazzoni
  1. Know the fundamentals of the stack you want to work with. JS, HTML, CSS etc. Also know some SQL. But don't worry about blowing them away with your knowledge.

  2. Have some projects on GitHub to reference. But keep in mind there's an 80% chance the interviewer won't even look at them. They're really just for you...but in a good way.

Try to make one project a volunteer job for a small business. It can honestly be anything as long as you write some code for it.

  1. The hardest part - find a recruiter or dev that's willing to go to bat for you for new jr dev jobs. The ideal situation is a team that wants someone who's motivated and willing to learn on the job. And that they can get at bargain. Those jobs are out there but often not advertised. But if you connect with the right recruiter or developer, they'll get you in the door to interview.

  2. For the interview, you really only have to answer 3 questions for them: 1) can you do the work? 2) will you do the work? 3) are you a good fit with the team culture?

I also wouldn't necessarily assume you'll get overly complex technical questions. Instead you might get simple questions that may be hard to answer. E.g. "What happens when type in a URL address and press return?", or "define what an object is in JS."

When you feel like you're ready for the first job, focus most of your energy on #3. And repeat this phrase once a day: "it's just a matter of time."
Because it is.

Collapse
 
henrebotha profile image
Henré Botha

Just have something to show! I don't have a relevant degree so I have had to convince potential employers in other ways that I have the skill set, and not having substantial code of my own to show them has been a real difficulty (in places this cost me opportunities).

Better yet, have experience. Internships teach you a lot.

Collapse
 
antonfrattaroli profile image
Anton Frattaroli

Interview: You're in it for the long run. You're super excited to learn and code how they want you to do it. You're a self-starter. You want to be involved in the culture and be friendly with everyone. Make sure you have answers to questions like "Describe a conflict and how you resolved it", and "What would you do if you couldn't meet a deadline?"

Once you have the job, you'll likely be completely lost for a while until you have a grasp of their codebase. Model your new code on existing code. Learn to progress despite shallow understanding. Work on something else if you're stuck - don't stagnate.

Collapse
 
sherpmc profile image
sherp

I'm 16 and just got my first programming job. Granted, it doesnt pay much @ 14/hour, but it's something.

For me was, just keep asking, keep applying, and don't give up.

Collapse
 
isaacdlyman profile image
Isaac Lyman

That's amazing. Can I ask what got you into programming in the first place? I'll often talk to a teenager who I think has awesome aptitude for programming, but I can rarely persuade them to get serious about it.

Collapse
 
jrecas profile image
JReca

There's no "too big" or "will not care" place. There are far more companies willing to accept a willing inexperienced programmer than one thinks.

Collapse
 
ben profile image
Ben Halpern

Yep, even if the job description doesn't call for junior, if you come off as committed, hard working and easy to get along with, you'll be strongly considered.

Collapse
 
k2t0f12d profile image
Bryan Baldwin

Read code, write code.
Contribute to high profile, free software projects.
Fix bugs.
Find a problem and design a program that fixes it.