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.
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.
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.
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.
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.
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.
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.
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.
Be careful with that. Best to just ask that particular company, but for us, I'd rather you pick your most proficient (mainstream) language. If you pick our main language and are fumbling a lot, that looks worse than you fluently gliding through your preferred language.
Exactly. The job will be advised requiring proficiency in one or more languages, so that defines which ones you should use. From those, do a couple of practice interview questions - it will rapidly become clear which language you prefer for these.
I think you need to go with one you are comfortable with.
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.
That said, it helps to use a language in the company's stack.
We used to have a question that happened to require parsing JSON. The majority of candidates using Java struggled hard and wasted so much time on this part. We ended up changing the question to have newline delimited input instead of JSON for those who wanted to use Java.
For actually solving issues live, Python makes the most sense.
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.
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.
[+] [-] superdeeda|7 years ago|reply
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.
[+] [-] hluska|7 years ago|reply
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.
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.
[+] [-] ioddly|7 years ago|reply
Personally I choose Python given the option: easy to write, slices and comprehensions generally make algo question answers very terse.
[+] [-] arh68|7 years ago|reply
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.
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.
Python is a much, much better choice, I now realize. I just wish they allowed JavaScript! My mistake.
[+] [-] dagw|7 years ago|reply
[+] [-] sethammons|7 years ago|reply
[+] [-] pjc50|7 years ago|reply
[+] [-] cakes|7 years ago|reply
[+] [-] sjclemmy|7 years ago|reply
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.
[+] [-] peruvian|7 years ago|reply
That said, it helps to use a language in the company's stack.
[+] [-] sethammons|7 years ago|reply
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] hkarthik|7 years ago|reply
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.
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.
[+] [-] neduma|7 years ago|reply
[+] [-] souprock|7 years ago|reply
[+] [-] samfisher83|7 years ago|reply
[+] [-] aplummer|7 years ago|reply
[+] [-] samfisher83|7 years ago|reply
[+] [-] protocontrol|7 years ago|reply
[+] [-] iamthelord|7 years ago|reply