When they ask you to choose the programming language you are comfortable with before an interview, is it to ask questions about the programming language or to check how well you code in it?

Like for example, if I don't know what iterators are in Python but I'm comfortable with Python because of its in-built facilities, should I use Python or not?

I might have studied everything about Haskell for ages but it takes me longer to write code in Haskell (imagine writing an AVL tree in Haskell). Is Haskell a good choice then?

  • It depends. Usually you want to pick the language you know the best and can talk about the easiest. That said, I doubt many places are interested in developers highly conversant in Haskell... – Telastyn Dec 11 '13 at 13:49
  • @Telastyn, Haskell was for an analogy. Writing code in Python is much easier than C for anyone who has even a slight knowledge of Python and a full knowledge of C. Right? Imagine you need a stack in your larger program. In Python you would just use the array ADT. In C you would need to keep track of the top, empty/full states, memory allocation, etc. – learner Dec 11 '13 at 13:58
  • Unless you have reason to believe that the interviewers are good functional programmers, I'd avoid haskell. – CodesInChaos Dec 11 '13 at 15:32
  • 4
    I'd recommend not starting sentences with the word Like in an interview. ;) – Reactgular Dec 11 '13 at 16:34
  • 3
    Facetious answer: Try to pick a language the interviewer doesn't know so they won't realize when you make mistakes. – Evicatos Dec 11 '13 at 23:53

is it to ask questions about the programming language or to check how well you code in it?

Neither. It is to put you at ease, using a language you know.

The interviewer is looking at how you approach problems and doesn't care about what language is being used. How you solve problems and approach problem solving is what is being looked at, which is why they say - "choose the programming language you are comfortable with".

Now, if the interviewer can see that one is not competent in the chosen language, that can ring alarm bells (the thinking would be "this is the language this person says they are comfortable with, but they can't get even simple, common syntax right. Oh uh").

You should choose a language that you know how to write - not something you need to have a reference to work with. A language you use on a daily basis is best.

A language that you can code at while talking about the solution is what you want to use.

It is not normally expected that the code written will compile ;)

| improve this answer | |
  • But will they ask me language related questions? Like what is closure (for JS)? ; Does an empty struct hold memory (for C)? – learner Dec 11 '13 at 14:01
  • @learner - if you are choosing the language, it is unlikely. Unless this is a "choose from these 3 languages", it is not likely they will ask deep questions about the chosen language. If that was the aim, they would be the ones telling you what language you are expected to use. It is possible that an interview will include both kinds of questions, but then there should be an expectation that you would be told that the deep questions would be in that language. – Oded Dec 11 '13 at 14:04
  • Does appropriateness of a programming language matter? If I chose an extremely functional language like Haskell and I was asked to create an ADT, I could do that, but that wouldn't be how it is in the real world. Do such things matter? – learner Dec 11 '13 at 14:10
  • And another thing if you don't mind :). If someone chooses a low level language and solves the problem ground-up (i.e. every tiny bit of it since nothing is readily available in the language), and another one chooses a high level language and programs just what is needed on top of the large layer of abstraction provided by the language, is it going to make a difference among the 2 people? – learner Dec 11 '13 at 14:13
  • 2
    @learner - well, as a programmer, you are supposed to be able to use the right tool for the right job, so going for something completely unsuitable for the task at hand is not a plus. – Oded Dec 11 '13 at 14:13

It really depends on the position you're going for, i'd perhaps be tempted to try and find out what the format of the interview was beforehand, i found usually if they are going to ask you to code something they'll at least give you an outline.

If you going through an agent get them to do some digging for you, remember they get a nice bonus for getting you the job so make them work for their money!

In terms of picking the language i'd pick the one you can code in the quickest and cleanest with the minimum of googling/reference material.

Lastly, relax! Remember you're getting an interview because they want you to be the right person, unless your applying for a very senior role they won't expect you to be an programming encyclopedia.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.