Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm graduating in a couple of weeks, and my resume (as expected) lists the languages that I've had experience with. Previously I've put "C/C++", however back then I didn't have that much experience with these two languages as I do now.

Now that I've formally learned these two languages, it has become evident to me (and anyone who really knows these languages) that they are similar, and completely disimilar at the same time. Sure, most C code is compilable C++ code, but syntax and incorporation of library functions is pretty much where these similarities end. In most non-trivial problems, chances are that the desirable C++ solution will be different from the desirable C solution.

My question:

Will recruiters take note or care about whether you put "C/C++" as opposed to "C, C++"? Will they assume a lack of knowledge of the workings of either because of the inclusion of the first form, or perhaps see the inclusion of the second form as a potential "resume beefer" (listing them as 2 languages, instead of "one")?

Furthermore, for jobs that you've applied to that were particularly interested in these two langauges, did the interview process include questions about the differences between C programming and C++ programming (so, about actual programming techniques, not only the extra paradigms in the latter)?

share|improve this question
One would really hope it doesn't come down to distinctions such as this. –  kasterma Dec 4 '10 at 19:22
Why did you tag your question as "c" and "c++" separately? –  dan04 Jan 7 '11 at 13:56
It DOES come down to distinctions like this. –  quickly_now Feb 5 '11 at 1:51
I think this goes beyond pedantic and into the realm of anal-retentive. The only reason I'm not voting to close is because I think Kevin is genuinely curious. –  Rei Miyasaka May 12 '11 at 1:15
My view - would you write "C/Java"? It may be OK to use slash separators rather than commas, but if you wouldn't write "C/Java", why write "C/C++"? –  Steve314 May 12 '11 at 1:15

16 Answers 16

C, C++

I don't like C/C++, because though C++ is technically a superset of C, to do it right, you have to do things differently. C/C++ makes you look like someone who knows C and knows that a C++-compiler accepts C, too.

share|improve this answer
Even technically it isn't. I'd separate them too. –  Tobu Dec 5 '10 at 0:43
When I read C/C++ I'm thinking of C++ programs using #define, malloc()/free() and all the stuff which worked in C, and as a habit, is used in C++ too. –  Oliver Weiler Dec 19 '10 at 15:54
C/C++ == 1..... –  JBRWilkinson Feb 4 '11 at 23:32
I think technically C++ is a superset of a subset of C. –  Ian G May 11 '11 at 16:10
Everything is a superset of a subset of C. –  Dario May 11 '11 at 20:35

I would usually write C/C++ as a habit, but:

  • some pedantic recruiter might think you wrongly assume they are the same (unlikely...I hope),
  • there's a higher likelihood that C, C++ gets parsed to the elements C and C++ than C/C++... which might matter when recruiters try to match your profile to requirements for a role.

So try to have maybe C/C++ in your general description and then C and C++ separated elsewhere.

That's only an advice, I have no strong proof to follow that, but (many) recruitment agencies have a fairly keyword-oriented approach.

Once you're past the recruiting agency, the real recruiter in your target company will (hopefully, if not filtered by non-technical HR people) know that you don't necessarily imply that C and C++ are in the same basket, so I really think of it only as a parsing problem.

The same applies to variants of Java and its platforms and specifications, which even had the bad taste of changing naming conventions over time to end up with: Java SE, JavaSE, JSE, J2SE, Java EE, JavaEE, JEE, J2EE, etc...

share|improve this answer
+1 for the parsing angle. Most recruiters, will have no idea about the technical distinction between C and C++. –  George Marian Dec 4 '10 at 19:33

To me, "C/C++" is a strong negative signal.

Bjarne Stroustrup writes:

There is no language called "C/C++". The phrase is usually used by people who don't have a clue about programming (e.g. HR personnel and poor managers). Alternatively, it's used by people who simple do not know C++ (and often not C either). When used by programmers, it typically indicates a "C++ is C with a few useful and a lot of useless complicated features added" attitude. Often, that is the point of view of people who like to write their own strings and hash tables with little knowledge of the standard library beyond printf and memcpy. There are people who stick to a restricted subset of C++ for perfectly good reasons, but they (as far as I have noticed) are not the people who say "C/C++".

