Take home is great, except people cheat. People even cheat on early screening questions knowing that an interview is coming up.
(In a previous role, I gave applicants the same -- very trivial -- question that they had already coded the answer for in a do-at-home screening. I wasn't secretive about this, either, I told them that this is the exact same question they had already answered. A significant percentage of them were unable to figure out the same answer they had provided a few days earlier.)
Re:Hired – Technical Interview Score
by dajohnson89 on Monday November 13, 2017 @11:47PM
(#15692745)
is take home great? if you have a full time job, any sense of home life, is being asked to code a small project in your spare time (and on a limited time basis) sane? I did two this year, and tbh I think the next company that assigns me one I'll just decline.
I think take-home projects are great for evaluating domain experience and general programming aptitude but should be relatively small. Anything that would take more than 1-2 hours is an overkills, although sadly I see a lot of companies expecting you to build a full product (e.g. production ready iOS app with custom design and full test coverage).
Re:Hired – Technical Interview Score
by dajohnson89 on Tuesday November 14, 2017 @09:10AM
(#15695065)
The ones I've taken this year were two days of effort and five days of effort. Because I was so busy with other things, both submissions were littered with TODOs and hacks, and both were given no-pass with zero feedback.
Re:Hired – Technical Interview Score
by dajohnson89 on Friday November 17, 2017 @02:03PM
(#15724968)
N.B. the LOE estimates of 2 & 5 days were theirs, not mine.
Re:Hired – Technical Interview Score
by justboxing on Monday November 13, 2017 @07:58PM
(#15691705)
> except people cheat.
I never understood this. In a programming / software development job more than any other job, aren't you very likely to fail at delivering on the job, if you cheat on the interview and tests?
Re:Hired – Technical Interview Score
by heartbreak on Monday November 13, 2017 @11:46PM
(#15692743)
If cheating is defined as looking up the solution on Google, I frequently cheat while performing my job responsibilities.
But the money's good while it lasts, right? And you can always 'fake it until you make it' on the job too, right?
1. Don't ask questions that are hard to explain over phone. For instance I was asked if I've used Lambdas in C# and I said, "Yes, extensively.", next question was. "Explain to me what a Lambda is.". I gave the textbook definition for it, and he was expecting more, so I simply said "It's hard to explain lambdas, I can show you some source code I've written and that way I'll be able to explain it better.". I thought that was it and that I would be 'screened-out', but I was moved to the next round of on-site interviews!
2. Do ask questions about how the candidate has used the technologies that the job requires, and ask them to explain how they designed and implemented their most recent solution, and where they used what technology, and how. After initial answer, drill deep into areas that are important for the job posted, and from the answers, you can get a fairly good assessment of whether the candidate should be moved to the next stage of the process.
3. After passing the tech phone screen, I've received and completed 3 take-home coding exercises (1 each from 3 different companies), and in 1 of those companies, I was subject to white (water-) boarding exercises on site in addition to the take home test. The white boarding seldom goes well because of the environment and nature of the whole thing.
I found the take home exercises to be better than on-site white-boarding because the former is closer to how a future employee would work, than the latter.
Also, how a candidate does on algorithm and data structure questions is a false positive (or negative) because these can be practiced, rehearsed, perfected and hence gamed. Coding exercises, or specific question on the candidate's most recent project, on the other hand, cannot be 'gamed' and even if it was, you could tell from listening to the response, or from reading the code...
Hope this helps!