views:

812

answers:

5

Hi Guys,

I'm not quite a c programmer and I'm not joking that I'll interview a guy with 3 years experience in c under linux . in his cv, he said he is quite experienced with c programming under linux .

so my question is if you are goning to this "c linux" guy, what question or questiones you will ask to make sure that this guy does have high c competence under linux . by the way, I expected you give me the answer as well :-) .

thanks in advance.

+1  A: 

Favorite: Ask him where the strenghts of C are...and why he would recommend to use it...maybe you can give him a project example. He has to clarify why C is the right Language for that Job from his point of view.

From my point of view it is very important to know if a Language is really fitting to a project. Not because its your favorite Language...

It is an easy question...

bastianneu
Even better: ask him where C falls down with respect to other languages, and where it would be the *wrong* tool for the job. If he's been working with the language for a while, he should be able to name a few weaknesses (text processing is at the top of the list for me, but there are others).
John Bode
+6  A: 

Don't simulate knowledge you don't have. This will get noticed and this is the image of your company that you are playing with. Candidates may want to find better oportunities.

Be honest with your level of C and ask him open questions about what he finds wonderful in C and Linux, and what he thinks are drawbacks. Let him tell you what were his previous experiences.

Appreciate not his knowledge but his passion.

mouviciel
Not only that, but if the interviewer doesn't know the subject well he would disqualify anyone whose answer doesn't literally match the expected one. This turns the interview into a dumb "fill in the right answer" test.
sharptooth
+1  A: 

To be honest I think your best bet is to get someone who is a C programmer in the interview with you to ask questions, you can only really judge competences you have yourself.

If that isn't possible I'd say you should be askind questions that test their knowledge of pointers. an obvious example is to write string manipualtion functions such as strcpy

jk
+5  A: 

If the candidate really knows his stuff (C Linux programming) he'll catch you pretty quickly, but anyway, here are a few pointers to topics you should investigate to prepare questions:

  • POSIX concepts
  • Standard C library (libc), ANSI C
  • Debugging and profiling tools: gdb, valgrind, strace, etc
  • Linux/UNIX system calls: sbrk,mmap,fork,etc
  • Threading
  • (Insert your favorite pointer question here)
  • The GNU toolchain: gcc,ld,as,automake,autoconf, etc.
  • Classic Linux utility C/C++ libraries: glib,qt, etc.
axel_c
It is not necessary to code in C under UNIX/Linux and use threading, glibc and qt.
qrdl
Of course it's not necessary, but I think anyone with 3 years experience will have at least a general understanding of them.
axel_c
A: 

If all you are trying to do is assess his knowledge of a specific language, and you don't know that language, you're gonna fail at evaluating him.

Can you instead evaluate "can this guy program and is he a good communicator" and be up-front with him about your knowledge? Give him a basic question to start with, fizzbuzz or whatever, and ask him to code it in C and give you a C tutorial as he does it. Then do something more complex but C-ey (see other answers for ideas) but still in the context of, "teach me what you know and how this works".

If you frame the question as, "I know (for instance) python and Java, but not C, please teach me" you could end up with a very informative interview. But don't give the poor guy a quiz, you won't be able to give him hints, and he could ace it or flub it with very little correlation with his actual skills.

Moishe