views:

355

answers:

3

I am a fairly junior programmer and have the task of interviewing an experienced mainframe COBOL programmer for a position doing C++ development for Windows Mobile. By experienced I mean that the candidate's entire programming career has been COBOL.

I am not biased against any particular language, just slightly concerned about my ability to do a thorough interview.

Inside of an interview how can I, with no COBOL experience, get a good feel for the abilities of this interviewee?

Are there any specific things I should ask or look for?

I have already read up on a lot of general interview stuff on SO, what would be helpful are any specific things I look for given the nature of the candidate's background.

+1  A: 

Isn't it more important to figure out how good the interviewee is in regards to C++, if that's what he is supposed to work on?

lothar
The candidate is likely to be a better programmer than his ability with C++ will suggest, as C++ is already very complex, and unfamiliar besides. The question asks for ways to feel out the candidate's programming aptitude, not C++ experience.
TokenMacGuy
True, but to decide if he can effectively work on the C++ project I would ask him to start learning C++, come back later and the check on his (or her) progress.
lothar
We are recruiting several people for a short term contract with possibility of hire afterward. The limited time frame does not give us the luxury of asking him to come back later.
JDM
+4  A: 

The best thing is, give him a task, similar to what he will have to do at your company. Tell him he can use pseudo code (So no Internet is needed).

Also, The main problem Cobol people have is to grasp OO (Since Cobol is mostly procedural...I am aware of new OO versions).

One more pitfall Cobol people have is grasping the scope concept, As traditional Cobol each variable live from start to bottom of the app he is in.

Itay Moav
Thanks, I had heard about the OO limitations of older versions of COBOL but not scoping stuff.
JDM
+4  A: 

If this person is a good programmer at all, he/she have had experience with other languages. (Speaking as an old fart who started with COBOL and even worse RPG/II.) Even if this person have never had a job with anything else.

Here are some things you might ask:

  • "How did you get started with computers?"
  • "Do you do any programming for fun?"
  • "Why do you want to move to a C++ environment?" (This is an especially good question because good COBOL programmers are actually hard to find now. I'll bet this person wants to learn something new.)
  • "Have you done any assembly language programming?" (Odds are much better they'll take to C/C++ quickly if they are comfortable with the machine.)
  • "Can you describe what 'object oriented programming' means?" (Keys: look for a description of what "objects" are, "inheritance", and "polymorphism". If that works out, ask when they'd use inheritance vs aggregation, ie, "is a" relations vs "has a" relations.)
  • "Do you have a Windows computer at home or do you have a real computer?"

If they claim any C++ knowledge, a really good set of screening questions are:

  • "What is the difference between a declaration and a definition in C?"
  • "What are the differences among 'private', 'protected' and 'public' declarations in a class?"
  • "What is a 'friend'?" (Extra credit if they know to say that "In C++ only your friends can access your private parts.")
  • "What is a virtual member function?"
  • "What is 'virtual inheritance'?"
Charlie Martin