share|improve this answer
@Kevin: It's not an appeal to authority if the reasoning is clearly explained. Stroustrup certainly isn't appealing to authority, and the reasoning for his response is reasoning enough to dislike "C/C++" -- regardless of who said it. –  Billy ONeal May 29 '11 at 7:11
@Kevin: Sorry if I was unclear, but I didn't include the Stroustrup quote as an appeal to his authority, and it is not because Stroustrup's opinion that I consider "C/C++" as a negative signal. I just used his explanation because, well, I was too lazy to write my own. –  Thomas Padron-McCarthy May 29 '11 at 10:14

If you want to remove any ambiguity simply bullet point them:

  • C
  • C++

This will cover, all angles including any parsing too.

share|improve this answer
If I made a bulleted list of every language and technology I'd used, it'd take up the whole page and then some. –  Andrew Arnold Feb 4 '11 at 21:47
@Andrew: do you think that would that help you get a job that you actually want? –  JBRWilkinson Feb 4 '11 at 23:39
@JBRWilkinson - Of course not. I'm saying bulleting technologies like that is not a good thing. –  Andrew Arnold Feb 4 '11 at 23:40
If your two greatest strengths are C and C++ and you don't mind if your next job uses one or the other, what's the issue? –  JBRWilkinson Feb 5 '11 at 9:15

If you write C/C++ it makes it look like you don't really differentiate that much between the two. So I would definitely write C, C++

share|improve this answer

Put what you're best at first and by itself, and be honest. I hire experienced C++ developers, and my experience is that people who list "C/C++" are fine C programmers and usually marginal or beginner C++ programmers. This isn't pedantry, it's the results of 100's of interviews my group and I have done. If you list "C++, C, java, perl", I'm going to keep reading to your projects, experience, and education. if you list "perl, java, C, C++", I'm going to hand you to the guy down the hall who hires our perl team. If you list "C/C++", you've got to have some really strong experiences that were clearly 100% C++.

share|improve this answer

Probably doesn't matter

At least not to recruiters. Most recruiters will probably treat them as the same thing or at least a variation of the same thing. The more technically advanced are probably not paying attention to such a minor detail.

However, I would worry about "resume beefing" if you had a description for each. If you include a description for the languages you list, list them together and include a partial sentence for each.

share|improve this answer
@JBRWilkinson I'm specifically talking about treating "C,C++" and "C/C++" as the same thing - not "C" and "C++" as the same thing. In other words, most recruiters won't distinguish between using a , or /. This is what you disagree with? –  NickC Feb 4 '11 at 23:42

Would you put Java/C# on your CV? Or Perl/Python?

Probably not, so why C/C++ ?

Of course you might just because the job spec asks for C/C++ and if you don't write it exactly this way it will get filtered out for not containing the valid buzzwords. Just as you have to ensure words like Agile appear on your CV nowadays.

share|improve this answer

When your resume goes out it hits a few places: the recruiting agency / headhunter (if there is one), the hiring manager of the firm, the team leader in the firm... and so on.

A resume can easily pass through 3-4 hands, and EACH ONE has the ability to scribble a note on saying "loses points for not knowing X". Or just toss it straight on the reject pile. Once you are marked down, that's it... the resume is effectively dead. You lost.

Remember getting a job is a competition. You are not just doing a nice resume, you have to be clear, succinct, and have something that makes you stand out from the next guy. That way you get the job, and the other guy does not.

Little things matter. When I've been considering 2 applicants who otherwise look identical, the one who writes: "C/C++" annoys me because he's trivialized the difference. The one who writes: "C/C++/C#" goes onto the reject pile without further consideration. Because the person who writes those 8 characters thinks that conveys everything and these are interchangable. They are not.

