I prefer a high-level language like Python for coding interviews so that I can use their string operations, list comprehensions, etc. and not have to manually "implement" the boring parts of the questions.<p>As an interviewer I would really rather not sit and watch someone write C on a whiteboard. Use whatever language you feel like you can skip to the interesting parts of algorithms. Even pseudo code could work.
I've been both an interviewee and an interviewer and honestly, in both roles, I prefer pseudo code.<p>As an interviewer, it gives me a chance to step back from noticing syntax errors and lets me focus on how the candidate thinks, reasons and explains her way through problems.<p>As an interviewee, I prefer pseudo code because I don't have to worry about syntax or minute details of a language. Instead, I can just focus on communicating how I'm working through the problem.
The one you're most comfortable with.<p>Personally I choose Python given the option: easy to write, slices and comprehensions generally make algo question answers very terse.
C is bad, a real bad choice. I was given a few options by a Google recruiter, and I felt more up to date with C than Java, so I went with that. He seemed to approve. Boy, it was a bad choice.<p>One interviewer laughed and asked me if I wanted to switch languages, right off the bat. In retrospect, that was gracious. He said I was probably not going to finish in time, but.. if I really wanted to.. I could give it a try. I kinda froze.<p>The last interview was more of looking at sample code / code review, and get this: it wasn't even in C, it was C++. Not what I expected! Turns out I should've been studying that, too. They are certainly similar, but it's just another curve ball.<p>Python is a much, much better choice, I now realize. I just wish they allowed JavaScript! My mistake.
The obvious answer is to find out what language you'll be programming in if you get the job and use that. Otherwise just pick whatever you are most comfortable with and takes the least amount of mental effort for you to do the basics.
I think you need to go with one you are comfortable with.<p>That said - there will undoubtedly be bias depending on the company. For example I had a phone screen for a company that used Ruby and Go and I suggested C# and javascript because I don't know any Ruby or Go. I didn't get any further and this may have been a contributing factor.
High level dynamic language with a good standard library (Python, Ruby). I've seen applicants waste half their interview time writing helper functions in C or write a bunch of classes in Java before getting started with the actual problem.<p>That said, it helps to use a language in the company's stack.
For actually solving issues live, Python makes the most sense.<p>But be prepared to read a lot of solutions to problems written with for loops, do-while loops, and other constructs that are not pythonic and don't translate as well to pythonic code.<p>In a way it's good, because it forces you to re-implement the algorithms in a way that makes sense to you, thereby increasing your chances of actually learning and retaining the information.
C is OK. We'd love to see assembly language. Ideally you could show both, demonstrating that you can transform one into the other and have a good feel for what a compiler would do.