5 ms·
I did this once. After a take home quiz that took about an hour, I had a 6-7 hour "homework" problem. I did it, and sent it in. It took the company a month t
by geebee 11y ago
I did this once. After a take home quiz that took about an hour, I had a 6-7 hour "homework" problem. I did it, and sent it in. It took the company a month to get back to me, though I did stay in contact with the recruiter. The final answer, delivered by the recruiter, was "we've decided not to more forward at this time." No other feedback. I have no idea if anyone even looked at it - I never did speak to a dev at the company.
This experience left me embarrassed, honestly. I don't think it reflects well on me that I put up with it even once.
At this point, I will participate in tech interviews, but I won't do any more take-home assignments. I suppose this could change under different circumstances.
Gayle Laakmann McDowell, who wrote "Cracking the Coding Interview", wrote an insightful post her blog about this. It's titled "Companies who give candidates homework assignments: knock it off!"
http://www.gayle.com/blog/2013/09/18/companies-who-give-candidates-homework-assignments-knock-it-off http://www.gayle.com/blog/2013/09/18/companies-who-give-cand...
She mentions something I see as a problem as well - these tests allow the company to burn a lot of a candidate's time, but not the other way around. I may have burned 6+ hours interviewing unsuccessfully at google, but they parted with 6+ hours of developer time as well (though I did spend a lot of additional hours reviewing algorithms and doing sample problems). This creates a natural set of checks and balances that don't exist with homework assignments.
She does have some good suggestions about how to use a take home if a company is determined to do it. To me, a particularly insightful one was to have a high (she says 90%+) passage rate.
I agree. If you're going to ask a candidate to spend a day on a homework assignment, you should be very close to an offer. If you're using it as an early filter, you are wasting a tremendous amount of developer time.
- jackieDQ 11y agoYep I've been burned a couple times by this and only under certain circumstances will I do a take home project. Even worse is when they also ask before hand not to post it to your github account. If they aren't going to give me feedback, then I'm going to host it and seek it out elsewhere.
- solve 11y agoLove that. If they burn too many people, they have to create new questions.
- ruswick 11y agoExact same thing here. I've made it a personal policy not to tolerate these types of take-home tests. My time is way too valuable to spend hours on a project only to have it ignored by the company.
- leeoniya 11y agohad same experience, no useful feedback after 6 hrs of work. it had to meet the provided written spec (js/logic) and visual (css/html) requirements and had to pass an internal test suite which i was not given access to. the response from the recruiter was just "thanks, but the dev team said 'no', that's all the info i have for you"
- ruswick 11y agoOh God.
- logfromblammo 11y agoProportionate buy-in to the interview process is one of my screening criteria. If the hiring company is not willing to spend a similar fraction of their own resources on the interview process as I am willing to spend on it, I am much less likely to invest anything more than a token amount of effort on them. Any company that does not realize that your time has value before hiring you will probably continue to waste it after hiring you.
- tomtang0514 11y agoI've seen several companies giving out such homework to me or my friends back in college. And to be honest, none of the are among the "great culture company list" people are talking about. Beside all the issues you mentioned above, those tests don't have a clear PASS line. You spent hours on that and can be rejected for no reason. Back in college I've done a code challenge from Box and my solution ranked No.1 in their leaderboard (although nearly 100 people are No.1 with the same highest score) and I was rejected without an interview. Another company I don't remember rejected me because I used (x * 8) not (x << 3). (But I'm interviewing a web company and I was writing python, not C in some embedded system) Most of the time I just don't know what the hell they're looking for. So now I reject all those HW or code challenge unless they agree to pay me for the time I spend. (Obviously no one has ever agreed my term so far.)
- lockes5hadow 11y agoEven in C I would point out that the compiler will likely make such a trivial optimization for you. That was clearly a company full of morons.
- tomtang0514 11y agoRegardless of the compiler, let's say (x << 3) is slightly more efficient than (x * 8), I don't see it make such difference since my job will probably be writing code for webapp sort of things. For the things I do I actually believe readability advantage of (x * 8) overcomes the efficiency disadvantage (which doesn't even exist with modern compiler). Some interviewers (not just the "homework") raise their bar by not allowing you to make any tiny mistake. And I just don't get it. If someone is good enough to write something like a lite version of Hacker New website in hours, I'm not going to turn him/her down because of such mistake.
- hobs 11y agoAnd the person who could potentially write the "most perfect" code with all of the conditions applied is often not within that company's price range. I did interviews at a company for about 2 years and there was constant pressure from management to do trivial crap like that, it finally came to a head and I invited management and one of the "rockstars" to do a mock interview. When it was evident that the person they thought of as a "rockstar" could not solve these tests(without prior knowledge of the problems), they immediately discounted them as a worthless and stopped bugging me (about that, of course not about everything else).
- nvarsj 11y agoI like the idea of giving candidates a choice. For me personally, I would almost always take the "homework" if it meant no (or very short) in person interview. I like to code, not interview. Still, 6-7 hours is pushing it, it should be a few hours (3 or 4 at max, if you're not going to do a face to face), and a genuinely interesting problem (the kind of problem can tell you a lot about the company itself!). When I interviewed at Apple years ago, they gave me a take home program to solve. It was interesting and I enjoyed it a lot. It required some good algo knowledge and had to be written in C. I was told in my face to face that few people ever solve it, and I enjoyed discussing it. But the rest of the interview was unpleasant - your typical SV brain teaser riddled, algo whiteboard sessions for 4 hours, 2 days in a row. I wasn't really expecting it and wasn't prepared (my fault), so failed miserably. I think I suffered PTSD after that for a while :). Now I feel preparing for that sort of interview is a huge waste of my own time. It has so little relevance to reality. I'd much rather put that time into building a product or learning some new PL or whatever. At least with a coding test I'm honing skills that I'll use day to day.
- DrStalker 11y agoHomework can't replace an interview, unless you're willing to hire people who can code without any idea if they will fit in with the team or be able to work with others.
- rwallace 11y agoThat sounds intuitively reasonable, but does an interview actually have significant accuracy in filtering out people who will do badly on those criteria? As far as I know, such data as is available says human intuition is completely wrong about this and an interview is not significantly more accurate than flipping a coin.
- mVChr 11y agoOne take-home project I was given was very cleverly designed. Without going into too much detail, the project description initially seemed pretty simple. The actual getting-it-to-work part took about half an hour. However there was a requirement near the end that said the whole operation had to complete in less than X amount of time. The initial straightforward implementation I wrote took about 8-times longer to complete. Eventually, 3 hours later, after pulling out a lot of clever tricks I had come up with an implementation that met the performance requirements. The benefit of this type of approach is that it allows potential applicants of many levels to understand and tackle the problem while also allowing them to choose to bail out after that 30 minute mark if they can't think of any way to improve performance. Seems like a polite way to set a high bar standard.
- ionforce 11y agoSimilar to how Project Euler works. There are naive ways to solve certain problems (finding primes), but there is a general guideline that tasks should finish in under one minute (I believe).
- nadams 11y ago> I had a 6-7 hour "homework" problem Personally I would given them a link to my github which has hundreds of hours of work put into projects. From my experience a homework problem that long doesn't really prove anything (I could have outsourced it) and you never get feedback (this isn't the employer's fault but of laws in the US[1]). I think a take home quiz is the only appropriate quiz if it's a basic less than an hour quiz. Harder than fizzbuzz but easier than creating a blog from scratch. Don't even get me started on IQ tests or personality tests. [1] - http://humanresources.about.com/od/selectemployees/qt/must-employers-tell-applicants-why-they-werent-hired.htm http://humanresources.about.com/od/selectemployees/qt/must-e...
- bobbles 11y agoI wish experiences like these were put on glassdoor as well, it'd be good to know what their hiring process is like rather than just actually working there. Maybe enough responses about never getting contact from employers would make them start treating people like human beings
- x0x0 11y agoIt's really amazing, isn't it? I talked to thumbtack for data science. They wanted a 10+ hour takehome project after just speaking to a recruiter because their data scientists were "too busy" to speak to candidates. Yeah, I'm going to get right on that. Bet they're bitching about a data scientist "shortage (^1)" as we speak. (1) data scientist defined as experienced data scientists who want to waste a day's labor before even understanding what they'd be working on and/or speaking to their potential boss edit: checked my email archive and fixed company name. Apologies...
- fsk 11y agoIf 90% of the people pass the take home test, then why was that step necessary in the first place? I've also soured on take-home test. I recently did a C/C++ one, I know I aced it, and I didn't even get a phone interview. I figured out afterwards what they were doing. They were giving the take-home test to EVERYONE who applied. Then, after you submit a solution, they read your resume. After looking at my (correct) solution and my resume, they decided I wasn't worth a phone interview. No more take home tests for me.
- mbrameld 11y agoIt's not that 90% of all developers can pass the test, it's that 90% of the developers that make it to the test part of the process can pass it. It should be a final filter to make sure they can walk the walk.
- notduncansmith 11y agoOur company does like to give a 2-4 hour take-home exercise after the technical phone screen, but (barring exceptionally bad submissions) we make a point to collectively spend as much time reviewing it as the candidate spent implementing it, for this exact reason. It's proved to be a very helpful filter so far.
- crdb 11y ago"these tests allow the company to burn a lot of a candidate's time, but not the other way around " Oh yes the other way around. At a previous employer, two of us took 3 full time months to review over 100 qualified candidates (i.e. that returned the task) to make 10 offers. We made an offer to anybody who met our standards - whilst management initially restricted our headcount, they allowed us to expand the team as great people got in touch and the main restriction ended up being the maximum salary we were allowed to offer (which had us have to give up on half a dozen candidates). (We offered people the chance to show us their FOSS contributions to skip the task, but even those with big reputation couldn't resist tackling the problem.) That's 3 full time months of not doing ANY work, no output, just full time recruiting, for two people who were probably in the top 10% of the company in terms of compensation. It's not just expensive in time but also politically, as the team has no output to show for the period. Where McDowell is correct is in the context of a large company whose hiring needs are very different. But I think that if you are building a small team where every member counts, you have no alternative.
- developer1 11y ago> the main restriction ended up being the maximum salary we were allowed to offer (which had us have to give up on half a dozen candidates) Ugh. I've been in a similar position, assisting with pouring over candidates. The worst part about salary being the limiting factor is you've quite literally wasted your time weeding through the poor candidates to find the honest-to-goodness best to hire - only to not be allowed to have the cream of the crop. It's ridiculous how much time some companies are willing to invest in finding the best talent, only to turn them down because of an extra $10-30k/year. If you're not willing to hire the talent, don't spend the time searching for them. Just post your job ads with your salary expectations, and accept the first people through the door if that's how you're going to operate.
- crdb 11y agoWell, in theory, you could just put the actual maximum salary on the ad, but there's rarely a fixed budget in practice. If someone is very junior or has some other discount factor (in practice that's the only real one), you'll probably go lower than expected for a 30 year old with a PhD, freeing budget to bump up someone else. And sometimes, you get a stellar CV with enough brand on it to make the staunchest McKinsey reconsider his limit policy, so whilst you can't put the number on the ad, you can warn the candidate, get his number, and take a punt on management in case it might work. The strongest factor for flexibility is when you have a chance to affect the outcomes for the company, but need to prove it before you can claim the pay raises. Then, it makes sense to take somebody at under their market rate, and 3 months later have a chat with management and bump up. Hiring is a really sensitive topic because HR is often the biggest budget. I once seriously weakened my political position by attempting to automate away "Excel blue collar workers" in another department, which would have lowered the budget and therefore relative power of their boss internally. Those with the most flexibility in hiring (startups, which have no established internal territory to worry about) also have the least resources...
- crdoconnor 11y agoIronically, the last time I complained about this practice on hacker news for exactly the reasons you described, somebody weighed into defend the practice, and an job applicant at his company weighed in to say "my application to your company was not even rejected, it was just ignored for months": https://news.ycombinator.com/item?id=9437516 https://news.ycombinator.com/item?id=9437516
- mavelikara 11y agoThe comment referred to here is one I made, and let me expand on the incident. Firstly, the job application that Decade mentioned in that thread was not the coding assignment, but was a resume. We will not ignore an answer submitted to our coding assignment. Also, we do give feedback to the candidate if we decide not to proceed. We have had candidates who sent in a revised submission which incorporated fixes to our earlier negative feedback and we have been glad to proceed[1]. This meme I see often on HN that people who do hiring are some antagonistic bastards out to get you is simply not true. I am as much a programer as any one of the candidates. I have tried to design the interview process - at least in my part of the organization - to be fair and humane ("Do unto others.." etc) But I also have the other constraint that I have to make the process scale - hence the coding assignment. We are not using the code sent in by candidates in production. We have spent significant time developing the assignments - say, an order of magnitude more man hours than it would take for a typical programer to code up a solution. I honestly believe that the "interview problem" is an essential complexity caused by the way the industry is set up[2]. I also do believe that a solution to the problem will not be handed down to us from the heavens. Each one of us programers have to help with the solution. Every time we get a chance to conduct an interview show some empathy and respect. Also, teach the professional recruiters working on your hiring team to also show the same. Make it clear that ill-treating any fellow programmer, even one which is not fit for the current role, will permanently ban that recruiter from working with you ever in any capacity. I also welcome efforts like Starfighter, Triplebyte etc from more prominent members of this community. Now, the aftermath. After that thread, Decade followed up with me and we ended up sending him the coding assignment. Decade completed it and send us back the result, and my colleague's assessment of it was "This is the best code I've seen for this assignment. Let's take the next step". Few days later Decade came in for an onsite interview where he met various members of the team. We made him an offer, which he accepted. I am delighted to report that he started on the job the week before last! [1] This is very rare, though. We do not hear back from most candidates. Few argue with the feedback, of course. [2] My thoughts on the topic are at https://news.ycombinator.com/item?id=1964932 https://news.ycombinator.com/item?id=1964932. The advantages of this set up, IMO, far out-weigh the negatives cause by "interview problem".