I am second year Computer Science student and I was going to apply at Microsoft as a Microsoft Student Partner. I am required to create a CV/Resume.

Technically I don't have any work experience at all since I am stil in college studying, but I am interested at applying as Microsoft Student Partner at Microsoft here in my country.

I am wondering, since I am a student with little professional experience using a language, how do I list the languages I am familiar with and I am used to/more exposed to?

Here is an example of my confusion, using my own situation: my school focuses on Java technology therefore I am more exposed to Java, but last term I self studied C#.NET for a certain course where I created a simple Patient Administration System with Windows form. I am comfortable with C#.NET but I don't know everything about it; I am familiar with LINQ TO SQL and some libraries it has. I know I am comfortable working with both languages (C# and Java), so how would go about describing that in my resume?

I also am familiar with scripting and markup languages such as Javascript, PHP, HTML, CSS, and XML but again don't have much professional exposure with them. How can I list them even though I am just familiar with the languages?


7 Answers 7


I'm a hiring manager and have done a lot of interviews, and read of lot of resumes. What I can tell you is that if you list a language or technology in a "skills" section of a resume, and I have knowledge of it, I will ask you detailed technical questions about it, even if it isn't strictly speaking a job requirement. In other words, list things you are comfortable answering detailed questions. My feeling is that if you put it here, you are asserting something, and whether or not you can back it up tells me lots about everything else you assert on your resume and in the interview.

This is completely separate from job experience. If you know C++, and are prepared to answer questions about it, by all means put it in a skills section even if you've never written a line of C++ code professionally. As a manager, what matters to me is that you know it. Job experience is just one way to prove it.

When in doubt, by all means just be explicit. I have in the past had lines like "Expert in C++, competent in Python, some knowledge of Java" on my resume.

Outside of the skills section, list everything you've used, even if you only have passing knowledge. If you say "six week project using JavaScript", I'm not going to assume you are an expert as long as it doesn't come out in the interview that it was "six week project sitting next to a guy who used JavaScript". The sad truth is that many HR departments use keyword matching and will happily reject people who don't match. Sometimes you need to just make sure the keyword is there to get the resume in front of the eyes of someone who knows technology.

Just make sure you keep it honest, because the absolute worst thing that can happen in an interview is for the interviewer to get the impression that your resume is inflated. It will call into question all that you do know. Much better to be completely honest. We've hired many people who said "I don't know" in interviews, but no one who tried to bluff their way through with claims of knowledge that they didn't have.


When teaching students how to craft the resume and cover letter, I first remind students that when they are applying to student-level or entry-level positions, the hiring manager assumes a lack of working experience and little familiarity with the professional aspects of the career (in this case, depth of knowledge of programming languages).

