Great idea if you want to hire suckers.
Great idea if you want to hire suckers.
You are uncomfortable in demonstrating your knowledge in a practical way? I don't understand. You are looking for a role doing web development, which requires up-to-date knowledge not just of techniques, but of understanding. These code exercises make an excellent starting ground for a technical interview, and has the advantage of being built in your preferred choice of environment, entirely in your style. It's a time where you can show off your real skills. Which is what hiring companies want to know about.
There's very little room to hide in these coding challenges / exercise.
I've been on both sides of web developer tests / challenges, and the one I enjoyed the most was interviewing for Global Radio in London. I had a weekend to build a web app. So I built something I wanted to build anyway, gave it to them.
The next step was to go in with their web development team who then code reviewed it.
Still use that web app today.
The concern is potential employers trying to bilk free work out of developers. The small project strategy is hardly fool-proof either. If it becomes widespread, we'll just see phony developer put their assignments up on rent-a-coder and ask for a crib sheet to study so they can withstand a technical interview on what they've created.
Anecdotally, the 2 developers I know who were hired via the "do a small project for us first" method both ended up in companies with high dev turn-over, shitty tools (slow, single monitor computers), and were surrounded by lots of "green" co-workers who required significant hand-holding despite the fact that they too completed their small projects to get hired.
This is why the "assignment" that I request takes less than two hours and is a greenfield project that is not going to be used by the company -- and I tell candidates this up-front. Think something like a blog, recipe manager or to-do list app. It is trivial, but you may be surprised at the range of outputs that you get.
What is interesting to me is how the resume isn't the best indicator for how well they will do on the coding project. Also, to avoid wasting people's time, I give the coding project as late in the interview process as possible, assuming the other filters have been passed.
If the coding exercise looks like something that is of this sort, then I guess consider whether you want to work with that employer. From an employer perspective, this is the worst source of getting something built.
A candidate should be researching the companies submits his resume/CV too anyway.
"If it becomes widespread, we'll just see phony developer put their assignments up on rent-a-coder and ask for a crib sheet to study so they can withstand a technical interview on what they've created."
If that were feasible, I'd suggest the employer would much rather hire the rent-a-coder instead of the one paying him. That's a win for the employer there too, since they'll be able to offer the rent-a-coder guy far more than the scratchings he gets as a rent-a-coder. The ability to predict in advance a sufficient range of questions as to forearm a candidate will border on the mystic.
Coding exercises aren't a mouse in a maze puzzle, they are a starting point for gauging web development ability.
The companies that use coding challenges as a way of creating production ready material are going to be amply supplied by the rent-a-coder approach you outline. And the technical interview part of the test is probably geared with a formulaic approach that can be guessed. In that case, this candidate and that employer are well matched.
But not every candidate needs a rent-a-coder to pass a technical test, and not every company uses those tests to create production ready websites and applications.
A good candidate can sniff a bad employer just as well as vice versa. If a company seems to be asking for production ready material, then walk away. If the test seems on the up, you'd better have a very good reason for refusing.
When I hear talk like this coming from devs in a given startup, it only confirms that their work culture is terrible. It doesn't make me think their devs are bad. It's more of the "rock star" and "ninja" wishlist stuff. No company-- not even Google, Apple, or Facebook-- is going to employ only developers who are all at the top of their field. If you're a startup, you must have a pathway to get your average programmers to greatness.
When I hear stuff like "hand-holding" it makes me think of companies that hire based on keyword matching. They don't want to put anything at all into their employees, they just want the best output right away. No wonder these firms are always complaining about not being able to hire talent. They could develop talent, but they don't-- it's either getting the creme of the crop engineers (which they're not going to be able to get anyway since they can't compete with the above-mentioned companies on salary and benefits) or nothing!
The really creative startups I'm seeing now are those that train. They know there's a war for talent, so they're willing to invest in somebody who isn't a rock star today, but has potential and very well may be tomorrow.
Like you said, a small project is a little bit of a red herring. No small test project done in a short amount of time (like a few days) is really going to be complex enough to test if a developer is actually proficient enough to work on a large project.
Isn't that what his past projects and employment demonstrate?
That's why I give references, they can comment/confirm what I did. If they're bad (but professional) references, they'll just confirm that I worked with them.
Also, I wasn't clear, but I meant personal projects (with commit records) as a separate consideration from employment.
Besides, this is just a platform, it's up to the interviewer to set an appropriate task. The interviewer can provide an existing web app and ask the user to do something with it, instead of writing something completely from scratch.
I think it had a Goldman Sachs co founder and another business development guy. Reached Tech Crunch some time in the last 6months.
That received some pretty harsh comments for precisely the reason you mentioned. This is a easy way to game developers and have a couple of hours free consulting.
thanks for the review.
a) You could survive in big enough company without coding (You survive by tinkering xml files, db records, monitoring the servers.. stuff like that)
b) Most interviews don't require you to code. They rely on stuffs like puzzles, knowledge of complex algorithms and asking you explain things about your previous work. So a candidates keeps getting good at that since that's what is required to get the next job.
But i am not entirely sure. It surprises me too.
I, somewhat cynically, divide job seekers into four categories:
1) the qualified (I know what I can do, and I can do what you need)
2) the unqualified (I know what I can do, but I can't do what you need)
3) the deluded (I honestly think I'm qualified, but I'm not)
4) the liars (I'm trying to get the job by any mean necessary).
I only want (1).
(2) are easy to deal with - you just have to know what you need.
(3) are common and mildly annoying - especially if you're a nice person and feel the need to explain where they are deluded :-)
(4) are not common - but are exceptionally annoying and often hard to sort out
Writing a really good job spec / advert will get rid of most of (2) for you, and help remove all but the most deluded from (3).
Filtering resultant CVs will usually get rid of the rest of (2), and a bit more of (3).
A quick chat on the phone will get rid of any remaining (2) and a big chunk of (3).
Simple tests similar to FizzBuzz will cull a surprising amount of (3) and (4).
Interviewing - especially good accomplishment based questions will tend to filter out all of (3) and a big chunk of (4).
Which, unfortunately, occasionally leaves some of (4) who seem to sometimes put more effort into deceiving me than it would take to actually learn the damn skills in the first place. Which is why I really like having some kind of solid work "with the team" session for at least a couple of hours. Pay 'em for it too if at all possible.
This probably works best for entry level/junior programmers responding to a help wanted ad. Senior people are being proactively recruited.