Resume tips for Computer Science/Software Engineering students

I recently attended a career fair to recruit soon-to-be college graduates for my company. Having attended a university where it was drilled into us from the very first week of our first year of university how to write a resume, I found some of the same issues with the resumes that my school told us very specifically to not do or to do right off the bat.


First of all, there are a number of pieces of information that you shouldn’t list on your resume due to legal reasons. If we can’t legally ask you the question before you accept an offer, then you should not put it on your resume. This is a bit of a grey area once we do have the information, but we are supposed to ignore it if you give it to us. Some companies might not and then quietly just not hire you, saying you didn’t meet their hiring bar or some similar garbage. I know in other places, such as countries in Europe, it is commonplace and in most cases, required, to list these pieces of information on your resume, but employment law is different in North America.

  1. Birth date in any form, whether it includes just the year, just the month and day, or all three. Your age falls into this category as well. You don’t want to be accidentally subjected to age discrimination that you can’t fight since you supplied the employer with the information.
  2. Marital status. Have you heard stories of employers discriminating against people with children or who might have children soon? That’s illegal, but you’re supplying them with the information to do so if you give them this information.
  3. Photo. You know how some retail stores will try to only hire attractive people? Don’t let your future software employer attempt to do that.

Immigration information is also a big no-no. That being said, you should definitely ask the recruiter if the company sponsors for work visas and respond with which country you hold citizenship from if asked, but do not put that on your resume. Your resume is a document that will live in the company’s offices for a long time and in some cases, forever.

Some general tips:

  1. Don’t let your resume run for more than 2 pages. Even now, with five four-month internships and almost two years of full-time work experience under my belt, my resume sits at about a page and a half. A three-page or longer resume is just annoying.
  2. Don’t describe absolutely every aspect of your jobs. Your resume is a tool to sell us on giving you an interview. If we want more details we will ask, but give us the important details on your resume. I tried to use only four bullet points for each four-month internship.
  3. Don’t waste your money with printing your resume on special paper. It’s not worth it.
  4. Try not to use the word “simple” when describing projects you did. You are trying to sell yourself to us! Almost all software projects are complicated – if it was simple, that just means that you stopped implementing early or you had a really narrow scope to begin with.

What should you do?

Now that we’ve covered what you shouldn’t do, what should you put on your resume? How should you organize it?

I suggest that you use the following sections:

  1. Header
  2. Objective
  3. Education
  4. Technical Skills
  5. Relevant Work Experience
  6. Relevant Projects
  7. Awards and Scholarships
  8. Interests

1. Header

At the top of your resume, you need to list the following pieces of information, mostly so that the potential employer can get in contact with you:

  • Name – I recommend using your legal name, but also supplying the name that you actually go by. I list my name as Tara MiddleInitial. Clark on my resume. I don’t use my middle name, so I don’t want to list it on my resume, but listing the middle initial indicates that it is in my middle name.
  • Full street address – if you live in Canada or the US, I think it’s irrelevant to list the country since that can be determined by the city and province/state abbreviation.
  • E-mail address – probably the most important piece of information other than your name since this is often the preferred method of communication for employers these days.
  • Phone number – if you’re in school and planning on moving at some point soon, also list your parents’ phone number. I actually had a company I had previously interviewed with contact me through my parents to see if I was looking for a job.
  • At my school, they strongly recommended that we list our year, term, and program in the header section of our resume. For example, in my last resume that I actually gave to potential employers (!), it says “3A Honours Co-op Computer Science, Joint Honours French” below my name.

2. Objective

Personally, I’ve never used an objective statement when I’ve applied for a software job. Since I would list my expected graduation on my resume and my year, term, and program in the header section of my resume, it seemed irrelevant. If you do include one, you should keep it simple. This is a good example:

I am looking for a challenging software development position, starting full-time in January 2012.

A statement like this is especially key if you’re not a Computer Science or Software Engineering major, but you want to do software development or if it isn’t immediately clear from your resume when you are available to start working.

3. Education

Where this section should go is highly debatable. I think that once you’ve been working for a certain length of time, it should go after your work experience section. Others think it should always go on the top. I actually moved mine down after the work experience section after only my first co-op term. I would definitely not recommend that approach for everyone, but it worked for me. If you’re applying for jobs at a career fair at your university, I think that you should put the education section at the top because it makes it easier for the potential employer to find it.

In this section, you should list for each degree:

  • The name of your university
  • The city where your university is located (and state/province and country if they can’t easily be determined)
  • When you started your studies
  • When you expect to (or did) finish your studies
  • What it will say on your diploma
    • Before you graduate: Candidate for Bachelor of [Arts/Science/Mathematics/Computer Science]. Honours. Joint Honours in French. Co-operative Program.
    • After you graduate: Bachelor of Computer Science. Honours Computer Science & French, Co-operative Program. With Distinction. (This is basically word-for-word what it says on my actual diploma.)
  • Your major average(s) and your overall GPA – I list mine in percentages because that’s how my school listed them. It’s best to pull these off your official/unofficial transcripts. Some employers don’t care about your GPA, but some do.
  • Projects that you worked on as part of a course – this is a bit of a grey area as to whether they should go under education or under a Projects section. Personally, I put anything that I worked/work on completely by myself/outside of school under a Projects section and large projects from in school under Education. It can really go either way, but I prefer how my resume looks this way.

