It's also that lots of times, the hiring company hasn't actually put prerequisite thought into how to limit the scope of the exercises they send out.
They simply tell you "this should take you 4-6 hours" and then you're left trying to figure out the tradeoffs to make. Usually that 4-6 hour exercise can EASILY take double the time, between you trying to get the best possible solution, handle all the edge cases, going back and forth with the interviewer on questions about the exercise, overthinking what the person on the reviewing end of the exercise is going to see as some irredeemable element of taste that they do not share with you etc
Then after putting in all that work, you possibly get to go through an actual interview process, get a form rejection email or even better never hear back from the company at all ... after going through that 2-3 times you learn that the upside for you is low, and you could probably make more progress with other firms in that same time.
What I personally have arrived at is that if a company isn't paying me for my time and the exercise will take over 2 hours, I simply won't participate. We'll see how it works out.
TLDR; Companies need to properly limit the scope of their take home assignments.
Or you could just not spend more than 4-6 hours on the assignment. The role might just not be a good fit, right now. It seems strictly better to find that out in a work-sample challenge, than in an interview being asked to code radix sort from memory.
Even then, it’s sometimes hard to know how you’re supposed to be allocating that time.
Suppose the challenge is to scrape some movie reviews and cluster them. On the surface, this is fairly reasonable. If you’re familiar with some relevant concepts and libraries, it isn’t too hard to get something up and running. On the other hand, measuring document similarity is still an open research problem. Should I do something fancier than a bag-of-words representation? What about the clustering algorithm? Evaluation?
I should show some kind of result. Is a simple tSNE plot enough to cover “visualization experience required”, or do I need a GUI that lets people tweak hyperparameters?
Maybe this is a sanity check to make sure I can code, so I should focus on documentation and tests. Or maybe I should make the scaler incredibly robust and scalable, since they kept talking about Big Data?
This isn’t an insoluble problem. Companies just need to be very specific about what they expect and how it’s going to be evaluated. If the point is code quality or ML chops, come right out and say so.
They simply tell you "this should take you 4-6 hours" and then you're left trying to figure out the tradeoffs to make. Usually that 4-6 hour exercise can EASILY take double the time, between you trying to get the best possible solution, handle all the edge cases, going back and forth with the interviewer on questions about the exercise, overthinking what the person on the reviewing end of the exercise is going to see as some irredeemable element of taste that they do not share with you etc
Then after putting in all that work, you possibly get to go through an actual interview process, get a form rejection email or even better never hear back from the company at all ... after going through that 2-3 times you learn that the upside for you is low, and you could probably make more progress with other firms in that same time.
What I personally have arrived at is that if a company isn't paying me for my time and the exercise will take over 2 hours, I simply won't participate. We'll see how it works out.
TLDR; Companies need to properly limit the scope of their take home assignments.