views:

350

answers:

7

I am going to an annual Free software/Open Source convention. This event is very community oriented and the hallway meetings are very informal. Since the company I currently work for is looking for C++ developers (in a Linux environment), I printed on a T-shirt the words "We are recruiting C++ developers" in large letters.

Hopefully someone will come up to me, introduce him/her self and tell me he/she is a C++ developer and is looking for a job.

What should I ask to gauge their C++ knowledge? I need a question that can be answered standing in a crowded hallway and with a pastry in hand.

An example might be:

  • Why does a destructor need to be virtual?

Or perhaps some more open question such as:

  • What is your least favorite C++ feature?

Clarification:

This question will not replace an interview, it just suppose to give an idea if it will be worthwhile to invite a candidate to an interview.

Moreover, we already have a very capable person working full time on trying to fill these positions. Since for my own selfish reasons I want to attend this conference (it is a fun event), I thought it might be an interesting experiment to try and tap this unusual concentration of geeks. If this experiment is going to work, I also wish to have not just a random list of name, but a list of names with some indication of suitability.

I will report here, the results from this experiment, after the conference.


Conclusion:

The conference is over. Here is what I learned from this little experiment:

  1. It was fun. In general people got it. Most of the comments I got was that it is a nice idea. It was an easy way of sparking a hallway discussion with interesting people.

  2. C++ developers are not as introverted as one might suspect. My evidence is far from conclusive, but about half dozen C++ developers approached me.

  3. I shouldn't be worried about a particular question. A discussion with a potential candidate in this environment tend to naturally fall into a known pattern, of me describing what we are doing, and thus the natural question to ask the candidate is what he/she as done.

  4. It is hard to gauge the candidate qualifications in this environment. At the end I handed my calling card to every candidate that I met. Since not all of them are actually available right now, I suspect that it will be easy to sort the people that will actually follow up the lead I handed.

  5. Perhaps I could have be better organized, but I feel that the informal nature of the conversation, and the fact that I handed a calling card, but didn't wrote down their details, meshed well with the conference's ambiance.

To conclude: If you are looking for a candidate, and you suspect you will come across your target audience in an informal event, I recommend spending $15 on printing a simple message on a T-shirt. If nothing else it will get you a laugh.


Meta:

This question was never intended to raise any controversy. It seems however, that recruiting is a contentious subject, every answer here was voted down at least once. Even this question was flagd to be closed by some people. If you feel I wasted your time I am truly sorry.

+2  A: 

"Do you get pimpls?"

More seriously, "What are the advantages and disadvantages of pimpls?"

Andy Thomas-Cramer
might confuse the hell out of foreigners :-)
aaa
True. But the interview is a dialog, and you're learning something about the level of knowledge as you find yourself explaining more. If the candidate doesn't know the term "pimpl," he or she has likely not read Sutter and Alexandrescu's "C++ Coding Standards." Next try to clarify with "private implementation," and if necessary, describe the implementation itself.
Andy Thomas-Cramer
it was more joking comment. But in serious tone, I probably would not know correct sounds for most C++ idioms, having never have heard them
aaa
If only one question is being asked, then I would withdraw my suggestion. It would screen out competent C++ developers. I do find it handy in onsite interviews as one of a set of questions at different knowledge levels.
Andy Thomas-Cramer
Sorry you will have to write this question to not confuse the geebers out of your interviewee's. ;)
C Johnson
+7  A: 

I'd just ask them about what projects they've done in C++. If they have done anything non-trivial, and sound like they know what they are talking about, then they may be worth bringing in for a real interview.

I might ask what other languages they use, and when/how they learned C++. If they've been doing C++ for a while, and learned it before learning Java, C#, Python, etc., that's a good sign.

I don't think impromptu questions about C++ arcana are very useful in gauging whether someone is smart and gets things done. Save that for the real interview.

Kristopher Johnson
@Kristopher So it is a bad sign if a C++ developer knew other languages before C++?
Skyler
@Skyler I'd read that as "are used to managing their own memory" rather than having a strong GC mindset. But I'm not sure that's a problem.
Rup
@Rup That makes more sense.
Skyler
@Skyler I didn't say knowing other languages first is a "bad sign". I've just found that people who started with C++ early in their programming careers are generally better C++ programmers than those who picked it up later. I guess the real test is whether somebody can think in C++ vs. thinking in some other language and translating those "foreign-language" thoughts to C++. I also think it is more common to find good low-level programmers who became good high-level programmers than vice versa.
Kristopher Johnson
I've found most good low-level programmers suck at being high-level programmers (exalted present company excepted of course!). A good low-level programmer tends to be too much of a control freak to effectively use high-level tools.I've seen Prolog code written as if it were C....
JUST MY correct OPINION
I agree that C++ should be learned before high-level languages like Python because it's more concrete. In my opinion a good path is asm->C->C++->Python; where every time you learn a new language it has no "magic" for you...I think the other way around is a lot harder and requires faith and a lot of neurons to memorize things that appears strange because you don't understand why it happens (for example why pushing an element to a vector may invalidate iterators or why returning a reference to a local is bad).I don't understand however why one should learn Java (unless forced, of course) ;)
6502
+1  A: 

What should I ask to gage their C++ knowledge?

I don't think it is even possible. You can get a brief idea about people's skill level by looking at their code and working with people together. But one question? It is like playing russian roulette where only one round isn't loaded - you can get a bad developer that just happen to know answer to your question.

I'd recommend to invite people to a job interview, and then hire most suitable. Even if there are skilled developers, it doesn't mean they'll automatically want to work with you.

SigTerm
A: 

I would cancel your appointment and spend the time researching high quality recruitment agents in your area. Far more productive than hoping to come across a great employee by chance.

Visage
On the contrary, going to a gathering of people that will contain a high density of programmers is a good way to find a good C++ programmer. A "high quality recruitment agent in your area" is more like chance.
Gabe
+5  A: 

don't ask him any C++ questions at all -- ask him what he's done in it. if he passes that, give him a business card, and give him a good reason to remember email you.

Dustin Getz
How is "What have you done in C++?" not a C++ question?
Gabe
+4  A: 

C++ is a huge language, so asking about any particular part of it isn't going to be useful unless you're only interested in employees who already have a lot of experience with that feature. It's better to ask what they've done in C++. Have them describe a class hierarchy they've designed or an interesting C++-related challenge they've recently had. You can judge based on their answers how much they understand what they're working on and if they're passionate about it.

Gabe
+3  A: 

Instead of writing "We are recruiting C++ developers" on your shirt, make one that has a complicated C++ code snippet that returns that phrase as a string. A poster may be more appropriate than a shirt, depending on how large of a surface area you have. You could alternatively have a code snippet that evaluates to your phone number and see who has left a message on your voice mail by the time you get back home.

bta