That means that you don’t need to and should not list your high school name, when you started and graduated, and any relevant courses you took. Unless you did something extraordinary, such as:

  • You were valedictorian of your graduating class.
  • You graduated with an International Baccalaureate diploma.
  • You scored one or more 7s on your IB exams (especially in the higher level courses) or one or more 5s on your AP exams. Only list these courses, not the other ones, unless you did the full diploma.

After a certain amount of work experience and/or time has passed, I would almost move these tidbits of information about your high school days to your Interests section.

4. Technical Skills

I used to have this section on my resume, but I don’t anymore. It was basically just a list of all of the different types of technologies that I had used and it just magnified like crazy. I still list this information on my resume, but I adjusted some of the bullet points from my jobs, like in these examples:

  • Managed and implemented new requirements using PHP and MySQL for [W].
  • Fixed various UI bugs in [X] using C++.
  • Designed and implemented [Y] in Java and Perl.
  • Re-factored [Z], including new database tables and APIs in Java.

I feel like the above statements are stronger than just listing various competencies because they show how I used them instead of just listing that I’ve used them. That being said, every employer is different and some will care more about the specific technologies that you have used than others will. The important part is that you list the technologies you have used somewhere on your resume, not necessarily where or how you list them.

5. Relevant Work Experience

I would say that when you are just graduating, you should label this “Relevant Work Experience” to indicate that it is a subset of your work experience that the potential employer will care about. List any and all job-like positions that you have held related to software. For each job, have a heading with the employer name, job title, and start and end dates. For an internship, provide up to four bullet points describing your responsibilities and the languages and tools you used to do your job.

If you have no or little relevant work experience, you can have a “Work Experience” section at the bottom of your resume which indicates jobs like tutoring, camp counselor, and working at McDonald’s. Do not list more than one or two bullet points for each job. If you were a manager or crew trainer at McDonald’s, list bullet points about your responsibilities in that role, but if you were just a basic crew person, you don’t need to list any bullet points unless you feel like you did something special or really awesome.

After you have a certain amount of work experience, you can drop the word “Relevant” in the section heading. You could even consider dropping the word “Work” as well and just call the section “Experience”. On my resume, this section is definitely the longest section on my resume and longer than the rest of my resume (Projects, Education, and Interests) put together.

6. Relevant Projects

The same discussion on the word “Relevant” can apply to this section heading. I would say that if you have zero to little relevant work experience, this is going to be the most important section on your resume. Try to list one or two bullet points per project. If it was a long project, you can list more, but no more than four is really necessary. List a name for each project, dates, who you worked with, and a website URL if there is a relevant one.

Even with over three years of work experience, I have a “Projects” section on my resume. It’s still relevant because I do code outside of work. I use different tools and technologies for the coding I do outside of work and it’s a different type of experience, but I feel that it is still relevant.

7. Awards and Scholarships

My rule on this section is to not list anything that is more than three to five years out of date. Most of my bullet points were from when I graduated from high school and/or entrance scholarships to university. I removed this section entirely in my third year of university because I felt that it was out-of-date. If it is not out-of-date for you, then I would keep it until you leave university.

8. Interests

A lot of people say that you shouldn’t have an Interests section on your resume. My view is that you should, but you should keep it short and to the point – no more than one to two printed lines per bullet point. This section is a small way to show that you are an interesting person outside of your software development skills. By the time the resume reader gets to this section, he/she should have already decided whether or not to grant you an interview, but the question of team fit is important as well.

I used to list all of the different ways that I was involved in curling on my resume as separate bullet points, including playing competitively in high school, coaching in the juniors’ program, as well as the other sports that I actively participated in. Now I list three things:

  • My attendance at the Grace Hopper Conference in 2009 (and soon to be 2011!).
  • My involvement in curling over two printed lines (okay, it’s three lines, but curling is really important to me!) on one bullet point.
  • The languages that I speak since I enjoy languages and English isn’t the only language I can speak.


Your resume is the tool that you have to sell yourself to potential employers to gain an interview. If you lie on your resume, we will be able to figure it out if we interview you, so you just waste both of our time. Don’t sell yourself short, but don’t exaggerate too much. Appear confident.

Organize the sections on your resume in the order that the potential employer would be most likely to care about. Three years of work experience? Work experience first. Just graduating from university? Education first. No relevant work experience? Relevant projects before work experience. If you aren’t a Computer Science or Software Engineering major, you need to have sections on your resume that prove that you are looking for and qualified for a software development position if that’s what you’re looking for.

If your university has a career center, take advantage of it. Do a resume exchange with friends to get feedback on your resume. If you are looking for a technical role, but most of your friends aren’t, you can still ask them to check your grammar and spelling.

Disclaimer: Some of these tips may be relevant to people in other fields, but I can’t guarantee that. All of these tips are my opinion and are based on bad resumes that I have seen and the resumes of me and my friends who have a track record of obtaining good software development positions.

This entry was posted in Career and tagged , . Bookmark the permalink. Both comments and trackbacks are currently closed.

One Comment

  1. Computer Engineer
    Posted November 18, 2011 at 12:15 pm | Permalink

    Thanks for the software engineer tips!