48

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

14
  • 34
    One would really hope it doesn't come down to distinctions such as this.
    – kasterma
    Dec 4, 2010 at 19:22
  • 19
    Why did you tag your question as "c" and "c++" separately?
    – dan04
    Jan 7, 2011 at 13:56
  • 7
    It DOES come down to distinctions like this. Feb 5, 2011 at 1:51
  • 3
    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. May 12, 2011 at 1:15
  • 4
    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++"?
    – user8709
    May 12, 2011 at 1:15

16 Answers 16

63

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.

6
  • 31
    Even technically it isn't. I'd separate them too.
    – Tobu
    Dec 5, 2010 at 0:43
  • 7
    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. Dec 19, 2010 at 15:54
  • 8
    I think technically C++ is a superset of a subset of C.
    – Ian G
    May 11, 2011 at 16:10
  • 30
    Everything is a superset of a subset of C.
    – Dario
    May 11, 2011 at 20:35
  • 1
    @JBRWilkinson What if C is 0? Also, there are no defined sequence points in that statement. It's compiled defined behavior.
    – user1827
    May 28, 2011 at 16:36
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...

3
  • 17
    +1 for the parsing angle. Most recruiters, will have no idea about the technical distinction between C and C++. Dec 4, 2010 at 19:33
  • @George: Let alone C, C+ [sic], and C++
    – Nick T
    Dec 5, 2010 at 1:31
  • @George: true, unfortunately. You also have the case of the recruiter who thinks you are not suitable for a role because you listed JEE instead of J2EE, or vice-versa... That's another case of something that I try to have with both occurences of my resume (JEE in skills list, J2EE for projects where the terminology used to be J2EE back then). Annoying.
    – haylem
    Dec 12, 2010 at 3:29
31

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

6
  • 5
    @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. May 29, 2011 at 7:11
  • 2
    @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. May 29, 2011 at 10:14
  • "The phrase is usually used by people who don't have a clue about programming (e.g. HR personnel and poor managers)" -- This looks like a good reason to use C/C++ to me. The whole point of listing technologies on your resume is to get the HR folks to pass them on to the team, who will mostly look at your experience. Aug 10, 2011 at 13:20
  • C/C++ is C with cout for output rather than printf
    – CashCow
    Oct 7, 2014 at 15:23
  • I consider Mr. Stroustrup's attitude, as well as the divergence between C and C++, unfortunate. While code which is written in object-oriented fashion should avoid C-isms like malloc, some of the features that C++ provides could be useful for programs which are 99% written in C. Some of the software I've written is designed so it can either compile as C code for a small embedded processor, or as C++ code for "emulation" purposes on the PC. Even code which writes to I/O registers directly can run without modification on the emulation layer, since I/O registers have overridden...
    – supercat
    Jul 13, 2015 at 3:20
20

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

  • C
  • C++

This will cover, all angles including any parsing too.

6
  • 9
    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
    Feb 4, 2011 at 21:47
  • 1
    @Andrew: do you think that would that help you get a job that you actually want? Feb 4, 2011 at 23:39
  • 3
    @JBRWilkinson - Of course not. I'm saying bulleting technologies like that is not a good thing.
    – Andrew
    Feb 4, 2011 at 23:40
  • 1
    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? Feb 5, 2011 at 9:15
  • @Andrew - you probably shouldn't list everything you know - you should target your application to the particular job, and there's unlikely to be more languages/technologies relevant to one job than you can reasonably bullet. There's also what DocBook calls a simple list, IIRC - a kind of mini-table of items - if you need to list more than about half a dozen.
    – user8709
    May 12, 2011 at 1:21
19

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

13

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

9

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.

6
  • Disagree - with languages like A+, B, C, C++, C#, Obj-C, D and E around, it's best to be clear to a recruiter. Feb 4, 2011 at 23:41
  • 1
    @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?
    – Nicole
    Feb 4, 2011 at 23:42
  • Disagree: It matters to the people who make the decision about whether or not you get an interview. Feb 5, 2011 at 1:53
  • @quickly_now - In what way does the , or / matter?
    – Nicole
    Feb 5, 2011 at 2:09
  • @Renesis - see my longer answer. Feb 5, 2011 at 3:25
8

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.

5

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

4
  • Interesting point. One thing to appreciate is the interview anti-loop - even good candidates have interviewers who just wouldn't ever hire them. Not every candidate who writes C/C++ does so to trivialize the difference, but they are that person to you because you see it that way. I might disagree with you and see C, C++ as trying to lengthen the "count" of languages they know. Anyway, good perspective and this makes me like this question even more - I like getting into the psychological details of interviews/hiring.
    – Nicole
    Feb 5, 2011 at 6:15
  • I wrote another couple of long answer about hiring... programmers.stackexchange.com/questions/3892/… and programmers.stackexchange.com/questions/19278/… It is probably worth reading those as well. I'm firmly in the Joel-on-software camp: it is better to hire nobody than the wrong person. The person who you are not quite sure about... should be a NO HIRE. Feb 5, 2011 at 10:26
  • Counterpoint; it never bothers me one jot. The list of programming languages, no matter how presented, is just that - a list. I'd not reject anyone for using / instead of , Sure, you look at their more detailed experience and if it looks like C/C++ means "I learn't a bit of C once" then, yeh, reject them. But that wasn't really the question.
    – Errant
    May 11, 2011 at 15:37
  • by this filtering mechanism, I'm totally screwed, in the languages section I've written "C++/Java" - oops... :D
    – Nim
    May 11, 2011 at 15:53
3

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.

2

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.

1
  • 1
    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, 2010 at 20:36
2

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.

1

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.

3
  • I couldn't agree more. I got my current job because of my experience in applying my overal knowlege to semester long projects. I simply described my responsabilities.
    – Ramhound
    May 11, 2011 at 19:42
  • But most interviewers (I speak not of resume-bots) i.e F2F interviewers may not take the time to go through the natural language sentences. It would be more prudent to succinctly list your languages and add a separate section listing the projects you've undertaken.
    – lightsong
    May 15, 2011 at 10:12
  • A well-formatted one-page resume will not be a chore for any interviewer worth his salt; the document is supposed to be a talking points reference for the interview. If your interviewer hasn't even read that much, question the quality of the company you're applying to. And if in doubt, bold the keywords. May 17, 2011 at 0:21
1

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

1
  • 1
    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. May 29, 2011 at 7:14
0

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

0

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.

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