Building a Successful Resume for CS Students
Like it or not, when it comes to deciding which students to interview, most companies are still looking at just one thing: resumes!
Unfortunately, a lot of resume advice is outdated, and many templates are designed for people with years of professional experience. This post will focus on how to move beyond the standard advice to build a great resume that highlights your relevant experience, whether it’s from a traditional job or not.
Before we start, we need to discuss how companies use resumes in the hiring process.
What happens when you submit a resume?
At most medium-to-large companies, your submitted resume will first go to a recruiter. Companies have limited time to spend on interviews, and one job of recruiters is to find only candidates who are likely to be hired.
Recruiters are nice people who can help you a lot, but they are not very technical. (In fact, one recruiter for a large tech company told me that none of his colleagues have taken even an intro-level class!)
Since they’re non-technical, recruiters use pattern matching to decide who to invite to interview. For example, some patterns might be:
- Students who have prior internship experience are likely to get an offer
- Students who attend highly selective colleges are likely to get an offer
- Students who have experience in X, Y, or Z technologies are unlikely to get an offer
- Students who have only in-class experience are unlikely to get an offer
- Students who have experience in only Java are unlikely to get an offer
Another thing to know is that recruiters need to review a lot of resumes, so most recruiters I have talked with say they spend less than 1 minute reading each resume.
What pattern should you match?
Most students follow outdated resume advice which tells you there’s a single standard that all resumes follow, almost as if you’re filling out a government form: objectives, bulleted skills, work history, education, hobbies/other.
This advice is intended to help recruiters pattern-match you as “a responsible college student”, and it originates from decades ago when that alone was enough to get a job. Unfortunately, not all responsible college students turned out to make good programmers! The technology industry now cares about technical ability.
This is good news for you, because if you’re reading this, you probably have the technical ability, you just need to show it. To do that, you likely need to be a little more creative than the decades-old standard form resume.
I’m not saying this is arts-and-crafts; your resume will still need to look sufficiently resume-like, but you have a lot of flexibility about which content you include.
How to improve your resume.
If you’re feeling demoralized, here’s some good news for you: most students’ resumes are bad. With just a little bit of effort, you can improve your chances a lot.
With what we have learned about recruiters, let’s set some goals. You want a resume which:
- Fits you in the pattern of “has the relevant technical ability”
1. What’s the most relevant information?
I find that a helpful place to start is to highlight what information on a resume is most relevant to the job. Remember that recruiters are both non-technical, and short on time. Removing the least relevant information will make it easy for them to skim your resume and see the information which helps them pattern-match you as “relevant experience for the position”.
Let’s take my resume from 2010 as an example. Here’s the real resume my school made me create. What information do you think is relevant?
Here’s my take:
Take a look through your resume, but don’t make any changes just yet. Try highlighting or writing them down in a notebook.
Here are some irrelevant things I’ve commonly seen on student resumes:
- List of unrelated or obvious courses, like Honors Calculus or CS101
- “Microsoft Office Skills” (if you can write code, this is implied)
- Interests and hobbies, especially non-technical ones
- High school education or earlier
- Unrelated work history
- An objective statement, especially if it’s very generic
(If you’re a “non-traditional” student working on your second career, extensive prior work history isn’t necessary, but you may want to include it in some way. Many companies appreciate candidates who have practical experience if it’s in their industry.)
2. What’s missing?
I’m going to assume if you followed the standard resume format, you already mentioned your school and work history. But are there things you didn’t include which suggest you have the relevant technical ability?
Here are some common things I’ve seen well-designed student resumes include:
- DETAILS of technical project(s) you worked on at a job.
- DETAILS of technical project(s) you worked on in school.
- Open-source projects you’ve created or contributed to.
- Other personal projects.
- CS-related clubs or student organizations.
- Publications or research experience.
- Hackathons or other competitions.
- Leadership experience.
- Links to Github and/or LinkedIn.
Write these down in your notes too, but again, don’t add anything to your resume.
Combine your lists from parts 1 and 2 in priority order. (Once again: in your notes, not your real resume!) Prioritize from the perspective of a recruiter, what is most likely to put you in the bucket of “relevant technical ability” for the job you’re applying for?
At this point, you should add back in the basics: most employers will still want to know the name of your college, your major, and your expected graduation year. (You can put them near the bottom of your list if you think it’s not relevant.)
If your list is feeling short, that’s ok! You can start adding back in anything you excluded from step 1.
4. Make it look like a resume.
The final step is to turn your list back into something that looks close enough to a traditional resume that it’s easy for recruiters to skim. That means you’re limited to:
- One page (!!)
- Name and contact info at the top (or left column)
- Includes education and work history (if any)
- Bullet points
Although it sounds limiting, here’s what you can do:
- Spend more words/space talking about things that are higher on your priority list.
- Use bold and italics to emphasize. (You can also add a bit of color, but make sure it still looks good when printed in grayscale.)
- Add new sections! You’re encouraged to create new sections if they’re relevant.
Here’s an example resume I’ve created using these techniques:
Notice that this resume doesn’t look particularly fancy! It still looks very much like a resume, but the information which suggests this person fits the pattern of “has the relevant technical ability” is extremely obvious, and takes up most of the page!