What’s Your Strongest Language?


Futura writes that s/he has been a developer and then a tester for many years.  In that time, s/he has used many languages, including C++,VB, Python, and MatLab.  Futura is planning to apply for an SDE/T position and is looking for advice on answering the question “What is your strongest language?”

On the surface, this is a straightforward question, and it should have a straightforward answer.  Your strongest language is whatever it is, probably the one you’ve used the most recently.  Answer truthfully — don’t try to figure out what your interviewer is hoping to hear.  This question isn’t asked to disqualify you, but rather to give some context to your answers in the rest of the interview.

There is likely another question lurking here as well, however:  can you code in whatever language we use on this team?  This isn’t usually explicitly asked, probably because most people won’t admit to not being able to learn a new language.  Thus the rest of the interview will probe into this.  Futura is in a great position here, because clearly s/he can learn new languages.  This ability is definitely something to highlight:  “Well, today I would say I’m strongest in C++, since I’ve been using it day in and day out for the last seven years.  But last month I started teaching myself C#, and I’m picking it up quite rapidly.  Historically it only takes me about a week to grok the basics of a new language and about two months of steady use to reach a better-than average proficiency.”  At which point your interviewer will proceed to drill you on C# to find out just how much you have(n’t) learned in that month.  <g/>

In any case, the point of a coding question generally is not so much to find out how well you do or don’t know a particular language but rather to learn how you approach and think about problems.  Sure, if you claim ten years of C#, your interviewer will expect different things than if you say you just started learning it last week.  And certain positions do require a certain level of experience with a technology, in which case you can be sure you’ll be drilled thereon.  But in general, the specific language you use is not so important.  I tell my interviewees, in fact, that pseudocode is fine!

The key point here is that we are much less concerned with what you do or don’t know and much more concerned about your ability to learn.  This is especially true for college kids but it holds true for everyone.  Sure, someone with ten years of experience in the technology is probably more attractive then someone with no experience.  But if that old hand has no imagination or creativity and writes spaghetti code, while you write clear and concise code that gets the job done in an efficient manner, the scales suddenly become much more balanced.


*** Comments, questions, feedback?  Want a fun job on a great team?  Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com.  I need a tester and my team needs a data binding developer (i.e., a developer that wants to play with databinding), program managers, and a product manager.   Great coding skills required for all positions.

Comments (6)

  1. let’s see…. ten years…. 1994
    <br>
    <br>If you claim ten years of C#, i’d imagine that your interviewer will either laugh, accuse you of lying, or terminate the interview.
    <br>
    <br>:)

  2. B says:

    The answer to the question is English.

    Maybe they are trying to find out if you’re making assumptions and reading too much into the question.

    Sort like the "how do you eat an elephant" question.

  3. If an interviewee claims that they have ten years of C#, I would show them the door…

  4. I think the question is largely irrelevant. A good question ‘what is you DESIGN language’. Example: my primary language is Russian. Obviously it is my stongest lanuage. Do I think in Russia when I am preparing for meeting? No,I tend to hink in English sicnce it is the language I am writing the presentation in.

    So it does not matter which language is strongest. What matters is which one is appropriate for the task. During design it i bad thing to think C++, Java or C#. One should be thinking in desin patterns, not in language terms.

  5. Futura says:

    Mikhail,

    This ques is genarally asked during the interviews and I don’t think that anybody can accept a specific design pattern as an answer. Further I don’t think design pattern is that important from development point of view. I agree that if someone has good knowledge of DP s/he can come up with good soulution but it is not absolutly essential for becoming a good programer.