13

I just received a code challenge from a company I applied to.

The code challenge gives you an option to choose from a wide selection of languages. I know that Python would be easiest, but I'm wondering if I should choose C++ or another language so that it's not obvious that I choose the "easiest" language on the list? Because I can think of a lot of questions that would be a LOT easier in Python.

Do interviewers really take that kind of thing into consideration? Or am I overthinking this? What should I factor in when deciding on a tool to use for an interview exercise like this?

  • 11
    I think it'd be really, really weird to give a list of languages, but then secretly mark off for using some of them. Interviewers don't generally try to trick applicants. Picking a language just because it's more difficult also goes against common sense. You'd never do that in professional development. I really doubt they'd have that kind of expectation then for an interview. – Kai Jan 4 '18 at 6:01
  • 9
    What is the primary language you would be using in this position? If python is it or one of them then it makes perfect sense. – IDrinkandIKnowThings Jan 4 '18 at 6:05
  • 3
    They most definitely do, based on personal experience. In the past I have used PHP5 and Ruby to a lukewarm reception. One interviewer actually made a comment afterwards, wondering why I used PHP. Since then, I will no longer use those two, opting for Python or hottest-backend-language-of-the-hour (whichever it is at that point in time). – Juha Untinen Jan 4 '18 at 7:09
  • @Kai the company did not develop the website the challenge is on, so I don't know if the list was a matter of choosing some default languages or if they customized the list themselves. – StarSweeper Jan 4 '18 at 8:28
  • 3
    A lot of the time the language is sort of "irrelevant" because the problem-solving is generally the same across them. It's a methodology approach that's interesting more so than a syntax issue. – Allan S. Hansen Jan 4 '18 at 9:01
30

Yes they do take it into consideration but there is no way for you to know how they consider it.

I know it's not the answer you wanted, but it's the truth. The only peace of mind I can offer is that people don't like seeing other people fail. So I strongly doubt this is a game of Russian roulette. Either language should be equally received.

You said Python is "easier" but you could have also said one of these many subjective comparisons.

  • a dynamic language versus a typed language
  • a slow language versus a fast language
  • an easy to debug language versus to a difficult one
  • an open source language versus an ANSI standard?

You're comparing apples and oranges here.

Knowing which language they consider the right pick is as subjective as asking if Python is better than C++. The answer depends on who you're asking.

It's your personal choice, and they want you to pick one. The key here is that it's an opportunity to tell them which you'd prefer to work with when you first start at your new job. So it's about picking one you can successfully complete the challenge with, but also picking one that you'll be happy using.

So pick the language that will bring you the most fulfillment and also complete the challenge.

You might pick the wrong one, or maybe there is no wrong one. The point here is to be true to yourself about which you'd prefer. That's all you have control over.

  • As addition to this answer becaues it is quite complete: I recently took up a code challenge, and to show my openness to change; I started working with framework (in this case it was a front-end challenge) which I had little to no experience with, since I was told this company works with it a lot (It seems they didn't yet). Afterwards they were not fully happy and let me develop using what I feel more comfortable with and they were absolutely happier. It mostly depends on your reasoning behind it, you can also ask what they want to see; clean code? or best choice of language? – Mathijs Jan 4 '18 at 6:17
  • 2
    For more completeness, the right pick isn't just about who you ask, it's also about what you're going to be doing with that language. – Erik Jan 4 '18 at 8:01
  • 7
    And, at the follow-up interview, be prepared to defend why you picked a language. Make sure you have more to say on the matter than "it seemed easiest to do it in this language". Know a thing or two about why this particular problem would be well solved with the particular language you picked. – Mast Jan 4 '18 at 8:28
  • 2
    After reading this answer and reading through the job description a little more I think I'm going to wait until I see what the questions are and make the decision then based on which language I would use to solve the problem in real life. Thanks for the help! – StarSweeper Jan 4 '18 at 8:41
  • 5
    It's worth remembering that part of the skill of a good developer is in using the right tool for the job. Most of the time, the simpler tool is the right tool. – Dan Puzey Jan 4 '18 at 10:23
22

As an interviewer, I would like to see that

  • the language of your choice is suitable for the task you're given;
  • the language of your choice is properly used;
  • you can explain your choice stating pros and cons of the selected language vs other options.

Of course, solution has to be correct and demonstrate your ability to solve the problem.

Selecting the "easiest" language could signal your ability to pick right tools for the job - make sure to explain your decision.

  • I agree. Actually, a common problem with young developers is that they believe that some language is "better" without really knowing why. I have joined a project where they decided to develop a GUI in C++ / Qt despite the fact that there were no requirements for cross-platform support, and the whole project was actually an extension for AutoCAD which has a perfectly fine .NET support. But hey, C++ is the language for Real Programmers... – IMil Aug 20 '18 at 23:46
5

Deliver a flawless solution.

Show your ability to produce well-structured, easily readable, well-documented, maintainable, robust, efficient etc. solutions to programming problems. If I were the interviewer, I'd give the solution to a random in-house developer and ask him if he understands the code, and to an expert in your chosen language to judge your coding style.

So, choose a language that allows you to do that (and makes sense with the given challenge, so don't e.g. choose Javascript for high-performance algorithms). Don't choose a language you're unfamiliar with - you'll make lots of newbie mistakes.

And don't worry whether you meet the company's preferred language: if they wanted to hire an expert in exactly one language, they would have told you.

  • 3
    I wouldn't use Javascript as an example of a bad choice for high-performance algorithms; it's actually quite fast these days. You're likely to get faster results with Javascript if you know it, then with a "faster" language you don't. – Erik Jan 4 '18 at 11:21
  • @Erik good point: I'd rather run the right algorithm in JS than the wrong one in something faster. – Jared Smith Jan 4 '18 at 11:24
  • Of course, with the wrong algorithm you can easily waste a factor of 1000, with the wrong language maybe a factor of 20, so with the wrong algorithm in the wrong language you'll waste a factor of 20000... – Ralf Kleberhoff Jan 4 '18 at 13:03
  • 1
    The only "flawless solution" is choosing not to do the challenge. Source code is highly subjective, and people reviewing the code want to know if the candidate will fit in with their coding style and culture. It's just assumed that the candidate will complete the challenge. What they're looking for are red flags in their style that indicate they won't fit in. Maybe his code is obfuscated or he writes comments with an attitude of superiority. Maybe he doesn't write any comments. Maybe they prefer functional and he writes OOP. It's very subjective. So you can do it perfectly and still fail. – user7360 Jan 5 '18 at 14:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.