Slashdot Mirror


Ask Slashdot: Are Timed Coding Tests Valuable?

First time accepted submitter xkrebstarx writes "A buddy of mine recently applied to a large tech company. Before setting up a phone interview with him, the unnamed company issued a timed coding test to gauge his coding prowess. He was allotted 45 minutes to complete an undergraduate level coding assignment. I would like to ask the Slashdotters of the world if they find value in these speed-programming tests. Does coding quickly really indicate a better programmer? A better employee?"

17 of 776 comments (clear)

  1. I dunno... by Joce640k · · Score: 5, Insightful

    I dunno...but it will weed out the pretenders/bullshitters.

    --
    No sig today...
    1. Re:I dunno... by beelsebob · · Score: 5, Insightful

      The other thing it'll do is near guarantee that they get some bugs from all applicants, they'll then have something to discuss in the phone interview, and gage the applicant's responses and proposed fixes.

    2. Re:I dunno... by hackula · · Score: 5, Insightful

      I never believed the whole "95% of interviewees fail the FizzBuzz test" until I started interviewing candidates. People with 15 years of "experience" on their resume would regularly fail or give up. I also encouraged googling, including just searching for the exact problem, and I encouraged questions and told them that both behaviors were seen as a good thing. IDK how someone could possibly get through a CS program and still fail this test, but it happened regularly.

    3. Re:I dunno... by hackula · · Score: 5, Funny

      Nope, but you might try a Javascript programmer. I would be willing to be a Java programmer would implement this using the ReverseFactoryAbstractFactoryFactory pattern though. They might be able to get it to you in a year, but you would be obligated to sign a 5 year 200k/yr support contract.

    4. Re:I dunno... by Anonymous Coward · · Score: 5, Insightful

      I don't understand why employers don't just ask to see some code the developer has already written. Some people (nerds) don't do well in social situations and it takes a few days to get into the swing of things.

      I really don't get the "write a merge sort" routine. When was the last time someone did this IRL? At least people can use google, etc. When I was outta college, we had to do this crap on a whiteboard with 5 guys staring at the back of your head with no references. Talk about nerve racking.

      I would think the best possible thing to do would be to ask the candidate to write something before the interview and give them a few days. That way they are in their comfortable environment and can do their best work, proofread, comment properly, debug properly, optimize properly, etc. That's what you're really after, not someone who can write buggy ass, un-commented, un-optimized code really fast.

    5. Re:I dunno... by Goaway · · Score: 5, Insightful

      On the one hand it seems kind of lazy.

      Programming is pretty much Applied Laziness, so that is probably a good thing too.

    6. Re:I dunno... by ShanghaiBill · · Score: 5, Interesting

      So how can one pass the HR screen and get an interview with "programming knowledge", and even a CompEng degree, but with otherwise no experience?

      Obvious answer: apply to companies that pre-screen with on-line tests. At my company, if you do well on the on-line test, you will get an interview. At the interview, you will spend about 30 minutes chatting, and about 2 hours writing code. Some of the coding will be on a white board in a conference room with your potential co-workers, and some of it will be alone in a quiet cubicle.

      We added the "cubicle coding" because some introverted people don't do well on the white board, but can shine when allowed to focus in a quiet cubicle. I learned this when I declined to hire an applicant because he tended to mumble and stare at his shoes. That evening he emailed me an extremely concise and well coded solution to the problem, way better than I would have done myself. I brought him back for a second interview, hired him, and he turned out to be one of the best programmers I have ever worked with. Eventually he became less introverted, and when he talked to me he would stare at my shoes instead of his own.

  2. Of course by Bogtha · · Score: 5, Insightful

    They are extremely valuable - they let you know which potential employers don't have a clue about programmer productivity / expertise.

    --
    Bogtha Bogtha Bogtha
    1. Re:Of course by buddyglass · · Score: 5, Informative

      I took one of these during an interview. They put me in a room w/ a computer my IDE of choice and had me do a project. The general gist was to build a program that read instructions from a file, parsed them, carried them out, then output the result at the end. The instructions all had to do with string manipulation. After I finished, they brought my code up on a projector and had four or five developers do a sort of code review, asking me why I chose to do various things in certain ways. So, not only did they test whether I could finish the project successfully, they got to see whether I can speak intelligently about design decisions and handle constructive criticism from other developers. Seemed like an extremely valuable exercise.

  3. Useful for weeding out non-programmers by Ckwop · · Score: 5, Insightful

    We use Fizzbuzz and a short SQL test that take a total of 30 minutes for the first part of the test. If they fail this, we can them and don't give them an interview.

    A surprising number of people fail this test.

    We then have a larger problem with much more time allotted. Here we're looking for style and quality of construction.

    That said, even with this longer test, the people we hire tend to get the same distance through the test. They're at least within the same half of an order of magnitude.

    At the end of the day, in a paid position you can and do have a deadline to work to. You can't take forever building something. You have to produce the goods!

  4. Re:No undergraduate level stuff for me by beelsebob · · Score: 5, Insightful

    I personally discard any applicant that thinks like this, it means they can't actually think about algorithms, data structures, and how to design something well, and in doing so will produce sloppy assed code.

  5. Aren't all tests timed to some degree? by khakipuce · · Score: 5, Interesting

    A lot of companies use coding tests as part of the interview process and pretty much there will be some time limit, whether stated or not. They are not going to let you sit there for two days to answer 20 questions or complete a 10 line routine.

    As to the value of rigid timing, then that is a bit dubious.Do you want fast and sloppy or slow and accurate? Does this tell you something about the organisation and whether or not you want to work there? I feel it really depends on how they treat the results WRT the timing.

    --
    Art is the mathematics of emotion
  6. Yes by Splab · · Score: 5, Insightful

    If the people performing the test are any good.

    First of all it will weed out the anti authority programmers. (There is a lot of people who will refuse to do this - the door is right there...)

    Next, it will test if you can handle stress - quality of the code (should be) is irrelevant in these kind of tests. But you learn a lot about how people act under stress.

    Personal experience, during an interview I was asked to implement a hash map on a whiteboard. What they where looking for was not an actual shiny working example (hands up, those who don't need to go look in a book to find a proper hashing function (or the interwebs)) - they wanted to see how I handled myself in a stressful situation.

  7. Heck yes by dkleinsc · · Score: 5, Informative

    The basic rule of programming interviews is that you should demand that they actually program. It doesn't necessarily have to be a difficult problem: I've handed somebody a standard Fizzbuzz in an interview, and the competent candidates will solve it in 2-5 minutes, while the incompetent candidates won't solve it in 15 minutes.

    The reason this is necessary is that on paper, the incompetent candidates can look identical to the competent candidates.

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  8. Re:No undergraduate level stuff for me by buddyglass · · Score: 5, Insightful

    You would be surprised at the (low) quality of some candidates whose resumes suggest they're qualified for a senior engineer position.

  9. Re:No undergraduate level stuff for me by beelsebob · · Score: 5, Insightful

    The thing is, you may not be hiring a worldwide known linux kernel expert. You may instead be thinking about hiring someone who's CV says he's done several impressive looking things. You need to verify what his level of involvement in those was, and a good first step is often "are you so retarded that you can't possibly be telling the truth on your CV".

  10. Re:No undergraduate level stuff for me by ShanghaiBill · · Score: 5, Insightful

    I personally discard any company that tests undergraduate-level stuff.

    This is one of the reasons for the test. It not only filters out the incompetent, but it also filters out the arrogant prima donnas, who will probably not be good at teamwork.