Asking job candidates to perform real-world tasks is usually a great solution to finding out if they can code or not, but the problem is that these problems are usually provided in a bad/offputting form.
What companies do is something like "Give us an App that does this and this and this" without much clarifying detail. And then they add something like "If you want to wow us, make the interface pretty, make it scalable, and add other features"
This leads to a circumstance where the best candidates are like "fuck doing more than a couple hours of work" and nope out of there and the worst candidates are willing to lie/cheat/spend multiple days building a great solution on a task that should be no more than a couple of hours.
Instead, companies should provide a basic development environment in a container and a set of tests to satisfy. Prove basic competency, no ambiguity about what's needed or pressure to do more than required.
What companies do is something like "Give us an App that does this and this and this" without much clarifying detail. And then they add something like "If you want to wow us, make the interface pretty, make it scalable, and add other features"
This leads to a circumstance where the best candidates are like "fuck doing more than a couple hours of work" and nope out of there and the worst candidates are willing to lie/cheat/spend multiple days building a great solution on a task that should be no more than a couple of hours.
Instead, companies should provide a basic development environment in a container and a set of tests to satisfy. Prove basic competency, no ambiguity about what's needed or pressure to do more than required.