Homepage of David Fisher/tibbon

Programming music and travel

How to Find Your First Programming Job

So you’ve been spending time learning to code, either through teaching yourself or a more formal program, and you’d like to get your first job but you don’t know where to start. Here’s my advice for how to stand out from the pack.

Put together your resume

I worked as a headhunter for a while hiring legal staff. After seeing thousands of resumes, I realized that most people have no idea how to put together a decent resume. There are countless blog posts online describing how to write better resumes and I won’t attempt to replicate those. But here’s a few tips:

  • Make it a single page unless you’ve got a PhD or over 10 years experience. Since this is your first programming gig, make it a single page.
  • Whitespace is awesome. Choose your fonts wisely. This isn’t a good time to use Comic Sans.
  • The templates that Word or whatever give you are terrible and encourage overly crowded resumes. I’ve seen too many of these.
  • Less fluff, more content. I want to know what you can do and how long you’ve been doing it.
  • Less is more. I’m going to glance at your resume for 15 seconds on first pass. If there is too much stuff, I might miss the important parts.
  • Skip personal statements as they are always fluff.
  • Make sure your contact information is on there. Just phone & email. Address is optional- I don’t put one on mine.
  • Listing Microsoft Office as a skill never helps anyone. Think about what real unique skills matter and list those.
  • Send your resume as a PDF. They view well on almost all devices and retain formatting very well.
  • If you know a foreign language well, you should definitely list it.

Things that turn me off when reading a resume:

  • Huge lists of acronyms. I saw a resume that had the following list: IGMP, RTP, RTCP, DHCP, NTP, NAT, SNMP, SONET (EoS), ATM, MPLS, BGP, RIP, WDM. Those are great things to know, but even as someone who understands those… it isn’t good to read.
  • No whitespace. Everything crammed together.
  • Non-relevant jobs. The grocery store you worked at when you were 16 isn’t interesting.
  • I personally don’t care about your GPA. I’m not going to call the University and check up on this, so you could have put anything. Or maybe you took easy classes. Who knows?
  • I know that you’ll give me references if I ask for them. You don’t have to put that you have them on your resume.
  • I probably care less about your education than you do. Some of the best and brightest people in the industry were more of the “Turn on, tune in, drop out” people. Dedicating 6 lines to this probably isn’t helpful.

My personal resume is a bit non-standard, but it gets amazingly fast responses from potential employers and clients.

Cover letters, meh

I don’t like cover letters. You’re sending me a resume. I know you’re interested, and I just need you to confirm which position you were looking at and maybe your general availability. Anyone can write that they are a responsible team member who will contribute a lot to the organization. I skim the cover letter, if I read it at all. Probably the most important thing you can say in a cover letter (since it doesn’t fit elsewhere) is if someone that both of us know has referred you to the position.

Get on LinkedIn

I’m not in love with LinkedIn either to be quite honest with you, but it can be pretty useful for job-hunting. The main thing I use LinkedIn for when hiring is finding out who in our network we have in common. If you’re in my city and we have zero 3rd degree connections, I’m wondering why you’re not in the development community more (meetups, etc). If we have connections, then I can ask them about you. LinkedIn is a nice place to also have other more filler-like stuff that clearly doesn’t fit on the resume. You can put stuff about your interests, group memberships, papers you’ve authored, leave every prior job you’ve ever had on there, etc…

Github is your real resume

Github allows me to read your code. With this, I can realistically see what languages you’re comfortable in, your coding style, if you write tests every time, contributions to the open source community, how well you document things, and how well you work with others. This is far more valuable than anything you list on your resume, which I largely have to take your word for. It is an amazing tool, and for the most part its free!

Projects

Having projects shows me that you’re creative, driven and can ship code. They don’t have to be huge or earthshaking, but if they are that doesn’t hurt. So make a site that shows a different Harlem Shake video every hour, or tracks how many licks on average it takes to get to the middle of a toostie roll. Having a project (or ten) that you’ve created and I can see is probably of similar weight to seeing Harvard on your resume.

In fact, I’d rather hire someone who is self-taught, contributes a ton on Github, and has lots of cool side projects than someone who just has a nice cover letter and a piece of paper from Harvard and nothing else.

Network, network, network

A mediocre developer who networks nonstop will probably have more job offers than an amazing developer that no one knows about. Get on Meetup or a similar site and find out what is happening in your area. Most events are free, and if you’re totally strapped for cash and its a paid event let the organizer know that you’re looking for your first job and they will probably let you in for free.

On Recruiters

Non-corporate recruiters (headhunters) are a mixed bag. If you get an hourly job through them and you’re getting $15/hr, they are probably charging the company $28/hr. If you get a job offer for $80k, they will want a $20k check from the company for placing you. As you can see, this significantly increases the cost of hiring you and makes you less competitive vs someone who was going directly to the company.

Also, many headhunters are filling jobs that they are having a difficult time finding talent for. Sometimes this is because they can’t find someone with a specific skillset (but you’re new to this, so probably don’t have a terribly unique skill) or the company is boring. This isn’t to say that you should never use a recruiter, but know that 90% of them will be a waste of your time.

Instead of talking to recruiters, network.

Interview time

Don’t be afraid to say you don’t know. It is far better to admit that you’re new to this, and that you’re willing to learn than trying to fake it. If we’re at the interview stage, then a good portion of what I’m sizing up is if you fit overall with the company. The above items already mostly validated your skills for me. Find out if the company is the right fit for you, asking appropriate questions to find out if it is a good match. Express why you’re passionate about coding, and what challenges you enjoy.

Summary

When I’m hiring a developer, new or experienced, it comes down to just a few things. I want to find someone who is interesting (projects), capable (already knows or is willing to learn), and likable (interview time). It is worth noting that I am not every hiring manager, and some care about things that I don’t care about- you can’t please everyone.

For you, even if this is your first job, the good news is that there are a ton of jobs out there for developers in almost every medium-sized and larger city. And there are plenty of companies that will accept remote work, but I wouldn’t suggest doing that for your first job.