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.