As a rule, first remember where you are positioning yourself, and understand the expectations at that level. Then, when you list (and do just list in bullet form) your programming language experience, list the ones that you are comfortable walking in the door and using from day one, to complete the tasks and responsibilities required of an entry-level employee. It is also not unreasonable for a student to list number of years of working in the language, to make it even more clear (e.g. "C#.Net - less than a year; JavaScript - 1 year; etc).

In your cover letter, that is the place to expand upon the information in your resume; you want your cover letter and resume to work with each other to paint a complete picture of you. In your specific instance, given the information you provided, I would put the list of languages on your resume, and then in your cover letter say something along the lines of "As you can see on my resume, I am familiar with both Java and C#.Net. My coursework has focused primarily on Java, but I have also created a basic Patient Administration System using C#.Net as part of a semester-long project." That's it.

As a student, you're not expected to know everything. You are expected to be truthful about what you do know, the limits to that knowledge, and craft your documents about you to reflect that.

  • Cover letter? What is that? as far as I know, it is strongly recommended that the CV will be a single page.
    – shinzou
    Commented Mar 24, 2016 at 19:34
  • @kuhaku Look over this definition of a cover letter: jobsearch.about.com/od/coverletters/a/aa030401a.htm Commented Apr 23, 2016 at 19:13
  • Yeah I read about by now, it's just not common where I live so I never heard of it.
    – shinzou
    Commented Apr 23, 2016 at 21:06
  • The 1 page resume thing needs to go away and never come back. That might work for non-tech jobs, but doesn't really fit for tech jobs. Commented Feb 7, 2018 at 0:53

The information that you've dabbled in other languages (possibly outside your course) is useful to an employer. However, as others have said, you don't want to represent familiarity with a language or technology you've only dabbled with.

There's no reason you can't just list your proficiency alongside each language or library. You could do this in a quantitative way (number of projects completed, number of years of experience), or you could qualify it with some sort of label. I've seen this done using an analogue to spoken languages like this:

Programming languages:
Natively fluent: C, Java, JavaScript
Conversationally fluent: Perl, PHP, Bash
Tourist: Ruby, Go, Groovy

Of course, keep in mind that you might be asked difficult questions about anything you say "expert" or "native speaker" about - and as a student, nobody is expecting an expert level of proficiency. Consequently, you might also like:

Programming languages:
Most experienced with C, Java and JavaScript
Some experience with Perl, PHP and Bash
Dabbled in Ruby, Go and Groovy

Some resumes run this list together as a single paragraph. However, I prefer this list style to the paragraph of text, as it's much easier to scan. Your resume is your flier, and should be easy to digest by the reader.

As a student, you may not have much work experience, but you can list the projects you've completed (both assignments and extra curricular - extra points if you have enough extra curricular projects for a new section). When you do this, definitely list the technologies you used - the information about what you've achieved with a language is a great indicator of proficiency.

Finally, remember that it's not an issue to say "I don't know" in an interview - unless your resume made it look like you said you did (so never lie on your resume).

  • 27
    Can curse in: C++, Bash Commented Nov 1, 2012 at 16:03

Edit: I've changed my view on this since the time I answered this question. Some of the newer guidance coming out is recommending you don't list out technical skills - because they are a remnant of the days when automated searching of resumes was really poorly done.

I won't be mad at you if you add a section (and if you do, I feel like my advice below still holds), however, I have taken this section off of my resume with great success.

On my resume I have one section for programming languages I am proficient in and another separate section for those I am familiar with.

This allows me to cover my breadth of knowledge without potentially misrepresenting myself.

If you are going to list a language you are less familiar with, you should definitely denote that in some way on your resume or you are setting yourself up for a potential nightmare when you go in for the interview.

If you don't even feel comfortable saying that you are familiar with a language then you should leave it off completely.

Nothing is worse than having an interviewer ask you a simple question that you should know (based on what your resume says) only to have you say you can't answer it. That's a surefire way to not get hired.

  • A question, I don't have any work experience at all, would it help if I add my collegiate works in my CV/Resume? Commented May 9, 2012 at 17:37
  • 2
    Yeah, I think so. At this point, you want to show your employer that you are balanced and are interested in other things outside of work. Add all of that stuff and slowly phase it out as you gain some real experience. Commented May 9, 2012 at 17:43

With any skill set, regardless of your field or the company you're applying at, you want to try to find out what is most valuable about that skill to the company that you're applying.

For example, if you were applying to be part of a C# team, you would want to focus on the projects that you have built in that language. Since you're a student, and you haven't built things for a business, then I would focus on what you've built in team projects, and independent development. For the team projects, list what role you played in the team (team leader, designer, architect, programmer, etc.) and a little about the project itself.

For first-time people, or students who are applying for some of the first jobs in their field, I find there is often a focus on listing skills in an effort to "fill the space" in the resume. However, if you have any open source projects, or projects whose teams have published their software, or even a website where you post your own stuff, I think it's important to get it out there, look around to see what other people are doing, and follow you passion where it takes you.

One last thing that's programmer specific, I would get an account on StackOverflow and start answering questions. If you're into helping people, StackOverflow can show a lot of things in an unbiased way - your ability and desire to teach others, your thought process, what technologies you really know - and they're all voted on by the community, so it's much harder to "fake" knowing something unless you actually know it. There's tons of questions available all the time at every skill level, and nearly every language, so you shouldn't have any trouble finding questions on which you can demonstrate your skills.

  • 1
    As a side comment, since you said you're looking for an example, you can see my StackExchange Careers profile: careers.stackoverflow.com/jefflunt - the benefit here is that all the data on the skills is pulled from StackOverflow.com directly, and updated automatically. Having good stats does NOT make you a great programmer, but it does help employers know what skills you have demonstrated some ability at, and they can read the questions and answers you write.
    – jefflunt
    Commented May 9, 2012 at 3:27
  • Question though, in what part in my resume would I put the Team projects that I have done? what section? or how would group them? "Team Projects"? I write blogs about Javascript and C# should Include that in my resume? in my blog it has guides and little tips and tricks to that certain language is it worth adding that in my resume? Commented May 9, 2012 at 3:39
  • I'm a more of a free-form resume kind of person. I like the layout that careers.stackoverflow.com follows, especially as it relates to software, but really you can do whatever you want. Adding a "projects and writings" section to your resume seems fine. Just remember, the point of the resume is to communicate what skills you've got that the job would need. I tend to use the job posting itself as a guide as to what to include and exclude. Match up the resume to the job posting, add a little about yourself and your blog, and to that's how to make a resume good. This is just one person's opinion.
    – jefflunt
    Commented May 9, 2012 at 17:29

On the résumé itself, I would just list them out, for example, on my CV it currently has the following:

Programming Languages: C, C++, C#, CSS, Java, JavaScript, Perl, PHP, PL/SQL, Python, SQL, Visual Basic 6, Visual Basic .NET, Visual Basic for Applications, XHTML, XSLT, XML
Databases: Microsoft SQL Server, MySQL, Oracle 9i through 11g
Frameworks: ASP.NET, ASP.NET MVC, jQuery, jQuery UI
Formal software engineering processes
Release Engineering / Continuous Integration

Periodically I go through and remove or add some languages to it, but I use the rule of them that I must feel at least comfortable to work with the language and that the "ramp up" time to get back to using it extensively would not be too much. Plus, when it comes to hunting for a job, most people are going to want to skim the languages you know in a terse format as opposed to going through all of your work experience.

Depending upon who you are applying with they will want you to rate yourself on language usage and that is were you should be careful and very honest about how comfortable you are with some of the languages. You might be able to get away with listing a bunch on a CV if you aren't giving skill levels but once they ask for skill levels be honest. In practice, they are going to doubt that a new graduate is an expert with a language (I'd argue that point though, if the school uses Java as the lingua franca for classes then you might be able to get away with it) so be aware of that as well.

  • Isn't it good if I will seperate them by their criteria? for example. Programming Languages: java, C# , C++, C. Scripting Languages: Javascript, PHP, SQL? Commented May 10, 2012 at 0:57
  • @UnknownKid - Hard to say as it really depends upon who ends up looking at it. To most people outside of IT they may not know the difference and it would actually confuse them.
    – anonymous
    Commented May 10, 2012 at 1:00
  • 5
    I am always skeptical when I see a line like "Programming Languages: C, C++, C#, CSS, Java, JavaScript, Perl, PHP, PL/SQL, Python, SQL,". It's very very rare that anyone has real skill in all of those, and never in the case of a recent grad. If you were interviewing with my outfit you could expect a lot of deep questions on every one of those. We don't expect everyone to know everything, but we don't like being lied to. Commented May 10, 2012 at 17:05
  • 1
    @JimInTexas - The rest of my CV justifies listing them all and I'm pretty straightforward with my answers to people (i.e. "I generally have to read C code to covert it to Java and I've recently taken a course in systems programming in C."). The languages that I don't know that well any more (e.g. ColdFusion) I phase out.
    – anonymous
    Commented May 10, 2012 at 17:16
  • 1
    @JimInTexas - Once you know one language very well, it is usually pretty easy to learn a second similar language quite quickly. After you've learnt enough languages (maybe 2 of each: procedural, OOP, functional), most will be pretty straightforward to learn. Commented Jun 20, 2013 at 8:12

Just list everything that you are comfortable with. I think a semester of experience is good enough. Whoever will be interviewing you will know you are a student and will not expect a ton of experience. Expect to be asked to describe your experience, the type of projects you've worked on, how big were they etc, etc. Obviously you don't want to list something in which you can't write a simple loop.

Not the answer you're looking for? Browse other questions tagged .