Aaron N. Tubbs bio photo

Aaron N. Tubbs

Dragon chaser.

Twitter Facebook Google+ LinkedIn Github

A pet peeve: “C/C++” on a resume.

Well, lists of languages and technologies and general. But C/C++ takes the cake. Why? Because C/C++ implies competency in both C and C++. Usually somebody with C/C++ on their resume is incompetent in C++ and completely unaware of C.

As I’ve said before, I think C is something everybody should know a bit of. If you list C on your resume, you should at least know malloc, free, strxxx functions, and pointer math. It would probably be good to know that C does not support references, constructors, destructors, templates, and various other things that only exist in C++. Just because you did a problem in C++ in college does not mean you know C++, and it most likely does not mean you know C either.

And this gets down to the whole issue of programming language competency. I’m really tired of seeing laundry lists of programming languages, technologies, and web browsers used by an applicant. Here, in 90 seconds, a list of languages that immediately came to mind, in which I’ve written at least a line: ocaml, ruby, MIPS assembly, x86 assembly, perl, php, python, jython, ironpython, activeperl (because, you know, all these VM/platform-specific differences matter), javascript, java, rxml, cold fusion, C, C++, objective-C, common lisp, lisp, scheme, forth, fortran, matlab, mathematica, vbscript, vb, C#, prolog, and a half dozen other things that I surely can’t remember.

How many would I be willing to defend on a resume? Not that many. I work professionally with C++, and I still know there are a lot of areas where I just plain don’t know anything. The STL for example. That’s another nice interview joke, when somebody mentions they know the STL or things would be easier if they could use the STL. They probably don’t really know the STL. What they mean is they’ve used vector and string, and that’s nicer than a character buffer. Maybe they’ve used iterators. Chance that they’re familiar with <algorithm> and <functional>? Very small.

Anyway, point is, list C++ if you know C++. List C if you know C. Better yet, list a job where you used C++, and skip the list altogether. If you have a good interviewer, they’ll figure out what languages you use, and judge some competency. Your language laundry list is shit. But C/C++? Don’t presume to know one because of the other. You don’t pick up both languages for free unless you’re using an outdated book that’s going to do a terrible job of teaching you both languages. And, based on my statistical sampling, odds are against you knowing either of the languages.