I do also look at relevant experience and projects completed. When employing somebody, my bullshit detector running at full strength because everyone you get in the door who is bullshitting is just wasting your valuable time. The cheapest weeding out is at the resume stage.

So, if you know something well, make it clear, make it distinct. Make YOU stand out from the crowd.

(By way of analogy, perhaps a bit old fashioned. If I know Pascal and Ada - two languages with a fair bit in common (and yes I know a great deal different). Would you expect me to write Pascal/Ada ? If I know Pascal and Delphi, would I write Pascal/Delphi. Delphi might be Pascal based, once upon a time, but the OO extensions and huge libraries make the comparison one of chalk and cheese.)

share|improve this answer

The role of a resume is to get you to the interview. Nowadays, this frequently means hitting the buzzwords that the recruiter and HR are looking for, and then impressing the hiring manager.

To this end, I'd list them separately. It may not matter for HR or the recruiter, but the hiring manager is likely to notice, and the only way it's going to matter to him or her is if it hurts you to use "C/C++".

That said, you shouldn't be afraid to tailor your resume to the job, and if it says C/C++ in the description, list C/C++ and also find ways to list them separately.

share|improve this answer

I'm sorry, but don't you think this is is really splitting hairs? When I am hiring a programmer I just take a brief look at what the language listing is because I am usually hiring for a specific language anyway. Also, just because you know a language doesn't mean that you really know all of its libraries, API's, and know how to use them.

What I am more interested in is usually the work experience or any projects that you might have worked on. I know lots of languages but I have only done serious work in about two or three of them. I would spend more time highlighting your successes and experience rather than how many languages you know. Just my $.02.

share|improve this answer
Yes, but if you receive the resumes via a recruitment agency, it might, as many really have NO CLUE what they are looking for. Pretty sad, but that's how it is. Obviously if you hire directly, then you don't have this problem, this is true. But yeah... it is indeed splitting hairs. –  haylem Dec 5 '10 at 20:36

A slash is traditionally shorthand for and/or. Do you know C and/or C++? I think you know C and C++. Write it like that.

share|improve this answer

I wouldn't have a section which just listed claims of language knowledge at all.

An example: When I was in college I used C to better express what was originally a program written in MASM-annotated 80286 Assembler, while using the asm feature to include the stuff that had to be in Assembler. For everything else I chose either C++ or a precursor to Delphi called "Object Pascal", which was taught at that college.

On a resume that might take the form "Acme University -- 1993-1995 -- Network Programmer \ As a student employee of the MIS department, I developed low-level TCP/IP network monitoring utilities for use by MIS, using Assembler, C, and C++ programming languages."

The resume-bots HR departments use will still find and select or reject your resume, but the above claim will appear in the context of your actual experience and exist as a natural-language sentence humans like to read. Such a thing says a lot more than a list of buzzwords.

share|improve this answer

For the vast majority of employers it simply makes no difference (this tiny specific item anyway). For those it does.. well they probably aren't the firm for you anyway.

Your list of programming languages is trivial anyway - don't worry too much, just list truthfully the languages you can cope with. Recruiters are generally smart enough to read about your experience, which is the important bit after all.

Sure; some people reject (or choose) candidates over nit picks. That's just what happens. But it can be over any trivial piece of data.

Just write a clear, decent CV and that's all you can do :)

share|improve this answer

The latter. C,C++.

When resumes are scanned into a computer so that HR can process them most effectively, if they're looking for keywords, they may miss C/C++ if they're looking for the single word "C++" somewhere on the resume.

Which is sad, but you don't want to miss an opportunity.

share|improve this answer

Imagine a pice of code

int class = 0;

it is legal C code, but it will not compile with C++ compiler, hence these are two languages. Put C, C++.

share|improve this answer
This is a poor example, though what is meant isn't too bad. How about a bigger difference, such as MyStructureType *ptr = malloc(sizeof(MyStructureType)) compiling in C++ but not C? These examples simply using C++ keywords are too contrived IMHO. –  Billy ONeal May 29 '11 at 7:14

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.