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 its 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 theyre 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 theres a single standard that all resumes follow, almost as if youre 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 youre 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.
Im 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 youre feeling demoralized, heres 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, lets set some goals. You want a resume which:
- Fits you in the pattern of has the relevant technical ability
1. Whats 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.
Lets take my resume from 2010 as an example. Heres the real resume my school made me create. What information do you think is relevant?
Heres my take:
Take a look through your resume, but dont make any changes just yet. Try highlighting or writing them down in a notebook.
Here are some irrelevant things Ive 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 its very generic
(If youre a non-traditional student working on your second career, extensive prior work history isnt necessary, but you may want to include it in some way. Many companies appreciate candidates who have practical experience if its in their industry.)
2. Whats missing?
Im going to assume if you followed the standard resume format, you already mentioned your school and work history. But are there things you didnt include which suggest you have the relevant technical ability?
Here are some common things Ive 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 youve 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, dont 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 youre 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 its not relevant.)
If your list is feeling short, thats 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 its easy for recruiters to skim. That means youre 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, heres 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! Youre encouraged to create new sections if theyre 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!