top | item 18606914

Ask HN: What programming language to choose for coding interviews?

16 points| prabhupant | 7 years ago | reply

I'm preparing for coding interviews. So is there any particular language that interviewers prefer? What about if I go with C or python?

20 comments

order
[+] superdeeda|7 years ago|reply
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.

[+] hluska|7 years ago|reply
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.

[+] ioddly|7 years ago|reply
The one you're most comfortable with.

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
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.

[+] dagw|7 years ago|reply
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.
[+] sethammons|7 years ago|reply
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.
[+] pjc50|7 years ago|reply
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.
[+] cakes|7 years ago|reply
Whatever is easier for you but (if you can) target what they write in
[+] sjclemmy|7 years ago|reply
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.

[+] peruvian|7 years ago|reply
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.

[+] sethammons|7 years ago|reply
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.
[+] hkarthik|7 years ago|reply
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.

[+] neduma|7 years ago|reply
Pseudo language would do for me and i expect candidate be more explicit her/his thoughts.
[+] souprock|7 years ago|reply
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.
[+] samfisher83|7 years ago|reply
In that case why not just write the code in binary. If you have all the opcodes memorized that is pretty impressive.
[+] aplummer|7 years ago|reply
The iOS community is a good indicator that a python style language is preferred, people interview in Swift even for objective c roles.
[+] samfisher83|7 years ago|reply
C standard library is not as good as python.
[+] protocontrol|7 years ago|reply
So many Python zealots... Whatever you do stop this non-sense Python dictatorship