6 ms·
Ask HN: Can you actually get a dev job without doing a stupid quiz?
I hate all forms of on-line/in-situ developer exams and tests. It is basically non-sense code golf in 5 minutes on an universe of problems plus all the pressure of a job interview.
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?
- gcb0 8y agono :(
- Osiris 8y agoI think it depends on the company and where you live. This culture may be prevalent in Silicon Valley, but less so in other places. I live in Denver and every interview process I've gone through is different. 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.
- byoung2 8y agoMy latest job search (Oct-Nov 2018) involved 6 different companies all requiring quizzes or live coding (I only applied to 100% remote jobs). I got "code an elevator controller", "code a number guessing game", "architect a analytics system to handle 1M data points for under $2k per month on AWS", "build a react app to let users pick a timezone and display the current time in it", "code a tic tac toe game", and "build a reusable dialog box component". With each exercise taking about 2 hours, it was a significant chunk of what could have been billable time. One company made an offer (the number guessing game one), which I accepted. In the end it was my open source project on github that won them over.
- letsgo-gb 8y agoThe technical questions given during an interview are not only used to see if you are competent programmer, but they are also use to see how well you communicate and how well you work in a team.
- jurgenwerk 8y agoHere is a repository of companies that don't force you into solving fizz buzz problems: https://github.com/poteto/hiring-without-whiteboards https://github.com/poteto/hiring-without-whiteboards
- AllegedAlec 8y agoHalf of the companies on that list are even worse. Don't make me do a n-hour bit of homework without paying me for it.
- pthreadses 8y agoAssuming n isn't very large, I don't see why. People will spend sometimes days in on-site interviews. A simple coding challenge can tell you a lot about a developer and provide a shared basis for discussion in a subsequent interview. Of course "build a CMS from scratch" is ridiculous but simple simulated bug fixing and small feature additions that mimic real life work can be quite useful and not time consuming.
- kasey_junk 8y agoAs someone who has spent a lot of time implementing & arguing for work sample based hiring, the hardest part is getting places to remove the useless interviews from their filter process. Very few devs given the choice between 8 hours of interviews & 7 hours of work sample/1 hour of interview will choose the former. But companies just add the work sample & leave the interviews defeating the point.
- GuiA 8y agoLet me preface this by saying I despise whiteboarding as much as you do. I’ve been rejected from jobs dozens of time, and only got a handful of job offers in my ~10 year career so far. 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.
- Gibbon1 8y agoMy first boss used to do a short quiz just to weed out anyone that was wasting his time and that was that. But of course programming culture is hypertoxic so that's been turned into the roommate interview scene in Shallow Grave.
- thepp1983 8y agoProgramming culture is not hypertoxic. Maybe it is in the United States in the UK pretty much everyone just sits down and gets on with it.
- alchemism 8y agoSpeaking personally, I was a bit surprised at the culture I experienced the first time I worked alongside younger American programmers, as opposed to my prior experiences with remote offshore teammembers, onshore H1B programmers, and the American greybeards from the earlier IT era.
- burnThemAll 8y agoIt's all designed to fuck you over. Ignore whatever they throw at you. They're rejecting you by default, if they subject you to the quiz show. 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.
- boomlinde 8y agoI've personally never been quizzed for a position. I know people that have in the same general area so I don't think its consistent; I've just been lucky. As for adding without the + operator, a + b = a - -b :)
- singularity2001 8y agoSure you can consult and if people appreciate your work they often approached you themselves about joining their work force.
- matell 8y agoI am freelancing via Toptal, and you have to pass the entrance exams (which are hard and include live coding), but that is the last time you have to do it... at least that is my experience with 5 different contracts in last 3 years there.. after entering, no one asked me to pass some additional quiz. The clients there seem to trust the system -- i.e. once you are in, you passed the bar and there in no need to waste time testing your abilities again.
- thecleaner 8y agoLook at it this way, how does someone verify that all the work done is by you ? Even if it is its not within everybody's range to test someone on code from 130 repositories. Just memorize the quiz nonsense, the market is asking for shit prep so give it to them.
- JeanMarcS 8y agoIsn't that true for any job ? When you send your curriculum to recruiter, why should they believe you, whatever job your applying to ? So if you start a relationship based on a non minimum trust, will it go well ? Of course, this is all theorical, and how it should work on a perfect world, which this one isn't.
- majewsky 8y agoIf you think about it, really all relationships start out with zero trust.
- adim86 8y agoThe developer evaluation process is broken, sometimes because the people hiring you do not even understand what you do and sometimes it is because what the interviewer is testing for is not properly communicated to the candidate for various reasons. The best way to get a job is to be in a developer community where you get referred to jobs and not by job searching online. This is how top-tier candidates get jobs in every industry, referrals, it cuts all the bullshit. So your goal should be to get to that level which means upping your social skills, that being said we all need to start from somewhere. 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 http://blog.adimofunne.com/coding-interviews/ http://blog.adimofunne.com/coding-interviews/
- teekno 8y ago> referrals, it cuts all the bullshit Referrals get one out of the internet-resume-void, but you still go through the standard interview process, right? I've always seen referrals as a "guaranteed shot at the interviews coding games". Am I doing it wrong?
- jeffrallen 8y agoAdults find their way through the world as it is, not how they want it to be. Grow up. When you've earned a bit of freedom from the stupid gatekeepers, you can do it your own way (entrepreneurship, networking, contacting, etc). For now, pay your dues.
- dasmoth 8y agoI get what you're saying, but seems a little harsh. And also makes me think of: "The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." -- George Bernard Shaw.
- thepp1983 8y agoPersonally I can't stand these tests either. I normally complete them fine. However I've been to job interviews where they force me to code live in front of several people and I couldn't get half a line of code out before one of them will chip in with a "suggestion" breaking my train of thought. The code they want me to write is some algorithm that they have expected you to memorise. I normally leave the interview frustrated and even when offered the job I turned them down because the hiring process has given me a bad taste.
- dasmoth 8y agoHowever I've been to job interviews where they force me to code live in front of several people and I couldn't get half a line of code out before one of them will chip in with a "suggestion" breaking my train of thought. The code they want me to write is some algorithm that they have expected you to memorise. This could actually be the test in itself. There seems to be a substantial contigent who believe that this is what a collaborative programming environment looks like, and they might actively want to select against people with a more shut-the-door-and-work-through-the-problem mindset. I'd argue that a pair programming exercise is probably better than whiteboarding-with-interruptions, but setting that up well is more work for the interviewer. Edit: completely messed up the quoting in original!
- sawmurai 8y agoI think the only interviewing process that really works is to invite the candidate to work for one day, side by side with their future team. This also gives the candidate a glimpse into the culture behind the HR marketing bs.
- ivanstegic 8y agoAgree. We just recently went through a failed employee hire (even though we had a mini project for the candidate) and in the retrospective we came to the conclusion that our whole team was first hired as a contractor and then later converted to an employee. So we’re going to just keep doing that from now on.
- Jach 8y agoHow do you decide whom to hire for the contract role though? ;) A bad hire should indicate that your mini project missed testing something important for your team. In my own experience with an intern who didn't live up to my hopes, I realized I wasn't testing for the ability to read code not written by them, whose whole they cannot hold all in their heads (only a contextual part at a time), and make some changes to it. I do that now.
- _ah 8y agoYou do lose some candidates this way. If I'm already leaping from one stable job, I'm not going to roll the dice on a contract position. Sure it will probably work out, but everyone should already know not to trust promises made during the recruiting process.
- citrusx 8y agoI'm going to second that. I don't ever consider CTH, and there's a pretty strong body of programmers who feel the same way. There's too much risk in it.
- johan_larson 8y agoYou'd think it would be possible to create some sort of certification system so that we could prove we are clever and can code once rather than having to prove it again and again.
- geezerjay 8y agoBetween having to endure a "stupid test" and have to shelve a wad of cash just to get a very expensive piece of paper, give me the stupid test every single time. At least the people doing the stupid tests are checking for stuff that is relevant to them instead of wasting time with pedantic aspects of a programming language or tech stack.
- wolfgke 8y ago> Between having to endure a "stupid test" and have to shelve a wad of cash just to get a very expensive piece of paper, give me the stupid test every single time. Why not go fot the idea that one pays the cost in advance, but as soon as you get hired, the future employer will repay the costs to you?
- geezerjay 8y agoBecause paying is the problem, and expecting that prospective employers would pay for your expenses for a test that is used to infer basic competences is at best wishful thinking. We only need to look at the current state of qualification mills/moocs to get a good idea how job seekers would be fleeced by these so called certification systems. It's far better to get in front of a prospective employer and solve whiteboard problems than just be a number in a clueless HR drone's database.
- wolfgke 8y ago> Because paying is the problem, and expecting that prospective employers would pay for your expenses for a test that is used to infer basic competences is at best wishful thinking. I am cautious with this kind of statement, since this saves the respective company time to check these competencies by itself, which is a pecuniary advantage for the company (since it can obiously use this time to earn money).
- peterhi 8y agoUnless I have copious free time (and I don't) then I'm not going to browse 130 Github repositories and wouldn't known from Adam if they are forks or not (unless they were all created close together). Thus I cannot trust the metrics from them either 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
- 50 8y agoWould you say then an online persona doesn’t matter much? I think about this a bit as an undergraduate hoping to land a gig in a few years. I could care less about having a technical blog or a tailored Github/Gitlab account contributing to open source or having an LinkedIn account, I just want to build cool stuff and become a good programmer and not have to worry about showcasing that on the internet like a clown in a circus. But on the other hand, it seems like companies look for that kind of stuff or at least give you the upper hand for it.
- peterhi 8y agoLinkedIn is just an online CV for recruiters to find you by. The one you submit should be tailored to the job you are applying for The CV that lands on my desk will determine if you get called for an interview. One or two sides of A4 is all you need. We only look at Github if the CV is interesting enough If your CV says 'I have a CS degree' rather than 'I am a programmer' then I'm not going to look any further. I have employed excellent programmers this way. Only one of them had a Github account. None wrote blogs. Didn't even look at LinkedIn Github can be interesting to see what languages you work in and what topics you found interesting when satisfying your own needs. But I will only look if the CV makes me think that it will be interesting Github, LinkedIn and blog posts are merely supporting documents for your CV. If the CV sucks then it goes no further
- hallihax 8y agoTests like these are a relatively effective way of weeding out people who simply aren't up to the job. You can say anything you like about yourself, and you can curate your online presence to make yourself look like an experienced, competent developer, but your code doesn't lie. 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.
- Jach 8y agoI'm a bit confused by your reference to HackerRank -- is not "extract max value without a binary search tree" a kind of problem that might show up there? Is it that type of problem you're complaining about, or the fact that you've already done enough in public that you shouldn't have to be subjected to it again time after time? 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 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). [1] https://sockpuppet.org/blog/2015/03/06/the-hiring-post/ https://sockpuppet.org/blog/2015/03/06/the-hiring-post/
- castis 8y agoMost places aren't so much looking to make sure you know things, they're looking to see _how_ you do things.
- deleted 8y ago[deleted]
- rpeden 8y agoThere are lots of companies that don't do these kinds of tests. 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. :)
- diggernet 8y agoAnother thing the non-tech companies you mention will sometimes do is contract-to-hire. The hiring process for my current job at $BigBank was: Phone screen with recruiter. One hour interview with a couple developers. Follow up phone call with manager. That's it. Because CTH gives them months to evaluate actual skills in a real work environment before deciding whether to convert you or let you go. It's a great arrangement for those of us who do really good work but tend to interview poorly. Probably not so popular with those who BS well in an interview but can't back it up... The pay isn't FANG, but can be decent if your manager likes your work and you don't let HR lowball you.
- Harkins 8y agoThey also test conscientiousness. 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.
- lucozade 8y agoWhat you're effectively saying is that, if the recruiter puts enough effort in, they can find out how good you really are. 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.
- CyanLite4 8y agoFor every developer that complains about a coding “quiz”, there are a dozen more candidates that have been weeded out by them. 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.
- chamilto 8y ago> 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 see comments similar to this one all the time. Are folks literally referring to the 'FizzBuzz' problem, or is that just an alias for a problem they subjectively find easy?
- protocontrol 8y agoThe problem I see with FizzBuzz is if you knew the problem, it would be super easy to remember. Otherwise, with the time pressure, anyone could fail just as Federer could fail a simple shot. You need a whole game to prove he's Federer, you follow me?
- pesheh 8y agoI'm honestly surprised by the amount of people complaining about the interviewing process. First of all, have in mind that the interviewer should have some kind of an objective measure, you need to judge all candidates the same way. There are many great developers who don't work outside of their job, so GitHub is out of the question. LinkedIn is self kept and doesn't really show your skills, just your CV. Reaching high levels in HackerRank takes a lot more time than the interviews probably, and you still have no objective way to judge candidates. 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.
- rajacombinator 8y agoI don’t mind a simple test to verify skills. But from there tech companies should be able to evaluate prior experience, which they seem to struggle with.
- mbrodersen 8y agoIn most software companies you are required, as part of your job, to communicate effectively with people who might not agree with you. That includes clients and co-workers. Including situations where things are heated and stressful. White board tests are great for finding out if you can stay level and communicate clearly in a stressful situation. Calling things stupid and slamming the door just shows you are not capable of doing a lot of real world software development jobs. Which involve a lot more than coding software.