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?"

16 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 Anonymous Coward · · Score: 4, Insightful

      -- pseudo-code
      for i in 1 to 100 loop
            if mod(i,15) == 0 then print 'fizzbuzz' ;
            elsif mod(i,5) == 0 then print 'buzz';
            elsif mod(i,3) == 0 then print 'fizz';
            else
                    print i;
            fi
      end loop

      -- 4 minutes to write pseudo-code, maybe not elegant, but not googling
      -- Depending on the language, I'd have to to look up the print, loop, and modulus syntax

    4. Re:I dunno... by ShanghaiBill · · Score: 4, Insightful

      And yet, as stated above, surprisingly, 95% of job applicants fail, just like the AC above.

      I used to give people this test: Write a program, in any language, to read a list of number from stdin, sort them, and write them to stdout. For instance if the input is:

      23
      14
      375
      42

      Your program should print

      14
      23
      42
      375

      By far the most common "solution" was this:

      main()
      {
            printf("14\n")
            printf("23\n");
            printf("42\n");
            printf("375\n");
      }

      Most of these people had degrees in CS.

      Anyway, I hired the girl that wrote this:

      %!/bin/sh
      sort -n

    5. 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.

    6. 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.

    7. Re:I dunno... by fzammett · · Score: 4, Insightful

      Wish I had the mod points, but this is spot on.

      I've frankly never been particularly good solving these "simple" algorithmic problems on the spot either, even with my 20+ years of experience in the field, even with being a published tech author, even with being very highly regarded by all I've ever worked with. So, although I haven't had the need to interview for a job in quite a few years, I'm sure I wouldn't do any better than average if these sorts of things were thrown at me.

      But, compare the code I write for a living with the code most others do and there's no question which one of us you'd want to hire.

      I think this is true of a lot of good developers... there's MUCH more to this job than being able to solve a specific single programming task because all of us that are worth hiring can do that, given enough research and time... sure, I agree, it's nice if you can throw algorithm X, Y or Z up on a whiteboard from memory, that'll make you marginally faster than me... but speed, while not irrelevant, is FAR from the most important characteristic of a good developer. Code that is clean, elegant, logical, as simple as possible and maintainable five years down the road are FAR, FAR, FAR more important, and you're NOT going to gauge those things with a fizzbuzz-type test (I do A LOT of interviews now, believe me, I know this from experience).

      --
      If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
  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
  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. 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.

  6. 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.

  7. 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".

  8. 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.

  9. Re:No undergraduate level stuff for me by qwijibo · · Score: 4, Insightful

    When I'm hiring for positions that are paying high salaries, I want to know the person is just as good (or better) in front of a computer as they are at interviewing and sounding smart. A simple programming exercise can confirm that the person is good with computers, not just as BS'ing their way through interviews.

    It's disappointing how many applicants will fail such a simple demonstration of their claimed skills. Likewise, if someone thinks a short demonstration is beneath them, I don't want to work with them. Every job has some crap that just needs to be done, even if its a waste of everyone's time. If they haven't learned the "do it and move on" philosophy, they're going to be hard to work with. I've worked with people who will spend days arguing against doing 20 minutes of work - I'm definitely not going to hire people like that.