by protocontrol on 11/20/18, 5:43 AM with 65 comments
Today when you have code repositories, container repositories, challenge sites (HackerRank, CodeChef, etc), linkedin, blogs, h-index ranks, ... My line of thought is: With all of this free avaliable on-line information if a recruiter still need to test if I can extract max value without a binary search tree, then he didn't do his job. What do he wants to test? If I hired a genius to build a fake developer profile for me? And then I present myself to the job interview anyway? For what?
Look at this way: If I have 130 GitHub repositories (not forks), half of them fully passing tests through CI, my issues reports, my PR's, my own code metric reports including object-coupling, cyclomatic complexity, Halstead, Hansen metrics and all the stuff... should I really spent 3 months to practice how to add without + operator? And then get on-line interview just to discover they want me to write a k-partition problem solver?
There are companies which do not rely on these stupid stressful tests?
by rpeden on 11/20/18, 1:09 PM
It's been a while since I've done a job search, but several people I know have done them recently. And they've all found that some companies - mainly big tech companies, along with tech startups of all kinds - use these kinds of tests heavily.
Other companies that hire lots of developers - like banks, insurance companies, and manufacturers - don't seem to use these tests nearly as much. They'll sit down with you, talk about your experience, and the systems you've built.
At this point, if they like you, they'll often give you a small test project to do. And when I say small, I mean small - probably an hour at most. And while these projects can be annoying, these companies seem to give it after they've interviewed you and they're serious about moving forward. I don't mind this approach. There are lots of people out there working as developers who write truly awful code, so I think it's fair of them to want to see something from you before making an offer.
Working as a developer for a non-tech company might sound awful, but some of them are actually really great places to be. From what I've heard from devs I've talked to, many of these old school companies are actually really progressive technically, pay their developers well, and treat them with plenty of respect. And they tend to very sane work hours too. If your manager sees you still in the office at 5:05pm on a Friday, they'll probably tell you to go home. :)
by GuiA on 11/20/18, 10:29 AM
But - all interviews are, in essence, is an exercise in virtue signaling. Can you do the local dance to prove that you belong?
If anything, whiteboard interviews are not the worst thing ever. I am from a Western European country, and my dad is a chemical engineer at a large chemical company with 30+ years experience, many patents, books, etc.
When I explained to him the interview processes I had to go through to get jobs in Silicon Valley, he exclaimed “oh wow that’s great! I wish we had that! Our interview process is a 1 hour conversation with a manager, and if you went to the same school as them or share the same hobbies, you get the job. We hire so many mediocre people because of that, I wish we actually asked them to solve technical problems”.
Now that I think about it, I actually declined a job offer once from a startup because their interview process with me was a 1 hour presentation where I showed some of my work, and then a phone call with HR. I thought to myself - wow, this is too easy. If I get an offer this easily, what caliber of people am I going to be working with?
Pick your poison.
by hallihax on 11/20/18, 12:41 PM
I agree that tests can be bad, frustrating, badly designed or just plain incompetent - but ultimately I'd rather hire someone who knows what they don't know than someone who thinks they can wing it. When I've been tested like this in the past, I just explain which questions I can't answer and why. If they want to talk it through, then great. If not, then do I want to work for them anyway if the attitude seems negative?
The real issue you need to overcome is fear of failure. Aside from some specific cases, nobody in the hiring process really cares whether or not you 'pass' the test - it is (or should be) more important to assess how you approach the problem and whether you are capable of acknowledging what you don't know and talking through your thinking.
by sawmurai on 11/20/18, 12:22 PM
This also gives the candidate a glimpse into the culture behind the HR marketing bs.
by byoung2 on 11/20/18, 6:38 AM
by letsgo-gb on 11/20/18, 7:34 AM
by Osiris on 11/20/18, 5:55 AM
For one, I walked in and they handed me a laptop and a paper with a list of requirements for a REST API with some sample data and said, "We'll see you in 3 hours".
For another, I had 5 in-person interviews, none of which included any coding, whiteboarding, quizes, etc. The closest to that was "Describe the architecture of a system you've built".
For most, I'd say there is some amount of coding involved, but they rarely involving writing code on a whiteboard or solving a "quiz". Usually the coding I've had to do is at a computer, like pair-programming, or a project submitted ahead of time.
"Quizes" are the reason I've never even thought about applying to any of the giants, like Google / Facebook. I don't like them either, but I don't mind showing off my coding chops.
by boomlinde on 11/20/18, 10:54 AM
As for adding without the + operator, a + b = a - -b :)
by lucozade on 11/20/18, 1:24 PM
This is, of course, true. The problem is that that's not the problem they're trying to solve. What the recruiter is doing is finding people that have a high chance of meeting their criteria in a reasonably scalable way. Or facetiously, you may think it's about you but it's not.
Now, most of the ways they go about this aren't actually that great. But having the recruiters running around after you will definitely be worse.
by matell on 11/20/18, 11:29 AM
by adim86 on 11/20/18, 11:42 AM
I wrote a post about this a couple weeks ago, on the disconnection between what an employer is looking for and what you (a developer) think they want. I hope it helps someone
by peterhi on 11/20/18, 12:30 PM
LinkedIn, blogs - not exactly reliable sources of information given they are what you are saying about yourself. We've had candidates list the number of Instagram likes they had as if it proved anything. Sold some t-shirts on Cafepress, wow you must be an incredible developer / entrepreneur then
I have seen some amazing code in a Github repository that the candidate couldn't explain to me. I suspect it was a joint project that someone else was a major contributor to
So yes I will want to verify / test your abilities
But personally I read a CV and then talk to the candidate. Worked well so far
by jurgenwerk on 11/20/18, 9:18 AM
by Harkins on 11/20/18, 1:18 PM
But, yeah, having just gone through a round of interviews I think there's a big range of quality at work in these, and passed on some companies because of how irrelevant their prompts were or unstandardized their processes were.
by mbrodersen on 11/23/18, 2:52 AM
by CyanLite4 on 11/20/18, 1:34 PM
You’d be surprised by the number of candidates who say they are “senior software engineer” or “10 years experience as a lead developer” who still can’t do FizzBuzz. Or the ones who can do it but takes them 100 lines of code.
I’ve also turned away candidates who didn’t want to do a simple coding test, but still wanted to work with us. Entitled people are just as damaging to a company as incompetent ones.
by castis on 11/20/18, 12:46 PM
by burnThemAll on 11/20/18, 10:33 AM
That's the real lesson of the coding quiz. You are rejected by default. Take aims to flunk it by default, is the natural response.
by thecleaner on 11/20/18, 11:41 AM
by johan_larson on 11/20/18, 12:25 PM
by rajacombinator on 11/20/18, 6:00 PM
by singularity2001 on 11/20/18, 11:22 AM
by jeffrallen on 11/20/18, 11:57 AM
by Jach on 11/20/18, 12:46 PM
If it's the latter, a counterpoint is that doing these sorts of tests (usually not strict pass/fail ones but ones with levels of progression or orthogonal points of detail like "handles the divide-by-zero case without it being pointed out") lets me rank candidate A and B in a consistent and arguably more fair way. Sometimes A will have lots of impressive github contributions, while B will have nothing but schoolwork to discuss. Personally I'm unwilling to automatically grant the job to A on such a basis as publicly available work artifacts, or indeed anything on their resume (such info probably made it easier to get to the interview stage, of course) so I test A and B the same way. I might expect A to do better, but I give B the chance anyway, and B sometimes does way better. If A's past work/volunteer experience isn't directly related to the jobs which they'll be asked to do, how valuable is it? I think minimal. (It may become more valuable in the future, but such hidden future utility applies just the same to B, just in likely less obvious places such as the ability to read a crypto paper and pump out exploit code in a couple days rather than a month or two.[1])
All that said, I'd love it if I could just give (and as a candidate, receive) a certified IQ test (or perhaps the https://en.wikipedia.org/wiki/Wonderlic_test) and OCEAN personality test once every n years that can be reused. A lot of jobs don't require anything else but "smart and gets things done" (i.e. high enough IQ and trait conscientiousness). Maybe something fizzbuzzy in addition in order to lower job onboarding costs, though you'll find anecdotes of companies hiring smart people who couldn't program and successfully training them / otherwise supporting their education to become good programmers.
My advice for finding a less-BS job besides the already-linked no-whiteboards repo (which is a bit suspect since I know at least one company on the list shouldn't be in general) is to find one that isn't in high competition from candidates (they're more likely to shorten the process to find someone good enough, i.e. "smart and gets things done") or one with a very defined job role (in which case they'll test you on that knowledge specifically if your public contributions don't make its presence evident rather than give the usual generic quizzes that sort of act as proxies of IQ or ability to do real non-quiz work).
by gcb0 on 11/20/18, 5:48 AM
by pesheh on 11/20/18, 1:47 PM
And this is where interviews or coding problems come. They allow the interviewer to judge your ability to code and compare it to other candidates. And, probably even more importantly, your social skills, which in a team or in a relatively small company are essential.
But... Why go through all this? Other professions don't do it, right! Well, at least in Europe, most other professions aren't even nearly as well paid as even a junior dev.