I'd say that companies understand that interns will not look like seasoned employees. That's part of the basic contract. It's understood that the intern is doing what is probably a first CS-related job.
To answer the specific questions:
- What is a company looking for most
from Intern candidates? Past work,
GPA/coursework, Outside projects
(Open Source, etc), certain skill
Please put on ALL of these. Especially in an internship, it is unlikely that you will daunt the reviewer with your huge, long, expansive list of technology past and present.
In coursework, stick to the stuff in the CS program or the stuff related to the job (for example, if you happen to apply to a firm making architectural software, and you have a minor in architecture, you might want to highlight that... but otherwise, skip the architectural coursework).
Even if the past work is working as a teller in the local grocery store - put it on there. With dates, and any evolution in responsibility.
- Should I be emphasizing tasks, or
jobs/positions when listing my
Highlight whatever you've done that comes close to the job you want. Generally:
- development work/previous internships
- team work - paid or unpaid
- work requiring some degree of independance and responsibility
Interns typically take a certain investment up front. They need a bit of mentoring, and the company should expect to give you a hand as you start out. So anything that shows you are fairly independant and capable of doing work on your own and using good judgement in the process is a win.
- Are skills important to list? If so,
which ones in particular?
Personally, I'm a fan of knowing that the intern can take on responsiblity. And doesn't need to be supervised 24/7. The difference between the internship and possible previous positions is that you won't really be all that supervised, you'll be trusted to use your judgement to get the job done. So knowing that someone can work carefully but independantly is key.
A big trick (probably for anyone, but specifically tuned for the intern) is to gear the resume for the people who will make the decision. Here's my redaction of how that goes (Joel's "Smart and Gets Things Done" is even better, but possibly less intern-centric):
The resume hits HR. The HR people have been given a list of projects that could take on interns and a list of project technologies that would be preferred. They may also have corporate policies regarding GPA and schools and whether they will hire 1st year, 2nd year or 3rd year students. So the HR algorithm is going to look something like this:
- Do we know this school? Do we get good students from this school? If YES - move to next step. If NO - see GPA - if outstanding, may proceed. If NEVER HAD STUDENTS from here before - continue if school has good rep.
- What is GPA? Companies may have a lowest bar. They may have a low end zone which may be overcome if the student has great experience or a great GPA in their major (if your GPA is weak, stick on both the GPA and GPA in major). There may be an unacceptably low point. Also, if you are overcoming a school that has previously given the company bad experience, then you may have a higher bar.
- Does coursework/language experience match target projects? Usually there's no perfect, if a few peices of jargon fit... proceed to hiring manager. If no jargon fits, but good school and good GPA - may proceed to hiring manager anyway.
Someone with a team trying to do things. This person would like the cheap labor of an intern, but wants to make sure that the intern will, in the end, pay off in productivity, becoming a strong part of the team. Ideally, the intern is also a potential future hire after college.
Challenge - this person will probably get booked for an interview with you and will spend a very short time actually looking at your resume. It has to be honed for this attention deficit impaired individual. This is where organization is really important.
Things the person is looking for:
- How much about the project's technologies does this person know? Any major languages should be on the resume, close to the school and GPA. Sub-components are a guessing game. For example, if you've used popular libraries or frameworks - should you put them on there? At least leave some breadcrumbs so that the person can ask logical questions - for example, a class in web development in Java will tell me to ask about JEE jargon?
- How much about the context of the work does this person know - for example, a big database driven project is going to care that you had a course in databases. They may be open to the fact that you used MySQL and they use Oracle, but if you've never had a DB course, there's a problem.
- How well will this person fit with my team? Will there be any problems with the typical norms of the work place? Having had a job will help tell employers that you are capable of working. Even a job in a restaraunt tells your potential boss that you will show up on time. Best is having dates, since it also tells them how long you kept the job - knowing you were camp counselor at the same camp for several years tells me that the camp liked you enough to have you back. Working the same campus job for several years, while moving up to asst. manager tells me that you were responsible enough to be trusted.