I really hate having to solve these kind of programming challenges. I've already sent you my CV, with references from former/current employers and co-workers. Call them up if you are worried that I'm lying on my résumé, don't waste my time by making me work for the chance of maybe getting a job as only payment. Doing multiple interviews already takes up enough of my time, seeing as I'm the one who has to commute to your location.
No former employer is going to say "this guy can't program, don't hire him" for fear of getting sued. Co-workers might be friends who are covering for you, or just genuinely have no idea of your actual ability.
Taking up hours of a candidate's time is excessive, but it seems reasonable to ask for some demonstration of your ability, when so many candidates simply cannot code.
> Taking up hours of a candidate's time is excessive, but it seems reasonable to ask for some demonstration of your ability, when so many candidates simply cannot code.
So why not simply ask technical questions during an interview? I'd think you'd be able to determine whether or not someone know what he is talking about by simply asking him a few questions on the matter.
How do you know what level to pitch the interview at if you don't know what language features someone understands and how they code?
Where I work we now set a small simple test which is very representative of what colleagues do because we've had so many time wasters. I'm looking to see their style, the fact that they can actually read a simple spec (apparently over half can't), and that they can explain why they approached the solution how they did. If their test is no good, we don't waste each others' time.
If someone has a decent GH account I'll look at that too - if it's sufficiently comprehensive (very rare to see anyone with a GH account at all, let alone their own projects in it) they won't need to do the homework (should take about an hour, less if they're good). This just saves us wasted time.
Remember - you might know you're good. How do you expect strangers to?
Because there are plenty of people who can regurgitate things but not be able to do much with it. I've seen it with CS grads from good schools, its disconcerting and confusing.
Why are you asking "fact regurgitation"-type technical questions? I prefer to ask open-ended ones, questions that start a discussion that will quickly determine if the candidate really understands what they are saying. It also reveals correct but rigid thinking, something I would like to generally avoid but that doesn't always come up in a coding exercise.
That's why you drill down when a statement sounds like it came from a blog/book/screencast.
While I agree it's frustrating dealing with someone like this, often times it's easy to pick out the statements/topics that the person is regurgitating.
Agreed, but for people who have to justify hire/nohire/fire decisions to their bosses or other parts of an organization an objective metric is very useful.
A quick coding problem doesn't have to take that long either. I agree that asking for a (relatively) huge project is the wrong way to go about it, but it doesn't have to be huge.
Because technical questions are pretty bad indicators. Just because someone doesn't remember how to reverse a binary tree off the top of their heads doesn't mean they're not a competent developer.
Right with you buddy. I no longer accept coding challenges or even interviews that go over 30 min. I tell them my services are $150/hour. If you want me to do a 4-8 hour exercise for the privilege of interviewing further then make it worth my time...just like any other consulting gig I do.
Wow, that's self confidence. Paying someone for the homework problem feels semi-okay. But what if you have a no-moonlighting clause at your current job?
But asking to be paid during the interview seems too much, even though you could have spent 3 days of your life, traveling each way plus the interview day.
Asking to be paid during an interview seems too much but a 4-8 hour interview doesn't seem too much? The average interview length across all industries is 40 minutes. Asking interviewers to spend 4+ hours on the hope of a job offer seems a tall demand. I think asking to be paid seems a fair counter to what is otherwise a very unfair ask.
What you're actually saying is "I have enough freelance / contract work and am not looking for a full time job." I said similar things when I was freelancing.
If you were actually looking for a full time position you'd do the interview. It's completely reasonable to require an unpaid interview from a candidate.
Not a multi hour one though. My first programming job interview was 6 hours and I had no idea that was even a thing. Now I inform places I'm interviewing "Hey I am taking 1.5 hours vacation/PTO whatever, so I need to be back at work after that time."
The problem is: Writing good resumes and having a lot of experience with programming is a good heuristic for "experience" and "knows how to play the game" but not meaningfully useful for "excellent at programming".
Work-sample tests measure the latter.
A worker's experience is a heuristic for programming skill, but a heuristic of a heuristic is like an average of a set of averages: Useless.
Very true! I find it disappointing that many candidates appear to put little effort in their cover letter. It's a chance to show me you can communicate well, which is maybe the single most important skill in working on a team.
I feel like cover letters are an easy way to show that you've thought about the company you're applying for, but in my experience I've never got the impression that my cover letter was actually read in the application process.
I could be plenty wrong though, and I'd love to hear from HR/recruiters about their experiences with cover letters.
I dunno. I'm sure some places don't read them at all. But I read (or at least skim) every cover letter that comes across my desk before looking at the resume.
Which makes it extra frustrating that hiring practices are the most often cargo-culted practices in this industry. I feel like the root of hiring problems is that most companies know neither what they need or how to identify those features in a candidate.
I think that's debatable. The quality of your measurement is then simply a function of how well your tests are in the first place. Do you really think giving a person FizzBuzz is any kind of accurate predictor of future success at a job?
(Switching back to my old account because rate limits.)
I wouldn't ever use something like FizzBuzz to assess a candidate. It would be more of "here's a mostly finished sample application with a corresponding SQL file, add this feature (e.g. a search bar for a blog) and fix any (intentionally introduced) security bugs you find".
They would be evaluated based on how successfully they complete the main task, and if they have an eye for finding/patching vulnerabilities, that's a bonus that can be used as a secondary selector if a lot of candidates pass. If no one does, it won't be used against them.
That's how I'd approach it, personally. Something specific to the kind of work we're doing, but abstract enough to be approachable without a lot of insider knowledge.
FizzBuzz isn't a test of whether a candidate will succeed, but of whether they will definitely fail. Someone who passes may be good or bad, but someone who can't do it is definitely not qualified.
Someone who can't do it is definitely not qualified to do fizzbuzz level programming off the cuff in a stressful interview situation.
Whether that tells you anything about their ability to do fizzbuzz level programming in a more normal work environment is an open question.
There are a few HN readers who've had experience of "choking" on fizzbuzz level programming tests during interviews - even though it's trivial there's something about the interview situation that causes some people to sometimes freeze.
What do you mean by probation periods? Something like...
"Hi, I'd like to ask you to work for a very temporary contract with us so, if it doesn't work out, you have to scramble to find more work and maybe risk homelessness."
In my experience, in the US, in the few times I've been asked to work for a 2-3 month test-drive, the proposition has been more like ...
Them: "Your skills are great, nice job on the coding project. You seem like a really good fit. We want to hire you, but we'd like you to work on a temporary contract with us at first to see how it goes for both of us."
Me: "Hmm, OK, this does seem like a very good fit and I'm cool with the test-drive. My off-site rate is $150/hr, I can have the contract on your desk in two days."
Them: "Er, wha ..., no, you see, we'll take the salary we talked about and just translate that to an hourly rate. It shouldn't be a big deal, this will only be for three months max."
Net of it: after killing it in the interview, I'm offered a short term C2C contract at drastically reduced rates, doing my usual best work, while getting no employee benefits and paying my own SE taxes, retirement contributions, and all business expenses.
I've encountered such propositions only a few times in the past 5 years, and walked each time obviously, but I still find the chutzpah of these companies astonishing.
On the other hand, maybe that was the last part of the interview? They may have wanted to see if I had any self-respect, any self-confidence, could do math, and understand basic business concepts like taxation and fully-loaded employment costs? A "no" to any of these things would have meant I'd be a more ignorant, cheaper and thus much more highly-valued employee as time went on.
In the US almost all employment is at-will - even if you've worked at a company for years. Probationary periods here typically mean that you are hired as an independent contractor without the benefits that are usually given with a full-time position such as health, dental, and retirement benefits.
Employment with [company] is "at-will." This means that you may terminate your employment at any time, with no prior notice given to [company]. It also means that the company may terminate your employment at any time, with or without notice or cause. While the company generally adheres to progressive discipline, it is not bound or obligated to do so.
As an at-will employee, you are not guaranteed, in any manner, that you will be employed for any set period of time. No one in the company, except the President, in a written, signed contract, may make any representation or promise to you that you are other than an at-will employee. Any employee, manager or supervisor who makes such a representation or promise to you is not authorized to do so.
I've no idea why this has been downvoted as it's correct.
For the last few years this has been written into law and employees don't get their full employment rights (such as the right to contest an unfair dismissal) until you've been employed for 12 months. (A de-facto one year probation period.)
I should note that employee rights during this probation period are probably stronger than in many US states.
You don't want to hire people who are incapable of functioning in a professional setting or interacting with coworkers, so I'm not sure expecting experience and a well-crafted resume (regardless of the content) is a problem.
Just as grep and cat solve different problems, work-sample tests and traditional resume-based hiring practices select for different candidates.
I wasn't arguing in favor of work-sample tests for every company and every candidate, just saying their scope is different (although work-sample tests are more likely to find the untapped potential in the marketplace).
We live in an era of FB/LinkedIn. It's really not that hard to contact someone that they've worked with and ask, "did you like working with this guy/gal?"