Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

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'?"

Make sure they know and understand structs/classes, types, polymorphism, templates, functions, and most importantly pointers. Make sure they understand the syntax. How would they declare a pointer to a void function that takes two integer arguments, for example? How would they solve the most vexing parse? How can initialization lists optimize code? Are they familiar with the Standard Template Library? Can they hand-code a primitive linked list or vector array by hand? These things are what you want in a programmer capable of writing efficient and clean code.

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?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top