Tuesday, May 15, 2012

What should you list on your resume?

This is some quick advice on the skills you should list on your resume.

There is a lot of wisdom about how you should format your resume, but there is little discussion on what you should put into it. You could list too little, and risk rejection because you did not have the required skills for the job. Or you could put too much, and risk looking boastful or dishonest. Where's the line? This article is written from the perspective of a Computer Science graduate. Other fields might list skills differently, so this might not apply to your field.

For new computing professionals, I follow this thumb-rule:
If you can answer an undergraduate-level question on the topic, list it on your resume.

Listing a skill expresses your confidence in the topic, and a willingness to answer questions on it.  An interviewer uses such a list to give you a chance to demonstrate your knowledge. The interviewer wants you to succeed, and you need to provide him a list of topics that you can succeed in.  Remember that an interviewer is chosen based on the skills on your resume, and someone with working familiarity with the topic will certainly know much more than you. Interviewers know this too, and try to put themselves in the candidate's shoes. They reason backwards and try to remember how much they knew before they started working. For most people, this takes them back to graduate or undergraduate level coursework. Questions generally start in that general area, and get tougher.

For example, listing C in your resume would invite this basic question. What's wrong with this code?
 int array[5], i, *ip;
 for(i = 0; i < 5; i++) array[i] = i;
 ip = array;
 printf("%d\n", *(ip + 3 * sizeof(int)));

A person with undergraduate-level familiarity with C is expected to answer this question. If you cannot answer this question, the interviewer cannot ask you anything tougher. The two of you have just wasted ten minutes that could have been spent demonstrating a different skill: Python/Java/Android....

Anything short of a full college course is not worthwhile putting on your resume. Your resume lists your capabilities versus other candidates in the same pool. If the skill is trivial, or your knowledge shallow, then it does not distinguish you from other candidates. Avoid cluttering your resume.

List skills on your resume that you wish to continue perfecting. If you disliked VHDL even though you have an excellent understanding of it, list it under a 'Know but Avoid' section. This points out that while you have a skill, you want to distance yourself from using it. If there is a skill that you know you are rusty on, you could mark it on your resume under a section titled 'Rusty', or 'Passable'. On my resume, I have both a 'Passable' section and an Avoid section.

Finally, if you realize that you have overestimated your knowledge of something: let the interviewer know. It saves both of you a lot of time.

If you liked this, you might enjoy reading my article on how to create beautiful resumes in LaTeX.

(Code coloring courtesy: Palfrader.org. Image courtesy: glassdoor.com)