28

I feel that the often seen C/C++ doesn't really describe my skills in my CV. So I'm planning to separate it into advanced C++ knowledge and mediocre C skills.

Do you think this is confusing for the reader? She could think: "C is a subset of C++, so what is this guy trying to tel me?" Well, what I'm trying to tell is: I have done several real world C++ projects while pure C projects where just a hobby thing. Do you agree that a skilled C++ programmer not necessarily is a qualified C guy or do you think that this switch is done easily?

gnat
  • 20,543
  • 29
  • 115
  • 306
h0b0
  • 641
  • 5
  • 14

7 Answers7

31

You have asked so many questions in one; let me try to answer while segregating them. I hire many people which falls in this profile type and quite often i have to take so many interviews and reject people because often they don't quite have clear answer to the questions you asked.

  1. Is having good mastery in C or C++ is good enough to qualify you for the other program?
    If you are at a senior level actually NO. i.e. if you have been something like 6 years doing C++ programming on some core enterprise applications, and now i am trying to put you in embedded systems which is all in C - likely that your programming syntax and how to debug stuff is not an issue. But If you need think through of a problem - you are certainly very messy. This is true from either side to the other language. The more years you have been spending only one type of language - less easy to transform in other form! It is not about whether you can learn the syntax of language but you actually think differently when you are in C, C++, Java, perl and Python. To stretch the question - most often - C++ and Java guys can be used interchangeably and so is Perl,PHP, Phython. C is quite a different breed!

    If you are a relatively young guy - chances are that you can catch up fast.

  2. Does it mean that i have higher skill when i know C++ rather than C
    Actually No. No because, as a general rule, if you are capable of creating a full product out of C is much more difficult task compared to doing it in C++. Number of people who can master troubleshooting shared memory systems are much less than number of people who can write a decent GUI program using VC++ or similar framework.

  3. Does this mean knowing C (or the lowest level programming) is the highest level of achievement?
    No again! This is not contradiction. This time it depends on the domain you compare. If you are looking at systems programming inside the Linux kernel, or something very close to hardware, programming ability in C is more relevant, However, if you are writing banking software or some business rule engines - C++ is a usually natural choice. The point is your true strength is not much about the syntax of the language but the way you solve a class of problems and you can only hope to master a few catagories/domain in your life. If you are putting something in your resume - that is what really counts.

  4. Does it mean that if have only been in C - i don't know Object oriented programming?
    Not at all. In fact, my litmus test in the interview to know whether guy is from C background or C++ is to ask a very simple question - "So can you do Object Oriented Programing in C?" - the guy jumps and says - "Definitely NO!" he/she is C++ fellow. The point is, when you really write very complex code like multimedia code, a multi-threaded system, a protocol layer stack, you still 'think like object code' - C compiler doesn't punish you if you are bad at encapsulating two routines or objects - but when the system scales that keeps firing you - i believe at times - there are many who are born in the era of object orientation, quite often are fairly weak on exactly how encapsulation really gets violated in a code which is pretty much filled with classes and objects. Sorry i digressed. But the point is - it is more of your skills of problem analysis and design that matters more than your programming skills alone.

Does it mean i should put domain specific exposure and design skills saperately?
Definitely yes!

Dipan Mehta
  • 10,612
27

For the people that really matter, no, it shouldn't confuse them.

Anyone who knows anything about real-world C and C++ programming knows that although despite their similarities and history, production programming in either is more often than not a completely different animal.

Dan McGrath
  • 11,181
  • 6
  • 57
  • 82
13

Personally, I find it very annoying when people write "C/C++", because C and C++ are very different languages. Conversely, if I see "C, C++" or "C++ and C" on a resume, it impresses me to no end. Unfortunately, almost everyone writes "C/C++", and it typically means "I know C++, but I can do C if I have to."

Also, I would not be so specific on the CV. Just list the programming languages you know, possibly in the order from most proficient to least proficient. That should get you past the HR buzz-word filter, and then you can explain during a technical interview what your strengths and weaknesses are.

Dima
  • 11,852
7

No, it should not be confusing because C and C++ though similar and sharing similar roots are different in paradigm and usage. Thus, it should be separated, also the expertise should be separated too. Plus, i think you can mention more specific expertise(like GUI/FLTK or other libraries that you're familiar with) with the two separated.

aggietech
  • 1,082
5

I liked your phrasing: "I have done several real world C++ projects while pure C projects where just a hobby thing"

So I'd just put it in CV jargon:

  • worked on several C++ products
  • a few side projects using C

It's better if you put numbers in place of "several" and "a few". No need to be exact, "over twenty" is a number for this purpose.

The "skill level" description is correct, but the "experience" description is correct and clear.

3

I agree that C and C++ are different languages and should be kept separate in the CV. Even though C is (almost) a subset of C++, I normally have a very different programming style when using C: I design differently, I code differently, and so on. I would even remove certain C features like #includes from C++ giving up backward compatibility altogether: they are simply different languages.

So my advice is to keep the two languages separate in your CV.

Giorgio
  • 19,764
3

Simply, if the person evaluating you had the propensity to think "C is a subset of C++," they're already confused, and I'm sure your explanation of what's written in your resume will be enough to wow them.

Mr_Spock
  • 327
  • 2
  • 7