So in my quest for a new job, I've come across some companies that either give "take home" coding questions to potential Interview Candidates on the very first round or in the mid rounds of the interview process. Nature of the problems are usually language agnostic in the form of some terminal driven application.
Just wondering, have you given a take home coding question to a potential candidate? Typically how long would you expect the candidate to respond with a solution? If you've taken one, how long did it take you to respond, and how much did you write? Curious to see how common these kinds of "projects" are in the typical recruitment process.
As a contribution, I've recently received one as a first round interview question. A simple terminal app that asks you to draw simple lines and rectangles on a terminal canvas. They judge you on error handling, design and test coverage. I've spent at least 3 whole days on it (and a few late night hours in between after work). It's been about two weeks and I'm about to send my solution back. Have I taken too long?
Did they give you a guideline like Ramiro Berrelleza suggests to his candidates? As Bridget Sarah points out, it is really unfair to assume you have unlimited time.
I would timebox it to one evening after the interview, unless I got some specific guidance.
Perfect is the enemy of done :) You'll get diminishing returns if you spend too long on it.
I started this process with Github a few years ago, stressed out about it and finally turned it in. They never got back to me... So ya, if I could take those hours back, I would ;)
I've been on both sides of this types of questions. In general, I prefer this over the traditional white-boarding exercise, as I find this more realistic. Particularly if the homework is something similar to the type of work that my team does. It allows us to better evaluate the coding and problem solving skills of the candidate, specially when compared to one of those "gotcha" coding questions that most companies still use in their interviews.
But I know that is has its downsides. The main one is that there's no way to control how much time the candidate devotes to this, and this is unfair with people with more responsibilities (work, family, etc). As an interviewer I always tell the candidates to only spend 2 or 3 hours in the homework. But everyone always spends a lot more on it.
I can't speak for an employer but as a potential interviewee I had to try and build a web scraper which confused me, got it eventually but didn't cut it and between that I'm a fulltime parent so doing this around my daughter was a nightmare..
It's good to test but sometimes I wonder If they are asking too much for the developer and nerves also come to show. I've not done a terminal app but I would image would take the same time or more, call it at five days would think
Diego Bernal
Front-End Engineer
I have completed several of these take-home style assignments. Personally, as a front-end developer, I prefer these to coding tests on Codality or any other tests on algorithms and data structures.
All of these have been given with specific instructions as to what is needed to be completed and how to turn it in. Most of these mentioned that they understood life gets in the way so they were really lenient with time (about a week). One or two assignments specified that if it took longer than 6 hours, don't even bother turning it in. I usually end up putting in much more than the "suggested" time, up to 10 hours, spread over a week or so. It just depends on the assignment and, ultimately, the company.