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)?

16 Answers
16

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.

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...

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++".

@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 ONealMay 29 '11 at 7:11

1

@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-McCarthyMay 29 '11 at 10:14

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++.

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.

@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?
–
NickCFeb 4 '11 at 23:42

Would you put Java/C# on your CV? Or Perl/Python? (Java/Javascript would be an interesting one)

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.

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.)

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.

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.

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.
–
haylemDec 5 '10 at 20:36

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.

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 ONealMay 29 '11 at 7:14

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.

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.