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

776 comments

  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 JWSmythe · · Score: 1

          I guess it would prune out those who would take 2 hours to print "Hello World".

      --
      Serious? Seriousness is well above my pay grade.
    2. 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.

    3. Re:I dunno... by Anonymous Coward · · Score: 2, Insightful

      Exactly. I don't believe that a speed programming will always identify the "better" programmers or employees as the OP appears to be making a correlation between.

      I would suspect that the company is just trying to weed out those who actually have no experience, not those who are "better". It is just a method of screening which can be very effective when dealing with large numbers of applicants.

    4. Re:I dunno... by Anonymous Coward · · Score: 0

      Even 20 or 30 lines of code will show how tidy you are and how you do or don't break down a particular issue into functions and subroutines (although obviously, everyone will try to be neat)

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

    6. Re:I dunno... by Anrego · · Score: 1

      Pretty much this.

      Typically prior work is used for this purpose, but I could see this being valuable as a "you must be this competant before we will bother talking to you seriously" type test.

      Also without knowing the scale of the coding assignment, we can't know if 45 minutes is barely enough time or a very reasonable amount of time.

    7. Re:I dunno... by buddyglass · · Score: 1

      Presumably the exercise is more complicated than "print Hello World".

    8. Re:I dunno... by SJHillman · · Score: 3, Interesting

      Mod parent up

      I took a couple of programming classes in college and we had some timed tests. However, failing to get the desired results within the allotted time was only enough to knock off a partial letter grade (IE: go from a B+ to a B). The professors mostly wanted to see how you approached a problem, whether you commented your code, if any horrible coding practices jumped out, etc. In the follow-up, they would also want to know how you would fix any issues you came across if given more time.

      How much you got done was still somewhat important - there was a basic expectation that you would have some functionality working and other pieces at least partially completed. After all, if you have to spend 45 minutes looking up how to do a basic loop, then you're probably not experienced enough for anything beyond entry level (if that), so it helps weed out the people who are outright lying about skills.

    9. Re:I dunno... by Anonymous Coward · · Score: 3, Funny

      wth is a fizzbuzz test?

    10. Re:I dunno... by Cryacin · · Score: 4, Interesting

      These tests are vital when interviewing. We recently put out an ad for a senior programmer, and got about 100 or so responses. After 25 responses hit the circular filing cabinet, as they were obvious resume spam with no cover letters, we declined around a further 50. Of the remainder, we asked a simple question. In JavaScript, without using the reverse() method, reverse an array of numbers containing 1,2,3,4,5 in the most efficient way possible.

      We got 5 responses back, which we interviewed. The other 20 were out. These tests are meant to weed out the crap that would waste our time, and honestly, the 5 guys that responded, responded in under 5 minutes.

      --
      Science advances one funeral at a time- Max Planck
    11. Re:I dunno... by beelsebob · · Score: 4, Informative

      Well, you just failed for not googling...

      But, print all the numbers from 1 to 100, except rather than printing multiples of 3, print fizz, rather than printing multiples of 5, print buzz, and for multiples of both, print fizzbuzz.

    12. Re:I dunno... by Talderas · · Score: 1

      I had to look up what the test is, because I'm not familiar with the term or game...

      Now, I don't by any stretch of the imagination call myself a coder. It's not a primary function of my job but isn't it just a basic modulus operation?

      --
      "Lack of speed can be overcome. In the worst case by patience." --Znork
    13. Re:I dunno... by Gr8Apes · · Score: 2

      so this should take you what, about 3 minutes, given a normal typing speed, compile and run time?

      --
      The cesspool just got a check and balance.
    14. Re:I dunno... by beelsebob · · Score: 4, Informative

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

    15. Re:I dunno... by Gr8Apes · · Score: 1

      ...After all, if you have to spend 45 minutes looking up how to do a basic loop, then you're probably not experienced enough for anything beyond entry level (if that), so it helps weed out the people who are outright lying about skills.

      I'd say if you need to spend time looking up how to do a basic loop in a language you're supposed to know, perhaps coding isn't a profession you should be in. I hear McDonald's is hiring.

      --
      The cesspool just got a check and balance.
    16. Re:I dunno... by beelsebob · · Score: 2

      Which is why this test is useful ;)

    17. Re:I dunno... by hackula · · Score: 2

      Should take 3, I give 30. Still fail. Also, any language they want no matter what the job requires.

    18. Re:I dunno... by tibit · · Score: 1

      LOL, in 45 minutes you should do it in assembly for any architecture out there, even ones you never used before. Might take a bit longer in brainfuck, though :)

      --
      A successful API design takes a mixture of software design and pedagogy.
    19. Re:I dunno... by Anonymous Coward · · Score: 0

      I believe the idea is 1) can they do it and 2) do they brute-force it with an unoptimized algorithm or come up with a nice solution. 1) is a start and 2) is what you want.

    20. Re:I dunno... by deniable · · Score: 1

      It's also a loop, some print statements and a couple of comparisons with booleans. A nice little package and one of the test pieces I do when I'm learning a new language.

    21. Re:I dunno... by tibit · · Score: 1

      The problem is: in most cases, 90%+ of applicants are useless and will fail such a test. It's crazy how many people apply to programming jobs without knowing anything about programming. Apparently, they themselves are OK with such a waste of time. Idiots.

      --
      A successful API design takes a mixture of software design and pedagogy.
    22. Re:I dunno... by deniable · · Score: 2

      It sounds like less of a speed comparison than an upper limit to stop people wasting both sides' time.

    23. Re:I dunno... by arth1 · · Score: 2

      To be fair, there are a lot of senior programmers who don't speak javascript. They may have experience in it to the point of setting up the algorithms that the regular programmers implement, or assisting with eyeballing for glaring errors, but may not be javascript programmers themselves.

      An efficient solution would, depending on the language, be to either change the pointers of the array, or create a new index to replace the existing one, and thus avoid copying each element, but I can fully understand seniors not knowing the best way to do this in an arbitrary language without looking it up.

      But the most efficient way possible (and that's what you asked for), given that it only has five elements, all known, would likely be something like (not that I speak JavaScript):

      a[0]=5;a[3]=2;
      a[a[1]=4]=1;

    24. Re:I dunno... by N1AK · · Score: 1

      and I encouraged questions and told them that both behaviors were seen as a good thing.

      I would think that asking for clarification when asked to do something you haven't heard of before is a pretty useful response and hardly a failure. Admittedly asking on Slashdot rather than just searching it is pretty lazy but that's because this is a forum and the other is an interview where the person is sat next to you and will presumably respond quickly and accurately; They'd probably think you were pretty weird if instead of asking you pulled out your phone in an interview and ignored them while you looked it up.

    25. Re:I dunno... by Anonymous Coward · · Score: 0

      var myArray=["5","4","3","2","1"];

      It would have been more difficult if you've had arbitrary values in the array, but as you were so specific... Took me a minute to Google array handling in JavaScript because I'm not a programmer.

    26. Re:I dunno... by serviscope_minor · · Score: 3, Funny

      I never believed the whole "95% of interviewees fail the FizzBuzz test" until I started interviewing candidates.

      Well, I've never interviewed job candidates and I have a hard job believing this. It's not that I think you're lying (I don't), it's that I've never seen it for myself and my brain has a very hard job accepting that someone who does programming for their livlihood could not solve this in their sleep.

      It doesn't matter that it's true, it's just really REALLY hard to imagine. And I don't WANT to believe it.

      Anyway, here's my entry.


      s/^$/c_0/
      :mainloop

      #Advance the number counter
      tclear1
      :clear1

      s/9$/0/;tdigit1done
      s/8$/9/
      s/7$/8/
      s/6$/7/
      s/5$/6/
      s/4$/5/
      s/3$/4/
      s/2$/3/
      s/1$/2/
      s/0$/1/
      :digit1done

      s/_90/_100/
      s/_80$/_90/
      s/_70$/_80/
      s/_60$/_70/
      s/_50$/_60/
      s/_40$/_50/
      s/_30$/_40/
      s/_20$/_30/
      s/_10$/_20/
      s/_0$/_10/

      #Advance the Fizz counter
      y/abc/bca/

      #Clear the hold space
      x
      s/.*//
      x

      #Divisibility by 3 /c/{
              x
              s/$/Fizz/
              x
      }

      #Divisibility by 5 /[05]$/{
              x
              s/$/Buzz/
              x
      }

      x /^$/g
      s/[abc]_//
      p
      x /100/!bmainloop
      D
      q

      Silly slashdot. Why do you keep reformatting my code and why do you make me type junk here just to get my post accepted? Blah blah blah blah blah blah and you don't like too much repition wither this makes it very hard to paste code into the forum now please let this post in please pretty please with a cherry on top and sprinkles and is that even your bucket in the first place?

      --
      SJW n. One who posts facts.
    27. Re:I dunno... by cod3r_ · · Score: 1

      Also gives an advantage to the ones who got solid google skills. "Google exact problem".. Copy.. .paste.. 5 minutes .. ??? profit

    28. Re:I dunno... by JustOK · · Score: 1

      Before coding even begins, we must ensure that marketing and sales have buy in, and confirm with our social media team that marketing and sales projects will result in a suitable ROI, and generate the requisite buzz.

      Can I haz management job?

      --
      rewriting history since 2109
    29. 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

    30. Re:I dunno... by Big+Hairy+Ian · · Score: 1

      Would "I'd delegate it to a Java Programmer" be a valid response?

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

    31. Re:I dunno... by beelsebob · · Score: 3, Funny

      You know... Every time fizzbuzz is explained somewhere, there are always 100 attempts to solve it right beneath...

      I think this is the first time I've ever seen the first response (or in fact, most of the responses) actually be correct!

    32. Re:I dunno... by Anonymous Coward · · Score: 0

      You're overengineering already.

      Given that JS values likely take dword or two regardless of type (strings and objects are actually pointers), plain old 'var len = input.length, reversed = Array(len), i = len; while(i--) reversed[len-i] = input[i]; return reversed' would be simple and efficient.

    33. Re:I dunno... by samkass · · Score: 2

      Would "I'd delegate it to a Java Programmer" be a valid response?

      No, it would weed you out because it shows you don't know the difference between Java and JavaScript.

      --
      E pluribus unum
    34. Re:I dunno... by IICV · · Score: 2

      Honestly, you didn't even need the "without using the reverse() method" stipulation.

    35. Re:I dunno... by bickerdyke · · Score: 1

      Am i missing something or seeing a trick question where there isn't one.... but if the input is a known value (here: array 1,2,3,4,5) the most effective way would be to use a precalculated result. (return {5,4,3,2,1};)

      You explicitly asked for effectivity, not flexibility.

      --
      bickerdyke
    36. Re:I dunno... by smpoole7 · · Score: 3, Insightful

      It's not only a great idea to weed out the wannabes, watch how they react when you challenge them.

      The ones whose eyes light up and are eager to prove themselves? That's your guy or your gal. :)

      --
      Cogito, igitur comedam pizza.
    37. Re:I dunno... by Anonymous Coward · · Score: 4, Funny
      That's easy; I'm a fast typer!

      #include <stdio.h>
      int main()
      {
      puts("1"); puts("2"); puts("fizz"); puts("4"); puts("buzz"); puts("fizz");
      puts("7"); puts("8"); puts("fizz"); puts("buzz"); puts("11"); puts("fizz");
      puts("13"); puts("14"); puts("fizzbuzz"); puts("16"); puts("17"); puts("fizz");
      puts("19"); puts("buzz"); puts("fizz"); puts("22"); puts("23"); puts("fizz");
      puts("buzz"); puts("26"); puts("fizz"); puts("28"); puts("29"); puts("fizzbuzz");
      puts("31"); puts("32"); puts("fizz"); puts("34"); puts("buzz"); puts("fizz");
      puts("37"); puts("38"); puts("fizz"); puts("buzz"); puts("41"); puts("fizz");
      puts("43"); puts("44"); puts("fizzbuzz"); puts("46"); puts("47"); puts("fizz");
      puts("49"); puts("buzz"); puts("fizz"); puts("52"); puts("53"); puts("fizz");
      puts("buzz"); puts("56"); puts("fizz"); puts("58"); puts("59"); puts("fizzbuzz");
      puts("61"); puts("62"); puts("fizz"); puts("64"); puts("buzz"); puts("fizz");
      puts("67"); puts("68"); puts("fizz"); puts("buzz"); puts("71"); puts("fizz");
      puts("73"); puts("74"); puts("fizzbuzz"); puts("76"); puts("77");
      puts("fizz"); puts("79"); puts("buzz"); puts("fizz"); puts("82"); puts("83");
      puts("fizz"); puts("buzz"); puts("86"); puts("fizz"); puts("88"); puts("89");
      puts("fizzbuzz"); puts("91"); puts("92"); puts("fizz"); puts("94");
      puts("buzz"); puts("fizz"); puts("97"); puts("98"); puts("fizz"); puts("buzz");
      return 0;
      }

    38. Re:I dunno... by Anonymous Coward · · Score: 0

      Oh, and I already failed, as it should be 'reversed[len-i-1]'

    39. Re:I dunno... by Anonymous Coward · · Score: 0

      Smartasses Inc. now hiring: Senior Developer.

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

    41. Re:I dunno... by hackula · · Score: 1

      I was thinking the same thing. It was pitiful when the topic first came up on Coding Horror. Hundreds of responses, entirely missing the point that it was not supposed to be a challenge to anyone who actually knows how to program, and yet... so many failures.

    42. Re:I dunno... by Anonymous Coward · · Score: 0

      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.

      I knew a lot of people who had made it all the way through and couldn't use a compiler and linker. They were anti-nerds: where most nerds were locked up in a lab learning to code, these people would relentless sponge off others getting assistance.

      And they would deliberately choose courses that didn't require much programming.

    43. Re:I dunno... by Anonymous Coward · · Score: 0

      I know it's hard to believe, but it's true. A great deal of programmers I've interviewed couldn't do it either and it had me floored. One guy supposedly had a masters degree from UCLA and couldn't explain how a linked list worked either.

      --wmbetts

      Post AC, because I have mod points.

    44. Re:I dunno... by LordLimecat · · Score: 1

      I handled a technical interview for a former job while the boss was out of town. The applicant had indicated experience with Cisco and a few other products; being a cisco fanboy I started with that.

      ME: I see you have cisco experience. Can you tell me how you would configure the IP on the first serial interface of a Cisco router?
      ANSWER: Hmmm, let me think...[pauses]... its been a long time, i dont think I can.
      ME: Thats alright. What about entering global configuration mode, do you recall the command for that?
      ANSWER: Hmmm.... I dont think so.
      ME: Thats fine, I just want to get a general idea, so no pressure. Can you tell me the command you would use to enter EXEC mode on a Cisco device?
      ANSWER: [pause]... sorry, no.
      ME:One more, how would you physically connect to a Cisco device to configure it, what equipment / method would you use?
      ANSWER: I dont know.

      So we have a guy with cisco experience who cannot connect to any cisco device he owns, and if he could could not log into that device, and if he could could not enter configuration mode, and even if someone did that for him he doesnt know the most basic configuration command.

      After that, when friends ask me for advice on applicants or whatnot, I tend to stress the technical interview. Tests can be crammed for, you need to really probe to find out who is full of crap and who knows their stuff.

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

    46. Re:I dunno... by mcmonkey · · Score: 3, Insightful

      In JavaScript, without using the reverse() method, reverse an array of numbers containing 1,2,3,4,5 in the most efficient way possible.

      Semi-off topic question: really? I mean, are we (programming job seekers) as a group that dumb?

      I recently went through searching for a programming job after 5 years in a position that mainly dealt with configuring off-the-shelf apps. Every single interview at some point had a question that required reversing an array without using Reverse(). (Only about half mentioned efficiency.)

      I'm big into puzzles and logic games, and as long as I can use pseudocode and not stress syntax, technical interviews are truly fun. I enjoy coming up with algorithms to solve interesting problems. But reversing an array is not an interesting problem; it's trivial. It got the point where I felt like I should walk in to an interview, introduce myself to everyone in the room, and go right for the white board and put up an array-reversing function, just to get it out of the way.

      That a significant number of applicants for a programming position couldn't (or wouldn't) solve this quickly is sad commentary. (It's even worse if you consider it's likely yours would not be the first position these folks have applied for. Based on my experience, they would have been asked the same question previously, and not only couldn't come up with a solution, but also didn't think, maybe I should figure this out before I send out any more resumes.)

    47. Re:I dunno... by Anonymous Coward · · Score: 2, Informative

      Should start with:
      #!/bin/sh

      But anyway I'd fail most of these programming tests :).

    48. Re:I dunno... by dkleinsc · · Score: 1

      It's not a primary function of my job but isn't it just a basic modulus operation?

      Yes (plus a loop). You'd be surprised how few people billing themselves as "programmers" can do it.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    49. Re:I dunno... by LordLimecat · · Score: 1

      thats technically a 5 liner. Can be done in 3 lines, if javascript has anything remotely like an iterative "for":

      For $x=0 to 4 step 1
          $b[$x]=$a[4-$x]
      Next

      Has the benefit of working no matter how many elements you have.

    50. Re:I dunno... by gander666 · · Score: 1

      Just googled it myself. I am not a coder, and have never held that position, but I know I can solve this problem in C, Pascal, Basic (shiver) and probably with about 10 minutes of refreshing my memory, Fortran. And I really haven't written anything since I left college almost 25 years ago.

      However, at my last job, we had a hot host programmer, really great Win32 API guy who wrote great C and C++ code. I had to explain to him trigonometry, and how to do coordinate transformations (simple rotations combined with translations). Apparently, he never learned about transcendentals in school.

      I don't hire programmers, but if I did, a simple test like this would certainly be on the interview schedule.

      --
      Suppose you were an idiot and suppose you were a member of Congress ... but I repeat myself. - Mark T
    51. Re:I dunno... by Big+Hairy+Ian · · Score: 1

      And I've only been in Software Development for 25 years mostly in programming languages that are either dead or dying but never used Java or Java script.

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

    52. Re:I dunno... by hsmith · · Score: 1

      Well duh, he just googled it

      ;)

    53. Re:I dunno... by serviscope_minor · · Score: 1


      Anyway, I hired the girl that wrote this:

      %!/bin/sh
      sort -n

      Oh fantastic!

      --
      SJW n. One who posts facts.
    54. Re:I dunno... by MrBandersnatch · · Score: 4, Funny

      It took me 6 because I spent 5 minutes trying to find an elegant solution to the problem - do all older programmers suffer from the problem of premature optimization? ;)

    55. Re:I dunno... by mcmonkey · · Score: 1

      Also without knowing the scale of the coding assignment, we can't know if 45 minutes is barely enough time or a very reasonable amount of time.

      Even if 45 minutes isn't reasonable to complete code that compiles and runs, it is enough time to discuss an approach, sketch out an algorithm in pseudocode, note any 'gotchas' to check for, etc.

      I'd say timed coding tests are valuable as long as the expectations are reasonable for the time allotted. I'll add timed tests are preferable in consideration of everyone's time. If the applicant doesn't offer a complete solution after a short time, so what? The goal isn't stable, running code, it's to get an idea of how this person thinks and solve problems.

    56. Re:I dunno... by Kergan · · Score: 1

      Nah, the brainfuck version is a mere google away: :-)

      >++++++++++[<++++++++++>-]<[>+>[-]>++++++++++[<++++++++++>-]<+<<[->>->+<<<]>>>
        [-<<<+>>>]<>>+++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[-<+>]+>[-]>[<<->>[-]]>[-]
        <<<[[-]++++++++++[>++++++++++<-]>++.+++.[-]<[-]+++++++++++[>+++++++++++<-]>+..
        [-]<[-]<<[-]>>]<>>+++++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[-<+>]+>[-]>[<<->>[
        -]]>[-]<<<[[-]+++++++++[>+++++++++++<-]>-.[-]<[-]+++++++++[>+++++++++++++<-]>.
        +++++..[-]<[-]<<[-]>>]<<[[-]>>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[
        >++++++++[<++++++>-]<.[-]]<>++++++++[<++++++>-]<.[-]<<<]>[-]++++++++++.[-]<[-]
        <-]

    57. Re:I dunno... by pthisis · · Score: 1

      What language is this? It's something heavily sed influenced obviously, but it's not sed nor is it an ed or ex script.

      --
      rage, rage against the dying of the light
    58. Re:I dunno... by serviscope_minor · · Score: 1

      but it's not sed

      It's sed. What made you think it wasn't?

      --
      SJW n. One who posts facts.
    59. Re:I dunno... by greg1104 · · Score: 1

      You were supposed to reverse the array in-place, the way reverse() does. You created a second one instead, which means you're not even looking at the efficiency of the right type of operations. Welcome to the "didn't pay attention to the spec" part of the circular filing cabinet. I don't write Javascript code, but it only took a second to search for this method to clarify. That was part of the test.

    60. Re:I dunno... by Anonymous Coward · · Score: 1

      Wow, you'd have to be a real asshole to code like that.

    61. Re:I dunno... by rioki · · Score: 1

      That is no reason not to know the difference. I am working on software that is older than I am. But I still take the time to look around and get to know what else is there... and even if it is only to get some fresh ideas.

    62. Re:I dunno... by deroby · · Score: 1

      Funny, we once had someone write a similar solution during an actual interview.

      The question was to print all prime numbers upto 100. eg. 2, 3. 5, 7, 11, 13, etc..
      We even added a basic description of what prime numbers are, incredibly a lot of people need it re-explained. Worse, some even don't get it after the explanation !?

      Anyway, so the guys program came down to :

              PRINT "2, 3. 5, 7, 11, 13, etc.."

      We had a good laugh on his behalf but needless to say he didn't get the job as a programmer... (we considered a sales position though =P )

      In his favour though, at least he wrote something down. It's unbelievable how many people simply skip those questions even though we allow for pseudo code and don't really care about the syntax even though they often apply for a specific programming language. That said, I too hate programming "on paper" but that wouldn't stop me from at least trying. I've already suggested to simply give them an old pc with an OS and IDE + all documentation of the programming language at hand. I'd consider giving them internet access too as that would be a more realistic scenario, but then again, printing out primes is probably too easy to google and the idea is to test if they can come up with some (simple) logic, not if they can use google.

      --
      If there is one thing to be learned on slashdot, it has to be sarcasm.
    63. Re:I dunno... by Art+Challenor · · Score: 1

      I thought that 9 was fizzfizz, 25 was buzzbuzz and 75 fizzbuzzbuzz. Did someone change the rules? (My memory of the game is, perhaps, a little flawed since we didn't play it on the computer).

    64. Re:I dunno... by smpoole7 · · Score: 1

      > are we (programming job seekers) as a group that dumb?

      I can't answer that. But the value of tests like this are to confirm that the applicant can think, and not just answer problems by rote.

      Great example from the dark ages: the old Disk Operating Systems had to Do It(tm) in very, very limited RAM. They also had to be fast on (by today's standards) dismally-slow processors. Thus, they commonly used a "jump table" (usually written in assembler) to handle system calls. Simple and effective:

              function_number * size_of_each_table_element = pointer to the function code that handles the call.

      You'd be astonished at the number of people who will try to implement a 50 or 100-function table with "goto" and "switch" statements (or the equivalent in assembler, which is usually something like a "cmp value" and a "jump-if-zero" instruction).

      I've said for years that a really good programmer will know his/her math. It makes for neater, tighter code.

      --
      Cogito, igitur comedam pizza.
    65. Re:I dunno... by Billly+Gates · · Score: 1

      That is not an efficient way. You are just printing the results that are preknown.

      To solve it programmically I would: // create arrays and variables for loop conditions
      oldarray [4] = [1,2,3,4,5]
      new newarray [4]
      x == 0, y ==0 // use a do/while loop or similiar structure in javascript with a deincrementing loop to put the values from oldarray to newarray in reverse order
      do while ( x => 0, x-- )
                do while ( y++) // this increments up starting from position 0 to 4 in newarray to assign each value
                          newarray[y] = oldarray[x];

      I would of course convert the syntax to javascript as you can tell this is kind of c style pseudo code. As X deincrements Y increments so the data is copied in reverse. How did I do?

    66. Re:I dunno... by Vintermann · · Score: 1

      I believe you, since you write Javascript as Java script.

      --
      xkcd is not in the sudoers file. This incident will be reported.
    67. Re:I dunno... by Vintermann · · Score: 1

      There's supposed to be a programmer on the hiring side of the table too. They should know that you have to be precise.

      --
      xkcd is not in the sudoers file. This incident will be reported.
    68. Re:I dunno... by Billly+Gates · · Score: 1

      I am not a professional programmer, but even I would write a simple bubble sort with abunch of if and statements.

      I think your issue is not that people are incompetent, but rather since programmers are in demand again after 2001 that people are not bothering. They know if you give them a test they can walk to someone else who wont. When job searching I hate filling out job applications and tests that are an hour to do, when I can hit 6 at one time instead.

      That are maybe there are incompetent people. All I know is I could not find a programming job when I graduated and had to do other things instead but even simple structures can do this.

    69. Re:I dunno... by funwithBSD · · Score: 2

      It does not say any of the things you just said, it says:
      without using the reverse() method, reverse an array of numbers containing 1,2,3,4,5 in the most efficient way possible.

      You are implying that they were "supposed to reverse the array in-play" the way "reverse() does".

      Unless you are implying that is the most efficient way to do it, period.

      One could also presume that the way reverse() does it is wrong, inefficient or "broken" in some way for this use case, or why the fuck are you wasting my time refactoring reverse()? Use reverse()!

      Personally, the whole test stinks of: If you were too stupid to look up reverse(), how would you hack around the problem?

       

      --
      Never answer an anonymous letter. - Yogi Berra
    70. Re:I dunno... by serviscope_minor · · Score: 1

      not supposed to be a challenge to anyone who actually knows how to program, and yet... so many failures.

      Yep, it worked perfectly. It's quite amazing, yet still I find it hard to believe.

      --
      SJW n. One who posts facts.
    71. Re:I dunno... by blackm0k · · Score: 1

      On the one hand it seems kind of lazy. On t'other it shows lateral thinking, reuse of existing code and a good choice of tool for the specific requirements of the assignment.

    72. Re:I dunno... by Alex+Zepeda · · Score: 1

      The value here, IMO, is the insight into the candidate's thought process. I certainly wouldn't have one correct solution in mind If they give up or can't come up with an answer, I'd move on pretty quickly. If someone gave an answer like you did, I'd probably see what it would take to steer them towards a more flexible answer.

      --
      The revolution will be mocked
    73. Re:I dunno... by Anonymous Coward · · Score: 0

      Confirm this result - I tested candidates for "graphics programmer" over a 15 year period the pass rate for pre-qualified individuals who were sure they were a good fit for the job was roughly 5%. The test: draw a decaying sine wave, given example code that draws an empty box and a "compile and run" button on the IDE.

    74. Re:I dunno... by Vintermann · · Score: 1

      You could try asking some nonsense, like "Well, can you set up a reverse BIND lookup array on it?" Just to separate those who padded their resume with something they worked on ages ago, from those who're just making it up out of whole cloth.

      --
      xkcd is not in the sudoers file. This incident will be reported.
    75. Re:I dunno... by gweihir · · Score: 1

      Hehehehehe, nice!

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    76. Re:I dunno... by seebs · · Score: 2

      Exactly. That is the only person who considered the spec and reacted intelligently.

      I'm pretty good at shell, and one of the things I note is that a TON of stuff that people often write elaborate code for can be done in a couple of lines of shell and then we're done.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    77. Re:I dunno... by kd6ttl · · Score: 1

      For the first condition, I'd use

                  if mod(i,3) == 0 and mod(i,5)==0 then print 'fizzbuzz' ;

      because (a) it reflects the problem statement, and (b) just as soon as the original program has gone into production and the programmer has gone on to another project, word will come from on high that there was an error in the spec, and they really meant to print fizzbuzz when the number is a multiple of 3 and 7, not of 3 and 5.

      The important thing here is probably that the 3 and 5 test has to come first.

    78. Re:I dunno... by Anonymous Coward · · Score: 0

      tbh that's the most efficient solution, perhaps you should specify the input as any 5 whole numbers instead ;).

      @
      %!/bin/sh
      sort -n

      That isn't portable, should fire her.

    79. Re:I dunno... by funwithBSD · · Score: 4, Interesting

      And I probably would hire him.

      IF he is good enough to take my stupid test and shove it up my ass for wasting his time but without refusing the request, he is the kinda of guy I want one or two of my team. Or more. My boss is this guy, I am this guy, half the rest of the team is like this guy.

      Those guys are the kind of guys you can give a "Letter to Garcia" to and know it is going to get there without much intervention on your part.

      And those are the sort of guys that make complex datacenter migrations/refits successful, even if you have to provide air cover because some PM tried the same stupid trick and he shoved the test up their ass and they did not like it.

      --
      Never answer an anonymous letter. - Yogi Berra
    80. Re:I dunno... by Anonymous Coward · · Score: 0

      And then most programming interviews will ask something like "any way you would improve this, or are there bugs in it?"

      Answer, "crap I should probably use exec there"

    81. Re:I dunno... by SCHecklerX · · Score: 2

      It's just that most bash 'functions' are other programs. I see no problem with her answer.

      If you chose perl instead, it wouldn't be much more:

      #!/usr/bin/perl -w

      @list = sort {$a <=> $b} @ARGV;
      foreach(@list){
            print "$_\n";
      }

      But I wouldn't have remembered how to make sort sort things numerically, and would have just done what she did with shell :-)

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

    83. Re:I dunno... by narcc · · Score: 4, Funny

      No, most older programmers suffer from "do it right" syndrome.

      I wrote two different solutions and selected the most readable. It took 8 minutes, but I had to chase some damn kids off my lawn.

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

    85. Re:I dunno... by locofungus · · Score: 1

      I don't understand why it's "needless to say" he didn't get the job. Obviously if he couldn't come up with a more generic solution then that would be an issue but sometimes hard coding is the best way to do things, especially for prototyping work.

      Something I wrote in a bored moment after having done an interview with some questions like these:

      #include <iostream>

      template <int N> class fibonacci
      {
          fibonacci<N-1> dataA;
          fibonacci<N-2> dataB;
      };

      template <> class fibonacci<1> { char data[1]; };
      template <> class fibonacci<2> { char data[1]; };

      int main()
      {
          std::cout << sizeof(fibonacci<1>) << std::endl;
          std::cout << sizeof(fibonacci<2>) << std::endl;
          std::cout << sizeof(fibonacci<3>) << std::endl;
          std::cout << sizeof(fibonacci<4>) << std::endl;
          std::cout << sizeof(fibonacci<5>) << std::endl;
          std::cout << sizeof(fibonacci<6>) << std::endl;
          std::cout << sizeof(fibonacci<7>) << std::endl;
          std::cout << sizeof(fibonacci<8>) << std::endl;
      }

      I ran the text through sed to get the '<' to appear.

      Stupid lameness filter
      L. Sergius Catilina, homo patricii generis, magna vi et animi et corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689 caedem consulum facere eaque facta rerum potiri constituerat, casu autem rem perficere prohibitus erat, ascitis ad consilium rei publicae opprimendae hominibus omnis generis perditissiis atque audacissimis, quos inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c. petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum C. Antonio consul factus est. Qua re commotus L. Catilina M. Cicerone C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui particeps fuit conspirationis illius, deferebantur. Cum autem ista mala consilia contra salutem rei publicae a coniuratis inita apertius iam agitarentur, senatus consultum factum est, darent operam consules, ne quid res publica detrimenti caperet, effectumque est, ut Catilina spe consulatus, quem in proximum annum petebat, excideret, designarenturque D. Silanus et L. Murena. Quae cum ita essent, L. Catilina, qui iam ante per Italiam ad homines seditiosos, maxime veteres L. Sullae milites, concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem Etruriae munitam, manum armatorum coegerat, proficisci constituit et bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id. Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat, aperuit. Qua in congregatione nocturna duo equites Romani Ciceronem consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum intrassent, interficiendum receperunt. M. Cicero vitatis insidiis proximo die, qui fuit a. d. VI Id. Novembres, dispositis praesidiis senatum in templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam vehementissime invehens habuit.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    86. Re:I dunno... by FictionPimp · · Score: 4, Interesting

      Yes and no.

      I have taken programming tests for jobs. I tend to do really well and have gotten quite a few jobs and job offers from my tests. I excel at tests that give me a few days to complete some minor 'real world' type project. These jobs typically had more knowledgable staff and they used my 'test answer' application as a launching point for a discussion on my ability. They did this by challenging my design decisions, asking questions about areas in the code to get my insight, and asking me how I would improve the program given more time, or improve the test.

      I have also bombed tests that were timed asking programming questions. Many of these tests asked for simple things (print out a multiplication table to look exactly like this example) and I simply brain farted because I don't typically write applications that need console formatted output. I end up looking like a idiot to the test givers. I found no value in these tests asking me to write a function that factors, or write a loop that prints out hello 10 times. Interviews after these tests tended (when they happened at all) to be lower quality and the employees seemed less knowledgable. There was much less meaningful discussion about my abilities, even when I 'aced' the test.

      When I do my job in real life, I have time to plan, research, and I can keep open documentation for reference. I don't need to memorize every obscure function in the language my job requires, instead I can pull up documentation on how to use that object, function, or method. Many tests I have taken do not allow for this and it has cost me a few job interviews. While you have stated you encourage googling, most tests I have taken have explicitly denied the ability to search. I'd much rather have a week to build a working application then 45 minutes to prove I know how to write boilerplate code and memorized a whole bunch of console formatting functions.

    87. Re:I dunno... by Anonymous Coward · · Score: 0

      If this was a discussion about how interviewers are resorting to the "mirror test," the threads would be full of people proudly linking to images of their fogged mirrors.

    88. Re:I dunno... by Goaway · · Score: 1

      You're using twice the memory you actually need.

    89. Re:I dunno... by _anomaly_ · · Score: 1

      Obviously the job they were hiring for required JavaScript knowledge. It's certainly fair to expect an interviewee for a job that requires JavaScript skills to be able to code something rudimentary in JavaScript.

      --
      "I have no special gift, I am only passionately curious." - Albert Einstein
    90. Re:I dunno... by bWareiWare.co.uk · · Score: 1

      Unfortunately that is an array of strings not numbers. However more importantly you have also made the cardinal sin of making assumptions about the specification. The fact that they defined the array had to contain 1,2,3,4,5 dose not imply that it had to contain them in that order.

    91. Re:I dunno... by TheSpoom · · Score: 3, Interesting

      Lazy, in a programmer, is a virtue.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    92. Re:I dunno... by maroberts · · Score: 2

      There's the straight version...

      #/usr/bin/perl
      for my $i (1..100) {
            my $s = '';
            if ($i % 3 == 0) { $s .= 'Fizz'; }
            if ($i % 5 == 0) { $s .= 'Buzz'; }
            print $s ? $s : $i, "\n";
      }

      And for Real Men

      perl -E 'say map{((Fizz)[$_%3].(Buzz)[$_%5]||$_)."\n"} 1..100'

      --

      Donte Alistair Anderson Roberts - hi son!
      Karma: Chameleon

    93. Re:I dunno... by RobertLTux · · Score: 2

      "
      @
      %!/bin/sh
      sort -n

      That isn't portable, should fire her."

      OBJECTION: feature not specified/requested therefore was considered optional

      --
      Any person using FTFY or editing my postings agrees to a US$50.00 charge
    94. Re:I dunno... by Anonymous Coward · · Score: 0

      I think the reason for stipulating "no reverse()" isn't to make it harder, it's because plenty of people would guess "Uhh... array.reverse?"

    95. Re:I dunno... by bickerdyke · · Score: 1

      I think you failed if it was a trick question and the trick was to recognize that you have prior knowledge of the input and make use of that.
      Bsides that, as a matter of style: you used magic numbers (4. by the way, it should have been 5 as it is the size, not a 0-based position). If this was real stuff and a bit longer, and you'd have to revisit it in 5 years, you might change only one of those numbers and break the code.

      likewise, if using a const int size = 5, x will ALWAYS be (size - y), so I would do away with that x alltogether.

      But my whole point is the question "what is efficient"? But for that we'd definitly need to know if 1,2,3,4,5 is the actual data or some placeholder. If it is only an example that might stand for "any kind of array of any size", you might be terribly memory inefficient by creating a second array of the same size. instead of doing it in place in a loop counting from 0 to size/2 and swapping [i] with [size-1-i]

      --
      bickerdyke
    96. Re:I dunno... by coder111 · · Score: 2

      1 year to write an array reversal? And I get 200k/year for 5 years? Sign me up!

      Java must be the BEST programming languatge (for programmers).

      On a serious note, bad code is very often management's fault for

      a) Rushing things
      b) Never giving any time nor resources for refactoring and maintenance
      c) Never caring about software quality in general

      I'm dealing with such a system right now. It's crap, but management won't allow me to refactor it much. Adding new features is the only thing they see, even though we are at a point when adding anything costs at least a month because of all the interdependencies and spaghetti and extensive regression testing required.

      --Coder

    97. Re:I dunno... by neurovish · · Score: 1

      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? The few times I did make it past HR, nobody ever really tried to figure out what I could do practically. It was all questions about academics.

    98. Re:I dunno... by Anonymous Coward · · Score: 0

      A bit off topic but...

      This is an online forum. Of course the poster could go and google, but that would only help them individually. By posting the question, they prompt an answer and stimulate discussion which helps many other people.

      Perhaps the point of the question wasn't to find out the answer but to continue discussion?

    99. Re:I dunno... by Anonymous Coward · · Score: 0

      There is no mention of whether it sould be in-place or not. In an actual interview I'd ask to clarify that, but I prefer non-destructive versions. Preallocating an array of known length is cheap, but there's less chances for accidental breakage from assumptions about shared/captured objects. Anyways, in-place would be almost the same, except it would have to go up to inp.length/2 and use a temp var for swapping.

    100. Re:I dunno... by jonadab · · Score: 2, Insightful

      Depends on the language. 3 minutes sounds about right for C.

      Any Perl programmer who doesn't have a working solution in under a minute is deadwood. Given three minutes, he should revise the solution until it's elegant, easy to read, and maintainable (so that e.g. the numbers 3 and 5 can be replaced). In five minutes, it should take command-line arguments for all the different possible numbers to handle and what to say for them. And then he should look at you and say, "You know, I bet I just duplicated a CPAN module."

      --
      Cut that out, or I will ship you to Norilsk in a box.
    101. Re:I dunno... by Registered+Coward+v2 · · Score: 1

      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.

      Ok, but you could do that with a single BASIC print command and some pencil and paper work and a quick google of "Multiples of 3 color chart." Should take about 2 minutes or so; and I have no coding experience beyond Fortran in college. If you are looking for problem solving skills it might be a good exercise ; come to think of it I might use it next time a do a round of consultant new hire interviews. Break up the "Why are manhole cover's round?" monotony.

      --
      I'm a consultant - I convert gibberish into cash-flow.
    102. Re:I dunno... by greg1104 · · Score: 2

      An in-place copy is the most efficient way to do it, that part of the question was a hint.

      Many algorithms have a space/time trade-off in them. If you're willing to allocate more memory, you can run faster. That makes memory size part of efficiency. Any implementation that uses more memory should see some performance gain in return, before it can be considered more efficient. Creating an array that's the same size of the input is therefore less efficient unless there's some compelling runtime gain possible by doing it. And here that's not the case. An in-place implementation takes trunc(n / 2) array element swap steps, the two array version n array element copy steps. Even if a swap takes longer to do than a copy, the fact that you're touching more memory means slower, including things like CPU data cache disruption.

      If this were a C compiler and using a second array allowed using memcpy rather than coding your own loop, you could make a case that there's a more efficient way to do this with more storage. That's different from this problem in two ways though. The target is not that low level of a language, and there's normally no reversing version of a memory copy available.

      When interview tests suggest re-implementing a standard library feature, the goal is normally to match it as closely as possible. You shouldn't presume anything about the reasons for that, beyond that it makes a useful test question. If I gave this test and someone arrogant programmer told me I was stupid for asking, because it's already there, I'd point out that you're unlikely to improve on a standard function without bugs if you don't start with cloning it perfectly. Perhaps this is step one toward an improved version, and the next step needs something like it as a regression test harness to validate faster versions. Stopping to complain that you don't understand why you're being asked to do this is also less efficient, relative to just doing it.

    103. Re:I dunno... by Billly+Gates · · Score: 1

      I learned C and Java when I was in school which started at position 0. I replied with x === 5, I changed the code right before I posted and forgot to put that. My bad. I of course would convert the syntax to javascript before submitting.

      I am not a programmer by the way. After reading the replies of people using print statements I just had to chip in. You are right I did it with any size and the swapping might be more difficult to read, but if I had only 5 minutes to do it this is what I would have done.

      If a non programmer can do it so can someone else can. Or maybe I should take these programming jobs if applicants are really that bad as I can do something ok even if it is not super duper optimized. Mine is easier to understand but just my own opinion on that.

    104. Re:I dunno... by hackula · · Score: 1

      my brain has a very hard job accepting that someone who does programming for their livlihood could not solve this in their sleep.

      This is my intuition as well, and I think we would both actually be correct. The thing is that most candidates looking for a job do not currently do this for a living, thus the looking for a job. Programmers who keep up with their skills and are constantly learning will be able to solve a problem like this after their first couple weeks of coding. Amazingly, some people never get to this point, slip through the cracks into a programming job at some shitty company, then amass what actually looks like a solid resume. Then when a change in the market occurs, these people get completely screwed. People like this seem to be a good portion of the currently unemployed programmer population. Everyone ends up unemployed at one point or another, but most competent programmers are only without work for very short amounts of time. People that cannot pass a simple test will be permanently applying. The rest are fraudsters trying to play a little "Catch Me If You Can".

    105. Re:I dunno... by Anonymous Coward · · Score: 0

      I'd probably see what it would take to steer them towards a more flexible answer.

      Asking for a flexible solution might be a good start.

    106. Re:I dunno... by arth1 · · Score: 1

      That's five tests, five subtractions, five assignments, and an extra variable, instead of four assignments.
      I'm not sure you understand what "most efficient" means. Hint: It does not mean the number of lines.

    107. Re:I dunno... by JWW · · Score: 1

      Dude, that is so true for real PERL devotees... :-)

    108. Re:I dunno... by hackula · · Score: 1

      I would accept that for creativity alone. Clearly you know how to cut through the red tape.

    109. Re:I dunno... by Anonymous Coward · · Score: 0

      Here's mine:

      for(int i = 1; i = 100; i++)
      {
          if(!((i%3)||(i%5))) printf("FizzBuzz\r\n");
          else if(!(i%3)) printf("Fizz\r\n");
          else if(!(i%5)) printf("Buzz\r\n");
          else printf("%u\r\n", i);
      }

    110. Re:I dunno... by Anonymous Coward · · Score: 0

      So you're saying all those CS grads were qualified to write demos?

    111. Re:I dunno... by Anonymous Coward · · Score: 0

      Senior developer should be able to put "JavaScript tutorial" into searcher of his choice and figure it out. It was by mail, so they had plenty of time.

      You do not have to be an expert in programming language in order to finish simple assignment.

    112. Re:I dunno... by Anonymous Coward · · Score: 0

      Does it suggest that or did you just take it as implied? Did you ask the guy who gave the task? Maybe "without using reverse()" is a hint that you shouldn't copy the array and then .reverse() it, but you need to get a fresh reversed version of it? With asynchronous and parallel programming all the rage, non-destructive ops are often preferrable, you know.

      I hate the devs who make unsafe assumptions instead of going and asking a few questions to clear it up.

    113. Re:I dunno... by arth1 · · Score: 1

      There is no mention of whether it sould be in-place or not.

      No, but it does specify most efficient

      Using extra variables, arrays and logic is hardly most efficient.

    114. Re:I dunno... by Anonymous Coward · · Score: 0

      An array of numbers containing 1,2,3,4,5 may be also this { 1, 1, 4, 4, 4, 3, 3, 3, 2}. In that case, the answer is {2, 3, 3, 3, 4, 4, 4, 1, 1} and not whatever you hardcoded.

    115. Re:I dunno... by Immerman · · Score: 1

      True, it would have to be a pretty desirable job to take an hour-long test (or a boring day, or an interesting test), but I think I'd prefer to work someplace where they have a five-minute test to find out if their employees are at least minimally competent. I've met too many people who can talk a good line, but couldn't code their way out of a paper bag.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    116. Re:I dunno... by narcc · · Score: 2

      Why copy the array? Just reverse it in place:

      var i = 0;
      ar len = input.length-1;
      while (ilen) { input[i] ^= input[len]; input[len] = input[len] ^ input[i]; input[i] ^= input[len]; i++; len--; } return input;

      Illegible, but more efficient.

      What a stupid test.

    117. Re:I dunno... by rgbatduke · · Score: 1, Informative

      Inelegant. You really only need three conditionals and no else. Fewer lines of code (including the terminating LF).

      for i in 1 to 100 loop

            if mod(i,3) == 0 then print 'fizz';
            if mod(i,5) == 0 then print 'buzz';
            if(mod(i,3) || mod(i,5)) print i;
            print '\n';

      end loop

      --
      Even when the experts all agree, they may well be mistaken. --- Bertrand Russell.
    118. Re:I dunno... by Anonymous Coward · · Score: 0

      That's not the correct solution in perl since @ARGV is the argument list, not data read from stdin. Hint: <STDIN> is the filehandle for stdin.

    119. Re:I dunno... by Anonymous Coward · · Score: 0

      It is most efficient non-destructive reverse. If somebody told you "I lost my keys and I live at 5th floor, what would be the most efficient way to enter?", "Just knock the door down" would be one definition of "most efficient", as it would require no special skills and be very fast. "Call the locksmith" would be other definition of "most efficient", as it would minimize the repair costs.

    120. Re:I dunno... by deroby · · Score: 1

      Because he completely missed the question ("Print all prime numbers up to 100.") and simply copied the example output (including the 'etc' !).

      When applying for a job it's not just a matter of being a smart-ass but also about being able to grasp what is expected of you.

      It's like as if an applicant for an interpreter role would get the question "How do you say 'House' in Spanish ?" and then answers "House in Spanish". Or when a cook is being asked how to prepare chicken answers he gets it from KFC.

      All fun and well here, but I would suggest you go the extra mile when doing a job-interview. If time permits you can still put a note/example of what might be a better approach but I think we both can agree that these interview questions rarely are rocket-science in need of ultra-optimisations.

      --
      If there is one thing to be learned on slashdot, it has to be sarcasm.
    121. 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
    122. Re:I dunno... by arth1 · · Score: 1

      PRINT "2, 3. 5, 7, 11, 13, etc.."

      We had a good laugh on his behalf but needless to say he didn't get the job as a programmer...

      If his solution contained ", etc." I would hope he didn't.

      However, if his solution was:
      PRINT "2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97" ... then I'd say he did an excellent job. It's by far the most efficient solution to an exact problem.

      If, on the other hand, you asked for an algorithm, or had asked for primes up to N, with a test case of N=100, it would be a bad choice. You didn't, so his producing the most efficient code possible given the stated parameters should count in his favor.

    123. Re:I dunno... by Goaway · · Score: 1

      Go ahead and ask, sure, but from the phrasing of the problem it is pretty clear they fishing for the efficient in-place version.

    124. Re:I dunno... by rgbatduke · · Score: 1

      Yeah, like that, assuming you have the ? operator.

      Fun but dumb. This is the sort of thing I assign as one of the first few programming assignments in any language I'm teaching a student (usually in an independent study, since I generally teach physics and not programming except to select students). I'm about to teach a student matlab (not my first choice, but a decent thing to choose to be first for a total programming novice) and I'll be sure to include this right after I have them do the "count to 100" exercise that is just the loop itself.

      rgb

      --
      Even when the experts all agree, they may well be mistaken. --- Bertrand Russell.
    125. Re:I dunno... by loneDreamer · · Score: 1

      Not too good I'm afraid, unless you were joking. Probably better than many. Some tips:

      -You should always think of the amount of memory your program uses. You could for instance have moved the numbers in place without defining a new array but using an auxiliary variable instead.
      -You don't need a secondary counter, you could have used 'x' and 'size-x'. Less memory, less initialization,an extra subtraction but less increments.
      -You definitely don't need 2 nested loops to do a single-pass (O(n)) operation.

      I hope it helps.

    126. Re:I dunno... by Impy+the+Impiuos+Imp · · Score: 1

      There was a study showing the top programmers were a whopping 4x as productive as the average ones.

      Moreover, there were problems the top programmers could solve the average ones couldn't no matter how much time they were given.

      I once cloned Minesweeper for the hell of it in 4 hours, including graphics, though I left out a few bells and whistles like dynamic runtime user-selectable size.

      No cheating by looking up algorithms! You are permitted to play it to figure ot what it's doing, but no run-in-drbugger.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    127. Re:I dunno... by MadKeithV · · Score: 1

      I'd say if you need to spend time looking up how to do a basic loop in a language you're supposed to know, perhaps coding isn't a profession you should be in. I hear McDonald's is hiring.

      And yet I've weeded out at least one candidate seriously applying for an *advanced* programming job by asking for exactly that. Ironically, I've seen that very person around here, so I know they were hired anyway by another company nearby. I hope they didn't hire them for their advanced development skills.

    128. Re:I dunno... by Anonymous Coward · · Score: 0

      I don't understand why employers don't just ask to see some code the developer has already written.

      1. How do I know you actually wrote it?
      2. I can gain some insight into your thought processes by watching you actually do it.
      3. I'm not as interested in what you've done for others in the past as I am in what you can do for me, right now.

      Some people (nerds) don't do well in social situations and it takes a few days to get into the swing of things.

      If you want to call yourself a programmer, and claim you have a CS degree, this is in the same realm of difficulty as "hello world". You might be some kind of brilliant coder, but if you're that socially awkward then I can't exactly have you dealing directly with clients and it raises some concerns about how well you're going to work with the rest of the staff. I'm not looking for the next Genius Programmer, there's a dozen other guys in line who will all do just fine at the job I need you for... and who aren't going to be an HR nightmare.

      That's what you're really after, not someone who can write buggy ass, un-commented, un-optimized code really fast.

      You're missing the point. It's not to check the quality of the code, at least not directly. The primary reason for doing this kind of test is to weed out the bullshit right off the bat. You can also get a few hints about things like a person's personality. Some people will try to get it done fastest, some will try to make it the most accurate and robust, some will try to fill the entire amount of time, some will double check, etc. etc. Some people DO comment their code, some don't, some optimize it, some don't.

        No, it's not an exhaustive test by any means, but it's a "quick and dirty" way to get a general idea about the candidate in a few minutes. If you make it through the first interview round then I'll probably take a look at your portfolio, but I don't have the time to do that for every applicant.

    129. Re:I dunno... by Anonymous Coward · · Score: 0

      I had the same thing happen (this was in the late 80s).

      We had a test to remove "excess" spaces from a string; in any language or pseudocode or flowcharts or whatever the candidate wanted to use. We only wanted to see if they could think through the problem.

      One candidate did it as a one-line Awk script (since Awk, by default, used the same rules we had specified). We were quite happy with that solution and ended up hiring him.

      Prior to that candidate, I was told that I was the first candidate to actually get the test correct (I did mine in C). Prior to me, the best candidates had some flaw in their logic but understood what needed to be done, and the typical candidate couldn't even demonstrate that they understood the problem.

    130. Re:I dunno... by Kiaser+Zohsay · · Score: 1

      Windows-friendly one-liner (no spaces or double quotes):

      perl -e print((((($_%3)?'':'Fizz').(($_%5)?'':'Buzz'))or$_),qq{\n})for(1..100);

      --
      I am not your blowing wind, I am the lightning.
    131. Re:I dunno... by Anonymous Coward · · Score: 0

      There is no mention of whether it sould be in-place or not.

      No, but it does specify most efficient

      Using extra variables, arrays and logic is hardly most efficient.

      Dunno about that guy, but I don't actually care about you being technically "most efficient". If you can justify why you consider yours efficient, then you're probably going to pass. I don't use this exact problem or language, but the fact is that "most efficient" is often somewhat relative to the particular situation. I had one guy give me code that took a ton of memory and ran slow, but it was short and to the point. He said "You didn't specify what type of efficiency, and since the only requirement I am 100% sure you have is the amount of time left in this interview, I gave you the version which was most efficient in terms of consuming your time today." That's a good answer in my book.

    132. Re:I dunno... by Anonymous Coward · · Score: 0

      I think the point is to put the numbers into the array then reverse them

      Changing the pointers of the array? Isn't the array just a pointer and the index is the offset from that pointer?

      a[a[1]=4]=1; would only work as long as the 4th number was 4. Cheeky answer but I wouldn't use it as I assume (probably already made an ass out of myself so why not) the emphasis of the question is on efficient reversing function. I doubt they'd punch you in the face for it and it may even come up in the face-to-face interview

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

    134. Re:I dunno... by Culture20 · · Score: 1

      They get through by cheating. And not smart cheating. They just copy files, sometimes without changing comments (even leaving original author names). When I started to teach programming years ago, the students were aghast that I diff'd their source code and failed copiers (changing variable names and comments isn't enough when all your other code and whitespace is identical). "But we're allowed to work together!" No, you're allowed to discuss algorithms and pseudocode with each other. You could tell who worked together the proper way because all their variables were named the same or similarly, but their code looked markedly different from each other (enough that it would be more work to change its style than to do the project).

    135. Re:I dunno... by czth · · Score: 1

      I'm not opposed to tests, but I agree with you that they shouldn't put these demands up front in the application (at least, not something that will take 45 minutes). E.g., I'd feel better about it if the programming test was at the interview or they even contacted me after application and said they were asking a shortlist of candidates to do a test and doing well would lead to a final round of on-site interviews.

      I'm also happier when I know that my colleagues at a company have been through some sort of skill testing. That's not to say there aren't bad or inappropriate tests, of course ("gotcha" questions, for example, or tests too far away from real development work so as to have no predictive value).

    136. Re:I dunno... by jythie · · Score: 1

      Since most languages have some kind of 'sort' function in their standard library, unless the question specifically required writing a sort from scratch I would assume most answers would look something like that.

      In a way, lazy is good and something to be watched for. You do not want programmers that are constantly reimplemeting built-in features their own way. Just look at how many C++ programmers are constantly writing their own stacks or linked lists rather then using the STL....

    137. Re:I dunno... by ediron2 · · Score: 1

      This extra time* is just techno-foreplay.

      Going full anthropomorphic, the computer doesn't CARE how long (2, 4, 8 or 60 mins) we take to warm up, as long as it's balanced by how hard we rock it's world when we get busy. Four lines? Hope they're the model of code elegance and wisdom. Take an hour just to get started? Better be awesome, with deep penetrating insights ("yeah, I've never though of it that way before"). Done in sixty seconds in an elevator? Sweet.

      * am torn between whether chasing 'damn kids off my lawn' IS or ISN'T worth counting. Depends on the mood, I guess.

    138. Re:I dunno... by jonadab · · Score: 1

      > Well, I've never interviewed job candidates
      > and I have a hard job believing this.

      I have done a set of interviews, but it's not relevant to this discussion. (We only interviewed three applicants out of, umm, a lot more than three; and I _wasn't_ involved with deciding which three to interview, which is really the relevant part here.) However, I *have* spoken with the person who have to look through the resumes we get and decide who is worth calling for a phone interview or not, so I think I can explain what you're missing.

      > my brain has a very hard job accepting that
      > someone who does programming for their
      > livlihood could not solve this in their sleep.

      You've made an implicit assumption, that people who are _applying_ for a job doing Thing X are necessarily people who do Thing X for a living. I can assure you that this is not the case. People just apply for every job listing they see, whether it's even vaguely relevant to their abilities or not.

      When we posted a job for a Children's Librarian, we were very clear that the position required both a graduate degree in library science (or equivalent library work experience) *and* significant job experience working with children and teens. Most of the applicants had neither, and I got to hear my boss complaining about the quality of the applicants. (I found her rants rather amusing, mostly because they were novel to me; if I'd had to go through the whole pile with her, doubtless it would have gotten old.) Many of the applicants had no college education at all and had never worked in anything even vaguely resembling a library. One particular applicant that I remember my boss mentioning (albeit not by name) had no college education and prior work experience that peaked at entry-level data entry.

      IMO, a useful weeding measure for any IT-related position, including programmers, is to only accept applications online. Lots of non-IT employers are doing this, but for IT positions it actually makes sense. Frankly, It'd be awfully tempting to build in an "attach your resume" form element that only accepts formats most non-IT people don't know anything about (TeX, nroff/groff, PostScript, DocBook, etc.)

      Note that the reason for putting a time limit on the coding test isn't to measure speed. You give them plenty of time that anyone even vaguely confident should be able to complete it in the allotted time, because frankly you don't necessarily even want the fastest programmer; code quality is much more important than speed. (If the guy with the best quality code just happens to also be fastest, that's great; but that's not what you're testing for.) There are, however, several good reasons reason for making it timed. One reason is to panic people who are already nervous because they're underqualified, so they're less likely to pass by the skin of their teeth. Another reason is to find out if the applicant is prone to rush too much and submit bad code the instant somebody mentions a deadline, which is definitely a tendency you'd want to know about. But the main reason is so the person administering the test doesn't have to sit there forever while some poor soul with a mental block flogs his brain for hours desperately trying to remember things he may or may not have known but definitely cannot remember today.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    139. Re:I dunno... by ShanghaiBill · · Score: 1

      I thought that 9 was fizzfizz, 25 was buzzbuzz and 75 fizzbuzzbuzz. Did someone change the rules? (My memory of the game is, perhaps, a little flawed since we didn't play it on the computer).

      Then to be consistent, 27 would have to be fizzfizzfizz and 81 would be fizzfizzfizzfizz.

    140. Re:I dunno... by Anonymous Coward · · Score: 0

      I would marry a girl who did that.

    141. Re:I dunno... by dietdew7 · · Score: 1

      That's how I remember it too.

    142. Re:I dunno... by Impy+the+Impiuos+Imp · · Score: 1

      Would it need that? If it runs without it, it is unnecessary. Also, sort is very simple -- isn't it available as used here under all common shells?

      I never got the fetish for specifying shell type, though I suppose it would be useful for distribution to unknown systems.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    143. Re:I dunno... by Isaac+Remuant · · Score: 1

      I know you're more than likely telling the truth but I struggle to believe it.

      19 out of 20 people being unable to use a for loop and a couple of ifs (With modulus) seems frankly insane.

      It seriously can't take you more than 5 minutes.

      --
      "Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
    144. Re:I dunno... by Anonymous Coward · · Score: 0

      >1. How do I know you actually wrote it?

      How do you know the question you asked isn't in some sort of interview prep? You know that's a hot topic. If you like his presented code, ask the programmer to talk about why he did some things in the code in phase 2? You'll know pretty fast if he wrote it.

      >2. I can gain some insight into your thought processes by watching you actually do it.

      I know you may think you are, but you're really not. Compare how you code with how you code with me poking the back of your neck with a lit cigarette. That's an extreme example, but I hope you get the point.

      > 3. I'm not as interested in what you've done for others in the past as I am in what you can do for me, right now.

      I'm not even sure how to respond to that one, that's kind of a PHB comment.

      >I can't exactly have you dealing directly with clients

      There are some circumstances where coders need to interact with clients, like to smooth out hot tempers after a production bug, but most of the time, you need to have someone better talking to your clients. If you're developers are spending a lot of time talking to clients, you're wasting money.

      >The primary reason for doing this kind of test is to weed out the bullshit right off the bat.
      >it's a "quick and dirty" way to get a general idea about the candidate in a few minutes.

      I believe this technique gives a bunch of false negatives. I don't think you're getting much information at all. If you can't dedicate the time to interview candidates in a meaningful way, you should get someone else to do it. Programmers are so hard to find, it's much better to hire a bad programmer and train him or fire him, than to let a great programmer be hired by your competition.

      I remember the story of a guy who would hire just about anyone who applied. He'd hire 10 people for 1 open position, then after a week or two of working, he'd fire anyone who didn't cut the mustard. I don't think that's a great technique either, but he knew not to let the good ones get away.

    145. Re:I dunno... by Onymous+Coward · · Score: 1

      This is fun. Okay, I'm not a JavaScript programmer, but here are my submissions (the first two solutions taking 2-3 minutes to create):

      First we create the array.

          var ary = [1,2,3,4,5];

      Now... First reversal method, assuming static array size and these particular numbers:

          ary = [5,4,3,2,1];

      Whether this is "in place" depends on how JavaScript works. Seems likely to me that it'll do it in place.

      Second method, assuming static array size, this particular array size, and using any (numeric!) values within the array:

          for (i = 0; i < 2; i++)
          {
              t = ary[i];
              ary[i] = ary[5-i-1];
              ary[5-i-1] = t;
          }

      Obviously uses a temporary variable. Depending on what was meant, that may violate the "in place".

      Okay, after a couple more minutes, here's another:

          for (i = 0; i < 2; i++)
          {
              ary[i] += ary[5-i-1];
              ary[5-i-1] = ary[i] - ary[5-i-1];
              ary[i] -= ary[5-i-1];
          }

      Again, assuming a 5 element array. No memory aside from the array used, though more (simple arithmetic) operations used.

      Oh, shit, hey... Does this work?

          for (i = 0; i < 2; i++)
          {
              ary[i] ^= ary[5-i-1];
              ary[5-i-1] ^= ary[i];
              ary[i] ^= ary[5-i-1];
          }

      Seems to. I'm not that knowledgeable, so I don't know this, but I get the sense that binary manipulations may be faster than arithmetic.

      Also, I expect things like the 5-i-1 to get evaluated once and for the compiler to not bother calculating it again. If this were a concern, then storing the result in a temporary variable might make sense, depending on the overhead (and whether this again violates "in place").

      Critiques, please?

    146. Re:I dunno... by greg1104 · · Score: 1

      "the most efficient way possible". That's an in-place copy like reverse() does, so the question is consistent, implying what it wants in two different ways. Worrying that concurrent, parallel processing Javascript might be involved is a bit of a stretch for this example.

      If the less efficient approach of making a non-destructive copy were relevant, the specification should have given that as a priority instead of efficiency. And if that were there, also referencing reverse() would make the requirements fuzzy here--a non-destructive copy isn't like reverse anymore--and I would have flagged this as an unclear question. It's fine as written though.

      I've been known to answer questions like this with two implementations and comments about the trade-offs between them. In an interview context that's preferable to asking "what do you really mean?" questions. You could easily write both versions, flagging one as safer for parallel operation than the other. But that one must be marked as the less efficient one, and therefore not the best answer.

    147. Re:I dunno... by scepticos · · Score: 1

      Tervehdys Suomi ;-)

    148. Re:I dunno... by ediron2 · · Score: 1

      Third 'if' is obscure (works for a reason that isn't evident/obvious). It also fails for m,n where m is a multiple of n (3 and 6), might fail for other patterns but I'm not seeing a solid proof either direction. If spec changes, your cleverness might introduce a bug.

      Note, I really do think what you did is clever. If bytes still cost 1000x man-hours, you'd win. But for real-world use, do the else. It reads sanely. Yours made me start contemplating math proofs. Clever is a great measure of deep hackerly understanding. We just spend years unlearning 'clever as fuck' because it bites us on the ass eventually.

    149. Re:I dunno... by Impy+the+Impiuos+Imp · · Score: 1

      Academics, practical. Bring it bitches.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    150. Re:I dunno... by Anonymous Coward · · Score: 0

      what do you think of this? (python) Did it in aprox 3 mins but I'm not sure if it should be shortened, left like that for clarity or what
      I could avoid the use of += or use 15 and 3 ifs. I might be breaking the DRY principle a bit. It works, though.

      nums = range(20)

      for x in nums:
                      message = x
                      if x % 3 == 0:
                                      message = "fizz"
                                      if x % 5 == 0:
                                                      message += "buzz"
                      elif x % 5 == 0:
                                      message = "buzz"
                      print(message)

    151. Re:I dunno... by ShanghaiBill · · Score: 1

      It's crazy how many people apply to programming jobs without knowing anything about programming.

      What is even crazier is that many of these people have years (sometimes decades) of industry experience. Somehow they survived by butt kissing, talking the lingo, and/or being a remora. Whenever I interview an experienced programmer, I try to keep in mind that his last boss fired him, and usually for a good reason.

    152. Re:I dunno... by Anonymous Coward · · Score: 0

      +1 funny and +1 insightful.

    153. Re:I dunno... by master_kaos · · Score: 1

      My initial solution was

      for($i = 1; $i <= 100; $i++) {
      if($i % 3 == 0 && i % 5 == 0)
              echo 'fizzbuzz';
      elseif($i % 3 == 0)
              echo 'fizz';
      elseif($i % 5 == 0)
              echo 'buzz';
      else
              echo $i;
      echo '<br>';

      I just wanted to play around with it and came up with

      foreach(range(1, 100) as $i) {
      $output = null;
      if($i % 3 == 0) $output = 'fizz';
      if($i % 5 == 0) $output .= 'buzz';
      echo ($output ?: $i), '<br>';
      }

      If i were doing it for real though, I would pick my first solution, as I find it more clear on what you are doing.

    154. Re:I dunno... by MarkRose · · Score: 1

      There's a bug in your code: I think you meant && not ||. :-)

      --
      Be relentless!
    155. Re:I dunno... by jonadab · · Score: 1

      > When I do my job in real life, I have time
      > to plan, research, and I can keep open
      > documentation for reference.

      A good timed test provides enough time and resources to do a reasonable amount of that (where what amount is reasonable is dependent on the scope of the problem). The idea is not (or should not be) to find the fastest programmers. There are, however, several good reasons for *having* a time limit. One reason is so the test proctor doesn't have to sit there for hours and hours while some poor soul flogs his brain trying desperately to come up with things that he may or may not have known at some point but definitely cannot remember today. (Online or take-home tests can largely obviate this reason, but not every organization is comfortable with that approach.) Another reason is to goad people with certain tendencies (e.g., to panic under pressure, or to get in a hurry and rush to submit poor work the instant somebody mentions a deadline, even if there's actually plenty of time) into betraying those tendencies so you can take note of them.

      For an extremely simple problem like FizzBuzz, fifteen minutes is a good deadline. Any decently competent programmer SHOULD be able to submit working code in under five minutes, even in an arcane fiddly low-level language (assembly language, C++, etc.), but you give them fifteen minutes so you can find out how different applicants use that extra time. Maybe one of the applicants will submit documentation along with his code. Perhaps another will generalize the problem and submit a version that takes command-line arguments to alter its behavior in various ways. Maybe one guy will submit code with a built-in i18n/l10n infrastructure. Now you have something to talk about in the interviews.

      Obviously, if the problem is more complicated, the time limit should be larger.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    156. Re:I dunno... by Anonymous Coward · · Score: 0

      var myArray=["5","4","3","2","1"];

      It would have been more difficult if you've had arbitrary values in the array, but as you were so specific... Took me a minute to Google array handling in JavaScript because I'm not a programmer.

      Well if we really want to nitpick he said it contained those values, not that it contained only those values, and never explicitly stated the length, order, or number of entries.
      In any case, IMHO any person applying for a coding job who just stuffs the answers like that is going to be ignored. That's the kind of shit you should have had slapped out of your head in the first week of CS101. We're talking about programming, not database entry.

    157. Re:I dunno... by drawfour · · Score: 1

      Pretty sure that's wrong. Your || should have been an &&.

    158. Re:I dunno... by Anonymous Coward · · Score: 0

      Reading down I got some more ideas as to what would be better:

      nums = range(1, 100)

      for x in nums:
                      message = ""
                      fizz = x % 3 == 0
                      buzz = x % 5 == 0
                      if fizz:
                                      message += "fizz"
                      if buzz:
                                      message += "buzz"
                      if not(fizz or buzz):
                                      message = x
                      print(message)

    159. Re:I dunno... by LordLimecat · · Score: 1

      Not being a coder but a amateur scripter (who likes to pretend to be a hotshot coder), I had assumed "efficient" meant "elegant and flexible", and that an iterative loop is conceptually the simplest (at least for me).

      Im kind of interested to know how this would be done in-place, in pseudocode.

    160. Re:I dunno... by Anonymous Coward · · Score: 0

      One guy supposedly had a masters degree from UCLA and couldn't explain how a linked list worked

      I assume you shot him and hid the body under a raised floor, for the good of all humanity?

    161. Re:I dunno... by Anne+Thwacks · · Score: 4, Funny
      elegant, easy to read, and maintainable

      You mean rewrite it in another language?

      --
      Sent from my ASR33 using ASCII
    162. Re:I dunno... by LordLimecat · · Score: 1

      I dont think the goal should be to try to trip folks up; anyone can make a mistake and sometimes people will try to cover for areas where they are weak by saying "yes" if they dont know.

      I think asking them to explain a common scenario in their own terms does the job well enough; if he can tell me how to configure a vlan, then I know he can probably handle basic switch config tasks, and thats really what I care about.

    163. Re:I dunno... by GodfatherofSoul · · Score: 1

      Actually, either solution would be a good sign to me. Using the built-in library shows a knowledge level with prebuilt tools.

      --
      I swear to God...I swear to God! That is NOT how you treat your human!
    164. Re:I dunno... by Anonymous Coward · · Score: 0

      Almost the same way, except for "for x=0, len/2 ..." (because otherwise you'd first swap front and back, and then swap back and front getting original array) and inner line doing "a[x], a[(len-1)-x] = a[(len-1)-x], a[x]"

    165. Re:I dunno... by cellocgw · · Score: 1, Funny

      Anyway, I hired the girl that wrote this:

      %!/bin/sh
      sort -n

      Yeah but you were going to hire her anyway 'cause she was hot.

      --
      https://app.box.com/WitthoftResume Code: https://github.com/cellocgw
    166. Re:I dunno... by EMN13 · · Score: 1

      var newarr = []; for(var i=0;iarr.length;i++) newarr[i]=arr[arr.length-1-i];

      or

      for(var i=0;iarr.length/2;i++) { var tmp = arr[i], j= arr.length-1-i; arr[i] = arr[j]; arr[j]= tmp;}

      if you really want it in place...

    167. Re:I dunno... by Anonymous Coward · · Score: 0

      #!/usr/bin/php
      ?php

      $list = array_filter(explode("\n", stream_get_contents(STDIN)), 'trim');
      sort($list);
      print implode("\n", $list);

    168. Re:I dunno... by David_W · · Score: 1

      And then he should look at you and say, "You know, I bet I just duplicated a CPAN module."

      Yup.

    169. Re:I dunno... by Ohrion · · Score: 1

      Kind of lazy maybe, but the CORRECT kind of lazy from a programmer.

    170. Re:I dunno... by jonadab · · Score: 1

      > I don't believe that a speed programming will always identify the "better" programmers

      You don't need or even necessarily want to identify the _fastest_ programmers. That's why you set a deadline that should be well more than enough time that they can not only solve the basic problem but also go over and edit their solution, comment it up, enhance it, and have time left over.

      (For FizzBuzz, I'd probably give them fifteen minutes if they're interviewing for an application-developer position and might use a lower-level language like C. If they're applying for a network administrator position, I'd assume they're going to use a VHLL and give them five minutes, which is more than five times as long as they'd need to just solve the problem.)

      One of the things you want to see is what they do with the extra time after they have basically working code. You also want to see who panics and hurries and writes bad code as soon as they get wind of a deadline. And the test administrator needs to be able to call it after a reasonable amount of time and send the stragglers away so he can move on to his other job duties. (Otherwise, there are people who will sit there for as long as you let them, even if it's six hours, racking their brain trying to come up with something they think they might have learned in school. At some point you have to put them out of their misery.)

      OBTW, the quick Perl solution:
      $\=$/; print join "\n", map {
            $_%15 ? ($_%5 ? ($_ %3 ? $_ : "Fizz") : "Buzz") : "FizzBuzz";
      } 1 .. 100;

      --
      Cut that out, or I will ship you to Norilsk in a box.
    171. Re:I dunno... by Anonymous Coward · · Score: 0

      [Posting as comment style "Code" because Slashdot's formatting system sucks ass.]

      I disagree with you that the original version is inelegant; I prefer the if/else to three separate ifs. Also, your version is significantly slower because you're making ~107% more many library calls to the print function than are necessary (not that that really matters, though).

      Here's how I would write it:

      bool divisible(int n, int d) { return (n % d == 0); }

      for (int i = 1; i <= 100; i++)
      {
               if (divisible(i, 3*5))  printf("fizzbuzz\n");
          else if (divisible(i, 3  ))  printf("fizz\n");
          else if (divisible(i,   5))  printf("buzz\n");
          else                         printf("%d\n", i);
      }

      Also, I find your version confusing. Where you say "mod(i,3) || mod(i,5)", it would be clearer to me as "(mod(i,3) != 0) || (mod(i,5) != 0)". If you're going to make use of C-style implicit int-to-bool conversion (almost always risky), you should at least be consistent, IMHO. Note that above it, in the first two if lines, you explicitly write "== 0", which is inconsistent with the implicit comparison in the third if line -- hence it's confusing.

    172. Re:I dunno... by Anonymous Coward · · Score: 0

      Are you joking? I'm not even a programmer-by-trade, and I was able to write and successfully run a 22-line perl script that does this in 8 minutes, according to the clock on my desk. Aside from one typo in the first attempt (put a semicolon after the $int++ which gave me a syntax error, oops), it does exactly what you've asked for without error.

      So do I get the job, mister?!

      #!/usr/bin/perl
      use strict;
      use warnings;
      for (my $int = 1; $int <= 100; $int++) {
              my $fizz = $int % 3;
              my $buzz = $int % 5;
              if (($fizz == 0) && ($buzz == 0)) {
              print "fizzbuzz\n";
              }
              elsif ($fizz == 0) {
              print "fizz\n";
              }
              elsif ($buzz == 0) {
              print "buzz\n";
              }
              else {
              print "$int\n";
              }
      }
      exit 0;

    173. Re:I dunno... by LifesABeach · · Score: 1

      Aside from the more cynical viewpoint, I can't help but wonder who this, "large tech company" is.

    174. Re:I dunno... by SQLGuru · · Score: 1

      I like to consider myself "efficient". Neither one wants to put forth much effort, but the difference between lazy and efficient is that efficient actually accomplishes something.

    175. Re:I dunno... by drolli · · Score: 2

      You know, switching programming languages a lot can sometimes mess up your memory about the specific syntax. However, i think i would get a simple loop done in at least 5-6 languages....

    176. Re:I dunno... by LaggedOnUser · · Score: 1

      Possible reasons for their failure: 1. Fizzbuzz contains a hidden trap. The cases are given to you in a different order than in what order you are supposed to apply them. If you apply the cases as given, the 15 test comes last and fails, because it is silently passed over due to being redundant to the other cases. 2. The applicants probably thought the problem looked simple and didn't test their code. They assumed that it worked. Or the tester took the first invocation of their program as their final answer, depriving them of the opportunity for trial and error that professionals do in practice. 3. Most of the applicants were probably college grads, not professional programmers. Classes probably accept their code if it is close enough and don't ask them to fix it. Anyway, college is not a coding factory, to drill them in basic coding technique, but a place to learn discipline and concepts.

    177. Re:I dunno... by Last_Available_Usern · · Score: 1

      Hah! Nice troll. Got quite a few takers.

    178. Re:I dunno... by Anonymous Coward · · Score: 0

      If a candidate wrote an answer like that second one, I'd choke him or her out immediately.

      There's absolutely no reason to try and impress someone with cleverness at obfuscating code and cramming it all on one line during an interview. For a "big boy" job in the real world, readability and maintainability count - sorry Perl fans.

    179. Re:I dunno... by Anonymous Coward · · Score: 0

      It's not a bug in his code. It's actually correct. The problem is that it's <i>horribly confusing</i> because there is no comparison operator applied to the result of the mod() function. So it's testing whether mod(i,3) != 0, e.g., if i is not divisible by 3.

    180. Re:I dunno... by Ihlosi · · Score: 3, Insightful
      People with 15 years of "experience" on their resume would regularly fail or give up.

      I'm curious ... can you elaborate on how exactly they fail?

      Do their attempts just have stupid bugs or is the whole approach wrong?

      I'd probably fail at "printing". Only writing code for devices without any human-targetted outputs does that to you. :P

    181. Re:I dunno... by Ohrion · · Score: 1
      This differs depending on which browser you're writing for. On my version of Firefox, this is the most efficient:

      var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
      var length = array.length;
      for (length -= 2; length > -1; length -= 1)
      {
      array.push(array[length]);
      array.splice(length, 1);
      }

      This is according to http://jsperf.com/js-array-reverse-vs-while-loop/5

    182. Re:I dunno... by LordLimecat · · Score: 1

      I wasnt aware that you can do multiple assignments in that way-- is that a common feature in languages?

    183. Re:I dunno... by GameboyRMH · · Score: 1

      Wow I just did that in my head in the time it took to read that.

      Which companies would think I'm a programming god for being able to do this?

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    184. Re:I dunno... by Anonymous Coward · · Score: 0

      function unReverse(Z){X=[];for (Y in Z){X.unshift(Z[Y]);} return X;}

    185. Re:I dunno... by Anonymous Coward · · Score: 0

      Apparently, he never learned about transcendentals in school.

      Probably because public schools are garbage. 99% of the people in them never learn to understand that which they attempt to memorize. They just memorize equations but never adopt an intuitive understanding of why they work.

      The result? It all becomes completely forgettable, and most people do forget eventually. The 'teach to the test' formula isn't working.

    186. Re:I dunno... by Anonymous Coward · · Score: 0

      someReversingFunction () {
              derp = [1,2,3,4,5];
              derpOut = [];
              counter = 0;
              for ( i=Derp.length; i>=0; i--) {
                      derpOut[counter] = derp[i];
                      counter++;
              };
              derp = derpOut;
      }

      Dunno how awful that was, but can I haz job now?

    187. Re:I dunno... by GameboyRMH · · Score: 1

      True, you don't know if you're going to be praised for your practical knowledge of the easiest way to solve the problem or seen as a lazy smartass trying to dodge the question, I would have been the person who intentionally did it the harder way, hoping to impress some stuffy HR drone, and lost at that interview.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    188. Re:I dunno... by tibit · · Score: 1

      My brain is fucked all right. Must be good code :)

      --
      A successful API design takes a mixture of software design and pedagogy.
    189. Re:I dunno... by Qzukk · · Score: 1

      sort($list);

      The most interesting thing about your example is that it works despite the fact that php's sort documentation insists that SORT_REGULAR compares values without changing the data type. It turns out that it lies, and unless you explicitly set SORT_STRING, "10" will be converted to 10 for comparison.

      This is why PHP can't have nice things.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    190. Re:I dunno... by ILongForDarkness · · Score: 1

      Exactly. You don't have to debug and maintain the code you don't write.

    191. Re:I dunno... by Anonymous Coward · · Score: 0

      Hey, how did you indent that code?

    192. Re:I dunno... by Anonymous Coward · · Score: 0

      I wonder how many of the people who fail the tests have degrees.

    193. Re:I dunno... by Art+Challenor · · Score: 1

      Then to be consistent, 27 would have to be fizzfizzfizz and 81 would be fizzfizzfizzfizz.

      Sure - 15 & 30 is fizzbuzz, 45 & 90 fizzfizzbuzz, etc. There are lots of them, maybe someone could write a program to figure them out!

      I have a vague recollection that there was a variant that involved addition, so 14 was fizz. On the other hand, someone may have just told me that because I was loosing at the regular fizzbuzz and more negative handicapping never hurts!

    194. Re:I dunno... by dward90 · · Score: 3, Informative

      While you're absolutely correct that a fizzbuzz test is not a good way to determine if you *want* to hire someone, I think you're missing the point of these kind of exercises. It's purpose is to weed out candidates who are a complete waste of time. Trivially simple programming tests don't tell you if a person is a good developer. A passed test means basically nothing. However, a failed test means that to spend any time interviewing that candidate is a complete waste.

      Note that I'm talking about really simple stuff, with no real time limit and not caring about bullshit syntax (You forgot a semi-colon! Go home!). I would never expect an experienced developer to code out complex sorting or search algorithms from memory. Those tests, for sure, don't tell you anything.

      --
      My other sig is clever.
    195. Re:I dunno... by Jmc23 · · Score: 1

      You obviously aren't a programmer... or not a very good one.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    196. Re:I dunno... by Anonymous Coward · · Score: 0

      Most of these people had degrees in CS.

      Anyway, I hired the girl that wrote this:

      %!/bin/sh
      sort -n

      You hire high-school students? Or was this girl in grade-school?

    197. Re:I dunno... by Lodragandraoidh · · Score: 1

      That's not lateral thinking - that is the Unix way... small tools that do very specific things that you can string together via output redirection to create new functionality (the whole is greater than the sum of the parts). From a resource, security, and provably correct standpoint - that shell script solution is superior to any 'reinvention of the wheel' you could come up with as an executable program.

      If you come from a windows/dos world, I can understand why you wouldn't understand this concept, as dos is a poor excuse for a shell in comparison to sh/bash/ksh/csh (well maybe not csh) - and windows programming is a blecherous atrocity without any redeeming qualities.

      But, that's just my opinion; your views may differ, and you are welcome to them!

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    198. Re:I dunno... by Anonymous Coward · · Score: 0

      I Copied it straight out from vim (terminal). It had default settings (hence the 8 spaces width).

    199. Re:I dunno... by bad-badtz-maru · · Score: 1

      It's not correct, this bogus implementation is going to print the number if either side of the OR presents a remainder. It should print only if both sides present a remainder. It should be AND, not OR.

    200. Re:I dunno... by Lodragandraoidh · · Score: 1

      Actually, there is one optimization you should always do before deciding to code up a program:

      Ask yourself, "do I have something already available that can do this job?"

      In my experience the very best programmers are the most lazy for several reasons:

      1. They search for existing alternatives to having to code (as above).
      2. They automate as much of their job as they possibly can (not only does this save them time - it means their results are consistent).
      3. Rather than building one-offs, they build libraries that have reuse value (because they know they will undoubtably have to visit the problem domain again at some point).
      4. Most importantly, and related to all the above: they think about what they are going to build before they build it.

      In my experience lazy programmers are slower to solve novel solutions, but are very fast when dealing with things that relate to what they've already created libraries to handle. As time passes, the old lazy programmer is very fast indeed in comparison to the neophyte because he generally has code squirreled about to handle just about any situation effectively.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    201. Re:I dunno... by Anonymous Coward · · Score: 0

      I have over two decades of hands on experience. I am fluent in C and C++, and can get by quite well with bourne shell, python, perl and PHP. I know quite a bit of assembly for more than one platform. I have designed and coded fairly complex algorithms (e.g. rsyncrypto) and also do complex system programming (fakeroot-ng), and those are just part of the open source programs I've written.

      I cannot program on a whiteboard.

      I don't know what it is. Maybe it's the pressure of fitting it all in, or the bother involved in fixing stuff. Anything even remotely non-trivial, and I start doing mistakes that would make you think I am a total rookie.

      A while back, I was asked in a job interview to write a reader/writer lock (one reader, one writer) using mutexes. I started coding on the whiteboard, and noticed that my solution was becoming more and more complicated, involving more and more state variables, each needing a mutex to protect it. I then stopped, and asked to do this on a laptop. I solved it in less than two minutes.

      I could probably improve this skill, had I thought it was useful for anything other than job interviews. Had it been the other way around, I would obviously be useless as a programmer. As things stand, however, I think a bare minimum of keyboard and a text editor (any text editor, notepad included) is not much to ask. To date, I have always asked for one, and have always been given one, so it has never been a problem. I don't know how big companies, such as Google, would handle such a request, however.

      Shachar

    202. Re:I dunno... by beelsebob · · Score: 1

      Heh, your pseudo code is sufficient that I would actually reject you even though it's "correct".

      You have a conceptual type error. You conflate integers and booleans as being one type, that kind of muddy thinking makes for poor code (even when programming in languages like C where the two really are conflated).

    203. Re:I dunno... by tgeek · · Score: 1

      It took eight minutes for THAT to run? You need a computer that was manufactured sometime after 1970 . . . ;-)

    204. Re:I dunno... by Anonymous Coward · · Score: 0

      At least Python and Lua handle it just like that (and it is implemented in bytecode directly like PUSH a; PUSH b; POP a; POP b)

      JS 1.7 (that is Mozilla's version, others don't support it) can do it like [a[0], a[1]] = [a[1], a[0]]

      Languages with multiple and/or destructuring assignments can usually do that - I think even PHP had some dirty trick with list of references on left side of assignment

    205. Re:I dunno... by beelsebob · · Score: 1

      I don't understand why employers don't just ask to see some code the developer has already written.

      I expect to see that in the CV, and it's a prerequisite of getting to the "now write me some simple code in very little time" stage. The latter test stage eliminates the people who submitted code someone else wrote.

    206. Re:I dunno... by beelsebob · · Score: 1

      How do you know the question you asked isn't in some sort of interview prep? You know that's a hot topic. If you like his presented code, ask the programmer to talk about why he did some things in the code in phase 2? You'll know pretty fast if he wrote it.

      Because as I said right at the top, a lot of the point of this is to give you something to talk about in the interview –you ask them about their bugs in the telephone interview, check they understand what's wrong, ask them what they'd do to fix it, ask them how they would change it given more time, ask them where they think it would be useful code, ask them why they made certain choices over certain others, etc.

    207. Re:I dunno... by Anonymous Coward · · Score: 0

      ah yes.

    208. Re:I dunno... by davester666 · · Score: 1

      And he'll have missed finding it because it'll have been called "FuzzBizz" instead.

      --
      Sleep your way to a whiter smile...date a dentist!
    209. Re:I dunno... by beelsebob · · Score: 1

      To be fair, you can write an entirely clear one "like" the second one.

      main = putStrLn . unlines . map fizzBuzz $ [1..100]

      fizzBuzz :: Int -> String
      fizzBuzz x | x `mod` 15 = "fizzbuzz"
      fizzBuzz x | x `mod` 3 = "fizz"
      fizzBuzz x | x `mod` 5 = "buzz"
      fizzBuzz x = show x

    210. Re:I dunno... by chrismcb · · Score: 1

      Well you typically have two jobs as a developer. One is to write code, the other is to SOLVE PROBLEMS. You are typically given a SIMPLE problem to solve. If you can't solve that simple problem in a short time, how will you be able to solve more complicated problems?
      In addition it shows the interviewer that you do know a bit about coding.
      But bringing in some random snippets of code, that probably someone else wrote?

    211. Re:I dunno... by futhermocker · · Score: 1

      You are spot on as well.

      I pretty much have the same career story, but failed miserably during the last test (out of 5) during an interview with a well known techfirm.

      They gave me 15 minutes to see check if the square root of a given number X is rational or not...

      Failing for this gave me a real bad feeling, damn...

      --
      KERNEL PANIC -SIGFAULT AT ADDRESS #51A54D07
    212. Re:I dunno... by disambiguated · · Score: 1

      Indeed. I solved it in 2-3 minutes, spent 15 minutes refactoring it, then just put it back the way it was.

    213. Re:I dunno... by Anonymous Coward · · Score: 0

      Well I am not a programmer. I figured I could do it since other slashdotters just printed out the answer. Technically it should work :-)

    214. Re:I dunno... by ImprovOmega · · Score: 1

      I think it would be way more interesting (and revealing) to ask them to do FizzBuzz *without* using the mod function. See how many different approaches and answers you get, and challenge them on their decision, making them defend their chosen method.

    215. Re:I dunno... by Anonymous Coward · · Score: 0

      The fact that so many programmers fail or kludge this test and the "reverse a Javascript array" test kinda worries me. I mean, I tinker in a few languages, but I don't have a CS degree or a code-heavy job-- I would *never* consider myself a real programmer. And yet I had solutions for these problems in my head in less than a minute... probably take me another 5-10 minutes in the language reference to iron out the exact structure.

      Am I missing something here? How can someone claim that they make computers do stuff, via written commands, for a living, and not know how to make a computer do this?

      Bonus captcha: unaware

    216. Re:I dunno... by CastrTroy · · Score: 1

      In Place, at least as I, and Wikipedia understand it, means that it uses a small, constant amount of extra space to do the algorithm. Otherwise, like you ended up doing, you algorithm has to resort to stupid little tricks that make code entirely unreadable. It's much more clear, and probably faster to just use the temporary variable.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    217. Re:I dunno... by obarel · · Score: 1

      That should be the discussion part of the interview.

      In your code you calculate mod(i,3) twice for every number. You also calculate mod(i,5) twice in cases where mod(i,3) is zero (33 times).
      In total, you have 2 * 100 + 1 * 100 + 1 * 33 modulo calculations (333 expensive operations).

      The code you called "inelegant" calculates mod(i.15) for every number (100 in all). It then calculates mod(i,5) for those that failed the test (94 cases) and mod(i,3) for those that failed the second test (80 cases). In all, it performs 100 + 94 + 80 = 274 expensive operations. So his code will be about 17% faster than yours.

      You also call "print" more times (instead of 100 times, you call it 200 times - once for the number/string and once for the end of line).

      I won't argue whether it's more elegant or not (that's a bit subjective), but it's just as readable and definitely faster.

    218. Re:I dunno... by Alex+Zepeda · · Score: 1

      Why? There are definitely instances where an optimization like that may be appropriate. It's not a wrong, bad, or particularly smart ass answer.

      --
      The revolution will be mocked
    219. Re:I dunno... by jcoy42 · · Score: 1

      What a stupid test.

      Agreed. I would take that as a sign that it was not a place I would want to work at. I mean, it's a bit better than asking for VB, but not by much.

      If I did bother to respond, I think I would respond by using replace(). It's more efficient because it exists and does exactly what is required. My comment would be longer than the code.

      --
      Never trust an atom. They make up everything.
    220. Re:I dunno... by jcoy42 · · Score: 1

      *sigh*

      by using reverse().

      --
      Never trust an atom. They make up everything.
    221. Re:I dunno... by uncqual · · Score: 1

      I don't know why you didn't hire PRINTguy, but his response to this question alone would not deter me in any way from continuing to consider him. I'd assume he was a bit of a smart-ass -- ask a stupid question, get a stupid answer sort of person. I personally like developers with a bit of that attitude -- because when a requirement or request is stupid in context, they seem to push back directly and let me, their lead or manager, know -- which I appreciate even if it was my request that was stupid.

      Perhaps he's the guy who, during a sales interview, is handed the interviewer's iPhone and is told "okay, sell this to me" and the guy responds by putting the iPhone in his pocket and says "you can have this iPhone for $500". Or, he's Indiana Jones in the famous Sword-vs-Gun scene in Raiders of the Lost Ark.

      I'd take this response as a reason to improve the question - perhaps to be: "Print all the prime numbers from 1 to n for all positive n. Although high performance is acceptable, it is not a requirement as correctness, simplicity, ease of maintenance and implementation cost are paramount".

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    222. Re:I dunno... by Anonymous Coward · · Score: 0

      There is no mention of whether it sould be in-place or not.

      No, but it does specify most efficient

      Using extra variables, arrays and logic is hardly most efficient.

      "Efficient" is not a point quantity. It is a description. I once optimized a program by tripling its doubling its memory footprint and it cut the runtime in half. Since the efficiency goal was time, not memory, this was "more efficient". However, I've worked with systems where an extra 4K RAM was physically unobtainable and more "efficient" algorithms couldn't be used.

    223. Re:I dunno... by deroby · · Score: 1

      Alas, he DID include the 'etc' =/

      Otherwise, if he had done as you suggest we might indeed have considered it a valid answer. Although we'd probably have asked him about it in the talk afterwards.
      In fact, we've had several 'creative' solutions to the problem were they somehow interpret things in the most contrived ways and I think that over time the question has been changed slightly and split into two questions to make it as non-ambiguous as possible.

      From top of my head it's now something along the lines of :

      1) write a function that takes a positive integer as argument and returns a bit that indicates if the input is prime or not.
      2) write a procedure that prints out the first 100 primes using the above function.

      And yes, we've had solutions that hard-coded-wise check if the input is 1 or 2 or 3 or 5 or ... for the function. But AFAIK, so far nobody persisted all the way through the first 100 primes. Those that started out hard-coding them kind of realised they were on the wrong track when working on part 2 and either gave up or wrote a more generic approach. Those that already had a function you could feed any input never had any trouble with part 2 either.

      The issue at hand simply is that people either seem to be willing to lie in their CV (and I mean outright lie, not just 'make it sound a little bit better') or they suffer from some kind of reality-distortion field where knowing the difference between starboard and port makes you the perfect captain.

      --
      If there is one thing to be learned on slashdot, it has to be sarcasm.
    224. Re:I dunno... by Jane+Q.+Public · · Score: 1

      Given the simplicity of the problem, I hardly think immediate optimization is "premature".

    225. Re:I dunno... by maroberts · · Score: 1

      Well in a real job, my code would be as short as possible, but with comments explaining any tricky bits.

      In any event, if you look carefully, it's not obfuscation, it is a single "map" call; something any reasonable Perl programmer should understand immediately.

      --

      Donte Alistair Anderson Roberts - hi son!
      Karma: Chameleon

    226. Re:I dunno... by Anonymous Coward · · Score: 0

      That's a pretty cheap bid, maybe you didn't read the requirements closely enough - we need to port this to Java on multiple platforms. Do you want to revise your estimate and resubmit before the deadline?

    227. Re:I dunno... by Anonymous Coward · · Score: 0

      No, most older programmers suffer from "do it right" syndrome.

      I wrote two different solutions and selected the most readable. It took 8 minutes, but I had to chase some damn kids off my lawn.

      You mean you haven't coded the AIBO to do that yet?

      Slacker.

    228. Re:I dunno... by Pentium100 · · Score: 1

      Can you show me which lines do x?

      From what I have seen in the university this question trips up a lot of people, especially those who either googled/memorized the code and just typed it up or got a friend to do it. And this was for extremely simple stuff, like "put these two numbers (0 - 15) in a single byte so that bits 0-3 are number1 and bits 4-7 are number2".

    229. Re:I dunno... by deroby · · Score: 1

      We did rewrite the question over time as indeed some people managed to understand it in other ways than we intended.
      But if the answer is just a copy-paste of the sample output (including the three dots and 'etc') then he either missed the question or was putting up his middle finger to us. Not sure which one it was (I presume the former as he claimed to be a SQL enthusiast but was unable to OUTER JOIN two tables) but the end result was that we didn't think much of his programming skills indeed.

      In any case, that answer will never be the only reason he didn't get hired; chances are we'll never hire anyone if we get too picky. We have several people from several departments talk to most applicants; usually those who do things related to the things found on the CV and/or the things found in the application advert. And quite often people get turned down because they try to bluff their way in. It somehow seems logical to me that when you write on your CV you speak a certain language fluently but when presented with a native speaker it turns out you're unable to keep a simple conversation, well that will reflect bad on all your other 'claims' too. Same goes for all the buzzwords regarding IT IMHO. Just put down what you know/can, add what you've worked with in the past with a note that it's been some years and for crying out loud don't go wild on every single buzz-technology you might have ever read something about.

      PS: It's too long ago for me to remember how he did on those other tests/talks, but all in all it's always the combined result of these tests and those interviews that go to HR and they decide on who gets the job (or not).

      --
      If there is one thing to be learned on slashdot, it has to be sarcasm.
    230. Re:I dunno... by Anonymous Coward · · Score: 0

      Uh, Perl answer would be about the same length as the bash one:

      #!/usr/bin/perl
      print sort <>;

    231. Re:I dunno... by Anonymous Coward · · Score: 0

      The important thing here is probably that the 3 and 5 test has to come first.

      ...unless you nest a second if testing for mod-5-ness in the if testing for mod-3-ness and print accordingly...

    232. Re:I dunno... by Gr8Apes · · Score: 1

      Java would be about the same, shockingly.

      --
      The cesspool just got a check and balance.
    233. Re:I dunno... by Anonymous Coward · · Score: 0

      Sorry to be pedantic, but I wanted to point out that your code is undefined for declarations of fibonacci where N = 0. Furthermore, in the Fibonacci sequence, the 0th item is defined.

    234. Re:I dunno... by uncqual · · Score: 1

      Ah, I didn't understand that the solution he presented actually had the "...", the "etc" (and, perhaps, the "." instead of ''," between the "3" and "5") in it. I suppose one could argue the "..." and "etc." were pseudocode. I do expect smart-ass answers to be correct and complete - to a higher degree than ordinary answers (few things are worse than a smart ass who is also wrong) so he wouldn't have gotten anywhere near full credit from me.

      I've never managed developers or been an individual contributor where HR had any significant input (beyond background checks, degree, and job history validation) on the hire/no hire decision. At the larger places, they sometimes did some of the salary negotiation (with me involved in the loop to make sure they were not doing something stupid that would lose a valuable candidate over $5K/year) which was helpful as I wasn't the "bad guy" who negotiated the salary demands (which isn't the best footing to start on). In an environment where HR has much input on hire/no hire, I would imagine there's more need for quantitative and repeatable results.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    235. Re:I dunno... by Anonymous Coward · · Score: 0

      We'll just have to agree to disagree. Talking about code the developer previously wrote sounds like it has more substance than talking about FizzBuzz. With old code, you get:

      Strategy
      Reasoning
      Technique
      Style
      Comments
      Decision making on coding fast vs. coding for maintainability

      With FizzBuzz, you can determine if the coder knows the modulus operator, an operator when considered with all the others, is used pretty damn infrequently.

    236. Re:I dunno... by Anonymous Coward · · Score: 0
    237. Re:I dunno... by Anonymous Coward · · Score: 0

      >The latter test stage eliminates the people who submitted code someone else wrote.

      So if a developer plagiarized 100 lines of code, you couldn't tell after about 3 questions? C'mon.

    238. Re:I dunno... by Anonymous Coward · · Score: 0

      The "efficiency" thing is going to cause me to ask a question: "What kind of efficiency? Space or time?"

      If it's time efficiency, I'm going to allocate a second array of the exact same size and read the values into it in reverse, the return the copy.

      If it's space efficiency, I'm going to spend a few minutes writing a shuffling algorithm that allocates one copy element.

      If it's "both", then I'm going to do something idiotic and unmaintainable that uses XOR.

    239. Re:I dunno... by Jmc23 · · Score: 1

      With your experience I wonder if anybody has implemented a solution that just displaces the repetitive pattern onto numbered arrays of arbitrary length? No need for mod, no tests for equality, just looping the pattern x x fizz x buzz fizz x x buzz fizz x fizz x x fizzbuzz?

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    240. Re:I dunno... by Darinbob · · Score: 1

      Well, if I'm given 45 minutes to do it, and I have ready access to a compiler and editor (not currently set up at home), then I might try getting a better solution or providing multiple solutions.

    241. Re:I dunno... by Anonymous Coward · · Score: 0

      I'm not trying to beat you up, I'm trying to persuade you. Here is an example about why FizzBuzz is bad. A guy a few pages up presented this with an example:

      "Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”." (via Google, first link)

      #/usr/bin/perl
      for my $i (1..100) {
                  my $s = '';
                  if ($i % 3 == 0) { $s .= 'Fizz'; }
                  if ($i % 5 == 0) { $s .= 'Buzz'; }
                  print $s ? $s : $i, "\n";
      }

      This could be a pretty low weight answer because:

      The requirements say nothing about a newline. He assumed newline because he started before he fully understood the requirements, he assumed the requirements. If he had read the requirements (via google first link) he would have omitted the logic for newline and saved himself 2 lines of code, 1/3 of the entire codebase. That's pretty significant.

      Now, I bet that guy is a pretty damn good coder, but if I was looking for a reason to *not* hire someone as opposed to hiring someone, I could have justified ending the interview with the, albiet harsh reasoning that he can't even follow a simple spec. I probably would have just shot myself in the foot because I would have extended the interview process another 2-4 weeks.

      Just not enough solid information, and the result is subject to interpretation, and he wasn't even under the pressure of an interview scenario. Wouldn't it seem more enlightening to go over 100 lines of code the guy is proud of? So much more to talk about.

    242. Re:I dunno... by pthisis · · Score: 1

      For one, this construct or something similar is used several times, but isn't valid in sed AFAIK (what's it supposed to mean?):
      x /^$/g

      --
      rage, rage against the dying of the light
    243. Re:I dunno... by Gr8Apes · · Score: 1

      I interview many people who talked their way past the first screen or two, but start failing in less than 5 minutes. I don't think we've let a good one go, and we've only hired one questionable one out of the last 10 successful interviews.

      --
      The cesspool just got a check and balance.
    244. Re:I dunno... by Cryacin · · Score: 1

      Just a quick note.

      Every one who has answered, would have been interviewed. 5/100 though is the shocking reason why employers simply can't take these things on face value.

      --
      Science advances one funeral at a time- Max Planck
    245. Re:I dunno... by Gr8Apes · · Score: 1

      These are the ones that kill me. I know of one that was hired as a high level architect. Needless to say, not a single project succeeded under him.

      --
      The cesspool just got a check and balance.
    246. Re:I dunno... by LordLimecat · · Score: 1

      Works in powershell, thanks! Really slick tip. Wish I had modpoints.

    247. Re:I dunno... by serviscope_minor · · Score: 1

      It means that slashdot randomly deletes newlines in code blocks :(

      it's meant to be

      x

      followed by /^$/g

      --
      SJW n. One who posts facts.
    248. Re:I dunno... by narcc · · Score: 1

      Mod is expensive. You don't need it.

      In BASIC, because it irritates people.


      fizz = 0
      buzz = 0
      FOR i = 1 to 100
              fizz = fizz + 1
              buzz = buzz + 1
              IF (fizz <> 3 AND buzz <> 5) THEN
                      PRINT i
              ELSE
                      IF fizz = 3 THEN PRINT "fizz"; : fizz = 0
                      IF buzz = 5 THEN PRINT "buzz"; : buzz = 0
                      PRINT
              END IF
      NEXT i

    249. Re:I dunno... by Anonymous Coward · · Score: 0

      Ironincally, I was given this test a few months ago when I moved and started looking for a job - I completed that answer on some site where they could watch me program and run it in java. It ran and gave the results they wanted and I had the three if statements like you did and I didn't get the job because there was a more efficient way to write it. I knew I could figure it out, but I was only giving 5 minutes for the exam - it was for a financial company in Pasadena, CA and they only wanted the "best and brightest" - I thought I did pretty good as I got a working answer programmed in java in under 5 minutes...maybe it was a good thing I didn't get it, but I must admit it hurt the pride a little. Anyways, their preferred answer was:

      for i in 1 to 100 loop
                  if mod(i,3) == 0 then print 'fizz ';
                  if mod(i,5) == 0 then print 'buzz';
                  if !(mod(i,3) == 0 || mod(i,5) == 0)
                                  print i;
      end loop

      Their logic was that there were fewer lines so it was more efficient. I figured since they told me what they wanted, it was an invitation to discuss to get my thought process - I told them that have the fall-through of if's meant more checks, was slightly less readable, and would actually take more computer cycles, i.e., longer and I was rebuffed with a straight "we know what we're doing and that's the best answer, let's move on..." I obliged, but the stress levels really shot up after that and then the questions they started asking on the internals of Swing - I can create decent swing apps - I'm by no stretch of the imagination a Swing God, but they wanted to know internal Swing architecture...oh well, it did pay good.

    250. Re:I dunno... by Darinbob · · Score: 1

      Sadly, the most recent crops of interviewees I've had to talk to have just been terrible on average. My normal questions have gotten easier over time. I want to see candidates just start writing on the board right away. But they seem hesitant about even putting a function declaration up so I resorted to having the function declaration and structure definitions and they just need to fill in a few lines between "{" and "}", and they have trouble there. I had one guy who was an older programmer with a long resume of useful experience who just flat out said "I don't like to write stuff up on the board" and who wasn't any better at describing how he'd do something. Another person who was going great and then just visibly broke out sweating and seemed to be having a panic attack when asked to do some simple stuff on the board.

      Granted, we seem to get getting mostly EE candidates to do programming, and if they're just out of school their programming skills in C are just bad (even though they listed it on their resumes) and they certainly are very poor at some CS fundamentals.

      All I really want to see is some code that makes me think that the person has actually done some programming and that it won't be my job to teach them how.

    251. Re:I dunno... by Darinbob · · Score: 1

      There are people with experience who have really had simple straight forward jobs. One listed embedded development experience with Linux but in interview said she did "middleware" which basically seemed to be getting data from point A and sending it to point B. Another had a lot of consulting experience but it really turned out to be a lot of building of kernels and configuring and integrating but not very much programming at all.

      Sometimes the job goes on a long time and you don't really do much more than fix some simple bugs or maintain the same file of code for years. So when asked to write something new from scratch the details on how to declare a function may be vague, especially when they can't rely on a book or copy/paste from other places in code.

      It doesn't even mean these people are bad at their jobs really, they may be the person who knows the most about a particular part of the product and it's not worth training a replacement.

    252. Re:I dunno... by funwithBSD · · Score: 1

      You are correct.

      I am a Data Center Relocation Architect and an UNIX SA by trade.

      Means I gotta live with all the crap code and try to make it production supportable and portable when you all never intended to make it portable.
      Requiring millisecond communications with the NAS device because of a crappy file search and retrieval algorithm? I mean really, could you not have threaded it take advantage of the multi-threaded I/O?
      Same with DB access, why do you need less than a 20ms round trip or your code goes tits up? Why does the web server have to be in the same datacenter as the app tier? Why is everything so damn linear? Why does it block on fetching a stupid jpg?!

      Why the fuck did you lock the table when all you do is read the damn thing?

      And to the point above, why the fuck is it all in a custom version of fileinputstream(), when you could have used fileinputstream()?

      At least it pays well and is interesting work. If you all did it right, I would be bored and eating Ramen.

      --
      Never answer an anonymous letter. - Yogi Berra
    253. Re:I dunno... by maxwell+demon · · Score: 1

      What about this:

      for x in range(1, 100):
          message = ""
          if x % 3 == 0:
              message += "fizz"
          if x % 5 == 0:
              message += "buzz"
          if message == "":
              message = x
          print(message)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    254. Re:I dunno... by mhotchin · · Score: 1

      Too much typing! Write a program to output that instead!

    255. Re:I dunno... by maxwell+demon · · Score: 1

      That's not true BASIC. True BASIC looks like this:

      10 fizz = 0
      20 buzz = 0
      30 FOR i = 1 to 100
      40 fizz = fizz + 1
      50 buzz = buzz + 1
      60 IF fizz <> 3 AND buzz <> 5 THEN GOTO 90
      70 PRINT i
      80 GOTO 160
      90 IF fizz <> 3 THEN GOTO 120
      100 PRINT "fizz";
      110 fizz = 0
      120 IF buzz <> 5 THEN GOTO 150
      130 PRINT "buzz";
      140 buzz = 0
      150 PRINT
      160 NEXT i

      --
      The Tao of math: The numbers you can count are not the real numbers.
    256. Re:I dunno... by maxwell+demon · · Score: 1

      Oops, line 60 should of course read:

      60 IF fizz = 3 OR buzz = 5 THEN GOTO 90

      --
      The Tao of math: The numbers you can count are not the real numbers.
    257. Re:I dunno... by funwithBSD · · Score: 1

      From a Systems Architect point of view, if you write your code on a modern multi-chip hyper threaded OS/system (Like, say, !Windows and !Pentium 3) and your code is not parallel capable, you are clubbing someone to death with a loaded Uzi, as someone once said.

      If your linear process blocks processing of the thread, when it could have spun it off and released resources and/or executed other non-related processing requests, such as in a multi-user Java app, then it is, system wide, slower than the thread safe version.

      The thread safe version took twice as long, granted, but during that time the engine continued to process other requests, resulting in the "most efficient" leveraging of resources and increased throughput in exchange for the "most efficient" bit of code.

      Even if it is 10x less efficient but lets me service other user requests in a non-blocking execution architecture, I win on any platform with more than 10 threads. I win big on a Cell or T4 chip set with potentially several hundred cores.

      --
      Never answer an anonymous letter. - Yogi Berra
    258. Re:I dunno... by Jmc23 · · Score: 1

      Oh, i'm not a programmer. Just most programmers recognise it's more efficient doing something in place than allocating more memory. Not necessarily safer or more elegant, just more effiCient.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    259. Re:I dunno... by chrismcb · · Score: 1

      In JavaScript, without using the reverse() method, reverse an array of numbers containing 1,2,3,4,5 in the most efficient way possible.

      Semi-off topic question: really? I mean, are we (programming job seekers) as a group that dumb?

      Yes. Actually I'd say probably even dumber than that. It doesn't really seem to matter if the person is graduating from school (with a 4.0) or has several years of experience. The number of people who can't code, even the simplest things is absolutely amazing.
      I used to interview students on campus. I asked them to write strcmp. Granted more and more people are learning languages where you don't really need to write strcmp, but you should be able to figure it out. I am always amazed at the number of people who don't even seem to understand. Its like they've never even looked up a word in a dictionary.
      The really sad thing is, I knew many of the people I interviewed would probably go out and get jobs in the field, with other companies... I no longer wonder why so much software sucks.

    260. Re:I dunno... by chrismcb · · Score: 1

      Fail as in, unable to complete the task. Not just get the idea down, not just give me some psuedocode that comes close to working. But outright fail.
      Sure you might come in say "Hey I don't remember the exact print syntax, so I'll just wave my hands and pretend 'printfoobar' works this way" To me that is fine. It gets the point across, and I'm assuming you will be smart enough to look up the exact syntax later... But did you get a loop? Did you cover the corner cases? Did you try to test your code?
      I'm amazed at people who write some code, and then immediately look up at me and say "yep that should work." It doesn't even generate the one example I gave them, let alone a general case. That kind of fail.

    261. Re:I dunno... by johnsnails · · Score: 1

      I was googling "what is a fizzbuzz test" and found out because of the post above. If it wasnt for the person asking the question I may have never found out.

    262. Re:I dunno... by JWSmythe · · Score: 1

      But you do realize that there are plenty of resume fluffed "coders" who would fail it.

      There are languages that I was proficient in, that I haven't touched in years. I'm honest on my resume, things that I've forgotten, I take off before I start sending the resumes out. Even things I haven't touched in more than a couple years get dropped.

      A lot of people keep everything they've ever known on their resume. For some, that's still a pretty short list. I've asked candidates about some of their experience, to find out that they barely touched it years before, and wouldn't know how to begin. Some just list skills to match the position advertisement, and assume they can get the company to pay for training later.

      --
      Serious? Seriousness is well above my pay grade.
    263. Re:I dunno... by sethanon · · Score: 1

      Depends on the job. I typically give candidates a problem a few days before to see how they work without much pressure, but part of my job is to go into the field to conduct integration testing. I will often need to find, analyse and fix a problem under a ticking clock while customers and partners look over my shoulder. If you can't code in an interview you probably can't handle that part of the job.

      As an aside I once had a candidate offer to show me some code he had written previously and proceeded to bring up the code he had written while working for several previous employers. Not exactly the way to give me confidence that our code would remain in the company.

    264. Re:I dunno... by betterprimate · · Score: 1

      var values = [23,14,375,42];
      values.sort(compare).reverse();
      alert(values);


      function compare(v1, v2) {
      return v2 - v1;
      }


      Can I have a job too? I'm hungry.

    265. Re:I dunno... by betterprimate · · Score: 1

      var values = [1,2,3,4,5];
      values.sort(compare);

      function compare(v1, v2) {
      if (v1 < v2) {
      return 1;
      } else if (v1 > v2) {
      return -1;
      } else {
      return 0;
      }
      }

      Are you still hiring?

    266. Re:I dunno... by betterprimate · · Score: 1

      var values = [1,2,3,4,5];
      values.sort(compare);

      function compare(v1, v2) {
              return v2 - v1;
      }

      I win!!

      No, but srsly, are you still hiring?

    267. Re:I dunno... by LordLimecat · · Score: 1

      Would something like this be permissible? (written in PowerShell, for kicks and groan-factor)

      for ($i=1; $i -le 100; $i++)
      {
              $output=""
              if (($i % 3) -eq 0) {$output = $output + "fizz"}
              if (($i % 5) -eq 0) {$output = $output + "buzz"}
              if ($output -eq "") {$output = $i}
              write-host $output
      }

    268. Re:I dunno... by dotar · · Score: 1

      and what the fuck do you mean "most efficient"? Do you mean space or time complexity, or readable and maintainable? Takes the smallest space on disk? Fewest cpu instructions? Questions like that piss me off. Efficient is relative.

    269. Re:I dunno... by betterprimate · · Score: 1

      There are two reordering methods here: reverse and sort. The question is simple and legit. It's asking for basic knowledge in comparing values with the sort method.

      This is the answer to the question:

      var values = [1,2,3,4,5];
      values.sort(compare);

      function compare(v1, v2) {
              return v2 - v1;
      }

      Cheers.

    270. Re:I dunno... by DrVxD · · Score: 1

      I give 30, but explain up front that I expect to see unit tests and some evidence of a TDD approach. I even give them their choice of git/hg/svn for versioning.
      For such a simple task, it's surprising to see how much trouble people have doing it test-first.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    271. Re:I dunno... by Anonymous Coward · · Score: 0

      I failed it when I accidentally typed "bizz" in the output statement instead of "buzz." The logic was fine, but it didn't work to spec. No good.

      The real coding test to give a programmer is to see if they design the program before they start coding. If they just jump in and start typing, you don't want them. You can't build a thing until you know what it is you're building!

    272. Re:I dunno... by dcollins · · Score: 1

      "I'd much rather have a week to build a working application then 45 minutes to prove I know how to write boilerplate code and memorized a whole bunch of console formatting functions."

      But: Do you think it's worthwhile to do a week of coding in exchange for the promise of an interview? To my mind: several days of work is something I'd better get compensated for. I'm happy to meet with someone in a quid-pro-quo: you give me a few hours of face time, I do an hour or two of simple coding tests or whatever (preferably on-site). That's a reasonable first-pass checking each other out. But it's just not reasonable to do a week-long coding test for an interview, to say nothing of committing to an ongoing number of them throughout a job search.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    273. Re:I dunno... by Anonymous Coward · · Score: 0

      I would withdraw my application immediately, and then ask if you would like to know why.

    274. Re:I dunno... by CurunirAran · · Score: 1

      #include <stdio.h>

      int main(int argc, char *argv[])
      {
          int i = 1;
          for(i = 1; i <= 100; i++){
              if(i % 15 ==0)
                  printf("fizzbuzz\n");
              else if(i % 3 == 0)
                  printf("fizz\n");
              else if(i % 5 == 0)
                  printf("buzz\n");
              else
                  printf("%d\n", i);
          }

          return 0;
      }

    275. Re:I dunno... by Anonymous Coward · · Score: 0

      The requirements say nothing about a newline. He assumed newline because he started before he fully understood the requirements, he assumed the requirements.

      If the requirements don't specify a newline, space, etc. then it's your own damn fault for giving an incomplete specification, if you didn't get the output you wanted.

      With or without a newline, the program meets the requirements given as stated literally. (Silly managers, always expecting developers to be mind-readers...)

    276. Re:I dunno... by Anonymous Coward · · Score: 0

      Not very efficient. You should be able to do it just with tests for (i % 3) and (i % 5) and cut out redundant comparisons.

    277. Re:I dunno... by Skal+Tura · · Score: 1

      lol, that's very easy. Not even basic mathematics and iteration. When you use modulus this indeed doesn't even require math skills to figure out.
      And these guys call themselves coders?

      I must start passing guys this test myself! ;D

      Any other good 5mins or less coding tests you've used?

    278. Re:I dunno... by dolmen.fr · · Score: 1

      Too bad you didn't write it more efficiently (a single string constant, a single call to puts) and with style!

      #include <stdio.h>
      int main()
      {
      puts("1\n2\nfizz\n4\nbuzz\nfizz\n7\n8\nfizz\nbuzz\n11\nfizz\n13\n14\nfizzbuzz\n"
      "16\n17\nfizz\n19\nbuzz\nfizz\n22\n23\nfizz\nbuzz\n26\nfizz\n28\n29\nfizzbuzz\n"
      "31\n32\nfizz\n34\nbuzz\nfizz\n37\n38\nfizz\nbuzz\n41\nfizz\n43\n44\nfizzbuzz\n"
      "46\n47\nfizz\n49\nbuzz\nfizz\n52\n53\nfizz\nbuzz\n56\nfizz\n58\n59\nfizzbuzz\n"
      "61\n62\nfizz\n64\nbuzz\nfizz\n67\n68\nfizz\nbuzz\n71\nfizz\n73\n74\nfizzbuzz\n"
      "76\n77\nfizz\n79\nbuzz\nfizz\n82\n83\nfizz\nbuzz\n86\nfizz\n88\n89\nfizzbuzz\n"
      "91\n92\nfizz\n94\nbuzz\nfizz\n97\n98\nfizz\nbuzz");
      return 0;
      }

    279. Re:I dunno... by dolmen.fr · · Score: 1

      And as style shows where you could use the preprocessor...

      #include <stdio.h>
      int main()
      {
      #define F "\nfizz\n"
      #define B "buzz"
      #define F_B F B "\n"
      #define B_F "\n" B F
      #define FB "\nfizz" B "\n"
      puts("1\n2" F "4" B_F "7\n8" F_B "11" F "13\n14" FB
            "16\n17" F "19" B_F "22\n23" F_B "26" F "28\n29" FB
            "31\n32" F "34" B_F "37\n38" F_B "41" F "43\n44" FB
            "46\n47" F "49" B_F "52\n53" F_B "56" F "58\n59" FB
            "61\n62" F "64" B_F "67\n68" F_B "71" F "73\n74" FB
            "76\n77" F "79" B_F "82\n83" F_B "86" F "88\n89" FB
            "91\n92" F "94" B_F "97\n98" F B);
      return 0;
      }

      PS: the hardest part is to fight the Slashdot auto-formatter to respect my layout... but I failed!

    280. Re:I dunno... by BonThomme · · Score: 1

      " I don't think we've let a good one go"

      uh huh

      when they start failing 'in less than 5 minutes', do you change tack, find other ways to ask questions, go in a direction that they're initially more comfortable with and bring them back around?

    281. Re:I dunno... by BonThomme · · Score: 1

      kudos for adaptability. so many like to fellate their hallowed interview process because it fails so many applicants

    282. Re:I dunno... by Anonymous Coward · · Score: 0

      I remember the story of a guy who would hire just about anyone who applied. He'd hire 10 people for 1 open position, then after a week or two of working, he'd fire anyone who didn't cut the mustard. I don't think that's a great technique either, but he knew not to let the good ones get away.

      And of those 9 fired programmers, how many quit a previous job to come work there? Were they fired because they were incompetent? It sounds like no, there was only one position and he just cage-matched 10 people with families to support because "he knew not to let the good ones get away."

      I hope he got sued into oblivion.

    283. Re:I dunno... by hackula · · Score: 1

      Wow, that is totally true! I just tried it out and completed it in 1 hour! ;)

    284. Re:I dunno... by hackula · · Score: 1

      I just do not see how anyone who fails "fizzbuzz" in the language they have the most experience with could possibly be competent. It is a loop and some "if" statements for christs sake! I would expect most people to be able to do this in their head without even pen and paper. Sorry, but if someone has such bad anxiety that they choke on problem that easy, there is no way they will cut it on the job. A false negative would only be possible if the person was having a stroke during the interview or something.

    285. Re:I dunno... by Anonymous Coward · · Score: 0

      Like I said, it wasn't a good technique, but he did find the good developer he was looking for.

      It was in Florida, a right to work state, so no, he got promoted.

    286. Re:I dunno... by hackula · · Score: 1

      Well in a real job, my code would be as short as possible, but with comments explaining any tricky bits.>

      OMG. Shoot me right between the eyes if I ever have to maintain any of your code.

    287. Re:I dunno... by hackula · · Score: 1

      I also typically give them a txt file with a chapter from some old book. Then I tell them to print out all the words in the book in order of frequency with a number beside the word that says the count for that particular word. There are a surprising number of edge cases, so it works well for follow up questions. "How would you make you code able to filter out punctuation?", "Say this needed to be used on 100 chapters. What optimizations would you add to speed it up?" etc.

    288. Re:I dunno... by Anonymous Coward · · Score: 0

      Meeting the requirements isn't the problem. You assume the spec is incomplete, because you can't understand why there wouldn't be newlines, but there may be a good reason. Just because you don't understand the business reasoning, doesn't mean you should just code whatever the hell you want on your employer's dime.

      It exceeds the requirements and results in 50% code bloat. If you asked someone to write some code and he added 50% more features than you asked for, and then charged you for it, that's a serious problem. As a coder, we have to assume the requirements are correct. Hopefully we're in an environment where we can get clarification from the writer of the spec.

      If you had a $10,000 budget and presented a spec that would take about $10,000 to complete, and your coder coded $5,000 worth of extra features you didn't ask for, that's a bad thing.

    289. Re:I dunno... by Anonymous Coward · · Score: 0

      Oh yeah, well I just cloned 'Minesweeper' in 30 min. Of course, I made a lot of improvements and you might not recognize is as the same game! It's a lot leaner.

    290. Re:I dunno... by Thuktun · · Score: 1

      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.

      This is absolutely true, and mind-boggling.

      Our company has been hiring senior-level Java developers for years and I've been in on them for much of that time. Few of the applicants actually get through the [literally] sophomoric coding exercises we do. (We have the same problem with junior-level ones, too, so it's not the amount of time elapsed since school...)

    291. Re:I dunno... by Thuktun · · Score: 1

      On the one hand it seems kind of lazy.

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

      Assuming that at least some people haven't previously seen this. From Larry Wall, of Perl fame.

      http://c2.com/cgi/wiki?LazinessImpatienceHubris

    292. Re:I dunno... by Anonymous Coward · · Score: 0

      My reply was a tongue-in-cheek parody of the typical developer response to this kind of situation. "I did as you asked, the fact you weren't clear is your problem" instead of seeking more information.

      Anyway, using a line per item is standard when printing lists of data, unless you delimit them - and then you still have to print a comma, tab, space, etc. so you would just substitute the delimiter for the '\n' and save maybe a character, not 2 lines of code.

      This is pretty small potatoes, though. It's not a show-stopper and it's an easy fix. If this is the kind of issue you worry about, see ya. Some of us have bigger fish to fry.

    293. Re:I dunno... by kmoser · · Score: 1

      It could mean whatever you want it to mean, since it was not specified. For example, it could mean "least hassle to understand by future maintainers of your code" in which case code legibility may trump execution time or memory usage.

    294. Re:I dunno... by anyGould · · Score: 1

      Or in Business Speak, reinvent the wheel on your own time.

    295. Re:I dunno... by Anonymous Coward · · Score: 0

      Thats all it can do weed out those who can and who cant program. Will it accurately measure their aptitude in advance programing and logical arithmetic skills? No. Will it measure their ability to work as a team? No? Will it accurately demonstrate in code documentation habits? Hell No!!

    296. Re:I dunno... by Synerg1y · · Score: 1

      All it tests is boolean logic & basic multiplication... the fact that 95% of job applicants fail this... that's retarded. This type of program is featured in 1st year courses.

    297. Re:I dunno... by Anonymous Coward · · Score: 0

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

      === I agree
      Even if the person did not solve the problem, it may show his work habits. For example, Can he organize his thought processes.

      I use to give simple problems, from trimming spaces from both ends of a string, to coding a five way merge of files (balanced line update), to using bit manipulation for and/or/not.

      Most challenges would be done in an hour by an experienced guy, but I allowed three hours. I did screen out non-serious guys.
      A forth hour, if necessary, was taken to have them explain the solution.

      In this way, I judged their technical competence and their abitlity to teach others. These winners are now the best employees in many high tech companies.

    298. Re:I dunno... by Anonymous Coward · · Score: 0

      I had an interview once where there were teams of two doing each interview. The first pair were the typical arrogant engineer types. They got to their end and asked me to solve a problem and write the solution on the whiteboard with my back them. I stood up, started to solve it, felt uncomfortable and annoyed and sat down and said "no thank you, I'm not comfortable with this and prefer not to do this. Thank you for the opportunity but I guess the interview is over." They were shocked and tried to diffuse the situation. They left and sent in the next two. These two were cool and the types I'd like to work with. Their test came and I stood up, wrote the solution on the whiteboard and sat down. They said "that's correct. I can see an optimization that could be applied but its correct." Can I ask you a question one of them says to me. "Why wouldn't you solve the problem the other guys asked you? It was no more complex than this?" I said "because they were jerks and you two aren't." Best interview of my life. Walked out with a huge smile on my face.

    299. Re:I dunno... by Gr8Apes · · Score: 1

      I dig into various aspects. My job is to evaluate the veracity of their resume regarding experience, as well as the full breath of their experience, beyond what is shared in the resume.

      --
      The cesspool just got a check and balance.
    300. Re:I dunno... by romons · · Score: 1

      FizzBuzz is mostly a test of whether people can understand a specification. If they can, they can just type it in. If they can't, then you don't want to hire them.

      --
      Go to Heaven for the climate, Hell for the company -- Mark Twain
    301. Re:I dunno... by romons · · Score: 1

      but can you generate that code with an emacs macro? :)

      --
      Go to Heaven for the climate, Hell for the company -- Mark Twain
    302. Re:I dunno... by Anonymous Coward · · Score: 0

      wow people other than military or are you ? know a "message to garcia". im supprised

    303. Re:I dunno... by greensnake · · Score: 1

      Your code calls mod four times on every number - and the same call twice to boot.

      Two mods and one conditional in Python 2:

      def fizzbuzz(count=100):
              fb_list = [ 0, 'fizz', 'buzz', 'fizzbuzz']

              for x in xrange(1, count+1):
                      y = (not (x % 3)) + 2 * (not (x % 5))
                      if not y:
                              print x
                      else:
                              print fb_list[y]

    304. Re:I dunno... by Anonymous Coward · · Score: 0

      perl sort is numeric by default.

      This one is actually an astonishingly short one-liner in perl:

      #!/usr/bin/perl
      print sort

      It's almost as though the language were designed for this sort of thing!

    305. Re:I dunno... by Anonymous Coward · · Score: 0

      Haha, html ate my angle brackets. I'm an idiot.

      Try:

      #!/usr/bin/perl
      print sort <>

    306. Re:I dunno... by Anonymous Coward · · Score: 0

      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.

      Find a merge sort in literature and/or using Google that sorts the first sublist and remembering the end of the sublist for the sake of starting the sort on the second sublist. Find one which does not temporarily store null pointers in order to mark list ends. I actually have a merge sort that does not even use proper recursion and does not look unnecessarily at data, and uses properties of binary arithmetic to figure out the flow control instead of a return stack. Nowadays it is not necessarily the advantage it was once: a fixed return is better suited for pipelining than a calculation appearing to be random to the branch predictor. However, a single calculation and branch rather than five returns in a row is still preferable.

      At any rate: a good merge sort is something you can spend weeks on. And if you studied computer science, you should be able to calculate its performance exactly. Very nice application of generating functions. Worst case is pretty accessible to closed solution, average case somewhat more messy.

    307. Re:I dunno... by schnitzi · · Score: 1

      This is probably just coincidence, but... We used to give that exact programming test, and hired an girl whose solution called out to the OS's "sort" program. This wasn't by any chance in Atlanta, was it?

      --



      I object to that article, and to the next reply.
    308. Re:I dunno... by BonThomme · · Score: 1

      ever try walking along the 6 inch wide top edge of a curb for as long as you can? not that hard.

      now put that curb 100 ft up in the air.

    309. Re:I dunno... by BonThomme · · Score: 1

      which character set and code page?

    310. Re:I dunno... by BonThomme · · Score: 1

      you're on the right track. give them a one night assignment in advance and have them bring it in and explain their implementation and motivations (speed/space) in detail.

      they get to develop in whatever environment they are comfortable in (not just IDE, but complete ambient environment). you'll also see if they wrote unit tests, commented their code in a useful way, and have other good habits you might be looking for.

      if they heavily borrowed the code and don't understand it, it will be obvious.

    311. Re:I dunno... by Onymous+Coward · · Score: 1

      The point behind having 4 different solutions was to be flexible in my thinking, ready for whatever a scenario might call for. The question, being a test question without a genuine context, leaves open the range of possibilities, using only a hint (in place) to constrain the solution. There are situations that could use the two algorithms you find unsuitable (unsuitable presumably for the situations you commonly experience and thus judge things by).

    312. Re:I dunno... by hawk · · Score: 1

      When I advertised for an assistant for my law office a few months ago, I put the instruction to call before sending resumes in the ad.

      There were two reasons for this:
      1) phone presence is critical; I'd generally know whether I was likely to offer the job during that call, and
      2) to see if the person could follow instructions.

      Only about 1 in 3 called first.

      hawk

    313. Re:I dunno... by hawk · · Score: 1

      Not to defend the bubble sort, but . . .

      I recall having to pull out cards to manually manipulate to show someone who had a MS in CS how one in code in front of him worked, stepping through each comparison and moving the cards . . .

      hawk

      p.s. No, he didn't last very long.

    314. Re:I dunno... by hawk · · Score: 1

      > Given three minutes, he should revise the solution until it's elegant, easy to read,

      Recode it in Fortran or COBOL??? :)

      hawk

    315. Re:I dunno... by hawk · · Score: 1

      Wow.

      *You* are about the last one I expected to see as I stumbled through this place . . .

      It's been a few years.

      hawk

    316. Re:I dunno... by Anonymous Coward · · Score: 0

      but did she have big tits?

    317. Re:I dunno... by Anonymous Coward · · Score: 0

      if a girl in grade school came up with that i would tell her to stay in school, but i would tell her there's work for her whenever she's available (with mum/dad's permission of course)

    318. Re:I dunno... by Anonymous Coward · · Score: 0

      i cloned call of duty in 3 minutes... and the AI is so smart you don't even get to open your eyes before you're shot dead

    319. Re:I dunno... by Anonymous Coward · · Score: 0

      You assume the spec is incomplete, because you can't understand why there wouldn't be newlines, but there may be a good reason.

      If there's a good reason, it should be in the fucking spec. If newlines are bad, and the spec doesn't say so, it's incomplete - period, end of story.

    320. Re:I dunno... by Anonymous Coward · · Score: 0

      Here's a fun and wasteful version with no modulo and absolutely no concern for performance or memory space:

      <?php

      $nums = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
              16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
              31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
              46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
              61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
              76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
              91, 92, 93, 94, 95, 96, 97, 98, 99, 100);

      $i = 1;
      $j = 1;

      while ($j < 100) {
          $j = $i * 3;
          $nums[$j - 1] = "Fizz";
          $i++;
      }

      $i = 1;
      $j = 1;

      while ($j < 100) {
          $j = $i * 5;
          $nums[$j - 1] = "Buzz";
          $i++;
      }

      $i = 1;
      $j = 1;

      while ($j < 100) {
          $j = $i * 3 * 5;
          $nums[$j - 1] = "FizzBuzz";
      }

      $i = 0;
      while ($i < 100) {
          echo $nums[$i] . "\n";
          $i++;
      }

      ?>

    321. Re:I dunno... by sjames · · Score: 1

      If you stay within the cache, the clever reverse in place can actually be less efficient.

    322. Re:I dunno... by jonadab · · Score: 1

      > elegant, easy to read, and maintainable
      > You mean rewrite it in another language?

      Almost.

      There are almost two entirely different Perl languages.

      Perl code can be truly awful when it's written by people who are new to the language, have their thinking dominated by lower-level languages (notably C), or are just plain bad at writing code. I've seen some of that code. It's bad, no question about it. It makes my brain hurt. When I see it, I always get this urge to rewrite it in Perl.

      (Okay, actually, there are _three_ Perl languages. Deliberately obfuscated Perl is even more difficult to read than badly written Perl, though it tends to be interesting and impressive and even fun to read, rather than just making you want to bang your head against a rock.)

      --
      Cut that out, or I will ship you to Norilsk in a box.
  2. NOPE. by TheBlackMan · · Score: 2

    If asked for simple answer, here it is.

  3. The answer is... by oPless · · Score: 1, Insightful

    Emphatically NO

    1. Re:The answer is... by 0xdeadbeef · · Score: 2

      Paula Bean, is that you?

    2. Re:The answer is... by serviscope_minor · · Score: 1

      Dunno. Is oxdeadbeef BRILLIANT?

      --
      SJW n. One who posts facts.
    3. Re:The answer is... by serviscope_minor · · Score: 1

      Er, I meant oPless, not you obviously.

      --
      SJW n. One who posts facts.
    4. Re:The answer is... by dkleinsc · · Score: 1

      That's 'Brillant'.

      As in:
      Twas brillant, and the slithy code
      did gyrate and jingle in the cloud.
      All mimsy were the managers,
      And the dumb fools outgrave.

      Beware the Idiot, my son!
      The jaws that flap, the claws that snatch!
      Beware the Flubflub bird, and shun
      the frumious repo fetch!

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    5. Re:The answer is... by Anonymous Coward · · Score: 0

      The correct spelling given the context is "brillant".

    6. Re:The answer is... by oPless · · Score: 1

      I'm not sure how to answer that.

      I'm not entirely sure you know what question you are asking, so I'll just smile and nod. :)

  4. 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 mykepredko · · Score: 0

      Very insightful.

      Somebody with points please mod the parent up.

      myke

    2. Re:Of course by Anonymous Coward · · Score: 0

      I agree they are extremely valuable, but I actually like them.

      I find the tests are beneficial to both parties.

      A) The employer can gauge the skill of the candidate.
      B) The test can tell the candidate quite a lot about the job on offer and the interviewer.

      The time allotted is often much less than required. This will tell the employer if you panic easily, or if you are confident enough to say the task demands more time. Also look for questions that demand more information. They will want to see if you will try to provide an incorrect solution to a question that requires more info before beginning. Also impossible questions: what does error code #non-existent signify. Those that answer fail. Pepper many of those on a questionnaire and you can easily cut the wasters

      For the candidate, the questions will give an indication as to how well thought-out the selection process is - the smarter the questions the better. Simple questions like what is the purpose of an 'abstract class' is a give-away the question were simply copied without much consideration. And in my view demonstrates incompetence on the part of the interviewer.

      For me, maximum 15 questions, some trick, and write code. Something deceptively simple. eg create a person class, use interfaces/inheritance as you wish to create two specialist classes, employee, contrator. This will demostrate who can use OOP, design patterns, preference for inheritance/composition, coding style. Interpretation of spec under pressure.

      Also, allows for folks who have not done computer degree, or have degree in other field. If I'm dropped from the selection process because I don't have a degree, despite impressive resume, I don't want to work for them, as they don't have the skill to recognise talent, and depend on tick-box selection process.

    3. Re:Of course by tibit · · Score: 1

      Have you ever done a lot of "programmer" hiring? Such a test is valuable to both the employer and the employee. The employer won't waste time talking to clueless idiots. The employee will know that the employer is serious about weeding out idiots and thus having resources left to talk to people who know what the fuck they are doing. Such tests have not much to do with what most of your job is. Software engineering is a lot about design, testing, etc., but if you can't code your way out of a fizzbuzz, it doesn't matter what else you pretend to know.

      --
      A successful API design takes a mixture of software design and pedagogy.
    4. 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.

    5. Re:Of course by jittles · · Score: 1

      Have you ever done a lot of "programmer" hiring? Such a test is valuable to both the employer and the employee. The employer won't waste time talking to clueless idiots. The employee will know that the employer is serious about weeding out idiots and thus having resources left to talk to people who know what the fuck they are doing. Such tests have not much to do with what most of your job is. Software engineering is a lot about design, testing, etc., but if you can't code your way out of a fizzbuzz, it doesn't matter what else you pretend to know.

      Yep. I've done lots of programmer hiring and I can tell you that one of the worst employees I ever dealt with got a near perfect on a C test, finishing 45 questions in about 6 minutes. Some of the questions required coding. The guy was a terrible programmer, but he really knew the language. I think he missed 1 question and that was because the person who wrote the test had accidentally introduced a typo that made the "correct" answer wrong.

    6. Re:Of course by Anonymous Coward · · Score: 0

      A fizzbuzz test is perfectly fine by me when looking for a job. So is any simple actual-programming test that isn't testing knowledge of some library or esoteric features of a specific programming language rather than actual coding. Bonus points to the employer if they don't get bent out of shape by a stupid bug that you can correct when it is pointed out to you - interviews are stressful. If there is no language that you can code fizzbuzz in given a bit of time and possibly a bit of feedback, there's no reason to go further with an interview for a programming job at any level. A programmer who doesn't know about modulus, loops, output and branching isn't. Why would you be upset about an employer using a little bit of time to weed out those people who just don't belong in that interview? Isn't that what interviews are for in the first place?

    7. Re:Of course by _anomaly_ · · Score: 1

      That sounds like an extremely thorough, and effective interview process. However, on the interviewer's side, I'd bet they would have to take nerves into consideration as that sort of "evaluation" (or public humiliation, depending on how well you do under pressure) would most certainly cause a significant amount of less experienced applicants a lot of anxiety. Or maybe you just don't have any sympathy for anyone without the confidence to handle the situation.

      --
      "I have no special gift, I am only passionately curious." - Albert Einstein
    8. Re:Of course by hAckz0r · · Score: 1
      I was going to write the same but you beat me to it!

      A proper test would allow gauging of the prospective employees (#1) comprehension of the problem description, their (#2) ability to transcribe those requirements into code that solves that problem, and the (#3) efficiency at which the program actually runs. That would define a good programmer to me.

      If one deliberately defines the test to introduce some minor ambiguity into the problem description, one could better assess the persons desire to correctly understand the problem, and if they blindly code away without requesting clarification of the finer points in the description then they are not the best candidate. If you give them a resource to specifically ask questions and they don't use it (#4), then that is not a good sign. Having the assertiveness, drive, and determination to correctly analyse the problem before even coding is one of the highest qualities I would value. Think before you even start to code.

    9. Re:Of course by ZombieBraintrust · · Score: 1

      would most certainly cause a significant amount of less experienced applicants a lot of anxiety.

      Many companies are looking for experiance applicants.

    10. Re:Of course by _anomaly_ · · Score: 1

      ..and some companies may actually realize that number of years in a field, or experience, is not a good gauge for knowledge, either for or against.
      So someone that hasn't been exposed to many such stressful situations may in fact be more knowledgeable than the interviewers. However, if that's a trait you must have, performance under fire, then by all means...

      --
      "I have no special gift, I am only passionately curious." - Albert Einstein
    11. Re:Of course by MadKeithV · · Score: 1

      Yep. I've done lots of programmer hiring and I can tell you that one of the worst employees I ever dealt with got a near perfect on a C test, finishing 45 questions in about 6 minutes. Some of the questions required coding. The guy was a terrible programmer, but he really knew the language. I think he missed 1 question and that was because the person who wrote the test had accidentally introduced a typo that made the "correct" answer wrong.

      The way you just described it makes it sounds an awful lot like you were doing "language trivia" question which are well-known to be beyond totally useless, and not related to the timed coding test as implied in the question. So please, stop considering yourself a good interviewer now, and read up on what works.

    12. Re:Of course by tommeke100 · · Score: 1

      That's expensive.
      Imagine having to review 20 applicants this way.
      You're just going to get 5 developers and have them talk to you for half an hour?

    13. Re:Of course by gl4ss · · Score: 1

      That sounds like an extremely thorough, and effective interview process.

      However, on the interviewer's side, I'd bet they would have to take nerves into consideration as that sort of "evaluation" (or public humiliation, depending on how well you do under pressure) would most certainly cause a significant amount of less experienced applicants a lot of anxiety. Or maybe you just don't have any sympathy for anyone without the confidence to handle the situation.

      well, they had a product to deliver so they wanted to know how it worked, thus the need for the quizzing.

      --
      world was created 5 seconds before this post as it is.
    14. Re:Of course by tibit · · Score: 1

      It doesn't work the other way, though. You're not going to get any good programmers or software engineers who can't deal with a fizzbuzz. Sorry.

      --
      A successful API design takes a mixture of software design and pedagogy.
    15. Re:Of course by jittles · · Score: 2

      Yep. I've done lots of programmer hiring and I can tell you that one of the worst employees I ever dealt with got a near perfect on a C test, finishing 45 questions in about 6 minutes. Some of the questions required coding. The guy was a terrible programmer, but he really knew the language. I think he missed 1 question and that was because the person who wrote the test had accidentally introduced a typo that made the "correct" answer wrong.

      The way you just described it makes it sounds an awful lot like you were doing "language trivia" question which are well-known to be beyond totally useless, and not related to the timed coding test as implied in the question. So please, stop considering yourself a good interviewer now, and read up on what works.

      As I said originally, yes there was code trivia. But yes there was a timed coding portion of the test as well. And no, that test was not my choice. I am not a big fan of riddles and tests in interviews. I personally know a good developer who is terrible when put on the spot like that. You sit him at his desk, where he feels comfortable and in control and he does great. If he's put on the spot, he is a total mess. Does that mean that he isn't worth having around? No. Is it something he's working on improving? Yes. But he makes solid contributions and hopefully some day he will be able to handle that kind of stress.

    16. Re:Of course by jittles · · Score: 1

      It doesn't work the other way, though. You're not going to get any good programmers or software engineers who can't deal with a fizzbuzz. Sorry.

      And I am saying that just because they can do fizzbuzz and answer your language based questions all day like an expert doesn't make them a great programmer either. This guy liked to over complicate everything. Fizzbuzz is pretty hard to make overly complicated, and it's not a good indicator of someone who can write simple and easy to maintain code. There are people who may not be able to do FizzBuzz when put on the spot that can knock it out perfectly in a couple of minutes when they feel like thy are in control (like at their desk). Lets face it, a lot of engineering types don't do well in social situations and asking someone to do a test like this on the spot tests their social skills and confidence more than their programming ability. If the person is going to be a Field Engineer then that might be valid criteria, but that doesn't mean its valid for all programming jobs.

    17. Re:Of course by Bogtha · · Score: 1

      Yes, I'm responsible for hiring developers where I work now and at my last job. If the candidate doesn't have any appropriate sample code, I'm in favour of small sample projects that represent the kinds of things they'll be working on. But I don't think they should be timed, and I think FizzBuzz and similar are next to useless.

      Firstly, the nature of the task: multiple choice, trivia, FizzBuzz, things like that are useless. As somebody else pointed out, you can be language savvy while still being a crap developer (and vice-versa, for example if you're working in a field where IDE support is commonplace). You can't judge how good a developer is with a series of yes/no questions, or where there's a single correct algorithm to use, or where no judgement calls have to be made. That is the stuff you use to weed out the complete morons - but I don't want to weed out the complete morons, I want to weed out average developers and below.

      If you want to judge how good a developer is, you have to give them a problem where they have a fair amount of freedom to make decisions. You can see how they structure a real project, what their commit log messages are like, whether they chose to write tests, etc. It invites questions like why they chose one architectural style over another, why they chose one library over another, etc.

      How long they took to do this is irrelevant because every candidate is going to put a different amount of effort in, making I wouldn't be comparing like for like if I judged them on time.

      Furthermore, once you introduce timed tasks, you either have to use one of those really crappy web widgets and simplify your questions down so much that they are useless, or you have to bring them into the office, which is guaranteed to waste at least somebody's time.

      You want to see sample code? Fine. You want stupid timed tests? No, that's a sign of a crappy hiring process that is ill suited for finding quality developers.

      --
      Bogtha Bogtha Bogtha
    18. Re:Of course by Anonymous Coward · · Score: 0

      They probably got burned with a poor fit in the past and have figured out group interviewing the candidate is the cheapest and quickest way to weed out the ones they just can't work with.

    19. Re:Of course by buddyglass · · Score: 1

      Every other interview I've had has consisted of 4-5 developers talking to me for 30-45 minutes apiece, only without the coding portion. At this company there was the ~2 hour coding project (which didn't take up any of their peoples' time), then a one-on-one with a guy, then the group code review (which lasted maybe 45 minutes). It's also possible that if I hadn't completed the coding exercise correctly they wouldn't even have scheduled the group code review. As it was, all the "personal interaction" time was approximately equal to what I've seen at other companies that don't use any type of coding exercise.

    20. Re:Of course by buddyglass · · Score: 1

      Yeah. I got asked some questions during the "group code review" portion that I couldn't handle and failed to gracefully handle them. Basically stammered for a bit and sort of made something up. Didn't get the job. But hey, good on them for screening me out if I wasn't what they were looking for.

    21. Re:Of course by buddyglass · · Score: 1

      Side note: I find the prospect of explaining and defending code I've already written much less nerve-wracking than having to write pseudocode on a whiteboard in real-time while someone is looking over my shoulder. At least in this scenario I was able to write the code "in peace", make sure it was correct, etc.

    22. Re:Of course by BeaverCleaver · · Score: 1

      As plenty of other above have said - FizzBuzz isn't a test to see who to hire, it's a test to see who is blatantly lying about their abilities, so the panel can stop wasting time and concentrate on the good candidates. Presumably with more specific assessments of those candidates' skills.

    23. Re:Of course by egranlund · · Score: 1

      This sounds interesting. I could see this going poorly depending on the way the company approached It though.

    24. Re:Of course by DrVxD · · Score: 1

      Please thank your interviewer for me - I'm going to pinch that idea.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    25. Re:Of course by buddyglass · · Score: 1
      No problem. If you're curious, the company was/is called Uplogix. I went back through my old email to find how their HR person described the assignment and their interview process in general:

      As part of the interview we will give you a programming assignment in Java that covers basic/core programming concepts. We have a machine with emacs, eclipse, vi, pico, and notepad available. Without giving too much away about the programming assignment, it is similar to an entry level CS class homework assignment. The assignment is completely open book. You can use google. If there is a particular book reference that you use at home feel free to bring it. We are not trying to intimidate people and we know this can be stressful, but it has proved to be very useful in providing a lot of information in a short amount of time (ie. a picture is worth a thousand words).

      Some points I would stress if you're going to implement this:

      1. Don't make it highly time-constrained. Allow people to "do it right" (whatever that means to them) and then verify that their vision of "doing it right" matches yours.
      2. Don't test their knowledge of a specific IDE unless that's really important to you. If you're hiring Java devs then give the candidate a machine with Eclipse, IntelliJ and NetBeans and let him use whichever he prefers.
      3. Let him use google, stackoverflow, etc. as much as he wants. Corollary: be sure to design the exercise such that it isn't trivial to google up a ready-made solution.
      4. Make sure your exercise is as unambiguous as possible unless you're trying to test how the candidate responds to ambiguous specifications. You don't want to discard someone because your instructions were crap and he understood them differently than your interviewers.

    26. Re:Of course by DrVxD · · Score: 1

      Thanks for the info - much appreciated.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    27. Re:Of course by BonThomme · · Score: 1

      no, they're looking for cheap ones

  5. No undergraduate level stuff for me by loufoque · · Score: 2, Insightful

    I personally discard any company that tests undergraduate-level stuff.
    This kind of thing is completely irrelevant to the skills of a senior engineer.

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

    2. Re:No undergraduate level stuff for me by nedlohs · · Score: 2, Informative

      You really think that would be for a senior engineer position?

      Unless it's an ungraduate assignment from a very specialized course it's going to be simple to do in less than 45 minutes. The only assignment I have done or set at an undergraduate level that wouldn't have been so was the "write a ray tracer" from a computer graphics course - and only because I don't remember the math off the top my head (it almost writes itself once you have that), I'd need to reread some stuff first.

      Is it going to "indicate a better programmer", No. Is it going to indicate a "better employee", No. It probably will weed a large number of the really bad programmers though. And sure it'll cull a few potentially good employees , that might be worth culling those really bad ones though.

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

    4. Re:No undergraduate level stuff for me by tibit · · Score: 2

      I don't care how senior you are. It's like saying that an experienced transplant surgeon doesn't need to know how to make an injection. Yeah, in their job probably they'll never inject anyone, but still, you need to know it just in case. Shit sometimes goes wrong. It's a wrong analogy! As for a senior software engineer: how on earth can you pretend to be able to design, you know, software, if you don't demonstrably have a clue how to, you know, make software for a very simple task? Such "senior engineers" will proceed to design a 100kloc framework for a fizzbuzz. Because, you know, it needs to fulfill whatever buzzword quota they came up with.

      --
      A successful API design takes a mixture of software design and pedagogy.
    5. Re:No undergraduate level stuff for me by tibit · · Score: 1

      Yep. Their teams end up wasting man years doing simple shit that can be done in a week, and can be thrown away and redone when needs change drastically enough to warrant it.

      --
      A successful API design takes a mixture of software design and pedagogy.
    6. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      If you only care about those basic things, you hire a junior engineer.
      When you pay 3 to 4 times more for a senior engineer, you do it because the person has significant experience and his achievements show he knows his field probably better than your interviewers.

      If you were to hire a worldwide known Linux kernel expert, would you make him take a stupid C programming test?

    7. Re:No undergraduate level stuff for me by hackula · · Score: 2

      Irrelevant? A senior engineer should be able to knock this stuff out no problem. If they cannot, then there is no way they would be able to do the job. Of course, no need to pick the obscure stuff that no one remembers, but a few basic problems just to make sure they can write some code is essential. After that, then you can discuss the intricacies of whatever specialty they happen to have. Conversation seems to draw out the advanced skills much better, however, there are loads of "expert" coders out there who could not code their way out of wet paper bag.

    8. Re:No undergraduate level stuff for me by Anonymous Coward · · Score: 0

      Just like if you would have test mental calculation skill of Albert Einstein. Dah!

    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 0xdeadbeef · · Score: 2

      Basic competence is irrelevant?

      Paging Dunning-Kruger. Precious snowflake on line one.

    11. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      A senior software engineer will not be significantly better than a junior one at solving trivial problems.
      If you want to evaluate his skill, ask him to do something that's relevant to the added value that's making you hire him in the first place.

      I've seen interviewers ask experienced applicants with PhD in various fields of computer science to write the algorithm for quick sort on a whiteboard. Many people can't do it; after all, why would you know by heart an algorithm irrelevant to your domain that you never implement since it's already been done so many times? Even if you remember the principle it's the kind of thing that's difficult to re-code on a whiteboard. Young graduates have a better chance at this, since they just studied it as part of undergraduate computer science class.
      It's entirely useless and a waste of everybody's time.

    12. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      Of course they can, but you have to understand that people have limited time (since time is money), and since this is ultimately useless because it says nothing about the actual value of the person you want to hire (if you only need him to do that level of things, why not hire someone cheaper instead), the applicant would rather not waste his time with this.
      Applicants seek jobs where their particular skills are put to use, so that they can justify asking for high salaries.

    13. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      What's relevant is whether the person is a good fit to do what you need him to do.
      Testing whether he's good at unrelated basic stuff is indeed irrelevant to whether he has the skills needed for your project.

    14. Re:No undergraduate level stuff for me by loufoque · · Score: 0

      If you want to know whether the CV is true, you can contract a company specialized in verifying background (or have it done by your own HR people). They'll call whatever previous employer he may have had, or verify accountability of whatever company he may have owned. Googling people can also be useful, especially for software-related jobs.

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

    16. Re:No undergraduate level stuff for me by qwijibo · · Score: 2

      I use the programming exercise to determine if the person's computer skills match their claimed skills. From the resume and interview, I should have a good impression of what the person has done and could do. If I describe the problem to them and they say they can easily do it in 10-20 minutes, that's a good opportunity to nut up or shut up. The better they do, the more confidence I have in everything else they told me. If they claim lots of experience and are uncomfortable being put in front of a computer, they're not the kind of person I want to hire.

    17. Re:No undergraduate level stuff for me by qwijibo · · Score: 1

      The programming exercise can be useful when there's many ways to solve the problem. I specifically use one that, depending on the person's approach, could run in linear or exponential time based on the number of input records. In either case, I know that they gravitate towards efficient solutions or can have a followup discussion on what they would do differently in input data size were larger and execution time were more critical. In either case, it tells me something useful about the candidate and shows how comfortable they are in front of a computer. It's amazing how many people will apply for senior positions who act like the computer is an evil and frightening black box.

    18. Re:No undergraduate level stuff for me by fatphil · · Score: 2

      > If you want to evaluate his skill, ask him to do something that's relevant to the added value that's making you hire him in the first place.

      This is good.

      At one interview, I got asked to review a page of real code from their current development tree. Asked for three to five things, I spotted half a dozen major things, the same number of minor things, and a few cosmetic ones too.

      I was on my first company social later that evening.

      --
      Also FatPhil on SoylentNews, id 863
    19. 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.

    20. Re:No undergraduate level stuff for me by beelsebob · · Score: 2

      And that will cost £1000, while asking the guy to do a 45 minute test before a phone interview will cost about 5 minutes of my time, which is no where close to £1000.

    21. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      Except your interview only shows he's at the BSc level, which doesn't say much at all.
      Would you also like to test if he knows his multiplication tables?

    22. Re:No undergraduate level stuff for me by seebs · · Score: 1

      That... Just ain't so, really. I am relatively senior in some ways, I certainly do stuff that no one would dream of asking a newbie to do.

      But at the end of the day, sometimes I have to get a thing done, and that includes doing some of the "undergraduate-level" stuff. And the funny thing is, I'm actually pretty sucky at that stuff. I can get the mutex locking right, but the code won't compile because I changed the name of a variable halfway through writing a function. (Yes, really. I am trying to get an appointment for screening for dyslexia, since it turns out my failure modes are symptomatic.)

      And knowing that I have trouble with that stuff is relevant if you want to know how well I can actually perform a job... It isn't the only relevant thing, but it sure as heck isn't irrelevant.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    23. Re:No undergraduate level stuff for me by Anonymous Coward · · Score: 0

      It's that it doesn't test at the level of the candidate. If you test me on low level stuff I probably haven't used it in a while. I don't want to sit there digging up how quicksort works again. Last algorithm I worked on needed expander graphs. That's the stuff that's more fresh in my mind.

    24. Re:No undergraduate level stuff for me by beelsebob · · Score: 1

      Which is why you follow up the 45 minute test with a phone interview (which costs more of my time, so I want to do on only people I know are at least BSc level), and that again followed up by a real interview (which costs me yet more time, so I want to do on only people I know can talk reasonably about code design to me over the phone).

    25. Re:No undergraduate level stuff for me by TheSpoom · · Score: 1

      It says they're able to code. Once this is established, the rest can be checked in the next stage interview. Running this test saves time and money because it prevents the obviously incompetent from getting to the next stage. I don't see the problem here. Perhaps your company has unlimited time and money?

      By the way, I also would filter you out as you seem to be difficult to work with.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    26. Re:No undergraduate level stuff for me by CCarrot · · Score: 1

      If you only care about those basic things, you hire a junior engineer.
      When you pay 3 to 4 times more for a senior engineer, you do it because the person has significant experience and his achievements show he knows his field probably better than your interviewers.

      If you were to hire a worldwide known Linux kernel expert, would you make him take a stupid C programming test?

      Oh, so what, English professors don't enjoy doing crossword puzzles?

      C'mon, it's a quick verification test, to show that you really do know your shit. If it bugs you enough, then flex your awesome programmatic muscles and code three or four separate solutions in the time given, all properly commented and with associated documentation...that'll shut them up, won't it?

      CV's are *often* pumped up past the point of recognition, and they really have no way of knowing how much direct coding involvement you had with anything you put on there. Even if you put 'senior programmer for X and Y', well, I've known companies where the 'senior' programmer on a project really acted more like a project manager, and rarely touched or generated any code themselves. This is a quick, measurable check for them, to be sure you have the skills you claim to have, and it should be a fun little exercise for you.

      Just walking away comes across as either cowardly or childish. If you see such minor tasks as 'beneath' you somehow, then it probably doesn't bode well for your attitude in the workplace, either.

      --
      "I love animals! Some are cute, others are tasty, what's not to like?" - Betsy Schroeder, Jeopardy contestant
    27. Re:No undergraduate level stuff for me by bobaferret · · Score: 1

      Alas, I lack the mod points this comment so richly deserves.

    28. Re:No undergraduate level stuff for me by mlk · · Score: 1

      I disagree. The quality of code (even for a simple test) between someone new to the field and some one experienced is noticeable.

      --
      Wow, I should not post when knackered.
    29. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      You only interview people with significant credentials.
      If someone has 10 years of experience doing bleeding edge stuff, asking him "can you spend a few days of your time, that is worth $1000/day, to do something trivial and entirely useless for free, just to see if you're at least as good as a college graduate?" is not really a good idea.

      It's not like experienced people have problems finding jobs anyway. A student out of university needs to find a job, but someone with experience already has a job, and is usually just scouting to find exciting new projects elsewhere. The difficulty is usually for the company to find really competent people, not the other way around, so they should try to be as nice and attractive as possible.
      If you make applicants do demeaning tasks, you're only repelling them.

    30. Re:No undergraduate level stuff for me by TheSpoom · · Score: 1

      A few days? Did you read the test they were advocating? For a qualified candidate, it would take half an hour, max (and for someone who already knows fizzbuzz, more like two minutes). Besides, credentials, as has been mentioned in this thread quite a bit already, don't always indicate quality. And as you mention, the people with "10 years of experience doing bleeding edge stuff" are often not the ones easily available on the job market. If you're a big company and have the resources, absolutely spend the time to try to attract those people if they're necessary. All too often, though, they're either not necessary, too expensive, or simply unavailable, and so companies have to deal with the job market as it exists right now, which means testing promising candidates that apply, whether they have a Masters in CS or simply a high school diploma with some interesting work on their resume.

      There is always going to be grunt work, and you're not always going to be able to just pass it off to a "junior developer". Sometimes you have to do the grunt work to get to the more interesting work. If you consider this "below you", again, I consider you too much trouble.

      Fizzbuzz is far from demeaning. If I was interviewing with a company and they said "here's a fizzbuzz test", I would consider it an indicator that the company's development side knows what they're doing, and type out the ten lines of code without hesitation.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    31. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      Being good at large-scale software development or at writing robust device drivers will not make you better at doing trivial programming tasks. You must be a clueless manager to think that because someone is a better programmer he can piss code 4 times faster.
      The problem lies in the fact that those tests do not highlight your skills at all. Since whether you'll go to next stage of the hire or not depends on how good you did at that test, this is really an issue. The most important thing that decides whether a software developer will choose to work for you is whether he feels valuable and useful to your projects. If you're asking him to do monkey coding, he'll just go look elsewhere.

    32. Re:No undergraduate level stuff for me by TheGratefulNet · · Score: 1

      spot on.

      because I don't walk around with exact code order of how to remove a node from a tree, am I a lesser candidate?

      if you think so, you have zero idea what software engineering is about.

      before the web and internet, we did have books even though it was less convenient to search them for model algs. but we always had cookbooks of some kind to refer to.

      in hardware, we have data sheets with pinouts, voltage levels, timing, etc. should I carry that stuff around in my head? should I remember the 3rd parm to some tcp layer function call if I have not used it in years and have used wrappers (stevens book stuff) instead?

      what's also interesting is that, for some people, the 'cache' that they keep in their head changes a lot. when I'm doing hardware, I will have pin-outs in my head. I will shift-out (lol) a lot of software style data (apis, stuff like that) when I'm focused on hardware. and when I shift back to sw, I will forget if the output is pin3 or pin4. is this a 7/14 style ground/power or some other config? I tend to discard details that I know are easily looked up. cache space is precious and its always having data pushed out when more recent stuff needs the space.

      not everyone can store accumulated data losslessly in their brains.

      to judge talent and ability based on memory, THAT is a huge mistake!

      --

      --
      "It is now safe to switch off your computer."
    33. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      You usually need at least 1,000 to 10,000 lines of code to have any idea about the quality of the code you're reviewing.
      That doesn't seem like a reasonable amount for an interview.

      If you want to review his code prior to the hire, just ask him what open-source projects he's contributed to.

    34. Re:No undergraduate level stuff for me by TheGratefulNet · · Score: 1

      my counter to you: go to a pharmacist and start testing them on undergrad chemistry or biology. they'll fail. probably they'll fail badly. but you still go to them to get your scripts filled.

      go to a doctor and ask HIM chem and bio questions. he'll fail. but you'll still go to get shots from him, even surgery if needed. but he won't remember 50% or more of his basic stuff. its a learn-and-forget process for MUCH of our college material.

      talk to a lawyer, see if he remembers all the things he studied. I bet if you tried, you could find detail that 'he should know' and yet he won't.

      I could go on and on. the point is that testing for 'this is old stuff, you should KNOW it!' is a bullshit idea and does not relate to the real world.

      --

      --
      "It is now safe to switch off your computer."
    35. Re:No undergraduate level stuff for me by gregmac · · Score: 2

      You've obviously never been involved in hiring developers.

      There are a *lot* of bad developers out there. So many it's sickening. Bad developers that have resumes that look like they can do stuff. They may even call themselves senior. They've worked on a team that has successfully produced a product (or at least at a company that has).

      One of the memorable interviews I did with was via a referral, and it worked out that I went straight to an in-person interview (skipping my usual weeding-out process). This person had a decent CV. They worked on a project designing a military helicopter training simulator, which basically involved wiring a game (written by another team) up to a 4-person helicopter mock-up that included pieces of real equipment (radios, navigation, etc) so the actual equipment displayed and could interact with the game. I've always had a personal fascination with interfacing real-world hardware with software (and have done lots of industrial control integration), so I had a ton of questions.

      Well, despite trying for ~15 minutes, I could not figure out what this person actually had specifically accomplished. The team had successfully built this thing from what I could tell, but this person could not explain to me what *they* actually did. I asked in many different ways, including very bluntly like "What was some piece of functionality/code you wrote yourself?" and the person "could not remember" (they worked there for over a year, and had left less than a year prior). The most technical thing they could say about the integration was that it "involved UDP".. Seriously.

      --
      Speak before you think
    36. Re:No undergraduate level stuff for me by Anonymous Coward · · Score: 0

      I understand what he's getting at. I knew someone who was working on their masters for both Physics and Math. They could do very complicated calculus, but not having done advanced Algebra in a LONG time, it took them a bit to help me with a math question.

      A senior position isn't based on what they have memorized, but on what they understand and can apply. If you want something with great memory, ask a computer.

    37. Re:No undergraduate level stuff for me by Anonymous Coward · · Score: 0

      If you only care about those basic things, you hire a junior engineer.
      When you pay 3 to 4 times more for a senior engineer, you do it because the person has significant experience and his achievements show he knows his field probably better than your interviewers.

      If you were to hire a worldwide known Linux kernel expert, would you make him take a stupid C programming test?

      This may come as a surprise to you, Mr. "Senior Engineer", but people often lie^H^H^Hexaggerate on their resumes.

    38. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      If there is no one on the job market for the job, you outsource, or you delay the project until you find someone.

      Fizzbuzz is not even a test of undergraduate level. More like a test of "do you know a programming language".
      This doesn't even take a minute to do, I was talking of actual tests.

      Companies that offer higher salaries than the average typically require work that may span several days, and which does indeed have a bit of undergraduate-level stuff in it (data structures and related algorithms, basic parallel programming and synchronization), which has nothing to do with real-world code.
      I do not mind doing grunt work if that's useful to the project being developed. Alas, I spend a lot of time doing code refactoring or maintaining the building and testing infrastructure, which is hardly exciting, but necessary.
      What I do mind is being evaluated on the quality of my grunt work.

      I remember quite a few years ago out of university I applied for a job where they asked me to write a program that returned the i-th number that satisfied a given predicate, with i bounded, with the goal of making the program as fast as possible (the predicate in question had certain analytical properties that were to be used to make the search faster). Since there were few numbers satisfying that predicate within the specified bounds, I just made a program that returned the i-th value in a pre-computed table. In a real world situation, for the problem as phrased, this is clearly the best solution: very short development time, maximum performance. But this is not what the test was for, so I got rejected.
      Tests are just stupid. Use real-world experience for evaluation.

    39. Re:No undergraduate level stuff for me by mlk · · Score: 1

      You usually need at least 1,000 to 10,000 lines of code to have any idea about the quality of the code you're reviewing.

      Based on experience interviewing I'd have to strongly disagree with that. You can't get a full idea on them, but you can get a very good idea on what they feel is good programming practices.
      The amount of utter utter tosh we received for a senior position was just astounding. May did not write tests get but bigged up their TDD experience, add on to that the number of people who feel "production quality" code means throwing everything into a single class and using Strings to hold all their data.

      It also offers a jumping board for questions in the interview.

      If you want to review his code prior to the hire, just ask him what open-source projects he's contributed to.

      We ask (and look about) for that as well, but it can be hard to work out what the applicant actually did, assuming they have worked on OSS projects. Plus by giving a test we have a common understanding of the problem space as we have all done the test where as something in an OSS project that may look ugly to us might simply be as we don't have the required experience in the problem space.
      Finally you have speed to evaluate. Digging through a OSS source base for the work that the applicant has done is hard and time consuming. Reading a reasonably small known problem where all the work is the applicants is quick, and given a short amount of time you will have a set of instant "No"s (like the test folder being empty).

      --
      Wow, I should not post when knackered.
    40. Re:No undergraduate level stuff for me by Impy+the+Impiuos+Imp · · Score: 1

      "sloppy-assed" should be hyphenated.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    41. Re:No undergraduate level stuff for me by n7ytd · · Score: 2

      You really think that would be for a senior engineer position?

      Unless it's an ungraduate assignment from a very specialized course it's going to be simple to do in less than 45 minutes.

      But the fizzbuzz test isn't the only question to ask, and for anyone who's interviewing as a potential programmer, it should only take 5 minutes of interview time. The purpose is to avoid wasting anyone's time with the follow-up questions.

      Yes, the fizzbuzz test is trivial for a senior engineer, but it is still valuable because a large portion of "senior engineers" will still fail it. There is a difference between engineers who have mastered the trivial and moved on to bigger things and those who have scraped by the trivial, never quite understanding it.

      The last time I was involved in a round of hiring, they asked me to come up with 3 technical questions that we e-mailed to the candidates the week before the on-site, asking them to bring their solution with them to the interview. I had mixed feelings about the idea, since I usually don't code for companies that don't pay me, but we wanted to reduce the intimidation that some people have in interviews and allow them time to do their best work on their home turf. I wrote three questions to be solved with C: reverse a string given at the command line, print the prime numbers between 1 to 100, print an array of 10 integers in sorted order--that kind of stuff. I included my e-mail address and invited them to contact me with any questions. Fizzbuzz was given as the opening technical question at the on-site. While they pounded out their answer to fizzbuzz, we used that time to review their solutions to the other questions.

      From just these 4 questions, it was amazing what we could learn. Some of the candidates didn't bring anything with them to the interview. Some asked for more time, as one week wasn't long enough to solve such complicated problems. Some solved the wrong problem, or "didn't understand the question", even though they were invited to contact us with any questions. Any of these was a no-hire vote from me.

      We had one student who was very nervous and kept apologizing that this was his very first job interview, ever. That one we took a little more time to coach and encourage, inviting him to come see us again once he'd finished some sophomore-level coursework. How his resume got that far is yet another testament to the absurdity of requiring HR review of technical resumes.

      This was for an opening that was advertised as having at least 5 years experience. So while not exactly a senior level position, it was not entry-level either.

      Those who finished the fizzbuzz test in under 20 minutes (I kid you not) and had completed passable solutions to the other 3 questions moved on to more interesting questions. Those who didn't, the interview basically ended right there. We continued to talk with them as long as they wanted, but often some of the people on our side of the table excused themselves for other things.

      The programming tests did their job; they weeded out the resume padders, the people who couldn't program or use Google, and those who couldn't follow instructions or ask for help when stuck. Did we miss out on some qualified people? Maybe; we might have missed some sharp people, but we were in a business, not a deep-thinkers' club. We didn't need more smart people who can't do simple things.

    42. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      I have hired several, though I use a peculiar screening process.
      The company I own works a lot with a public research lab; we often hire people that have demonstrated good skills at internships, postdoctoral or engineer work at the lab.

    43. Re:No undergraduate level stuff for me by n7ytd · · Score: 1

      A senior software engineer will not be significantly better than a junior one at solving trivial problems.
      If you want to evaluate his skill, ask him to do something that's relevant to the added value that's making you hire him in the first place.

      I've seen interviewers ask experienced applicants with PhD in various fields of computer science to write the algorithm for quick sort on a whiteboard. Many people can't do it; after all, why would you know by heart an algorithm irrelevant to your domain that you never implement since it's already been done so many times? Even if you remember the principle it's the kind of thing that's difficult to re-code on a whiteboard. Young graduates have a better chance at this, since they just studied it as part of undergraduate computer science class.
      It's entirely useless and a waste of everybody's time.

      Yes, it is important to gauge the interview questions to the level of work that will be expected of the potential hire. One of my pet peeves is interviewers who ask pointless questions or brainteasers, then sit back smugly and wait to see if the person being interviewed thinks the same or has seen this particular brainteaser before.

    44. Re:No undergraduate level stuff for me by FatAlb3rt · · Score: 1

      Uh huh. Because I've never had a background screening company call me as a reference *after* the applicant (my friend) told me he had received an offer.

    45. Re:No undergraduate level stuff for me by beelsebob · · Score: 1

      You only interview people with significant credentials.

      You've never interviewed people clearly. The number of people claiming to have done all kinds of things they've never done on their CV is *way* too high to interview people who simply claim to have good credentials.

      If someone has 10 years of experience doing bleeding edge stuff, asking him "can you spend a few days of your time, that is worth $1000/day, to do something trivial and entirely useless for free, just to see if you're at least as good as a college graduate?" is not really a good idea.

      Who said anything about "a few days of your time" – we're talking about a 45 minute test here...

    46. Re:No undergraduate level stuff for me by CCarrot · · Score: 1

      Being good at large-scale software development or at writing robust device drivers will not make you better at doing trivial programming tasks. You must be a clueless manager to think that because someone is a better programmer he can piss code 4 times faster.
      The problem lies in the fact that those tests do not highlight your skills at all. Since whether you'll go to next stage of the hire or not depends on how good you did at that test, this is really an issue. The most important thing that decides whether a software developer will choose to work for you is whether he feels valuable and useful to your projects. If you're asking him to do monkey coding, he'll just go look elsewhere.

      Yet I'm sure there are 'senior' programmers (at least on their CV) out there who simply can't parse so-called 'monkey' coding. Not so good if one of the duties of the job they're applying for is to oversee coding output from junior programmers. It's true that faster programming does not equal better programming (especially if one sacrifices thorough commenting and documentation for speed), however such simple skill tests with very generous time frames are a useful check that the prospective candidate's knowledge isn't all academic or focused in one area, that they're still able to step back and apply basic coding skills to a simple problem, even if they're a bit rusty. If the interviewers are asking for fully optimized code within five minutes, or only have a single solution in mind and won't accept alternate working solutions: well, do you really want to work there in that case?

      As for the large scale project development skills...sounds like you're talking more about project management and integration ability. If that's what they're hiring you to do, and they don't actually expect you to see or work directly with code, then they probably wouldn't opt to include this test. They should instead have some situational questions: "what would you do if...?", "how would you approach this personnel problem?" or "How would you apportion resources if this happened?"

      Overall, I see this as a quick way to avoid hiring PHB's, if the interviewers use it correctly. It shows that the candidate didn't just learn a bunch of buzzwords to support their CV, and it proves that they have the mental flexibility to step back from what they do every day and dig back into that undergraduate course material to produce something simple again. By no means should this be the be-all or end-all of the interview process, it should simply be one checkbox in the list of evaluation criteria.

      --
      "I love animals! Some are cute, others are tasty, what's not to like?" - Betsy Schroeder, Jeopardy contestant
    47. Re:No undergraduate level stuff for me by tibit · · Score: 1

      I wouldn't recall a quicksort either (I don't have a name to algorithm link in my head), but that's besides the point. Given an algorithm, show me the code, or show me how you analyze the algorithm. For fizzbuzz, the algorithm is pretty much there in the problem description, you can't get more obvious than that.

      Computer science offers us a bunch of wonderful mathematical frameworks that aid in analysis of stuff we do every day. If you actually use this skill and keep it current, you should, given your experience, pretty much look at the code/algorithm and tell in a minute or two how computationally expensive it is, what constant factors might be important given some alternatives, etc. You don't learn it in school to promptly forget it. If you have a PhD in software engineering or computer science, you better knew that stuff very damn well. Anyone advocating 50 XML roundtrips for a simple web-based transaction obviously forgot everything they learned in school. And then your employees hate such a system, your customers hate it, your support people hate it, and your IT costs go through the roof as you have to throw servers at a problem that would run fine on a PC from 15 years ago.

      --
      A successful API design takes a mixture of software design and pedagogy.
    48. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      brainteasers can be cool though.

    49. Re:No undergraduate level stuff for me by tibit · · Score: 1

      Removing a node from a tree in software engineering is akin to putting together a low-spec current source with an op-amp in electrical engineering. You may not have it in your head, but you pretty damn well should derive it from whatever basic principles, given a couple of minutes of time. You should also be able to reason about the limitations and pitfalls of whatever approach you've taken. I'm not asking for exact code to anything, you miss my point completely. I agree about the cache in your head, but again, it's beside the point.

      --
      A successful API design takes a mixture of software design and pedagogy.
    50. Re:No undergraduate level stuff for me by tibit · · Score: 1

      Brainteasers are pointless, but only if they are the common sort that relies on preconceived notions. A good brainteaser clearly defines the problem space, and doesn't have you jogging your memory for similar ones in search for a solution. It's self-contained and doesn't involve trickery.

      --
      A successful API design takes a mixture of software design and pedagogy.
    51. Re:No undergraduate level stuff for me by nedlohs · · Score: 1

      Exactly it's a "weed out the dullards" test. Sure you are going to lose some good people at that step (whether they find it so demeaning they walk out as the start of this thread seemed to state, or they are don't know that language but I'll learn it 2 days and be better than most experts types) but that's the case with whatever criteria you are selecting on.

      I don't hire programmers, but I hire sysadmins and there are always people applying who don't actually know anything they put in their resume, I do work with programmers, and I've seen a few who were complete crap at programming (years later the developers are still dealing with the crap they managed to get into the code base - mind you that's also the senior developers and management's fault for not reviewing it closely enough when it was first added) but who seemed to do ok in interviews.

    52. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      By large-scale software development I meant doing software development over large code bases.
      It is significantly different to work on a standalone toy project than to work on millions of lines of code with many other people.

    53. Re:No undergraduate level stuff for me by TheSpoom · · Score: 1

      I think likely your work environment and a lot of the siblings' are quite different. A lot of us work in smaller companies that need things done quickly, and those companies often don't have the resources to outsource everything (at high levels, it gets quite expensive quickly). There's a balance to be struck, and to strike that balance, sometimes you can't hire the absolute best, world-class developer, you have to hire the good, perhaps a little new, but productive developer. This latter person's skills can be verified with a test.

      Essentially I disagree with your assertion that tests are "completely irrelevant to the skills of a senior engineer"; the smaller tests validate that a candidate has the skills of a junior developer, and more in-depth tests validate higher skills. Trust is earned. By the way, I would have no problem paying for the candidate's time to do a higher-level test (I would probably do this if the test was going to take more than an hour or two).

      Sounds like you weren't given clear expectations on your test. That's not your problem, that's your previous potential employer's problem. It doesn't say anything about the validity of tests when given with clear expectations.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    54. Re:No undergraduate level stuff for me by tibit · · Score: 1

      Engineers are almost like lawyers. A senior lawyer is still doing pretty much the same thing as a junior one, just that he has more experience. Same goes for engineers, except that eventually things degenerate into high management where people think they are absolved from thinking (apparently). In the end you still solve problems, and you need all the tools in your toolbox. If you've forgotten basic CS, there's no way you can properly evaluate code, system design, or even properly chose tools for the job (hint: MS research has developed F# for a reason). The proof is in the pudding: people who are bad at the basics will do things in the most awkward way possible, no matter how high on the ladder they are.

      You must understand that I'm talking about things that you actually need day-in, day-out in your job. Sure a pharmacist may not need much undergrad chemistry or biology, it's pretty useless in their job at any level, no matter if you're just starting out or not! A pharmacist is not a drug developer, where you need more of biochemistry. In case of a lawyer, there's specialization, but still the basics apply in their job even when they are senior, so you're quite wrong there. Laywers learn a lot of useless crap like legal system history, various disciplines of law that they won't practice, etc. Same as an electrical engineer may not be up to snuff on, say, basic mechanics (statics and dynamics), or chemistry, or some niche stuff like IC design -- it's simply not his area. But an EE needs to be pretty damn well up to snuff on basic circuit analysis, because that's what he'll need in any area of EE. He'll need understanding of statistics and probability if he does QA/testing. And so on. An effective guy with lots of experience, I'd expect, will be so much "beyond" the basics, that he should be able to do the basic calculations as a back-of-the-envelope or mental exercise. He should have a feel for orders of magnitude, and how simple systems scale (you increase x 10 times, but y shrinks only 3 times, etc).

      --
      A successful API design takes a mixture of software design and pedagogy.
    55. Re:No undergraduate level stuff for me by CCarrot · · Score: 1

      By large-scale software development I meant doing software development over large code bases.
      It is significantly different to work on a standalone toy project than to work on millions of lines of code with many other people.

      Sorry, my misunderstanding. :)

      I am curious, though: how is it different (other than rigorous standardization of interfaces?) Those millions of lines of code are still written one line / one module / one object at a time, are they not? Really curious, because I don't code for work, just for play sometimes. I do have a CS undergraduate degree, but my career went in other directions...

      I can see how maybe having the ability to quickly track down and correct problem areas in a huge volume of code would be a valued skill for a senior programmer, one that perhaps wouldn't involve a lot of base code generation, just good troubleshooting and logic skills. And the ability to puzzle out someone else's spaghetti code, of course :)

      --
      "I love animals! Some are cute, others are tasty, what's not to like?" - Betsy Schroeder, Jeopardy contestant
    56. Re:No undergraduate level stuff for me by 0xdeadbeef · · Score: 3, Insightful

      And I understand the pompous arrogance that motivates his feigned ignorance at the purpose of fizzbuzz tests. For every apocryphal story of "zomg they asked me to write quicksort from memory!" there are hundreds of actual examples of people with impressive credentials who can't even handle modulo arithmetic or linked lists or whatever trivial concept most competent programmers know reflexively. I know, early in my career I graded the damn things, and flunked several people with Masters degrees and many people with years of experience. Never failed a PhD's test, but I did witness one guy who stormed out of the interview when asked to take one. Buh-bye, cupcake!

      No one is above this. Anyone who believes they are too special to take it is either so completely ignorant of the industry and the caliber of applicants that they won't perform well in a business setting, or, more likely, they are aware of their own shortcomings and are putting on a show to maintain face and self-esteem. Competent people use them as an opportunity to relax and maybe show off a little.

      Seriously, refusing a fizzbuzz test for a programming job is like applying at the DEA and refusing the mandatory drug test. I don't care how you feel about it, you're a fucking a moron to think you could ever get around it.

    57. Re:No undergraduate level stuff for me by Anonymous Coward · · Score: 0

      >Who said anything about "a few days of your time" – we're talking about a 45 minute test here...

      Well, that's how long loufoque estimates it would take him to finish fizzbuzz, I guess...

    58. Re:No undergraduate level stuff for me by Jmc23 · · Score: 1
      Oh, I don't know about that. I haven't had any computer science training, frankly my brain starts to bleed just looking at the syntax of most programming languages. However, when implementing sort in Lisp (yes, lisp has sort, just I couldn't understand destructive functions) the implementation I came up with in a short period of time was an in-place quick sort algorithm.

      I think it's less about whether you are familiar with an implementation and more about how you think about decomposing problems.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    59. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      I personally find it very difficult to write code on whiteboards (or even paper).
      Sorting algorithms are definitely not terribly difficult per se (graph stuff is usually worse, and is still undergraduate level), but it's not a walk in the park either, and can be difficult when it's entirely unexpected and under stress.

    60. Re:No undergraduate level stuff for me by loufoque · · Score: 1

      It is as you say: you mostly need to quickly find your way, understand the big picture of how everything works together, understand other people's code, identify where a problem comes from and troubleshoot it, etc. Code I've seen in the industry usually has no documentation whatsoever and often disparate coding styles across modules, so you're on your own.
      You also need to be able to write software so that it's understandable by others, and if you're doing software infrastructure changes you need to make sure it is sufficiently flexible and non-intrusive so as to minimize impact on other people's code; indeed, it's easy to break stuff by doing what may look like a benign change, and the code is often so large than many refactoring efforts could not be done by hand.
      The more software becomes large and complex, the more testing becomes critical as well.

      Those are critical skills for software maintenance and bug fixing, which are a very large portion of software development, and are mostly acquired through experience.
      In my experience, new developers are not well-trained for this and are usually quite overwhelmed by large amounts of code, so much that their productivity is very low at first.

    61. Re:No undergraduate level stuff for me by Darinbob · · Score: 1

      However I interview people for senior engineer jobs who can not do this simple sort of stuff! I am not kidding. I even say that I'm trying to rate all candidates by giving the same questions and exercises and apologize if they may seem to simple. Sometimes I even believe that I'm going to make the person feel insulted by asking what "volatile" means or what a "deadlock" is, and they STILL get it wrong.

      Basically, you can not ever take the word of an applicant and you can not trust anything on the resume. It's sad but essentially there are different standards out there and what is a great employee at one company may not be good enough for your company. Too often the person was only peripherally related to the interesting project they listed on the resume or they list every language they've ever used.

      And what really sucks is that people who tell the truth on the resumes and who aren't as gifted at self promotion may be overlooked because they don't stand out.

    62. Re:No undergraduate level stuff for me by sydneyfong · · Score: 1

      The meaning of deadlocks is clear, but I'm not sure "volatile" has any specific meaning, it seems language specific.

      --
      Don't quote me on this.
    63. Re:No undergraduate level stuff for me by Darinbob · · Score: 1

      It is language specific.

    64. Re:No undergraduate level stuff for me by chrismcb · · Score: 1

      Are you saying a senior engineer shouldn't bother to know this undergraduate level stuff?
      That is kind of like saying you are a mathematician, but you won't bother with anyone who asks you to add 2 and 2
      Perhaps you think actually writing code is beneath you. And maybe you have your junior coders doing this kind of grunt work. But how do you know if they are doing it right?

    65. Re:No undergraduate level stuff for me by chrismcb · · Score: 1

      Except your interview only shows he's at the BSc level, which doesn't say much at all.

      Actually it says a LOT. The thing is MOST candidates are NOT at that level. So it tells us, this candidate is worth interviewing more thoroughly. And that is very important.

    66. Re:No undergraduate level stuff for me by chrismcb · · Score: 1

      Tests are just stupid. Use real-world experience for evaluation.

      Tests are not stupid. The test that is being talked about isn't about evaluating someone for employment, it is about evaluating someone to CONTINUE the interview.
      Ignoring the fact that using real-world experience is nearly impossible in a 45 minute phone conversation, or even a half day of interviews. The problem is a ton of people can't code. Even when they think they can. You don't hire someone because they can do fizzbuzz, but you normally don't bother interviewing someone who can't do fizzbuzz.

    67. Re:No undergraduate level stuff for me by electrosoccertux · · Score: 1

      can you explain these things (algo's and data sctructures) with an example real world scenario of sufficient complexity to be a valid test of competence?
      I'm an embedded developer, finding myself headed towards higher level development, and have no formal training on these "data structures" and "algorithms". Most textbooks have worthless stuff like an array list with a sort function. In C, I presume this would be an add, remove, sort function to a malloc'd structure?

    68. Re:No undergraduate level stuff for me by electrosoccertux · · Score: 1

      how does not knowing quick-sort make one incompetent?

    69. Re:No undergraduate level stuff for me by chrismcb · · Score: 1

      A senior software engineer will not be significantly better than a junior one at solving trivial problems.

      That isn't relevant. But a senior software engineer should be able to solve the trivial problems. IF they can't don't hire them. IF they can, then ask them to do something relevant to the added value.
      If you want to interview a senior level person, (especially for their "added value") the question is probably going to be a bit more complicated. Rather than spend an hour on a complicated question, that this guy can't solve. Spend five minutes weeding him out on a simple question.

    70. Re:No undergraduate level stuff for me by DrVxD · · Score: 1

      I wouldn't ...

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    71. Re:No undergraduate level stuff for me by Anonymous Coward · · Score: 0

      Teamwork goes two ways.

    72. Re:No undergraduate level stuff for me by BonThomme · · Score: 1

      I completely disagree. Many years ago I was a TA for a Fortran (yeah, that long ago) for non-majors class. A lot of code crossed my desk, and most of the programs were simple and could be done in less than 100 lines. I'd do consults with the students after reviewing their (frequently dreadful) programs, and one day a program crossed my desk that was pure art (and it took less than 30 seconds to determine that). I was looking forward to talking to the student, because she needed to seriously consider changing her major. Well, after talking to her, she confessed that her CS boyfriend had 'helped' her with it, and in talking to her, the extent of the 'help' was pretty obvious, too.

    73. Re:No undergraduate level stuff for me by BonThomme · · Score: 1

      it also filters out a company who can't acknowledge their process generates a ton of false negatives

    74. Re:No undergraduate level stuff for me by sjames · · Score: 1

      And you did it without the unnecessary coding test.

      Given his performance in the Q&A, would passing the fizzbuzz test have made you hire him?

  6. just like speed writing by jehan60188 · · Score: 2

    they are as valuable as speed writing tests
    Took the GRE a year ago, and got a 0 on the writing portion since I decided to write an essay about how useless speed writing is.
    Real writing, is a very useful skill- that's when you have access to a piece of writing software that can do simple things like spell check!
    Similarly, knowing how to spit out code is not nearly as useful of a skill as knowing how to break a problem down, and decide what tools would be best for it.

    1. Re:just like speed writing by clickety6 · · Score: 1

      they are as valuable as speed writing tests Took the GRE a year ago, and got a 0 on the writing portion since I decided to write an essay about how useless speed writing is. Real writing, is a very useful skill- that's when you have access to a piece of writing software that can do simple things like spell check! Similarly, knowing how to spit out code is not nearly as useful of a skill as knowing how to break a problem down, and decide what tools would be best for it.

      Gammar Nazi recommends that you upgrade to "a piece of writing software" that can also perform simple grammar checks.

      --
      ----------------------------------- My Other Sig Is Hilarious -----------------------------------
    2. Re:just like speed writing by Anonymous Coward · · Score: 0

      they are as valuable as speed writing tests

      Speed writing tests can be very valuable when looking for a secretary. They are absolutely useless when looking for a plumber.

      For a programming job, I'd consider them useful only to weed out those who need a minute to find a key: They obviously haven't used the keyboard much, and thus can't have much programming experience. Other than that, if your programming speed is limited by your typing speed, you are either a genius or not thinking enough about what you write.

    3. Re:just like speed writing by SurfMan · · Score: 3, Funny

      Funny how you misspelled "Gammar Nazi"

    4. Re:just like speed writing by realityimpaired · · Score: 1

      The difference is that spelling and grammar are inherently important skills to be able to write clearly and effectively. You do *not* want to rely on spell check, and most good writers will turn spell check and grammar check off, at least in my experience. They'll catch mistakes on proofreading, and the more experienced writers tend to make fewer mistakes to begin with. It's specifically because of that that "speed writing" tests (as you put it) are actually useful at measuring how effective somebody is going to be. If they are able to communicate clearly, and effectively, and do it with a short period of time allotted (such that they can't proofread), then you have a pretty good measure of how efficient they will be at communicating when they do have the time given.

      The same logic applies to speed coding, I expect. Though as other posters have pointed out, it could also be used specifically with the expectation that you're going to make mistakes, so that they can ask you how you would go about correcting any bugs that arise during the interview.

    5. Re:just like speed writing by hackula · · Score: 1

      It's not typically a Swordfish style hacking challenge where someone is holding a gun to your head. These tests are supposed to be simple and the time limit should be long enough that it is not a typing challenge. Ideally you make the time limits long enough that the slowest typer and the slowest thinker could still solve the problem if they were ever going to. I give 30 minutes for really basic problems. Every person I have given it to has either completed it in about 3 minutes with zero effort, or they give up and ask if there are any jobs in marketing available (or some other move that basically lets us know they were BSing us the entire time).

    6. Re:just like speed writing by slimak · · Score: 1

      I agree that relying on spell check is bad, but I don't know a single person that turns off spell/grammar checks. I'm sure they exist, but I don't see anything wrong with spell check. Catching all typos in proofreading is difficult for any moderately long text (I'll probably have at least one in this ultra-short text). Having done technical and scientific writing for many years I still prefer LaTeX over Word with two exceptions: Word does nice enough change tracking for collaborating/revising and spell check saves a bit of time.

    7. Re:just like speed writing by seebs · · Score: 1

      I have never, ever, met a genuinely competent writer who needed a spell checker to produce reasonably correct output.

      I think you earned that 0 fair and square, and it's a reasonably good reflection of real-world circumstances; you are the sort of person who will refuse to do anything rather than doing something you dislike. Well, okay. That's good information to have.

      The world is full of people who can break a problem down, but can't produce actual code. And people who have a great idea, but don't have the patience to write the game, or book, or movie. Or people who can "write", but not on a specific topic with a deadline. And in all these cases, they are firmly convinced that they are the important ones, who make the primary contributions, and that the people who handle the "implementation details" aren't really doing much. And in all these cases, they're wrong.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    8. Re:just like speed writing by Anonymous Coward · · Score: 0

      That's spelling, not grammar. ;)

    9. Re:just like speed writing by sandytaru · · Score: 1

      The reason you got a 0 was because the topics are pre-assigned, and unless you wrote on the given topic, of course they gave you a zilch. If you arbitrarily "decided" to write whatever the hell you wanted... then yeah, you earned a zero. The most critical part of speed writing is knowing how to BS your way through whatever you are supposed to discuss.

      --
      Occasionally living proof of the Ballmer peak.
    10. Re:just like speed writing by MobyDisk · · Score: 1

      got a 0 on the writing portion since I decided to write an essay about how useless speed writing is.

      Sounds like you convinced them!

    11. Re:just like speed writing by Isaac+Remuant · · Score: 1

      To be fair, he didn't say he was a Syntax Nazi.

      --
      "Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
    12. Re:just like speed writing by Anonymous Coward · · Score: 0

      Whoosh?

    13. Re:just like speed writing by jonadab · · Score: 1

      > most good writers will turn spell check and
      > grammar check off, at least in my experience

      I generally leave the red squiggleys turned on (except when working in a spreadsheet; they're just annoying in that context), because they do tend to help me to notice certain kinds of errors more quickly (mostly typos, but also certain kinds of spelling mistakes).

      I certainly don't consider spellcheck to be authoritative, though. I frequently disagree with its judgments, in both directions. This very post contains two examples of words that it has underlined but which I consider correct.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    14. Re:just like speed writing by Anonymous Coward · · Score: 0

      And in all these cases, they're managers.

      FTFY.

    15. Re:just like speed writing by DrVxD · · Score: 1

      The 'r' was destroyed by a passing gammar ray.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    16. Re:just like speed writing by BonThomme · · Score: 1

      funny that.

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

    1. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      Out of interest, what do you ask for the SQL test and what would you typically ask for the larger problem?

    2. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      At the end of the day, in a paid position you can and do have a deadline to work to.

      Just do it like Microsoft: When it's time to release, first move the release date a few times, then only take the parts which are ready (don't mind if you already announced the other parts, just silently omit them; make up the lack of new code by a new shiny colour scheme and UI tweaks), and only fix the bugs after you released the code. :-)

    3. Re:Useful for weeding out non-programmers by Hardhead_7 · · Score: 1

      I'm working through a "Teach Yourself to Program" book right now. Figured I'd give it a try. What do you think, want to hire me? :D

      But no, seriously, I'm interested in feedback.

      https://gist.github.com/4502183

    4. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      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!

      What company is this? I want to avoid idiots who produce bad software by thinking like this.

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

      Yeah, give them a simple task. Something that any reasonable programmer should be able to do in 15 minutes. Then give them a solid hour to work on it. If they can't produce something working in that time, that's a pretty informative result. The time limit isn't a speed challenge; it's meant to be very generous, and act as, "Look, we need to move on..."

      Personally, I like to give a few different options from which they can choose freely. Something procedural, something OO, and maybe something in SQL or a functional language. Perhaps a couple different choices for each - around 6 to 8 total. That way you don't run the risk of excluding a worthy candidate because you happened to design some problem they aren't really specialized in, and if they can't handle any of them, that's a nice big red flag.

    6. Re:Useful for weeding out non-programmers by Ja'Achan · · Score: 1

      Look into the "modulo" operator (Wikipedia has a somewhat cryptic page about it). Basically, your multipleof3 function can be replaced by (0 == (i % 3)). Your main loop contents is somewhat messy and redundant, too.
      But it look like it'd work.

    7. Re:Useful for weeding out non-programmers by tibit · · Score: 1

      If I were a BOFH asked to "help out" with such a test, I'd talk about my pet peeve: transitive closure in SQL. Comes real handy in anything that deals with bills of material.

      --
      A successful API design takes a mixture of software design and pedagogy.
    8. Re:Useful for weeding out non-programmers by hackula · · Score: 1

      Please optimize our production database by 40%. You have 30 minutes starting... Now!

    9. Re:Useful for weeding out non-programmers by serviscope_minor · · Score: 1

      But no, seriously, I'm interested in feedback.

      There are better ways to test if a number is a multiple of 3 than by testing equality to every multiple of 3.

      For a very good exercise figure out what happens if, instead of 1 to 100, you want to do it from 1 to 1000000. How many times will each instruction be executed?

      --
      SJW n. One who posts facts.
    10. Re:Useful for weeding out non-programmers by Manfre · · Score: 1
    11. Re:Useful for weeding out non-programmers by Hardhead_7 · · Score: 1

      Ahhhhh. I appreciate the help. I realized the way I was testing if a number was a multiple of 3 or 5 was bad, but the % operator slipped my mind. I knew about it, but I guess I haven't used it very much. But I didn't realize bools could figure out if they were true or false when they were initialized. Thanks! I definitely learned something new from this little exercise. :)

    12. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      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!

      Yes, sure, but how often is the deadline 30 minutes? If you say often, I don't want to work there.

    13. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      Why are you writing Yoda style comparison?
      Do it the right way around and upgrade your compiler to warn you about assignment in an if statement.

    14. Re:Useful for weeding out non-programmers by fatphil · · Score: 1

      But as a further handy hint, don't waste time uglifying your code with constructs such as '(0 == expr)'. It is more important that code be readable, and "if zero is ..." is not a useful thing to read.

      --
      Also FatPhil on SoylentNews, id 863
    15. Re:Useful for weeding out non-programmers by crywalt · · Score: 1

      I have three mod points and went looking for a mod option on this for "holy crap this is math". I put a good five minutes into trying to wrap my head around this idea and realized, no, it's been too long since I studied this stuff. That part of my brain is dead.

    16. Re:Useful for weeding out non-programmers by Qzukk · · Score: 2

      Mmm, yes, SQL peeves. Trying to do graphs/trees in SQL is one thing, but nesting aggregates is another aggravation (I admit that the proliferation of window functions through the ecosystem has made this easier to write in SQL than it used to be).

      Consider if you have something like

      product (id, name, price)
      invoice (id, customer, date)
      customer (id, name)
      line_item (id, invoice, product, discount_to_price)

      I'd suggest asking the person to write queries that will tell you (in no particular order of difficulty):
      1. What is the average invoice total and average number of items sold?
      2. How much is the total discount on the invoice with the highest total?
      3. Who are your top 10% of customers by invoice total?
      4. Who are your top 10% of customers by discounts received?

      I'd personally be tempted to give bonus points to people whose first answer is

      alter table invoice add column total ...

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    17. Re:Useful for weeding out non-programmers by Neil+Boekend · · Score: 1

      Even without knowing the modulus:
      [pseudocode coz I'm not a programmer] X is the input
      x/3=y
      round y down = z (or cast it into an integer and ignore overflows)
      if z*3=x then X is a multiple of three.

      --
      Well, I might have a way, but it only works on a semi spherical planet in a vacuum.
    18. Re:Useful for weeding out non-programmers by Bigby · · Score: 1

      I'm not sure how these go about it, but I would:

      boolean[100] notPrime = new boolean[100];
      markNonPrime(notPrime, 2);
      for (int n = 3; n 100; n+=2)
          markNonPrime(notPrime, n);
      for (int n = 2; n 100; n++)
          if (!notPrime[n])
              println(n);

      function markNonPrime(boolean[] notPrime, int p) {
          for (int n = p; n 100; p+=n)
              notPrime[n] = true;
      }

    19. Re:Useful for weeding out non-programmers by Quirkz · · Score: 1

      You're getting flak for the way you structured your comparison, but that's one of my most frequent tripping points, accidentally using assignment instead. If it works reliably for you, I think that's more important than someone else's sense of style. I do most of my programming in PHP, so changing the compiler wasn't exactly an option.

    20. Re:Useful for weeding out non-programmers by Manfre · · Score: 1

      You seem to be trying to solve a different problem that involves printing prime numbers, instead of printing all numbers with specific values being substituted with a corresponding string.

    21. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      Gosh, I wished to have known that doc like one year ago....

    22. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      private static bool fizzCheck(int i)
      {
      return (i % 3 == 0);
      }

    23. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      I hate to be that guy, but you failed. You need to start from 1!

      As far as other ideas:
        - I wouldn't use functions for the checks given they can be cut down to "!(i%5)" and "!(i%3)" and functions take time.
        - Why check " == true" ? A compiler would optimize it out so it doesn't matter. Just redundant. do "if(fizz && buzz)"
        - Try/Catch is kind of worthless given the only thing that you are catching is issues with the Console and you are using the console in the catch.

    24. Re:Useful for weeding out non-programmers by Bigby · · Score: 1

      Whoops. I thought this was the prime number question.

    25. Re:Useful for weeding out non-programmers by pla · · Score: 1

      If I were a BOFH asked to "help out" with such a test, I'd talk about my pet peeve: transitive closure in SQL [ed.ac.uk]. Comes real handy in anything that deals with bills of material.

      Recursive CTEs to the rescue!

      Though I suppose the purists wouldn't consider that part of the core language. If you have a candidate for a SQL-heavy position that won't (or can't) use them, though - "Next candidate, please".

    26. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      DROP TABLE *;

      did I do that right?

    27. Re:Useful for weeding out non-programmers by c++0xFF · · Score: 1

      My only complaint would be about style. The fizzCheck() and buzzCheck() functions really aren't necessary and just make things more difficult to read (compared to inlining the checks in the loop). In this case, at least. (Also, you could rewrite them to just be 'return i % 3 == 0', which would help a bit, too). Basic rule of thumb: the cleaner the code, the better. Don't make the reviewer trace through function calls and conditionals when something simpler would do.

      In real code, it can be quite ambiguous as to whether or not to make a function for a condition check. If the check is done multiple times, it's probably a good idea to make a function for it. If the check is only done once, it might just be a bad idea. Fortunately, refactoring tools help a lot if you want to rework that decision later.

      Of course, the fizzbuzz test is just to make sure you're minimally competent, not to judge how good of a programmer you are (that's a much harder question). Style points don't matter. I say you pass.

      If this were a real peer review (from my experience, at least), almost everybody would be complaining that you didn't use their exact brace style or that you didn't use yoda conditionals or some such nonsense. If you get complaints along those lines, tell them to buzz off and learn how to read code. (After you're hired, of course.)

    28. Re:Useful for weeding out non-programmers by Anonymous Coward · · Score: 0

      1)
      declare @invtemp table (id, total, itemqty, totaldiscount)
      insert into @invtemp (id, total, itemqty, totaldiscount) select i.id, sum(p.price), count(distinct li.id), sum(li.discount_to_price) from invoice i join line_item li on li.invoice = i.id join product p on p.id = li.product group by i.id
      select avg(t.total), avg(t.itemqty) from @invtemp t

      2) following from the previous definitions...
      select top 1 t.totaldiscount from @invtemp t order by t.total desc
      3)
      select top 10 percent c.name from customer c join invoice i on i.customer = c.id join @invtemp t on t.id = i.id order by t.total desc
      4)
      select top 10 percent c.name from customer c join invoice i on i.customer = c.id join @invtemp t on t.id = i.id order by t.totaldiscount

      Why actually alter the invoice table when you can do it in a table variable and keep that maintenance nightmare out of the data? Also, this is T-SQL flavored, as that's what I tend to work with all day long.

    29. Re:Useful for weeding out non-programmers by electrosoccertux · · Score: 1

      Yeah, give them a simple task. Something that any reasonable programmer should be able to do in 15 minutes. Then give them a solid hour to work on it. If they can't produce something working in that time, that's a pretty informative result. The time limit isn't a speed challenge; it's meant to be very generous, and act as, "Look, we need to move on..."

      Personally, I like to give a few different options from which they can choose freely. Something procedural, something OO, and maybe something in SQL or a functional language. Perhaps a couple different choices for each - around 6 to 8 total. That way you don't run the risk of excluding a worthy candidate because you happened to design some problem they aren't really specialized in, and if they can't handle any of them, that's a nice big red flag.

      this is a FANTASTIC idea not sure why it hasn't come up yet.

    30. Re:Useful for weeding out non-programmers by DrVxD · · Score: 1

      As someone who actually uses this as a coding test for candidates, I've written a ridiculously long comment on your gist...

      As I mention there, when somebody gives you a task this trivial, they're most likely looking for good style and practices, rather than just "did you get the right answer".

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
  8. Sometimes you need to think on your feet by fatphil · · Score: 2

    So yes, they are valid.

    I heard of one respected hi-tech company giving a 3 hour C programming task. I scribbled my solution on the back of a beermat in about 3 minutes. Were I to have been able to do it in a functional language, it would have been a 1-liner.

    I can only imagine that a 45 minute test would be "write a program which says 'hello' to the world".

    --
    Also FatPhil on SoylentNews, id 863
    1. Re:Sometimes you need to think on your feet by serviscope_minor · · Score: 1

      I heard of one respected hi-tech company giving a 3 hour C programming task.

      The existence of a 3 hour programming task is enough to weed out some candidates.

      I was approached by a headhunter from within one of these organisations, with a potential job offer. After a few preliminary back and forth bits they wanted me to do a timed programming exam (several hours). I was advides to brush up on algorithms before. That would be a several more hours, maybe 5 to 10 in total.

      Trouble is, I had been pulling 80 hour weeks for several months with little end in sight (I was in an assistant prof equivalent position aiming for an academic career and it was in the do or die stage). I didn't have 5 spare hours or the extra mental capacity.

      I ended up passing on it.

      The silly thing is I was headhunted presumably because of my reputation and that was in no small part based on code I'd made open.

      --
      SJW n. One who posts facts.
    2. Re:Sometimes you need to think on your feet by dlingman · · Score: 1

      I can only imagine that a 45 minute test would be "write a program which says 'hello' to the world".

      If you can write a virus that manages to send email to everyone on the planet (or sms or whatever) inside of a 45 minute time frame, you're probably worth hiring.

    3. Re:Sometimes you need to think on your feet by serviscope_minor · · Score: 1

      I ended up passing on it.

      I mean passing on the job. I didn't do the test.

      --
      SJW n. One who posts facts.
    4. Re:Sometimes you need to think on your feet by NewWorldDan · · Score: 1

      Programming tests are extremely valuable. They're really the only way to go about hiring a programmer. I recently gave the following 2 tests to some prospective programmers:

      Using C# and Visual Studio do the following:
      The FizzBuzz test
      Read a text file of numbers, sort them and write them to an output file

      Of four applicants, I had the following results:
      Applicant 1 sat there for 30 minutes and left without saying anything. He had managed to create an empty project.
      Applicant 2 required some assistance but finished both tasks in about an hour. Said he would not work for less than $70k/year. (Later emailed me to say he had found work elsewhere with a starting salary of $79k)
      Applicant 3 sat for 5 minutes before telling me she could not do this.
      Applicant 4 produced both programs in 12 minutes despite having never used C# or Visual Studio; he was a student who had only worked in PHP and Java. Hired. Took a month to retrain him on Visual Studio and .NET and he's been doing great since then.

      Prior to applicant 4, I was beginning to wonder if my programming test was unrealistic for an entry level position. A more involved test might be warranted for a senior position, but in most cases the goal is just to weed out anyone who is not a programmer. I'd do things exactly the same next time.

    5. Re:Sometimes you need to think on your feet by phantomfive · · Score: 1

      What programming task? If you can find a way to do it in 3 minutes in a functional language, I can usually find a way to do it in 10 in C.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:Sometimes you need to think on your feet by Jmc23 · · Score: 1

      Care to elaborate on what this 3 hour programming task was that can be solved in one line?

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    7. Re:Sometimes you need to think on your feet by Anonymous Coward · · Score: 0

      C is a functional language...

    8. Re:Sometimes you need to think on your feet by BeaverCleaver · · Score: 1

      You wrote your answer on a beermat? Does this mean the interview was conducted in a bar?

      I would like to apply for a job at your company.

    9. Re:Sometimes you need to think on your feet by DrVxD · · Score: 1

      No - the whole *Universe*. In alphabetical order. Just like Wowbagger

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    10. Re:Sometimes you need to think on your feet by fatphil · · Score: 1

      Something similar to (I should never have been told about the real challenge, so certainly shouldn't be passing it on!):
      "Given a text file, find the odd-lengthed word which has a vowel exactly in the middle of it which occurs most frequently. You may assume the only characters used are a-z and whitespace."

      --
      Also FatPhil on SoylentNews, id 863
    11. Re:Sometimes you need to think on your feet by fatphil · · Score: 1

      Hahah - this tale was from chit-chat with someone in the company. I have had an interview in a bar before though (and was offered, and took the job).

      --
      Also FatPhil on SoylentNews, id 863
    12. Re:Sometimes you need to think on your feet by phantomfive · · Score: 1

      Hmmm interesting. That one's a 10 minute problem if you have access to a hash table, but 10 minutes harder without a hash table. In C you could read in one word at a time, use strlen() to measure the length, you'll have to write your own function to check if the middle character is a vowel, then increment the count for that word if it matches.

      --
      "First they came for the slanderers and i said nothing."
  9. Facebook? by Anonymous Coward · · Score: 0

    Let me guess, is the company in question Facebook?

    I think the coding test + phone interview + on-site interviews are solid combo. They ensure you hire coders that are smart and can complete assignments quickly without too much room for error.

    Is the test indicative of the actual job? Well it depends on the project and I think that for quick iterating projects it's a good fit.
    That being said, I wouldn't use the same approach to hiring people to build a rocket...

  10. Does coding quickly really indicate a better progr by Stumbles · · Score: 0

    No. If you need an explanation then your a crappy ass programmer, manager, etc.

    --
    My karma is not a Chameleon.
  11. 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
    1. Re:Aren't all tests timed to some degree? by Anonymous Coward · · Score: 0

      I had to conduct such interviews, and you are totally right. You don't want to waste the applicant time with a 2 hours problem and it is not required to gauge the programmer abilities. I know that personally I would not judge the test's completeness but rather how the applicant tried to solve the problem and what was his plan for dealing with the algorithm. I made it clear at the start that if he/she got stuck on a language related issue, they could just write that portion in pseudo code and go on with the test. You want to see the algorithm solving first, language affinity second, at least in my opinion.

    2. Re:Aren't all tests timed to some degree? by Darinbob · · Score: 1

      Sometimes you just cut the question short. They're not going to figure out the problem so you have to interrupt and move to the next question. Because I really don't want to sit there watching them flail for 15 minutes.

    3. Re:Aren't all tests timed to some degree? by chrismcb · · Score: 1

      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.

      I wish more candidates would figure that out. I'm always surprised when I get a candidate who asks me if there is a time limit... Well it is a one hour interview, what do you think?

  12. not really by Anonymous Coward · · Score: 0

    coding quickly does NOT indicate a better programmer - for an undergraduate level coding assignment, it only indicates that you've been programming for a while and that it does not take you long to complete simple logic tasks.

    1. Re:not really by fuzzyfuzzyfungus · · Score: 2

      coding quickly does NOT indicate a better programmer - for an undergraduate level coding assignment, it only indicates that you've been programming for a while and that it does not take you long to complete simple logic tasks.

      It certainly isn't the only skill or(if the applicant pool is any good, even a distinguishing skill); but demonstrating familiarity and facility with your tools is a good thing...

    2. Re:not really by Anonymous Coward · · Score: 0

      Unless you're like me and take long on simple things, but fast on complex things. Relatively speaking of course.

      Something that takes someone 2 days may take me 1 week
      Something that takes someone 6 months may take me 1 month

      I have a horrible ramp-up time as I build a visual representation in my head and identify corner cases and potential issues.

    3. Re:not really by BonThomme · · Score: 1

      lol, you are not alone. the first three days of a new project are total misery for me. then i crush it.

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

    1. Re:Yes by Anonymous Coward · · Score: 0

      That's sick! Stress is not something I look for in employment. Well, not if I want to last longer than 5 years.

    2. Re:Yes by SirGarlon · · Score: 4, Informative

      If the people performing the test are any good.

      This is a key point. I "failed" one of these interviews because my implementation updated the left-hand side of a loop condition, and the kid who was interviewing me didn't have the listening skills or mastery of basic algebra to understand that can be equivalent to updating the right-hand side.

      The take-away for me was, thank God I'm not working there with him as a colleague or, worse, a supervisor.

      This was at Google, where everyone thinks they're hot shit.

      --
      [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    3. Re:Yes by Qzukk · · Score: 1

      updated the left-hand side of a loop condition, and the kid who was interviewing me didn't have the listening skills or mastery of basic algebra to understand that can be equivalent to updating the right-hand side.

      Huh?

      It sounds like you're describing something like "for (x=0; x<max; x++)" Do they expect everyone to write "max>x"?

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    4. Re:Yes by seebs · · Score: 1

      No one wants to look for it, but the real world will occasionally provide stressful circumstances; ability to handle them is pretty much mandatory.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    5. Re:Yes by Marxdot · · Score: 1

      First of all it will weed out the anti authority programmers.

      Gods forbid that those who are doing a job should choose how best to do it.

    6. Re:Yes by SirGarlon · · Score: 1

      It was more like while ( x y ) and I was changing updating X when he expected me to update Y. I admit his way was more readable, but when I said "it's mathematically equivalent; let's move on" I kind of expected to, you know, move on instead of arguing about it for 10 minutes.

      --
      [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    7. Re:Yes by Splab · · Score: 0

      You know what, if you are good and you show you know how to handle everything, sure, do it your way, but until you've proven yourself, you are doing what "we" tell you.

    8. Re:Yes by Anonymous Coward · · Score: 0

      In C and C-derived languages, this is the way you should do conditionals
      const int constant = MYCONSTANT
      int yaddayadda;
      if (constant == yaddayadda) // is safer than
      if (yaddayadda == constant)

      because
      if (constant = yaddayadda) //easy mistake, but illegal, your compiler will puke
      if (yaddayadda = constant) //maybe you really want to do this, but probably not

      because in C, = and == are very close and easy to mistake, and both are legal, but with very different behavior. Habitually coding the safe way is a good idea. I'm not sure which the google guy was pushing.

    9. Re:Yes by Anonymous Coward · · Score: 0

      I've had a similar experience for a game development company. The test was to write a binary tree which could perform a handful of actions: count number of nodes in the tree, count number of leaves in the tree, measure the tree's depth, and traverse the tree while performing an arbitrary function on each visited node.

      The last case is what got me, I guess I should have asked the terms of that case more clearly. My traversal function accepted a function pointer which would receive a pointer to the visited node's data. I did a null check on the function pointer up front and only traversed when it wasn't null. This was a problem apparently, he wanted me to let it traverse and test the function pointer before calling it on each visited node.

      So despite coming up with a binary tree which worked within the 20 minutes I was allotted, I failed the test. I said something along the lines of, "if that's what you really want, it won't even take me a minute to change the code to reflect that", shortly after I was told to GTFO (in those words).

    10. Re:Yes by Impy+the+Impiuos+Imp · · Score: 1

      When I write coding rules, and I have, I demand good meaningful variable naming and logical expressions done the way your brain thinks them in context of the given issue.

      MISRA and other rules tromp all over that, to the harm of the project. One of my favorites bundles "variable always on the right" with "compare vs. explicit constants."

      This teams up with Booleans to form absolutely unobvious logical expressions. The first rule I throw out is comparing Booleans to true or false.


      if (false != somethingNotPresent)
                printf("Fucketh you, dumbasses!");

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    11. Re:Yes by Zeromous · · Score: 1

      Ugh, what a Googlenozzle.

      --
      ---Up Up Down Down Left Right Left Right B A START
    12. Re:Yes by Comrade+Ogilvy · · Score: 1

      Interviewing a candidate is a difficult and inherently imperfect process. This particular interviewer's opinion of you could easily be misleading, regardless of the coding involved.

      Yes, that is a shame. You may be disappointed, but this is not your problem to own.

      Removing (or adding) coding problems does not change the big picture here.

    13. Re:Yes by RR · · Score: 1

      If the people performing the test are any good.

      I "failed" one of these interviews because my implementation updated the left-hand side of a loop condition, and the kid who was interviewing me didn't have the listening skills or mastery of basic algebra to understand that can be equivalent to updating the right-hand side.

      And I'm sure Google is glad to be rid of you. This particular interviewer might have been a bit too obsessed with that aspect, but code style is apparently very important at Google. If you can't code for other programmers to maintain your code, then you shouldn't be at Google.

      --
      Have a nice time.
    14. Re:Yes by zzyzyx · · Score: 1

      they wanted to see how I handled myself in a stressful situation.

      I don't really get this. Is it this supposed to be illustrative the most environment? A place where you are constantly under stress seems indicative of bad practices to me, and not a place where I would like to work.

    15. Re:Yes by dcollins · · Score: 2

      Similarly: I was once asked to convert a text number string to an integer value, and just jotted down the well-known textbook case example. The problem is, the efficient algorithm just goes left-to-right multiplying by another 10 each step, and the interviewer completely refused to believe that this worked (and more efficiently than his suggestion), even after I stepped him through an example. Still to this day I'm dumbfounded by that.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
  14. Depends by hcs_$reboot · · Score: 1

    on the problem difficulty. In order _not_ to eliminate potentially good candidates, the time allocated to the interview problem should be - say - twice what it usually is for that kind of problem. The problem has to be timed, in order for the candidate to feel really involved in its solving ; it's an interview, not a school.

    --
    Slashdot, fix the reply notifications... You won't get away with it...
    1. Re:Depends by Sperbels · · Score: 1

      Another thing is passion, if they aren't passionate about their job and are just looking for a paycheck, that's not the type of programmer I'd look for. Do they read up and better their craft in their free time with little programming projects on the side?

      That might work for young programmers. But older guys have may have little time for side projects. They have families.

    2. Re:Depends by Anonymous Coward · · Score: 0

      That's a really good point that I often forget, luckily for me I have an understanding wife and no kids.

  15. Useful by Anonymous Coward · · Score: 0

    It is very useful, as it show a programmers real programming style under pressure. For instance, if 40 mins you produce a solid working solution, that has things like clear variable, function and object names and with good comments, then your likely to be a very productive member of the team. If you produces a working solution but the way you have written means no one else can figure out how it works, then they can not bother interviewing and move on.

  16. 45 minutes is plenty of time! by Anonymous Coward · · Score: 2, Funny

    To find completed code for that assignment online.

    1. Re:45 minutes is plenty of time! by Anonymous Coward · · Score: 0

      Given how many businesses lack creativity I think you should memorize some of these tests in advance.

      Imagine typing the whole program under 10 seconds while maintaining eye contact.

      Then ask if he has any other questions.

  17. Yes. by drolli · · Score: 1

    Somebody with a complete education must be able to solve an undergrad problem without thinking much, just sytematically applying knowledfge and understanding.

    In the same way in which anybody can expect that I (Phd in physics) will solve a decay equation correctly without trying aroung for hours or set up a equation of motion for a dynamical system without looking up for hours in textbooks (i am at least supposed to know where to find the solution), i expect that a self-announced programmer is able to write down somthing which applies a simple algorithmic principle to a small problem.

    1. Re:Yes. by tibit · · Score: 1

      Yes, this a 100 times!

      --
      A successful API design takes a mixture of software design and pedagogy.
    2. Re:Yes. by Anonymous Coward · · Score: 0

      Yes, but -- as a senior programmer -- giving me a test at this level basically is insinuating that my resume is full of lies. If a potential employer is starting our potential relationship by accusing me of being a liar, then that's not a relationship that's going anywhere.

    3. Re:Yes. by drolli · · Score: 1

      No. Tests are assuming that the other person will fail.

      Sad, but true: there are a lot of people with a CS degree which code worse than i coded with 18y. There are people around who call themself programmers who are not able to get a single fucking thing straight in a way that looking at the layers of comments which sound like a "programmign for dummies" book put trough dadadodo. Some of applicants misestimate themself so grossly that it hurts, some may be desperate to get the job and polish their CV a little, and some are outright psychopathic liars whos first thought will be how to push the real work on interns which come and go and therefore wont take the credit.

  18. Sure it does by beinsvein · · Score: 3, Insightful

    If a job requires a skill that is easy to test, it should be obvious that you want to test it. Programming is such a skill. Sure there are tasks within programming that can't be tested in 45 minutes, but there are also tasks that can. I'd feel I knew more about a programmer's skills having seen a couple dozen lines of code she's written than for instance hearing her last employer's opinion, which may be biased by all sorts of interests, or reading the list of projects she'd worked on, where you don't know how she contributed. College grades in programming courses might provide the same kind of information, but courses may not be standardized and the candidate might have developed her skills since college.

    1. Re:Sure it does by elucido · · Score: 1

      If a job requires a skill that is easy to test, it should be obvious that you want to test it. Programming is such a skill. Sure there are tasks within programming that can't be tested in 45 minutes, but there are also tasks that can. I'd feel I knew more about a programmer's skills having seen a couple dozen lines of code she's written than for instance hearing her last employer's opinion, which may be biased by all sorts of interests, or reading the list of projects she'd worked on, where you don't know how she contributed. College grades in programming courses might provide the same kind of information, but courses may not be standardized and the candidate might have developed her skills since college.

      Wow, showing is better than telling.

    2. Re:Sure it does by Darinbob · · Score: 1

      I think some people just don't realize that if they put something on a resume that they will be asked about it. I am absolutely amazed that someone puts C on the resume for a job listing that mentions C and yet they don't cram for C the day before. Did they think we weren't going to ask C questions or that they could fake it?

  19. 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/
    1. Re:Heck yes by xkrebstarx · · Score: 1

      I agree. Fizzbuzz is a suitable level question for these tests. However, not all of the questions are this straight-forward.

    2. Re:Heck yes by deniable · · Score: 2

      Hah, the incompetent ones usually look better. They've had more practice.

    3. Re:Heck yes by BonThomme · · Score: 1

      your tautology is showing

  20. We found that broken code was a better test by mykepredko · · Score: 4, Interesting

    When I was at RIM, we used a broken quick sort method that the candidate was asked to fix. We didn't time how long it took the candidate to implement the fix, but it generally required the candidate to do some research as to what was wrong. One of the team leads created a simple app that tested the performance (ie speed) of the fix.

    What was really interesting to me was the number of candidates who refused to do the test (50-60%) because they said it was "beneath them". The big problem was, RIM's HR (OD) that insisted we interview the candidatest that refused to do the test because we were losing potentially half the candidates that were responding to the job applications (this was when RIM was The Place To Be).

    The best candidates were the ones that did the test and asked if we had any more. These candidates also tended to produce code that ran sort the fastest.

    myke

    1. Re:We found that broken code was a better test by SJHillman · · Score: 1

      In my experience working with helpdesk/systems people, those they say something is 'beneath them' are usually the ones who can't figure it out anyway. As a sysadmin, there are a lot of tasks that are 'beneath me' by way of organizational structure and job description, but I happily do them anyway. It can be fun to throw some simple stuff in there to break up the bigger stuff.

    2. Re:We found that broken code was a better test by tibit · · Score: 1

      It can be fun to throw some simple stuff in there to break up the bigger stuff.

      A.K.A. the simple pleasures of life. Sometimes it's good to feel good about something simple -- the equivalent of hanging a picture on the wall. People who don't dig this, I'm afraid, are unsocial.

      --
      A successful API design takes a mixture of software design and pedagogy.
    3. Re:We found that broken code was a better test by N1AK · · Score: 1

      I'm a PITA for avoiding work I don't think I should be doing; but I would still do a test at an interview below my expected level because the rules are different. I may well question why they wanted me to do it afterwards and/or it may influence the chance I'd take the job. I find it incredible to think there are people out there who would refuse to do something trivial at an interview, but at least it would be a clear sign of how they interact with others.

    4. Re:We found that broken code was a better test by jittles · · Score: 2

      Shoot I've been in the industry for a while and I'll be your beyotch and run to taco bell and pick your lunch up as long as I am getting paid my normal wage for it. There are certainly tasks that are more cost efficient to have a more junior employee to do, but I won't tell you no. Now if you asked me to do something illegal or unethical, I can see myself to the door!

    5. Re:We found that broken code was a better test by bickerdyke · · Score: 1

      Wow. Quite arrogant. What do they expect to do in an interview as an unpaid problem solving demonstration? "Real world" problems that take multiple day projects to solve? Offer them a 30-days unpaid internship if they want to do actual work instead of an interview.

      The only reason to refuse would be if it isn't related to the job you're applying for. Or ask why they require programming skills from i.e. janitors or project managers.

      --
      bickerdyke
    6. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      No offense, but RIM pretty much was always "One of The Last Places To Be".

    7. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      What was really interesting to me was the number of candidates who refused to do the test (50-60%) because they said it was "beneath them".

      Holy macaroni! That just blew my mind. Guess some people are out of work for a very good reason.

    8. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      What was the false negative rate? How did the candidates who refused the pre-test fair in the interview?

      My interview process is ruthless (we're a small shop who can't affort a bad hire) and I'm always turning down people who I'm not at least 95% sure of. I'd like to know how the better candidates would have faired, but I don't have the resources to find out.

      I remember reading about the Israeli Air Force's training practices; I believe it was in a recent pop-psyhc book (you'd recognise the name). It's very expensive to train a pilot only to have them wash out so they do extensive testing before accepting a candidate. However, because the candidate pool is so small, they occasionally select someone who didn't pass the initial testing and train them anyway. Some have managed to earn their wings. They then reevaluate their screening process to figure out why this person was flagged.

    9. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      No offense, but you don't have any idea what you're talking about.

      I spent 10 years at RIM (starting before BlackBerry was even named) and it was *awesome*. I left when management stupidity could no longer be avoided/prevented by engineering. What happened since then makes me sad.

    10. Re:We found that broken code was a better test by Billly+Gates · · Score: 1

      Most people have bills to pay and you can be sued for slavery (free labor) from some gohappy lawyer.

      A simple test for SQL or logic an weed people fine. If they can handle something logically in 10 minutes then they probably can solve bigger problems in the timelines required.

      Look at the brightside of this? Many without CS degrees are filtered out who do know how to write basic structures. A test can show someone who works helpdesk with just a busines MIS degree who took coding and is good at it over some asshat who is senior level due to him being hired in 1999 and getting experience but not being good.

      Too many underpaid and underappreciated workers mixed with overcompensated and underqualified. It is time to even it out morel.

    11. Re:We found that broken code was a better test by sandytaru · · Score: 1

      Heh, I actually know this feeling. There's something satisfying in running a dumb XP/2003 defrag on an older system and watching the hard drive detangle itself. Or hitting the build button and watching Ant dutifully shuffle everything into place.

      --
      Occasionally living proof of the Ballmer peak.
    12. Re:We found that broken code was a better test by bickerdyke · · Score: 1

      Most people have bills to pay and you can be sued for slavery (free labor) from some gohappy lawyer.

      A simple test for SQL or logic an weed people fine. If they can handle something logically in 10 minutes then they probably can solve bigger problems in the timelines required.

      Yep.. and those who refuse to solve the small problems might refuse to solve the real, bigger ones, too...

      Too many underpaid and underappreciated workers mixed with overcompensated and underqualified. It is time to even it out morel.

      ACK

      --
      bickerdyke
    13. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      My response would have been "I'm sorry, but I'm used to having qsort as an OS library function. If I found a home-grown solution that was broken I'd simply replace it with a call to the OS library version. If you have a situation where the OS library is unacceptable, you probably have a situation where quicksort is unacceptable and should be using heapsort instead."

    14. Re:We found that broken code was a better test by MadKeithV · · Score: 1

      It can be fun to throw some simple stuff in there to break up the bigger stuff.

      A.K.A. the simple pleasures of life. Sometimes it's good to feel good about something simple -- the equivalent of hanging a picture on the wall. People who don't dig this, I'm afraid, are unsocial.

      Cool - I thought I was the only one :). People around me think I'm weird because I like to sometimes get down and dirty and do some of the monkey-work inside the code, even though I'm (in age / experience, not talent) the "most senior" developer. I don't find those jobs shitty, they are a refreshing easy activity that gets real results quickly, and that's just really nice sometimes.

    15. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      I wrote such a test when interviewing for a C level executive at a different software company. I didn't say anything at the time and just wrote the code, but I did find it a bit ridiculous to be tested for this when the position meant you wouldn't (and shouldn't) be anywhere close to code. There are so many more meaningful tests we could have done instead (here's a fake crisis, what would you do? here's a choice between shipping on time and added functionality for a critical product, what steps would you take as head of the software division?)

    16. Re:We found that broken code was a better test by dcw3 · · Score: 1

      This is a typical HR/Legal position to cover their butts. We're required to interview three people, even if we have a perfect candidate that we want to hire.

      --
      Just another day in Paradise
    17. Re:We found that broken code was a better test by tibit · · Score: 1

      That's why, when I design new products, I sit next to our technician who puts them together. Sometimes I even put together a prototype myself. Just so that I have instant feedback as to design-for-manufacturability. It stupidly easy to draw stuff on paper, even if it's just wiring control panels, where it takes 2-3x as long, with much higher aggravation for the technician.

      Besides, just like in software you're no engineer if you can't put a fizzbuzz together in a minute or two, in electrical engineering it's a bit backwards if you can't hold a soldering iron properly or wire a panel together up to relevant standards (depending on what your specialty is, of course).

      --
      A successful API design takes a mixture of software design and pedagogy.
    18. Re:We found that broken code was a better test by Anonymous Coward · · Score: 0

      Wow, "beneath them"? I'm in my 40s and unless I'm having a bad day, that sort of interview question would be a dream. The hard part, though, is that I can never exactly remember how QuickSort is implemented but I guess that's part of the fun.

  21. having experienced something like this by buddyglass · · Score: 1

    I would say a highly time-constrained exercise is not so useful since it will disqualify some candidates who might otherwise turn out to be valuable developers. That said, I think a non-highly-time-constrained coding exercise could be a very valuable tool. If you give a guy four hours to code up something that should take about two and it still has terrible bugs or the code is complete spaghetti (or he doesn't finish in the first place) then you can be pretty sure he's not someone you want to hire. This strikes me as infinitely more useful than "write binary sort on the whiteboard while I stare at your back".

  22. They're very good... by clickety6 · · Score: 2
    But they should shorten the limit to 10 minutes or less.

    .

    It shouldn't take any competent programmer more than a few minutes to google some fitting example code, rename a few variables and update the comments :)

    --
    ----------------------------------- My Other Sig Is Hilarious -----------------------------------
    1. Re:They're very good... by vlm · · Score: 1

      Exactly. Its an honesty test. FizzBuzz is a stereotypical "do you know what a modulus is, the mod operator in your language of choice, some manner of "for loop and or incremental counter, and some basic logic and precedence rules in your language?" Since everyone thinks its brilliant after you do it a couple times it should be pretty quick, but something "similar level" thats actually new rather than what everyone else uses, should take 2 to 10 minutes. So give them one minute. Anyone who gets it perfect just googled and copy-pasted.

      Debugging tests are much more fun. Redesign a system is much more fun. FizzBuzz is at least fast.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:They're very good... by vlm · · Score: 1

      some manner of "for loop and

      F look at that syntax error. Extra quote typo. See, you can tell I squirted that out in only a minute instead of giving it the 2 to 10 minutes it deserved. If it was perfect prose in that limited time, you'd know I cut and pasted that shit right outta Knuth.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:They're very good... by tolkienfan · · Score: 1

      I know at least ten people who would be able to write that correctly in under a minute. A few of them would even put comments. And that's assuming they haven't already heard of the problem.
      Being too quick should NOT disqualify anyone.

    4. Re:They're very good... by meustrus · · Score: 1

      Unlike in school, finding code off the internet isn't cheating, it's being efficient. It's also not without skill. A given person needs to really understand the problem to not only find a solution but be able to recognize whether it will work and tinker with the inputs and outputs to suit the particular problem.

      --
      I sometimes ask revealing, often ignorant-seeming questions. Maybe they're harder to answer than you think.
    5. Re:They're very good... by Anonymous Coward · · Score: 0

      FizzBuzz is a stereotypical "do you know what a modulus is, the mod operator in your language of choice, some manner of "for loop and or incremental counter, and some basic logic and precedence rules in your language?"

      It doesn't neccessarilly test that you know what modulus is and the operator in the given language.

      fizz = buzz = 0
      for i in range(100):
              s = ''
              if fizz == 3:
                      s += 'fizz'
                      fizz = 0
              if buzz == 5:
                      s += 'buzz'
                      buzz = 0
              if s:
                      print s
              else:
                      print i
              fizz += 1
              buzz += 1

  23. Yes and no by Anonymous Coward · · Score: 0

    It does not in and off itself measure how good a programmer is, but then again; what is a good programmer?

    In here we tend to think a good programmer is measured in technical excellence, but to people running companies, a good programmer is just as much a person that can get something working as fast as possible. In the latter view, a speed-coding test is definately valuable.

    I lean towards thinking that any test is both meaningfull in the sense that it will give you a glimpse of the person being tested, and meaningless in it's ability to give an accurate picture of that persons skills and ability to apply them under the circumstances prevailing in your working environment. You can prune out some candidates with tests of various sorts, but at the end of the day, hiring someone is still a leap of faith that may or may not end up showing that your gut-feeling about the person at the interview(s) was right.

  24. No by Malephex · · Score: 0

    Read subject.

  25. Eh, it tests for something... by fuzzyfuzzyfungus · · Score: 1

    Unless the problem is so easy, or the time limit so relaxed as to be irrelevant, testing speed definitely tests some sort of skill(it sure as hell isn't joe codemonkey who wins those speed-coding competitions); but whether it tests a relevant skill is somewhat less clear and more job-dependent.

    If you are hiring people to program something of any significant size, you will have time/deadline issues; but they will be less of the "Bob can't get a bubble sort written in less than 40 minutes!" and more of the 'as our morass of legacy complexity grows, the time needed to make any significant change approaches infinity because changing anything potentially changes almost anything else in unpredictable ways' type problem. There are people who are more and less skilled in the art of designing complex systems such that they don't(to the degree possible) turn into spaghetti, and such that you can change just one thing without discovering surprise changes everywhere; but that is a very different kind of 'speed', and probably a more valuable one.

    1. Re:Eh, it tests for something... by tibit · · Score: 1

      I completely agree that the art of designing a large system on solid principles (cohesion, decoupling, yada yada) is another matter. The point of fizzbuzz-style exercises is not to waste valuable time of interviewers on dealing with people who can't code a hello world, much less design anything that's not a spaghetti monster.

      --
      A successful API design takes a mixture of software design and pedagogy.
  26. I would do poorly by elucido · · Score: 1

    Timed tests would only stress me out to the point where I would probably code poorly due to worrying about the clock. I suppose it depends on the difficulty of the project of course. If it's say a few hundred lines of code I could do that maybe an hour or so. If it's less than that then I could do it even quicker.

    How many lines of code? How complicated are we talking about? What language is it in? If it's something like Python I could for sure write a web browser or some kind of bot in 100 lines of code in an hour. It will be sloppy, it will have bugs, it wont have a graphical user interface, but it would work.

    If I'm judged on quality too then I'd fail. If I'm judged on bugs then I'd fail. In an hour you'd get whatever I could pull together into working code.

    1. Re:I would do poorly by xkrebstarx · · Score: 1

      How many lines of code? How complicated are we talking about? What language is it in? If it's something like Python I could for sure write a web browser or some kind of bot in 100 lines of code in an hour. It will be sloppy, it will have bugs, it wont have a graphical user interface, but it would work.

      I do not want to give away the actual problem, but let's say it's close in complexity to the Map Coloring Problem, in C/C++.

    2. Re:I would do poorly by deniable · · Score: 1

      It's a five to ten minute job for someone qualified. The limit is a guillotine to get rid of the people who will repeatedly insist that 'I'm almost done'.

    3. Re:I would do poorly by jonadab · · Score: 1

      > Timed tests would only stress me out to the
      > point where I would probably code poorly due
      > to worrying about the clock.

      That's one of the key reasons for using a timed test. Employers want to see who stresses out and panics when there's an impending deadline. On the job, there are going to be deadlines, and there are going to be customers calling and hounding the tech support people for a solution *right now*, and sometimes the tech support people are going to mention this fact to the programmers. When that stuff happens, the programmers don't automatically get to go home for the day because there was stress. They have to continue doing their jobs.

      Admittedly, the test works best if the amount of time they give you is in fact well more than enough. That way they can weed out the people who panic needlessly at the drop of the hat, but everyone else can take their time and do a good job and not have to hurry.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    4. Re:I would do poorly by BonThomme · · Score: 1

      so it's a panic test, but you give them time enough to not panic?

    5. Re:I would do poorly by jonadab · · Score: 1

      > so it's a panic test, but you give them time enough to not panic?

      You give them enough time so they don't _need_ to panic. Some people will still panic, even though there's plenty of time. You don't want to hire those people.

      There are also additional things the test can uncover besides panic. Completely lying about having any ability to program at all is one.

      --
      Cut that out, or I will ship you to Norilsk in a box.
  27. Quick is not best. by GhigoRenzulli · · Score: 2

    Ask my wife.

    1. Re:Quick is not best. by rot26 · · Score: 1

      Ok, hang on a sec. She says "right on".

      --



      To ensure perfect aim, shoot first and call whatever you hit the target
  28. Like standardized testing by ironjaw33 · · Score: 1

    I recently interviewed at a few companies that administered programming tests like this. I thought I would have performed better on the test as a sophomore or junior undergraduate than I would now with a graduate CS degree and several years of experience. Implementing breadth first search in Java (and all the required tree data structures) with minimal syntax errors in under 10 minutes is a lot like the BJ scene in Swordfish. It's no more than a puzzle with some added drama.

    Companies that use tests like this will wind up hiring only people who can solve them, usually to the detriment of being able to solve large scale system design problems as well as being able to work as part of a team. Being able to solve problems that can't be figured out in an hour is one of the major differences between school and the real world. A CV of academic publications or a project portfolio will go a lot farther in my book when judging capability.

    1. Re:Like standardized testing by tolkienfan · · Score: 1

      We give problems to solve, but we don't leave them alone. We roughly speaking act as mentor. Answering questions and giving hints, discussing mistakes. It tests their communication and teamwork skills as well.
      We find it to be very effective.

    2. Re:Like standardized testing by tibit · · Score: 1

      I don't think anyone senior is really capable of anything if they can't, in fact, promptly deal with simple problems. I've seen lot of code that was "designed" by senior people where the bloat was 10:1. They'll overdesign everything, and you end up with monster frameworks to do the most menial of things that should be almost an afterthought when you have access to modern libraries. Yeah, it's good to be able to solve problems that can't be figured out in under an hour, but it's not good if it can't be figured out under an hour because you're overcomplicating things.

      --
      A successful API design takes a mixture of software design and pedagogy.
    3. Re:Like standardized testing by dkleinsc · · Score: 1

      If you can't solve small-scale design problems (a.k.a. "bugs"), what makes you think you are qualified to solve large-scale design problems? What you're getting paid to do is closer to implementing a breadth-first search in Java and all the required tree data structures with minimal errors in under 10 minutes than it is solving an academic problem over the course of 3-6 months with a teaching load. If I'm interviewing you, the academic work is great, but probably not what I'm paying you for.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    4. Re:Like standardized testing by geekoid · · Score: 1

      "We find it to be very effective."
      and what metric do you use to determine that?
      If you aren't following up with people you didn't hire, then you are falling prey to your personal bias; which is the real point of most test.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    5. Re:Like standardized testing by ironjaw33 · · Score: 1

      What you're getting paid to do is closer to implementing a breadth-first search in Java and all the required tree data structures with minimal errors in under 10 minutes than it is solving an academic problem over the course of 3-6 months with a teaching load.

      This depends on the job. My current job is more of the latter and less of the former. Implementing data structures and algorithms at the undergraduate level is no better than a standardized test requiring rote memorization. For that kind of stuff, I can use an existing library or pull it out of a book. The real challenge comes with finding answers for problems that haven't been solved a dozen times over. Otherwise, it sounds like you ought to be hiring college interns.

    6. Re:Like standardized testing by tolkienfan · · Score: 1

      You think I should ignore my experience because I didn't do a scientifically sound test?
      The metric is: what proportion of the people we hire become effective employees.
      This works because our goal is finding good people, not giving jobs to everyone who has the right skills.
      It's very quickly apparent that the kind of interview I give weeds out weak candidates. It may also eliminate some candidates that are actually good, but what technique doesn't? You don't need a scientific study to learn the obvious. What's really obvious is that no technique is perfect.

      What metric do you use? Or do you not worry about whether your interview methods are effective?

    7. Re:Like standardized testing by mjwalshe · · Score: 1

      quiet i recall when i worked on campus at CIT late 70's we had an experiment that used time lapse photography with filters and a very narrow dof to take pictures of the pattern that the droplets make from a fire suppression sprinkler we had slices though the z axis.

      I was told oh we have brought a a0 digitizer (about 3x my salary) can you hook it up to the pdp running RT11 (there where no drivers for this) and go and talk to the Lead Engineer on the project and work out how to digitize the droplets so we can get there speed and direction.

    8. Re:Like standardized testing by Anonymous Coward · · Score: 0

      You're missing the point. See above.

    9. Re:Like standardized testing by BonThomme · · Score: 1

      "The metric is: what proportion of the people we hire become effective employees."

      you're merely measuring false positives, not false negatives. the remainder is personal bias, and your 'justification' amply demonstrates that.

    10. Re:Like standardized testing by BonThomme · · Score: 1

      stated another way, if you took the SAT today, your score would be worse that when you took it in high school. much worse.

    11. Re:Like standardized testing by tolkienfan · · Score: 1

      You're wrong. And your lack of experience is telling.
      Such an interview isn't merely pass or fail. And my input isn't enough, in and of itself, to hire or not hire someone.
      Some of the candidates that I don't think will do well end up getting hired.
      So I get a sample of true and false positives and negatives.

      And I still haven't heard anyone with a better metric.

    12. Re:Like standardized testing by BonThomme · · Score: 1

      your first two sentences tell me everything I need to know about you.

      you said yourself: "It may also eliminate some candidates that are actually good, but what technique doesn't?" so it eliminates good candidates, but it's not pass or fail. brilliant.

  29. A different way of phrasing TFH by Anonymous Coward · · Score: 0

    Ask Slashdot: Are You Confident You Could Ace a Timed Coding Test?

    and suggest reading comments with that in mind.

  30. I have an experience by Anonymous Coward · · Score: 0

    I once applied for a PHP web developer position and was asked to WRITE ON PAPER a piece of code that would count how many 1 there are in a made up 32 bit binary.

    Why would you ever do that sort of thing with PHP and especially in a website code?

    I've worked with PHP developing web apps and such for over 10 years and I never had to do such a thing. Obviously I failed to write the "proper" code!

    Thou the interview was so mindnumbingly stupid, that I would of probably declined the job anyway.

    1. Re:I have an experience by tibit · · Score: 1

      Maybe you never had to do such a thing because you don't have a clue about theroetical underpinnings of computer science, lack mathematical skills, and simply can't apply what you don't know about! Counting set bits in a bit array is a task that has real life applications outside of signal/image processing, you know.

      --
      A successful API design takes a mixture of software design and pedagogy.
    2. Re:I have an experience by Anonymous Coward · · Score: 0

      Maybe you never had to do such a thing because you don't have a clue about theroetical underpinnings of computer science, lack mathematical skills, and simply can't apply what you don't know about! Counting set bits in a bit array is a task that has real life applications outside of signal/image processing, you know.

      I think we just found the guy that interviewed you! A bit defensive buddy.

    3. Re:I have an experience by Anonymous Coward · · Score: 0

      Uhhh, a troll, who apparently has never done any PHP scripting for a website, am I right? These fancy signal/image processing you speak of are done usually with PHP modules (written in some lower level language) and not in PHP... Unless you're an idiot and want things to work really slow.

    4. Re:I have an experience by DrVxD · · Score: 1

      If you can't do simple bit manipulation after 10 years, I'm not hiring you.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
  31. Possible? by Anonymous Coward · · Score: 0

    What, do you mean Swordfish *wasn't* accurate?
    http://www.youtube.com/watch?v=rUY8HysBzsE

  32. Better than the alternatives by raymorris · · Score: 1

    If you have maybe an hour to find out whether or not someone is a decent programmer, I can't think of too many things better then asking them to program.
    The text of the question asked about programing FAST. Generally, programing quickly is programming poorly, so hopefully they gave him 45 minutes to do a 30 minute task and they are mostly interested in looking at the code, not at the time. Hopefully, they just didn't want to give him three days to post the assignment on one of the help boards and get other people to do most of the code for him.

  33. Emergency patch by Liamecaps · · Score: 1

    I often have to perform emergency tasks in less than 45 minutes, so it's fine, we give timed tests to candidates too. It just gives you a rough idea of their skills and how they cope with stress. It's just one part of the interview process.

  34. yes, any test can be valuable by Anonymous Coward · · Score: 0

    People lie. I have interviewed people for System Engineer positions that claimed they were developers... they couldn't tell me what an array was or code hello world on a white board in any language.

    And if you say you know C++ you better know cin and cout.

    If a web based test is timed, it keeps them from looking everything up online or in a book. Or tries too.

  35. Re:Does coding quickly really indicate a better pr by Anrego · · Score: 1

    Personally I doubt this test is measuring coding speed.

    45 minutes is probably plenty of time. They've probably structured it so anyone competant for the position will probably be able to do it with time to spare. The goal then I suspect is to weed out non or bad programmers prior to doing the proper interview where actual skills will be assessed. This feels like an initial "you must be this good to enter" test more than a "how many SLOCS an hour are you going to give us" test.

  36. Depends on what you are looking for by Anonymous Coward · · Score: 0

    Like all tests like this in the interview process, it isn't that the candidate gets the work done per se, but the insights you get into his work style, problem solving skills, and how he functions under pressure.

    If you are saying "complete this or you fail the interview", then you are definitely missing out. However if you are simply using it as a tool to get access to the above information about the candidate, it can be quite useful.

  37. Depends by Anonymous Coward · · Score: 0

    While on one hand I see it from the big company point of view not wanting to waste their time and money on someone who sucks, but then you do risk the chance of missing out on someone who actually is good, just not in a timed no prep situation.

    I've been on both sides of the table, giving the tests and taking the tests. I know I sucked on a couple curve balls being thrown my way, just wasn't in the right mind set for those questions, ended up not getting any of those jobs.

    On the other side, I've given some curve balls questions earlier in my career to potential employees, but I've since switched going line by line on their resume. Seeing how how low level they can explain what they did, asking key questions along the way. For instance, a programmer says they built a ASP.Net Web Application as their most recent project. A good question I'd ask, explain the architecture. If they say they called out to their Entity Framework from the code-behind, no master pages, no caching etc. I know the level of programmer I'm dealing with.

    Another thing is passion, if they aren't passionate about their job and are just looking for a paycheck, that's not the type of programmer I'd look for. Do they read up and better their craft in their free time with little programming projects on the side? For me, that's a key element in the industry today. There is a huge gap between those that are devoted to our craft and those who aren't, you can see it in their work.

    To me all of those elements far out way one's ability to handle a curve ball timed programming test in evaluating someone.

  38. It Doesn't Matter If Tests Help Employers by assertation · · Score: 2

    I've been programming for about 14 years. I have seen this conversation come up plenty of times. Many people come up with good reasons why such programming tests and other programming job interview techniques unfairly weed people out. I've been a victim of it myself at some interviews and have gone on to do STELLAR work at OTHER places. The bottom line is that employers feel that they need SOMETHING, even something crappy, so... these interview tests are a fact of life.

    However misguided, if you are a programmer and you want a new job, you have to deal with this reality.

    Fortunately, in 2013 there are a plethora of programming interview prep books out there so at least you have a chance if somebody throws a pop quiz at you about the tower of hanoi, asks you to write a script to print out only prime numbers or asks you to write a script to reverse a string using no speciality functions though you have not thought about such mishigas in years.

    1. Re:It Doesn't Matter If Tests Help Employers by tibit · · Score: 2

      I don't know what tests you're alluding to, but man, if you can't do fizzbuzz-style exercise without breaking a sweat, you're useless, okay? I don't even think there's any argument to that. When you're designing large systems, you must have demonstrable working knowledge of the basics. Otherwise your designs will be bloated monsters where anyone who knows their basics will look at and say: it took you HOW LONG and HOW MUCH MAN-YEARS?!

      Fact of life: if you don't have a decent grasp of basics of computer science, including algorithms and algorithmic complexity, you'll be useless at designing anything big. You'll make it too big, it'll unnecessarily underperform, and people who know their shit will laugh all the way to the bank as they overtake your employer's bloated product. It's like claiming to be a great architect without having working knowledge of the basics of structural engineering. Just as you need a feel for strength of structures and their scaling behavior in architecture, you need to know your algorithms and data structures in designing large systems. Software design and architecture are both engineering disciplines -- there's always a bit of art to them, of course.

      --
      A successful API design takes a mixture of software design and pedagogy.
    2. Re:It Doesn't Matter If Tests Help Employers by assertation · · Score: 1

      I don't know what tests you're alluding to, but man, if you can't do fizzbuzz-style exercise without breaking a sweat, you're useless, okay?

      I mentioned 3 examples in the post your replied to. If your reading comprehension is that bad, you're useless, okay ? Geeze, what a horrible thing to say to a person. Untrue too.

      I also wrote in the post you read that I have done well in the field for 14 years despite losing out in interviews where I was asked to take odd tests that I was unprepared for because my daily work has nothing to do with solving the tower of hanoi problem.

      FWIW, I googled on "fizz buzz" and I would have had no problem with the first example of such a test that came up.

      So I guess am I not "useless" by your standards.

      Please don't lecture me about needing a thick skin in this field. I've met as well as worked with many callous, cynical or socially maladjusted people. I can handle it. I'm just honest about having feelings and since this isn't a work environment I gave you a piece of my mind in return.

      Have a good weekend.

    3. Re:It Doesn't Matter If Tests Help Employers by Anonymous Coward · · Score: 0

      Fortunately, in 2013 there are a plethora of programming interview prep books out there so at least you have a chance if somebody throws a pop quiz at you about the tower of hanoi, asks you to write a script to print out only prime numbers or asks you to write a script to reverse a string using no speciality functions though you have not thought about such mishigas in years.

      Telling a candidate to do towers of hanoi is just being an idiot as many people will know it already while some unlucky souls won't and that's clearly not what you want to figure out in an interview. Someone who can't reverse a string or check if a number is prime (even with the O(p) solution) isn't doing so hot in the programming department, though, so that seems like a perfectly good test that shouldn't require any prep.

    4. Re:It Doesn't Matter If Tests Help Employers by phantomfive · · Score: 1

      The bottom line is that employers feel that they need SOMETHING, even something crappy, so... these interview tests are a fact of life.

      In addition, when you're hiring someone, avoiding false positives is more important than not hiring a good person.

      It's sad to miss a good person, but accidentally hiring a bad person can drag your team down.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:It Doesn't Matter If Tests Help Employers by tibit · · Score: 1

      I mentioned 3 examples in the post your replied to. If your reading comprehension is that bad, you're useless, okay ? Geeze, what a horrible thing to say to a person. Untrue too.

      I don't think I'm clear. If you're given the following problem description:

      "Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

      and can't actually write code for it, you're useless, whether as a coder or as a software engineer. I don't know how you can pretend otherwise, and how can you do any sort of stellar work. That's all I'm saying. I'm not expecting anyone to know the solution ahead of time, nor to be familiar with the name of the example. I'm giving a simple, self-contained problem. You'll be expected to deal with much bigger problems, if you can't handle such a simple one, you're not getting a job, it's that simple. I don't think you're arguing otherwise, I think you must be alluding to various self-serving programming puzzles that are under-defined and pretty much require you to know the answer beforehand. That's underhanded and unprofessional in my book. Fizzbuzz ain't it, though!

      --
      A successful API design takes a mixture of software design and pedagogy.
    6. Re:It Doesn't Matter If Tests Help Employers by Anonymous Coward · · Score: 0

      By what metric, pray tell, are you measuring your "STELLAR" work by? I'm sure you think everything you touch turns to gold, Midas, but in the real world you have to prove you know what the fuck you're talking about. These tests weed out "sayers" like you, and highlights the "doers" the employer actually needs - BEFORE you cost them time and money.

    7. Re:It Doesn't Matter If Tests Help Employers by Darinbob · · Score: 1

      In real life on the job, a person may be asked to write some code much more difficult than fizzbuzz. In a real job that person will be looked upon unfavorably if they have to keep bugging a coworker about how to start writing a function, or they check in code that just doesn't work, etc. I can't imagine with a job that requires programming how an interview would unfairly weed out people when they're asked to program something very simple on their own.

    8. Re:It Doesn't Matter If Tests Help Employers by Anonymous Coward · · Score: 0

      Wrong. The problem is that these types of tests almost never reflect programming reality - mainly because if you do ever need to sort an array etc there's always a library function that will do that for you.

      The best programmers are those that don't rewrite the wheel. Their code is shorter and easier to maintain. Performance is secondary.

      Therefore, when those programmers have to jump through these silly hoops, they struggle a bit. If you're looking for someone to rewrite a kernel or something, don't hire them, otherwise give them a break.

    9. Re:It Doesn't Matter If Tests Help Employers by tibit · · Score: 1

      There's this common misconception that if there's a library function, you don't need to understand what it does. You need at least to have a clue about its algorithmic complexity, so that you won't end with O(N^2) implementations that plague a lot of corporate C code that deals with strings. Just because strlen and strdup or strcpy are library functions does not absolve you from knowing exactly what they do, and the fact that they are O(N). Sure if you need to sort an array you won't be coding the sort yourself, most of the time, but you need to know a bit about it.

      Not rewriting the wheel does not mean that you don't need to know what's in the black box. Not rewriting the wheel means you're so good you could rewrite the wheel anytime, but you're not doing it because you know better. But you know exactly how your wheel is made, and you're confident in using it. A lot of library/framework code should be examined first before you actually use it. It makes for much better understanding in face of often lacking documentation. Gets rid of the oft-seen cargo cultisms.

      --
      A successful API design takes a mixture of software design and pedagogy.
  39. If it helps HR separate the chaff by Anonymous Coward · · Score: 0

    In 2009, i.e. the depths of the Great Recession, we tried to hire a couple C++ developers. HR must have sent us 100 resumes, we winnowed it down to about 10. Despite all claiming to be senior level C++ developers, not a single one could explain simple subclassing concepts, and I wager none of them could have even managed to compile with gcc if we'd handed them an already written program.

    So I'd say at an easyish timed write-and-compile test would have some value.

  40. Insulting but necessary by EmperorOfCanada · · Score: 1

    Insulting but necessary; recently I a friend who is an awesome coder walked out of an interview when they handed him an final exam like coding quiz. He felt that it was too impersonal a way to assess for a position as the lead senior developer for a company. But at the same time I would say that the vast bulk of people I have encountered in the programming world were shockingly short of programming skills. A few years ago I developed a system for a company that then was handing it over to a company with whom they had a maintenance contract. So the two top programmers for the company with many years of programming experience and one of whom had graduated from one of Canada's "Top" CS programs began asking me interesting questions about my code; the most critical question was "What are those odd arrays that you are using?" The odd arrays were associative arrays. So I just thought they used a different word so I began thinking of anything even slightly synonymous, hashtable? Lookup table, map, key/value pair? In the end I gave a more than one hour tutorial on the value of a using keys to find values and how the hashing and use of trees could make the underlying algorithm wicked fast even on massive data sets.

    The questions went on and on. Won't that waste too much memory (it was a single purpose server with 8G and a data set well under 500M)? Won't scanning through that huge array take forever(I had explained the whole look up tree and showed that a typical lookup only took a tiny handful of steps and that it didn't matter as the system was wicked fast even with a test load many times the system growing far beyond the company's wildest dreams.)

    But these two who I now refer to as the Hash Twins could talk the talk. They would blah blah about log files and in-line assembly and wanted to argue about commenting style but had massive gaps in fairly basic bits of programming. So these two would have interviewed quite well unless your interview was basically a coding test. A timed coding test also makes sense in that if you gave me the weekend to pass a basic test in a language that I am very unfamiliar with like Haskell I could probably pass but I would have to look up nearly every bit as I not only don't use Haskell and am unfamiliar with functional programming so I would not be able to step into a complicated Haskell project as the technical lead. I shouldn't pass.

    But even after years of C++ I would fail if you gave me a test full of pedantic questions such as "List all the different basic ways you can use the keywords static and const, define the following keywords: explicit, compl, noexcept, and decltype." (I had to look those up)

    So I would think that a basic filter test should be quite understandable where you give a person a machine and say, "In the language of your choice code me a function that takes an integer and returns and integer of that Fibonacci number." or for a database person say "Given this trio of tables(users, products, and product sales) cough up an SQL statement that pulls up a list of all the Canadian users and a count of product X that they bought and include those Canadian users who bought nothing." If you couldn't do something that simple in less than 20 minutes (assuming job relevant questions) then an interview would be a waste of everyone's time. I am also willing to bet that the two above questions would kill more than 80% of applicants around these parts. Also questions like the above allow the user to show their thinking; do they put in error conditions? Do they use stupid variables? Do they do it in 10 seconds really well or do they sweat out the whole 20 minutes and produce marginal crap? Do they show a lack of Mathematical ability by asking what the Fibonacci is (Not a deadly strike but a test to see how broad their knowledge is as great CS does use math. Plus if they don't know Fibonacci it only takes a few seconds to explain)

    1. Re:Insulting but necessary by Anonymous Coward · · Score: 0

      Knowing/remembering Fibonacci has little to do with mathematical knowledge and nothing at all with ability.
      It's a (rather useless) piece of trivia. You'd at least have to ask for some mathematical concept that has realistic and frequent uses.

    2. Re:Insulting but necessary by fatphil · · Score: 1

      These hash twins would probably have failed at an interview where, rather than just setting a programming test, they were asked "how would you solve this problem?", and as they flapped their arms and talked about inline assembler (I'd have booted them out of the door by that stage), they could be probed "so, what kind of data structure would you use?". You wouldn't need to see them write the syntax for the associative array, but you could tell whether they were familiar with the concept. Of course, such an interactive setup gives them the chance to ask back "what are the access patterns like? ratio of reads to writes? are some elements accessed very frequently compared to others? would those access patterns change over time, or be time independent?" which would show that they didn't just know about the general concept of such data structures, but that there were many many implementation choices.

      That set-up can also help the guy who chokes under the spotlight, but does actually know his stuff - you can gently squeeze the knowledge out of him.

      --
      Also FatPhil on SoylentNews, id 863
    3. Re:Insulting but necessary by Billly+Gates · · Score: 1

      If you owned the company and put your life savings, retirement, home/cars on the line for colateral for a smalll business loan for a startup I think your opinion would drastically change!

      The world does not revolve around you or the workers. Only the owners and shareholders. The best way to get a job is to only focus on the owners wants and needs and forget your own. That is how the world runs.

      Most good employers will test relevant information. I did flunk one interview quiz where they had a bunch of words together and I was supposed to find the synonym or similiar phrase. They got harder and tricky in the end and sets of numbers where I had no calculator and I had to predict a pattern very very fast! This was for a unix help desk job at an ISP so I have no fucking clue why I was asked these things so your mileage varies.

      I felt insulted as a result of that and being rejected but they did not even want to look at my resume until someone passed it. The job went unfilled for awhile as they complained they can't find enough qualified candidated. Maybe they got them in India?

    4. Re:Insulting but necessary by geekoid · · Score: 1

      We don't need interview tests, we need a PE certification for programmers.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    5. Re:Insulting but necessary by geekoid · · Score: 1

      Mine wouldn't.
      I can tell a good programmer through discussion. Knowing syntax is one of the least need skills.

      "Most good employers will test relevant information"
      Nope. They will ask questions that can have many outcomes, and not tell you the variables they are using as a metric.

      And more then not,e they are created by someone who doesn't understand how to make tests, and will 'fail' you if you have a different answer then they would have used.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:Insulting but necessary by 3dr · · Score: 1

      The Fibonacci sequence has the uncanny ability to appear in fairly random places. For those not interested where the Fibonacci sequence occurs, I'll keep the list short so you can get back to the episode of Family Guy you were watching: Look at bone size relationships, or google "fibonacci sequence in ferns".

      TL;DR - google "fibonacci sequence in plants". Interesting or not?

      This is just basic scientific interest, and yes, trivia for those not practicing in the fields where the Fibonacci sequence so frequently appears. But, I value a basic scientific curiosity in candidates, especially if they studied Computer Science, or call themselves Computer Scientists. Computer Science being, at its core, the mathematics of computation. More is revealed about a candidate through "useless" trivia than you may realize.

      Curiosity is an immensely important trait in engineering positions. It forces people to ask questions, to look for better solutions, and it allows them to debug code issues faster. Uncurious people tend to be rather boring; their conversations certainly are, because they never ask questions.

      All the questions and conversation between an interviewer and candidate combine to form an opinion of that candidate's ability to perform the job. I'd never disqualify someone automatically if they were to blow off a question/conversation about fibonacci sequence appearances, or a recent medical story, or the latest Mars probe discovery, but it definitely reveals something about a candidate in a technical field.

    7. Re:Insulting but necessary by EmperorOfCanada · · Score: 1

      Very dangerous as we don't always need awesome programmers. Often the high-school student programming up a school website is just right. Once you have a PE you will then get "Professional" bodies that will then prevent the high-school student from programming and then poof prices go through the roof. But while that might look good I can give a great example of that blowing up the second the Professional society gets greedy.

      In Nova Scotia years ago if you bought a house you would pay a surveyor around $100 to walk around a property to make sure that the house was thoroughly on the property. With few exceptions the surveyor could eyeball this so it was an easy $100 for every house sold. Then the NS Surveyor's "Professional" organization insisted on a full survey for every sale which would cost around $1,000 (at the time) but some smart insurance person said, "Wait a second how often does it turn out the house isn't on the property?" So he started selling insurance, for $100, to the buyers that he would cover all the liabilities if it turned out that the house wasn't on the property. This satisfied the banks and was easier than getting a surveyor to eyeball it. So now all the surveyors lost that nice little side business of $100 for every sale and certainly never gained the $1,000 business. If you do the math it is $100 time the number of buildings sold in the province. That is a huge massive loss for the small number of surveyors that existed at the time.

      So if any state or province were to try to create a PE designation that had the slightest backing in law all that would happen is that on paper it would look good but everyone would figure out ways to end run the system. Instead of hiring a local developer you would outsource(out of your jurisdiction) to someone who might make you a "Shrinkwrap" solution that you are the only person to ever buy. Or even worse the law would be written that you can't use software not certified by a local PE resulting in that government losing the next election.

      The PE designation and the laws backing it only make sense when you are talking bridges or other engineering where lives are at stake. PE laws don't exist to protect the top people in the profession from being embarrassed by those at the other end.

  41. I would avoid such an employer. by Anonymous Coward · · Score: 0

    This is just a variant on how to address the problem of having too many people apply for a position that too little time has been allocated to fill properly. Nobody can be arsed to talk properly anymore. Whatever your view on the validity of the test and its appropriateness - you are decreasing the risk of hiring an absolute numpty and increasing the risk that someone really useful or valuable to your company might be missed. 25years ago I sat a load of tests involving ticking boxes and drawing things. The very prestigious banking institution in question said I had an aptitude for 1) working in the computer centre or 2) working in the trade floor as a runner. Because I liked computers and knew almost nothing about the trade floor I chose option 1. Had I chosen option 2) I would have ended up undoubtedly financially better off (in a big way). I left the Bank after 18months and joined an outsourcing outfit. Who did this test serve best? Had someone with experience and who cared explained (i.e. spoken properly) to me about these choices then my career and arguable my value to the bank could have been much improved.

    My point is: these test are just filters and probably offer very little value in terms of what your woking life will be like.

  42. Deadlines by wisnoskij · · Score: 2, Insightful

    Are you telling us that you have never heard of job deadlines before?

    --
    Troll is not a replacement for I disagree.
    1. Re:Deadlines by happyhamster · · Score: 1

      In any kind of serious software development, deadlines are weeks and months, not minutes. Crucial difference. You can have a bad day, and catch up or even get ahead the next. Can't be done in 10 minutes. If you are ever asked to do a programming task in 10 minutes in real world situation, the process is horribly broken and you should run from there.

    2. Re:Deadlines by wisnoskij · · Score: 1

      Well if you have a bad day on your job interview, expect to not get the job. There is not really any way around this.

      --
      Troll is not a replacement for I disagree.
    3. Re:Deadlines by Anonymous Coward · · Score: 0

      Around here, we have soft deadlines. If we can't make a deadline, it was either unrealistic and we need to make a more realistic one next time or we need to hire on more resources.

      Of course we make sure there we're any unexpected hang-ups and we learn from our mistakes.

      Most of the people that I work with are respectably intelligent and nearly everyone is a team player.

    4. Re:Deadlines by sjames · · Score: 1

      If your deadline can be measured in minutes, you have deeper problems.

  43. Big "depends" by Anonymous Coward · · Score: 0

    If you hire someone fresh from college, this test is of quite limited value in predicting future performance. If you hire someone with (self-claimed?) long experience on the job, it will give a rather good impression of how well his claimed skill set holds up to reality. If you hire someone for a research position, it is much more important how he deals with stuff he is not prepared for rather than otherwise. However, an oral examination is in this case much better suited for keeping the candidate on the brink of failure and seeing how he fares there.

    The problem with doing it offline is that if he does not know where to start or does not know where to stop, you don't really get the information you were after.

  44. It's About Liability by EmagGeek · · Score: 1

    With product liability lawyers dragging more and more people into court in product suits, they are looking deeper and deeper into a company's processes for developing those products, right down to hiring practices and whether a company was negligent in hiring the "best and brightest," arguing that failing to hire the "best" engineers amounts to negligence when the products they design fail.

    Juries eat that shit up, too.

    1. Re:It's About Liability by fatphil · · Score: 1

      A lot of the "only hiring the best of the best" situations I've encountered and heard of, the companies were after turd-polishers. They knew they had a crap codebase, and needed a miracle.

      --
      Also FatPhil on SoylentNews, id 863
  45. What matters most = thoughtful intelligent design by Anonymous Coward · · Score: 0

    See subject-line above - You're NOT going to do that in 45 minutes on anything of complexity, or unfamiliar territory (be that in data, it's schema, or processing it for input to the required outputs - especially since, as I've seen in my case, NOBODY PROCESSES THEIR DATA EXACTLY THE SAME AS THE NEXT GUY, or has the same exact data either... it's just NOT happening (usually)).

    * A 45-minute test WILL, however, probably show how well you know the particular language tool, & perhaps, how fast you can solve a problem with it... which is, again, NEGATED (somewhat) by the above.

    (Tests like these are NOT the "end-all/be-all/do-all" in other words & don't tell the entire story - they're just another 'metric' which has SOME uses of course, but imperfect overall!).

    That's my take on it, coming from nearly 18 yrs. total time professionally (& long before that academically) with the titles of software-engineer, programmer-analyst, & programmer...

    This is why data-processing jobs (business programming) are SO prevalent, & the 'steady-eddy' part of the trade since nobody does the job exactly the same as the next guy, & things like data conversions, for example, are necessary (even between softwares used, let alone when you send or receive data from others).

    APK

    P.S.=> If we could solve every problem in the world in 45 minutes, there wouldn't BE any, in other words...

    ... apk

  46. Yet another stupid trend by JustNiz · · Score: 1

    One thing in moving to the US from UK I've noticed is how relatively low quality everything seems to be made in the US. Everything is designed cheap and weak and falls apart quickly.
    This apparently also extends to software development. All the US companies I've worked at have been completely happy with very crap code as long as its done fast. I've not really seen anything like it in my previous 25 years of software contracting all over the EU. In fact the mentality there is the direct opposite. The mantra I'm more used to is that rework costs about 10X the cost of getting it right the first time so work smart.
    I still can't believe this incredibly short term 'get it out quick' view in the US really pays off more, but as everyone over here seems to do it, I guess it must, at least for US markets.

    1. Re:Yet another stupid trend by Anonymous Coward · · Score: 1

      It used to be that way here. Almost word for word. Then the 'web' thing hit. You can re-deploy a fix in minutes. People went from 2 meg of memory to 16 gig. I have heard devs saying they can not do anything on a machine with less than 16 gig. Even though you open up top or proc mon and they are using about 500 meg (from the OS background tasks).

      It is amazing the amount of times I wander into 'super senior' level code and say to them 'it runs rather slow huh?' they get this weird look on their face and go 'yeah how did you know'. Bash it out and move onto the next feature is the mantra of the day. I have seen 'senior' level people go 'rewrite/refactor' code that does nothing other than move the spaces around and change the variable names because 'it was ugly'. No tests in measuring how long it is really taking or anything. I have seen entire test frameworks ignored 'because they are hard to run'. Or full rewrite it because they do not want to understand what it does then miss 20 features.

      Also what has gone to the wayside (which is why you see lots of senior level people who are no better than jr) is mentoring. There is no challenge to be better anymore.

    2. Re:Yet another stupid trend by jonadab · · Score: 1

      > Everything is designed cheap and weak and falls apart quickly.

      That tends to happen when most of the prospective customers can't accurately assess the quality of a product before buying it. Given two products, if they can't tell which one is better, most folks are generally going to buy the cheaper one. The company that insists on making a better but more expensive product has a harder time staying in business.

      There are some exceptions. Notably, products that people buy _repeatedly_ are significantly less subject to this, because after buying it the first time people usually have some idea whether it's any good or not. However, that doesn't work if the old models are constantly discontinued in favor of new ones (e.g., anything electronic).

      --
      Cut that out, or I will ship you to Norilsk in a box.
    3. Re:Yet another stupid trend by Anonymous Coward · · Score: 0

      One thing in moving to the US from UK I've noticed is how relatively low quality everything seems to be made in the US.

      One thing I've noticed is that they must have better toothbrushes than in the UK.

  47. Depends on medium and content of the test by Korbeau · · Score: 1

    I would be nice to have more insights as to the content of the test and the medium used.

    If it is a complex algorithm (for instance I don't know, writing a compression method, an digital filter etc.) these kind of questions are better suited for pen&paper where the candidate will mostly spill out pseudo code, ideas and comments. As others said, in such a test I would not expect the candidate to write flawless code, but it will give me an idea as to whether he knows basic concepts of programming, possibly of a particular language, and most importantly if he knows how to think.

    On the other hand, if you are given 45 minutes in front of a computer, I would expect it to be a very very simple task. This could be for instance writing a form where the user inputs some values that get serialized on disk. I would more be interested to know if the candidate is as fluent as he says with the tools provided. I would expect him to finish on time and evaluate the real quality of the code. Or if he had problems this would be a base of discussion as to what happened. Of course, in such a context I don't see why this test would not be "open books" with access to the Internet and any reference documentation needed.

    Both tests are valid enough I think. But mixing them (doing a pen&paper test for code that is meant to compile flawlessly or doing a seated test with a complex algorithm) is just malicious! Maybe that is what your friend encountered.

  48. Better Test by Anonymous Coward · · Score: 0

    It might be better if they had a "find the bug and fix it" timed test. Not a week goes by in my SaaS organization in which I don't have a time-sensitive bug that needs to be found and fixed.

  49. Depends... by siDDis · · Score: 1

    If you are testing if the person can program or not, then it's fine. But if you're looking for only the cream of super software developers, then something minor as the persons emotional state for the day can make a huge impact on the result.

    For me personally, I think understanding the actual question is the most difficult part. Some people find bizarre mathematical puzzles fun. I prefer puzzles from the real world, like for example how to get two systems to talk together.

  50. Depends on what you are coding for. by Anonymous Coward · · Score: 0

    If it is Java or web language then certainly there is a call to code a routine quickly because the coding needs to be out the door much faster. Skilled web and data base coders are using higher level language and therefore do not need to think at the device level.

    However if the coding is for chip level routines for things like device drivers then a speed test could be very counter productive.
    If I were hiring a device programmer my thinking would be along the lines of how well does the individual understand the importance of using concise comments. More to the point how well do they incorporate sub routines in C and low level language like Assembly when called for.

    The job will always get done right faster in the long run by the programmer who best understands when to slow down and think things through for device coding.

  51. Just assume. Don't test! by Anonymous Coward · · Score: 0

    NEVER administer an objective test under controlled conditions.

    Instead, give them a subjective test; for example, consider the candidate's hair and how well they are dressed and how much fun it is chatting with them.

    Also, have the candidate be judged in a group discussion so each judge can influence one another as the discussion unfolds. Don't ever collect independently created data.

  52. My first job did this by Anonymous Coward · · Score: 0

    My first job SORT OF did this. What they did was call in a bunch of entry level programmer applicants, give them a simple COBOL program to do (keep in mind this was a few decades ago), and then graded the results. The test was open book, and started out with unlimited time. Eventually they discovered that anyone who was there more than a couple of hours never passed the test, so they shortened it to 4 hours to weed out the really bad ones quicker.

    The applicants came from Computer Learning Center and the local community colleges for the most part. I was in a group of about 80-100 test takers, and out of that group, only 3 had acceptable scores, and out of those 3, two were hired. One was not hired because the interviewer couldn't understand her and vice versa.

    I talked to some of the candidates from a later group, after I had been hired and working there for about 2 years. He was from a community college, and said that he was comfortable with MOST of COBOL, but he did have trouble in his PROCEDURE DIVISION. I was polite enough not to bust out laughing.

  53. It's all about the candidates' approach... by Anonymous Coward · · Score: 0

    Well, whether it is writing a Fizz Buzz solution or a broken algorithm test: it's about how people solve the problem and interact.

    - Is the problem beneath them?
    Well, they are too good for this company and have to search an Ivory tower.
    In a working situation you cannot afford arrogance, as problems don't vanish with the magic arrogance wand.

    - Do they ask questions if they really need to (you might adapt your problem to make this necessary)?
    If not: they won't ask questions in a working situation and waste expensive time staring at their screens.

    - After finishing the problem, how do they react to other proposed solutions?
    A good problem always has multiple ways to solve it: some more elegant, some more efficient or both. The candidate aparrently chooses one solution, so you propose another and ask why the candidate choose his/her solution. You should get an answer that comparis advantages and disadvantages of each solution.
    If the candidate is not interested or simple states his/her solution is the best: out!

  54. Valueble if not possible by Anonymous Coward · · Score: 0

    The best speed tests I have seen done are ones where the developer cannot possibly complete the assignment in the allotted time.

    This puts the developer under pressure, allowing you to judge how well they handle this, it will happen at some point and you can't have developers falling apart under pressure. This also allows you to see how the developer codes, do they rush it, make it messy but have more functionality, are they slower but tidy, how fast did they grasp the requirements(did they?) etc. Depending what your company does you can then filter candidates based on the output/style.

  55. Sell your none-SLOC skills elsewhere by keneng · · Score: 0

    Many programmers who can code SLOCs very quickly, but the code is unmaintainable. Code maturity happens when a piece of code no longer gets change requests. When that piece of code however is buggy and built too quickly, it may seem to work at first glance to managers and makes the managers look good, but that same undeliberate piece of code will come back to nip them in the butt for 2 reasons: not properly documented leaving unmaintainable if there is turnover(which there will be inevitably) and secondly the guy who wrote it the first time is going to waste a great deal of time looking for a bug/scenario he didn't plan for in the first place.

    Code maturity demonstrates itself over time. If over the years that pass by, a piece of code doesn't get changed and the system is still running then you can confidently label that piece as mature.

    A great programmer is a programmer who can write mature code the first time. The problem is managers in this era don't give a fuck because they have their heads focused on short-term gain so will probably fire mature-minded coders who aren't to keen to produce and checkin code often and quickly.

    All this is to say that I don't believe in measuring a programmer by the SLOCs and time to complete a REAL-WORLD piece of code. Start your own consulting company, if you have the confidence that your skills are good enough and that you can prove it with practical REAL-WORLD solutions that nobody else has thought of creating. If you haven't yet, then at least have confidence in yourself and keep the dream alive and still start your own consulting company while doing another sideline job that doesn't eat up your whole daytime schedule.

    For those of you focused solely on hiring SLOC-gods, go SLOC-off you dinosaurs.

  56. need more real world tests not ones craming can ac by Joe_Dragon · · Score: 1

    need more real world tests (with all the tools that you get on the job) not ones cramming can ace.

  57. Use evidence-based principles by Anonymous Coward · · Score: 0

    Why not use scientific, evidence-based principles, like those found in "Principles of Forecasting"?

    Use objective time-based tests. Use expert judgements collected independently. Blend together multiple kinds of analyses.

  58. Rules of life by ledow · · Score: 2

    1) No recruitment process mirrors what is required in the job. Don't expect it to.

    2) Most recruitment processes generate only a single metric in a particular way.

    3) That metric may not be what you think ("What did he do in the last ten minutes of the impossible task we set? Panic? Make stuff up and waffle? Or state that the problem required further time and an interesting avenue for development seemed to be X?" - you'll probably find that your code ends up in a bin within minutes of the test after a brief "Yeah, looks reasonable" check)

    4) That metric, if it IS the sole basis of the recruitment process, will result in candidates being hired who are good at that metric, not the job (e.g. managers who are good at bullshitting other managers rather than managing, coders good at churning out stuff that looks right but is horrendous to use or wrong, etc.). If that's the case, you won't get the job, and wouldn't want to work there if you did (those people would be your co-workers, and your managers would think they'd done a good job of hiring them in the first place, and wonder why you have a problem with them).

    5) The bulk of the recruitment process otherwise is about weeding out the chaff so they have more time to talk to YOU and find out whether you're actually suitable. Large companies get idiots who can't turn a computer on apply for datacentre systems administrator posts, and the test is there to save them time. Cut out the chaff, get a handful of candidates worthy of interview from THOUSANDS who applied (CV's written in crayon or with spelling mistakes = first stage bin, people who don't have relevant experience / qualifications = second stage bin, people who don't turn up to interview, or turn up late or scruffy = third stage bin, people who can't pass the test = fourth stage bin, the rest are interviewed properly - it's quite easy to get to the interview stage, or to manage the applications up to the interview stage, knowing NOTHING about the job at all).

    6) I would hire the guy who approaches me on the day of the test and quietly says "I don't think that's enough time, but I'll try my best, okay?" if he has one ounce of relevant experience / qualification / skill.

    1. Re:Rules of life by fatphil · · Score: 1

      > or turn up ... scruffy = third stage bin

      While happily employed, I darted off for an interview, clad in jeans and biker jacket. I was a little early, mostly as I was being rained upon heavily, and had seen enough of the town to judge whether it was a pleasant environment (it was). Which means my long hair was a bedraggled mess. As I was early, and the secretary was a bit inexperienced and didn't show me where I could hang my jacket, I just flung it into the corner of the room behind me. (And being a proper bikers jacket, it 'stood up'.) It was noticed immediately by the two people who were interviewing me, I could see them do a double take -- "WTF? he doesn't even hang his coat up".

      Would I have been put in your bin?

      (I mention that situation as I got *two* job offers from that single interview.)

      (There was an other interview where I cycled to it (nearly an hour's ride, I'm an unfit bastard), so turned up a complete sweaty mess, but had a washbag and a suit in my rucksack, and did such a chango-presto in the loos that the receptionist didn't even recognise me when I emerged. So I'm not always a scruff in the interview itself.)

      --
      Also FatPhil on SoylentNews, id 863
  59. Mostly Harmless by Anonymous Coward · · Score: 0

    I agree with some of the comments here related to how the candidate reacts to the test, rather than their performance on the test per se.

    Observing, or reviewing how the candidate approached the problem is in my opinion more useful than whether the "code" was correct or not.

    It's a huge red flag if someone refuses to take a test.

    I also like asking someone to go to a white board and explain a concept, like "diagram what a linked list is..." It's amazing to me how few candidates don't know what a linked a list is!

  60. Written or Computer based? by Anonymous Coward · · Score: 0

    I was given a short test recently for a contracting position--it was a fairly trivial piece of Verilog coding just to weed out the people bluffing. I was given a couple pieces of paper and found this frustrating. I got through the test, but my brain doesn't seem to work right without a keyboard at my finger tips.

    So, I'm wondering how are these tests normally given? If on a computer, are you given a choice of editors? Seems an awkward slippery slope.

  61. Entry level only. by Anonymous Coward · · Score: 0

    I've been programming for 20 yrs. My reputation should be enough. If you can't take the time to talk with me for 10-30 minutes to see if you like me and I like you, I am not interested in working there.

    If I were entry level .... like applying for a McDs job, then this sort of testing matters.

    Any company looking for that level of skills is not a company that I want to work at. Back when I was entry level, the job was for world-class developers, not community college dropouts. There weren't any tests. We talked. I that team produces THE highest quality code in the world for non-trivial systems. We were SEI-5 rated - INDEPENDENTLY.

    Screw your tests.

    1. Re:Entry level only. by Anonymous Coward · · Score: 0

      Why should someone who doesn't know you from Adam trust your self-reported "reputation"?

      I say: don't trust,TEST!

      Also, if you have a passion for programming, you would ask for more tests, not complain about them.

      Lastly, even with basic questions there is an opportunity to bring superior experience and knowledge to bear in creative and astonishing ways. In a question involving singly linked lists almost no one checks for non-terminating, looped lists before they start working with it. It's always a disappointment with these so-called experts.

  62. Short programming exercises are essential by qwijibo · · Score: 1

    When I interview people, I ask them about their experience and give them opportunities to let me know their strengths and weaknesses. If someone says language X is their go-to language for solving simple day-to-day problems and they're an expert, a short demonstration tells me much more than they ever could. I will never ask someone to use a language they haven't already said is one of their strongest or do anything to make the problem difficult or obscure.

    I tried the fizzbuzz exercise mentioned in another post and it took me 1 minute, 40 seconds from creating a scratch directory to running the completed, working program. Having never seen or thought about the requirements before, I consider that a confirmation that this isn't a bad interview question.

    The programming examples I ask for are more complicated, but ones that I can do from scratch in under 3 minutes, so giving someone 45 minutes, ability to ask any questions or clarifications they need and full access to google and man pages seems perfectly reasonable. Even if the person is nervous and not good at interviewing, they should be able to complete the exercise. I want programmers who are good at collecting requirements and communicating with the computer by means of code. This is an opportunity to shine if their interviewing or communication skills are not as strong as their programming. The exercise is pass/fail and I never compare their time to complete the exercise to my own.

    When I look at the code, there are several places where style and experience show. For example, if I have them run their code against 20 records, will it take exponentially longer if I later run with 200 or 20000 records? That's not part of the stated requirements, but if their code runs in linear instead of exponential time, they pass with a solid thumbs up. If their runtime would be exponential, it's an opportunity to pose that back to them and see what they would do differently given that as a new (after the fact) requirement. Understanding the difference and knowing how to fix it is also perfectly acceptable. Requirements change all the time and that's a good opportunity to understand their thought process.

    I've never hired a programmer without making them write code and never would. I'm also cautious of places that would hire me without putting me in front of a computer, even though I interview well. I've interviewed far too many people who may talk the talk or hide behind English as a second language, but are actually just incompetent. Likewise, producing elegant code on the fly speaks for itself.

  63. Re:need more real world tests not ones craming can by Anonymous Coward · · Score: 0

    need more real world tests

    While writing something from scratch with a 45 minutes deadline is pretty rare, what could be more real-world than a 45 minute debugging session with an angry customer on the phone, trying to figure out why your javascript errors out on a single IE8 installation (his, of course) and every other computer is OK. (Eventually tracked it down to a missing "var", which led to "s" being used from a global scope, and at that point was inexplicably set to an unidentifiable Object which had no methods we could determine from the debugger, including "s=null")

  64. TYPES of programmers by Anonymous Coward · · Score: 0

    These tests are use to categorize programmers into 10 different categories. Those who understand binary notation and those who don't. Ba-da-boomDon't forget to tip your servers ladies and gentlemen. I'll be here all week.

  65. Yes! by mwvdlee · · Score: 1

    A test which measures how much time code needs to run and how much time a coworker will need to maintain the code is very valuable indeed.

    I only read TFS and assume that's what they meant by "timed".

    If they're talking about something obviously useless llike how long it takes to create bad code, then I'd need to revise my response.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  66. It takes all kinds... by Anonymous Coward · · Score: 0

    ...to make the programming world go around.

    Someone who would excel on a timed test such as this might already have a lot of programming knowledge and already have a hefty bag of tricks to work with but at the same time may not be so good with coming up with new and novel ideas.

    A slower programmer might be more detail oriented, focused, introspective, and may come up with new technologies or techniques to old problems.

    Someone who does mediocre on the test is probably a well balanced programmer that brings in a good sized bag of tricks but also is good at coming up with new solutions.

  67. Yes - tests more than just coding. by jnelson4765 · · Score: 4, Informative

    I've done one recently - it also tests memory and grace under pressure. Some people just can't perform well under the gun, and in a high-pressure workplace where you may be dealing with outages that are hitting the tech press within minutes, and the global press within an hour, being ale to not fold under pressure is a critical job skill.

    Plus, as my old business computing teacher in high school said, "You will be doing tasks that make no sense on obsolete technology for inscrutable reasons. If you have a problem with any of this, you should probably drop out of this class, since you do not have what it takes to be a programmer in the business world." Dealing with arbitrary requirements is part of working for any large company, and seeing if an applicant will go through with it, or if their ego is going to get in the way, is a useful test.

    --
    Why can't I mod "-1 Idiot"?
    1. Re:Yes - tests more than just coding. by micahraleigh · · Score: 0

      The real "business world" heavily weighs candidates based on non-obsolete skills.

      Glad I didn't have that guy.

  68. I get along fine without testing before hiring by Anonymous Coward · · Score: 1

    I personally have always excelled at programming tests, but I do not use them while hiring programmers. Here are my thoughts:
    1) In modern programming, research skills are more important than problem solving skills. I would rather have someone who knows how to go find a wheel than one who knows how to make it from scratch.
    2) Programming tests don't duplicate real life scenarios. Programmers are 99% of the time writing pattern code -- the same basic process over and over. Because of this, I prefer to find programmers who are creative in improving their efficiency (lazy programmers) versus ones who hammer out tons of code.
    3) The final attribute I find attractive is a programmer who adapts their style to project, versus adapting the project to their style.

    To sum it up, I'd rather have a lazy, adaptable, practical programmer versus a workaholic, structured, genius-problem-solver programmer. I might not get the perfect program, but I will get the job done on time and on budget.

  69. Direct answer to the question... by pev · · Score: 1

    ...is another question : "do you care about how fast they programme or how well they programme?"

    If you have to do after the fact debugging or re-factoring this will use up far more time that you think you've saved by them writing it speedily or not.

    For example for the FizzBuzz test, as a basic test it's a great idea. However, there are lots of considerations beyond just the ability to write a solution :
        - Is the defined limit of 100 coded as a const / #define or is it hard-coded value in-line?
        - Why do you want to generate 100 values? Shall I code in a function with top limit as a parameter?
        - Are you going to generate the results live in a loop or generate a 100 element array first and print it after i.e. generate a lookup table first (and indeed if that's a solution, how does the candidate decide between static array or malloced array)
        - Do you care about further optimisation for size / speed in the intended application?
        - Do you want the table printed to stdout or stderr?
        - What's their coding style look like? (If they're not using K&R brace style end the interview immediately)
    I'd expect an experienced candidate to ask at least one even if jokingly knowing it's a mickey mouse test to start some interesting conversations about coding that are much more revealing than the ability to write one solution. The way they think about the above should tell you a lot more about how much maintenance they're going to need...!

    ~Pev

    I'd want a candidate to ask me questions before solving such as

    1. Re:Direct answer to the question... by dkleinsc · · Score: 1

      - What's their coding style look like? (If they're not using K&R brace style end the interview immediately)

      You just rejected a lot of perfectly qualified people due to your views in the Brace Style Holy Wars that have nothing at all to do with competence, since, as far as I can tell you never specified K&R style as a requirement. For example, programmers who code more Java than C will tend towards Allman style over K&R, because a lot of books and standard libraries use that, while programmers who like to tinker with GNU code will go with the GNU / RMS brace style.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    2. Re:Direct answer to the question... by BonThomme · · Score: 1

      THIS

      The smarter (i.e. more qualified) the applicant, the more questions they are going to ask.

    3. Re:Direct answer to the question... by pev · · Score: 1

      You just rejected a lot of perfectly qualified people due to your views in the Brace Style Holy Wars that have nothing at all to do with competence, since, as far as I can tell you never specified K&R style as a requirement. For example, programmers who code more Java than C will tend towards Allman style over K&R, because a lot of books and standard libraries use that, while programmers who like to tinker with GNU code will go with the GNU / RMS brace style.

      Actually, the only person I would have rejected was yourself unfortunately for the epic fail of not spotting the obvious humorous reference :-D

  70. For anyone not just out of college, ask for code.. by Assmasher · · Score: 1

    ..that they have written and have them walk you through it.

    I've always found that to be a very useful exercise because you can ask them all kinds of questions like:

    "Do you always name your variables a1, a2, a3...?"
    "Where are your comments?""
    "Why did you do this part this way?"
    Et cetera...

    People who say "well, I don't really have any code to show you" I am immediately suspicious of.

    It doesn't need to be anything impressive, just an example of their work.

    Personally, I don't care how good a 'Programmer' someone is, I care about how good a 'Software Engineer' they are.

    --
    Loading...
  71. Is this some kind of trick question? by seebs · · Score: 1

    I don't understand how this can be a question.

    I mean.

    My friend applied to a service station. They gave him a test where he was supposed to diagnose a problem with a vehicle and fix it, and they gave him an hour to do so. Is this test in any way meaningful?

    Well, think about it. They want someone to fix cars. They get paid for fixing cars. They get paid more when they can fix more cars per day. Does it seem like whether someone can perform a trivial task in an hour or less might be a relevant piece of information?

    Seriously, there's a lot of things about programming where wall-clock time isn't hugely important, and a really good slightly slow programmer is usually better than a crappy fast programmer.

    But as someone who is, most of the time, on the very fast end of things: Yes, I think there is value in being able to get stuff done quickly. It's not the only value, and I don't necessarily think I'm a more valuable employee than someone who's slower but more reliable (which gets you like 95% of the programming population), but there's certainly utility to it.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    1. Re:Is this some kind of trick question? by GodfatherofSoul · · Score: 1

      So, you want someone to design a 1000 man-hour database to apply for a job in an Oracle shop? These tests are about practicality.

      --
      I swear to God...I swear to God! That is NOT how you treat your human!
  72. Re:need more real world tests not ones craming can by Count+Fenring · · Score: 1

    YES.

    I think that particularly an observed debugging session would be a tremendous interview test. You'd need to suit it to their known technologies unless it was pretty simple, but I think someone's debugging process speaks volumes about how well they think about problems.

  73. Re:ARGH x ==5 by Billly+Gates · · Score: 1

    I retyped that as I declared them in the do/while. Pretend I set x ==5 before I mailed you my solution.

    Did I loose my geekcard?

  74. They do weed out those who just talk a good game by Rogerborg · · Score: 2

    But the curious thing is that I've never, ever, seen them given to contractors, only permies.

    Given that contracts are (IME) composed of the best and the worst, but bill you the same either way, this would be the group to which I'd mostly like to say "You want money? Show me."

    --
    If you were blocking sigs, you wouldn't have to read this.
  75. Re:For anyone not just out of college, ask for cod by Anonymous Coward · · Score: 0

    Um, everything I write is the IP of the company I work for. So asking folks to bring code in is an incredibly awful idea -- in 90% of cases, you're essentially asking your prospective employees to break their contracts with their existing or past employers. I'm pretty sure you should recuse yourself from any interview processes, and possibly anything important in your company's operations.

  76. Live coding during phone screen by Anonymous Coward · · Score: 0

    One portion of our phone screens is a live coding session using a shared screen. This gives us an indication of whether the candidate can actually write code or not, how he or she approaches the problem, whether the right questions get asked if we aren't completely specific in our initial instructions, and so on.

    There are a lot of candidates who list degrees and jobs but who cannot do the actual work of programming. We're not paying to put one on a plane for an on-site interview.

  77. Know what you're testing by nine-times · · Score: 1

    The thing about tests like this is they tend to be pretty good at measuring the exact thing they're measuring. Giving someone an easy coding task to complete in a tight deadline might be very good at measuring performance for a job that requires coders to complete relatively easy work under pressure with extremely tight deadlines.

    But if you're looking to hire someone to complete more difficult tasks with more relaxed deadlines, then such a test might not serve you very well.

  78. Funny thing about those tests by S3D · · Score: 1

    I was consulting for division of big corporation and was asked several time to help with interviews. Candidates which did well or at least not bad on my question/tests were invariably rejected by HR of the division. They were too expensive. Workers without experience/knowledge of the field were taken instead because they were cheap. Happily the are not asking me any more.Whole endeavor is depressive.

  79. Correct answer is it depends :) by TheLink · · Score: 1

    Depends what sort of programmer are you hiring, what's the actual test and how you would mark the test (or decide pass/fail).

    FWIW I'm a crap programmer and would probably fail most of the more difficult algorithmic tests (which tend to be popular in some companies). But at least I know I'm crap :).

    I'd probably be able to do the simple stuff. What I've found so far writing stuff for business/commercial environments is you usually don't need fancy algorithms (and if you do there's often a library or doc for it ;)). You do need to get the data structures/schema right though- can't store and manipulate data if you have no place for the data or don't have a good place to put it. Often another hard part is the UI... End user: "I want to see all the data", End user's boss: "It's too cluttered and messy, and how about more charts and graphs? I like charts"... Coder thinks to self "Chart? But it's just a list of items!"

    --
  80. no by Anonymous Coward · · Score: 0

    no, it doesn't indicate better programmer. it indicates a faster typist and someone with good memory.

    good developer is not about cranking up massive amount of code quickly. it is about writing as little code as possible that does the job, and that takes time and brain.

    the question reflects everything that is currently wrong with software industry. it favors coding monkeys, not engineers.

  81. Yes. very. by mlk · · Score: 1

    I do timed (2 hour) coding tests.

    Don't care if you finish. But I do care if you don't write tests or can not follow simple instructions

    --
    Wow, I should not post when knackered.
    1. Re:Yes. very. by BonThomme · · Score: 1

      and therein lies the problem with taking the tests. you never know what the interviewer considers important. completed effort? correct effort? unit tests and comments? time optimized? space optimized? code formatting? asking a bunch of clarification questions before starting?

    2. Re:Yes. very. by mlk · · Score: 1

      So the same as everything else during the interview process. Follow what you think is a good practice.

      --
      Wow, I should not post when knackered.
  82. Any place that runs 'tests' by Anonymous Coward · · Score: 0

    Will have a very high turnover rate, pass

  83. Re: Fizz Buzz by gr8_phk · · Score: 1

    I was asked to interview a guy that my boss wanted to hire from another part of the company. I gave him FizzBuzz in the interview. He spent a long time and did not complete it - he did have stuff running and partly working. He's a young guy and was really distraught over the whole thing. I recommended we not hire him "guy can't code" but they did anyway. Turns out he's actually not bad in normal circumstances, and rather good at some other things (which is why they wanted him in the first place). So NO, you should not base a decision on a single programming task. Now had he failed FizzBuzz AND shown no other promising characteristics they would not have hired him.

    BTW he sits next to me now and his nick is Fizz...

  84. Re:If you put your life savings by Billly+Gates · · Score: 1

    Yes, but -- as a senior programmer -- giving me a test at this level basically is insinuating that my resume is full of lies. If a potential employer is starting our potential relationship by accusing me of being a liar, then that's not a relationship that's going anywhere.

    Lets turn the tables.

    Lets say you worked your ass off for 10 years to save $300,000 with your buddies to start your own company. You need some help and a senior level programmer is essential to sink or float your startup.

    Would you just hire someone with a resume of stuff? What if he did have those qualifications? How do you know he wont sink you, destroy your marriage, retirement, and lose your home which is in co-lateral for the business loan? No, I am not exgerating either if you ever owned a business! If you want to make it the costs are astronomically huge and risky.

    The world does not revolve around the employee. If you are hot shit then you can pass the dumb test. If not then you are rejected and I do not care about your experience and I feel if you were in the others shoe you would give otu the test as well to save your assets.

    Not all of it is a startup, but come one employers have a right to look after their own interests and shareholder/owners money. A bad coder cost a lot more than a bad fastfood worker to fix and fire. It is best to filter before you talk to them.

  85. Only if the test is any good by Anonymous Coward · · Score: 0

    Spent 4 hours in a meeting today re-reviewing answers on a timed test, as the scores where significantly lower than the previous test.
    The company I work at is marketing the test as the new gold standard for recruiting IT in Japan. The largest IT company in Japan uses this test in some of their hiring.

    This test is done in a browser window and you get 20 minutes to do 2 of these. The original reviewer deducted 7 out of a possible 30 for missing a bracket on an if statement. The target audience is undergrads worldwide.
    Here are some examples.

    Write your own implementation of ArrayList without using Collections. (that means all methods of arrayList)
    In Java create a zip from an inputfile (better know your imports and exceptions of util.zip by heart)
    Write a method that test if any given number is an armstrong number (good luck googling that and writing the solution in time if english is not your first language)
    20 sentences of japanese translated to english detailing the scoring mechanism of a ball game then requiring you to write a function to calculate score. (there are 12 rules to implement)
    Create a non-blocking socket channel

    And many more gems such as these. On the other hand there were people who got these two

    write a bubblesort
    multiply two 2x3 matrices creating a new 2x3 matrix

    We still have no idea who can code and who can't. Hell it took our CTO on average 4 mins to fully understand the question.

  86. Worthless by Dcnjoe60 · · Score: 1

    Worthless, in my opinion. When I was project manager for several large projects, some of them had timed coding tests some did not. All the timed coding tests showed is who could code quickly, but not how well they could work together as a team. A successful project, defined as being delivered on time and under budget comes from effective team work and that is the number one requirement. It has been my experience, and I have worked with probably tens of thousands programmers over the decades, that the speediest programmers, while very good at what they do, tend to be lone rangers instead of team players (that is not always the case, but is more often than not).

    The other problem with timed coding is very often when hiring a programmer, they may be excellent in one language, which is great for this project, but not the next, or vice versa. Such tests only show a snapshot at a specific moment of time and again, then you have to figure out if they are too well versed in whatever language you are testing them for, how adaptable will they be on the next project? If they are a great C programmer and now need to be on a team involved with Java (after training, of course) will they still hold on to the way they did it in C or will they embrace new (for them) ways of doing things?

    Basing your hiring decisions, or even just who will make the cut, cannot answer those types of questions and is useful as saying an individual must have a computer science degree while ignoring what other experience they may have. It does make the hiring process easy, because it is something quantifiable, but it hardly guarantees the best candidate will be chosen.

  87. Testing is underrated by Parker+Lewis · · Score: 1

    The problem is: unit test is just a minor portion of testing. And, if it exists, should be done by developers, which already are the bottleneck. I'm a QA lead, and while worked for former-EDS, IBM (and now I opened my own small company), the problem is that unit tests will, most part of the time, will be a very small optimistic set of tests, and not using the interface. Real automated tests, like selenium, are really hard to do, and the focus for automation are regression tests: the ones you'll really execute more than 2 times, for stable features. Real testing starts with the QA team reading the requirements, and, UNDERSTANDING them, and finding roles, problematic and ambiguity requisites. Then, when people will code, after answer all your questions, QA team will start writing tests. So, after delivers features, testing will run. After the code done, regression will be run. The problem with this is: the most of testing guys I'm trying employe in my company, just find trivial and visual issues. Like missing punctuation, some wrong colors... the real job of QA is understand business rules, to achieve the same goal as the development team: deliver an application with few bugs as possible. And, the QA team should provide valuable feedback: short and clean description, steps to reproduce, all environment information. It's not the dev enemy, QA is the dev angel.

  88. Could be good, depends on the implementation. by quietwalker · · Score: 1

    The best interview-test I ever had placed me, a computer with a collection of IDE's, an internet connection, and someone in the company who was already an employee in the room, and asked me to work with him as a team to write a simplified wget clone. We found some non-gpl'ed open source implementation in about 3 minutes, made the necessary changes in another 2, and finished with debugging and unit tests in under 10. It was so fast that they ended up asking us to support https connections as well to fill up the rest of the allotted hour.

    I thought that was a pretty good test; it simulated what they'd actually be doing on the job - working in a team to produce output, without being artificially limited by unrealistic constraints like lack of an internet connection, auto-complete and in-line access to docs via the IDE, and re-use of preexisting code. At the same time, they could tell whether or not I was practiced with the IDE of my choice, if I had a familiarity with the language, and whether or not I was a good fit with their corporate culture.

    Pity that most companies still do the 'test to see if you know how to reverse a linked list'-style quizes.

  89. Needs perspective by spiffmastercow · · Score: 1

    I recently did 2 rounds of all day interviews at a big tech company where they ask you to solve these kinds of problems. I can see the value of some programming tests to make sure people can actually code, but I saw some major flaws in their methodology. One major problem is conveying what it is you really want the applicant to do. I had several questions where I thought they wanted the algorithm to solve the problem, when really all they wanted was a library call. Another issue is when there's not one clear "best" solution. I had one interviewer tell me to code a problem optimizing for time and space complexity. He interrupted me 3 times because he didn't understand my algorithm, and when he announced the "correct" algorithm, it was actually worse time complexity and only slightly better space complexity. The biggest problem of all, though, is the questions where they want you to implement some sort of bit manipulation algorithm when doing so is both unreadable and a non-optimal approach to solving the problem.

    In the end, I didn't get the job. I was out 4 days of vacation time and 2 weekends that I could have spent with my family. They were out about $4000 from the cost of flying me out and back twice, putting me up in a hotel, etc. In the end both of us would have been much better off if they had just called some references instead.

    1. Re:Needs perspective by geekoid · · Score: 1

      And that's why they are always bad.

      They are looking for things they don't tell you, or looking to confirm their programming bias.

      I refuse to take programming specific test. You want to ask me question to see how I approach a problem? we can talk about it, but not in a test.
      There are too many variables in the business.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    2. Re:Needs perspective by spiffmastercow · · Score: 1

      And that's why they are always bad.

      They are looking for things they don't tell you, or looking to confirm their programming bias.

      I refuse to take programming specific test. You want to ask me question to see how I approach a problem? we can talk about it, but not in a test. There are too many variables in the business.

      Yeah. Unfortunately for me I don't have much chance moving back to the west coast without going through the big companies (ms, google, amazon) since they're about the only ones that consider out of state candidates, and they all do the stupid tests.

  90. Depends on the position by Anonymous Coward · · Score: 0

    My job had a set of 3 coding tests with a total of 2 hour time limit. Some was just pseudo code, other was given input, and what output was required etc. After the fact I found out that my performance on the test took me from last place consideration to the front runner. I didn't have the strongest resume as I barely graduated in Neuroscience, with just a minor in CS and had been working as a sys admin through school. But showing I could do the job got me the job. I think there is more value in that. 'Senior' programmers should blow straight through it, but I was told after that several of those with "Senior programmer" in their title couldn't even figure out some basic regular expressions.

    On that note, at my previous sys admin job we once had an interviewee who was doing quite well until very proudly exclaiming that he not know knew "regular expressions", but ALL of them. Every. single. regular expression. He was quite proud of it.

  91. Many companies are desperate to eject candidates by Anonymous Coward · · Score: 0

    Namely because there are so many applicants.

    If you are a competent coder, you should seek out companies with coding tests, because you have a far higher chance to reach the interview stage than if people go by what you have written in your application alone.

  92. install wordpress by Anonymous Coward · · Score: 0

    these days a lot of people would...

    install wordpress

    install Advanced Code Editor plugin

    umm...

    roi text + link to: http://interviews.slashdot.org/story/13/01/10/0216217/ask-slashdot-are-timed-coding-tests-valuable

  93. Maybe? by multicoregeneral · · Score: 1

    What it does show is how someone will react under pressure. And it will show you the worst possible quality work from someone who is intentionally trying to impress you. As a general rule, I won't do these. I did one a few years ago that made it's way into production at the company I was applying for, I never got the job, and I never got paid for doing it.

    I think the technique that works better is hiring the person, bringing them on site and paying them for their time, and then throwing something big and impossible to fix. That'll really show you how they think, what happens when their wheels are turning, and it'll intimidate them in the same way a coding test will. The difference? There's no false piety with it. No promises that need to be made. If they come back for a second day, you've usually got a winner.

    Then again, it's also possible that the things I find valuable as a manager are different than the values of people who give you false unpaid test projects which they turn around for profit.

    --
    This signature intentionally left blank.
  94. Swordfish by RedHackTea · · Score: 1

    I personally prefer this approach with a blowjob. Time, pressure, and low amount of blood pumping to the brain. The ultimate test.
    I typically don't hold a gun to the applicant's head though.

    The only puzzle is what to do with women applicants...

    --
    The G
    1. Re:Swordfish by Anonymous Coward · · Score: 0

      The only puzzle is what to do with women applicants...

      You let them test your own programming skills.

  95. Um... Yes by tungstencoil · · Score: 1

    Like many who've posted, we give every developer applicant a live coding test. We allow them to select one from a list of 5 problems, to be coded in the target technology we're hiring for. For each of them, every member of my team can have working in under 15 minutes. I'm the manager over several teams, haven't written any production code in probably 2 years, and can whip them out of my posterior in a variety of languages. We provide the environment, compilation scripts/commands (if appropriate), and Google. We do ask that they not Google the actual problem. We give them an hour, and they can extend by another hour if they ask.

    About 60% of applicants abjectly fail. I don't mean they have a bug, or misunderstand the problem so implement incorrectly, or are inelegant. I mean they fail to produce code the compiles or runs (depending upon technology). C++ "experts" who, in a fit of frustration, copy/paste a HelloWorld! example out of Google into vim, miss the first '#', and it doesn't compile, and cannot figure out why. PL/SQL "experts" who can't select from a single table.

    The person who did the wrong copy/paste-desperation move assured me at the end of the interview they were actually an expert, and not to let their failure "taint" my impression of them.

    About another 10% or so write something that is incorrect, but does something functional. For those folks, we weigh it case-by-case. The remainder pass (and are usually surprised when we tell them how many fail). It's a sad fact, but a lot of "experts" Simply. Cannot. Code.

  96. Doesn't weed out the worst by anyaristow · · Score: 1

    The worst you can do is hire someone who is a syntax dictionary but can't solve problems. They are common. They'll pass your simple test handily, and then go on to write some impressive, buzzword-compliant code for you that doesn't solve the problem you gave them, or can't be completed on a realistic budget because it has to be just so and use this and this and this technology. Or they'll exhaustively solve the problem you give them using the first approach that comes to mind, leaving you with overly complex, inefficient code that you can't afford to fix because they used up all the budget and time, plus some.

    1. Re:Doesn't weed out the worst by anyaristow · · Score: 1

      The worst you can do is hire someone who is a syntax dictionary but can't solve problems.

      And it's these people who are most enthusiastic about giving these tests.

    2. Re:Doesn't weed out the worst by mlk · · Score: 1

      It comes down to the test you give and how you mark it. First and for most you are NOT trying to find out if they can write bubble sort of what have thee. You want to know what this guy thinks is good code. So give 'em a problem that lets them hang them self. We use a basic calculator question that takes in a file (have they read the IO tutorials or better yet know Commons.IO) parses it and the executes it.

      Don't mark it on if it works (that is -1 "point", not instant fail). Mark it on what the code is like compared to your internal standards. Do you do TDD? Do you think every senior developer should be doing TDD before they even consider them self to be above "junior"? Yes, then what are the tests like? Do they have just one assert in each test method or are they testing the world.
      Have they over or under engineered? Have they just given main method that does the world? How did they handle file IO and unit tests?

      --
      Wow, I should not post when knackered.
  97. a sensitive subject with me by TheGratefulNet · · Score: 4, Interesting

    ob disc: I'm an older guy (50's) and have been writing C code for almost all my jobs in my life since my early 20's. I write code at home, I develop firmware (and hardware, also at home) and I'm extremely technical.

    but I fail a lot on 'programming timed tests' and I blame my older slower mind, mostly. the last time I HAD to get inside a tree data structure and totally rewrite it: never in my life. the last time I had to implement a sort routine from scratch: never in my life. its always been a matter of consulting the standard ref models, adapting them and using them. its simply not real-world to test memory recall.

    younger guys (I was one once, lol) have an advantage. its fresh in their minds, and they don't have 35+ years of 'noise' in their brains for those sort/search/traverse routines to compete with. I remember when it was trivially easy to derive those algs on the spot or recall them from memory. I passed almost every coding test back in the 80's, 90's and even 00's. but now, I'm finding I have to sit back, think, maybe search a bit and then I can get the answer.

    interviewers who are in their 20's and 30's have no patience for people like me. I bet they even laugh behind my back. and yes, speed DOES definitely change as you get older.

    but put me in a real life situation where I DO have net access, emacs, gcc and gdb and I'll get your answer pretty quickly and demo it to you, too, if you want.

    in summary, real life is an open-book work style. testing candidates closed-book style really reflects badly on YOU, the interviewer, for not getting this detail about how young vs experienced people think and solve problems. for the new guys, you can only ask them the datastruct101 level questions. but its wrong and even insulting to ask older guys the same questions and in the same way, expecting the same speed of reply.

    when I interview with older guys, they 'get it' and they aren't such hard-asses. they know what matters, there is respect and it shows. I like interviewing at places like that. they have human beings there.

    but 'compare dick sizes' interviews, where the company guys are there mostly to show off and try to knock you down (I'm looking at you, google...) are a waste of everyone's time and fairly insulting, at that.

    I would almost go so far as to say that its improper to have a 20something interview a 40 or 50something. they have no idea what to ask, how to gauge the reply or value it and it often comes off as a strange young/old challenge.

    anyway, I will not pass any coding speed tests. but I can always solve the problem, I can learn 'on the fly' as I research the problem and I know enough to avoid the bad algs and target the efficient ones. I just don't -care- about deriving the fundamental building blocks anymore. I USE the blocks, I'm kind of tired of looking inside them. (I build electronics quite a bit but I'd never be able to answer exactly how an NPN is built, nor do I need to care to be able to effectively use it).

    companies that apply speed tests have missed the point. it shows poorly on them, in fact, that they think this actually makes sense.

    --

    --
    "It is now safe to switch off your computer."
    1. Re:a sensitive subject with me by Anonymous Coward · · Score: 0

      "when I interview with older guys, they 'get it' and they aren't such hard-asses. they know what matters, there is respect and it shows. I like interviewing at places like that. they have human beings there."

      When I was younger, I was working at a particular consulting company, and another office of this consulting company was looking for someone to come in and do some work. They needed a unix admin and that's what I was doing at the time.

      I went through a kind of a mini-interview where the people from the other office were trying to determine if I had the skills they needed. One of the questions (I forget what it was now) related to some little used option of a standard unix command. I said something along the lines of "I don't know off the top of my head but I'd just look it up in the man page".

      I was told later that my answer to that question was the reason I was sent to do the work, rather than someone else.

    2. Re:a sensitive subject with me by Adammil2000 · · Score: 1

      In response to this exact problem, I changed my programming portion of the interview to "You have 30 minutes. Please write any program in any language you like and explain it to me. It can be an algorithm that you particularly like, a problem that you recently solved, etc." The hardest adjustment was to deal with the truckload of questions that candidates had before they would get started. It seemed to help by following up with "I just want to understand how you compare to an average candidate and what makes you special or better suited to this position than others. Feel free to cherry pick from the possibilities and choose something that you feel highlights your personal strengths."

      Be prepared for someone to take the first 5-10 minutes getting warmed up a getting their head into the zone, because many people had never been asked such a question, so they need time to come up with something. Don't count it against them. I learned some amazing things after a few years of asking this question and I feel like we made better hires overall.

    3. Re:a sensitive subject with me by micahraleigh · · Score: 0

      Your understanding of bringing less obvious metrics (i.e. the ones that really matter) into consideration hits the nail on the head.

      Toward the end you almost sound like you are in favor of replacing one age discrimination with another. While I disagree with that, I am sympathetic given your experiences.

    4. Re:a sensitive subject with me by dannys42 · · Score: 1

      I worked at a company when I was in my 20's where most of the engineers there were also in their 20's. However, after hosting a couple interviews, I quickly found that knowledge-based tests were far less useful than personality/attitude based test. And I managed to boil my C language "test" down to 3 questions (regarding volatile, static, and endian -- I work in the embedded space; anyone who's worked with embedded systems are intimately familiar with all 3 of these). Most questions I ask, while they cover technical topics, are largely testing their ability to communicate, reason logically, and define their own work parameters (eg. if I ask you to figure this out, what resources do you think you'll need)... If they pass all that, I also look for (as a bonus) whether they're outside-the-box thinkers, but these are rare to find.

      Timed test, extensive knowledge tests, and puzzles... while fun, aren't useful (to me) for determine if I'm going to work well with someone.

    5. Re:a sensitive subject with me by Anonymous Coward · · Score: 0

      Not just google. NVidia as well. They invited me to interview for some unknown position on Project Denver. I spent three days of my life on the interview. Fly there and back (east coast) plus a day of ambush interviewing. Ostensibly, it was because I had relevant experience. In reality, it was a case of how well/fast can you solve puzzles and/or provide O(n) analysis.
      Bunch of ass-hats. I have a lot of depth in writing things like very fast str*() libc versions (a number of which have ended up in glibc) so O(n) of some sort of stupid map function is irrelevant. One of the "interviewers" was more interested in finding someone with exactly their PhD field background than actual experience. I can pass some speed tests, but without advance notice, I get thoroughly flustered.

      So: if you are incompetent, but can solve puzzles and C++ minutia questions quickly, a dead-end company like NVidia is for you.

    6. Re:a sensitive subject with me by Anonymous Coward · · Score: 0

      How do you cook up a reasonable interview where the interviewee has full access to all resources? It's not to your credit if you use Bing to answer an interview question, though I certainly do this in day-to-day.

      I do agree that expecting interviewees to flesh out implementations is dumb, unless the job calls for a true computer scientist.

      But I don't think it's at all unreasonable for candidates to demonstrate some understanding of the fundamental concepts provided the jargon is kept clear. Like call stacks and frame references; the pros & cons of linked lists vs. arrays; value vs reference passing; inheritance and member visibility (for those coding in OO languages); functional overloads; type casting...

  98. fail by Anonymous Coward · · Score: 0

    that reads STDIN how?

  99. You need someone who can get the job done... by DonDingo · · Score: 1

    What gets lost in tech interviews is that, most often, you don't need the next Turing to get the job done. A lot of times people do tech interviews of problems that are overly complex thinking that if they get those, they can handle the *real* work instead of figuring out if they can get the actual job done. This weeds out too many people. I'm partial to algorithm tests, but what's of value is the discussion of how they approach the problem and how they handle roadblocks in the solution more than knowing certain technical details of the top of their head. If a candidate gets stuck it's acceptable, even preferred, for them to say "I'd brainstorm with the team" or "google topic X, Y, Z for ideas." In my experience, attitude is 80% of the job, out of the box technical abilities is 20%. You can teach technical skills to a good person who wants to learn, works well with others, has a desire to solve problem easier than resolving team issues with a technical genius who can't work with others. In my mental list of worst employees I've dealt with, they've all generally been highly technical experts. So, these tests are good for conversation starters, but I don't believe they should be used to weed out people. Assuming, of course, you're looking for a long term employee.

  100. in essence by BonThomme · · Score: 1

    It must effective because so many people fail it.

    Wait...

  101. Train The Way You Fight by Anonymous Coward · · Score: 0

    The problem with these tests is that "fizz buzz" (I had to google that to figure out what it was), hanoi, etc isn't what a good programmer does all day. I haven't seen that stuff in decades since I was in college. I do real-world stuff at a very high level of abstraction using big class libraries, databases, etc. In 10 min (or whatever time), I'd have to re-learn all that stuff from scratch. If you are trying to weed out senior people who haven't been doing CS classes for a long time, that's sort of counterproductive if you want real-world problem solvers.

    By the way, I have never seen any real-world production code that needed to reverse a string or array for any reason. Why is this example so common?

    1. Re:Train The Way You Fight by Anonymous Coward · · Score: 0

      The problem with these tests is that "fizz buzz" (I had to google that to figure out what it was), hanoi, etc isn't what a good programmer does all day. I haven't seen that stuff in decades since I was in college. I do real-world stuff at a very high level of abstraction using big class libraries, databases, etc. In 10 min (or whatever time), I'd have to re-learn all that stuff from scratch. If you are trying to weed out senior people who haven't been doing CS classes for a long time, that's sort of counterproductive if you want real-world problem solvers.

      By the way, I have never seen any real-world production code that needed to reverse a string or array for any reason. Why is this example so common?

      The interviewer can learn the ways to do the simple problem and then shine over the applicant easier.

      I guess fizz-buzz is just for testing if you know how to get modulo.

  102. Good developers that have done this before hate it by Anonymous Coward · · Score: 0

    I was once given 3 hours to complete a web app in c# and asp.net 2.0. A little training shop in Central FL. They must not have been paying attention to the time, because they kept me waiting for an hour in the lobby, gave me a written exam that was no problem but took some time when you include reviewing it with the interviewer afterwards, then finally directed me to the full and busy programming pit to start this project. The guidance for it was relatively short; 3 pages front and back for six pages of documentation. When the realized it was 5 o'clock and time to go home they ended the interview early, started to do a review on what I had completed in an hour (Pages where there, users in the user table could authenticate, several grids available with db data, and one of them editable.) A few minutes into the review the guy gets a call from his girlfriend that goes something like this: "Yeah I'm wrapping up, I'll be done soon. yeah. ok. ok. no problem. I'm on my way."

    My review is now over! I'm told thanks but they're looking for someone who can complete tasks under a tight deadline. I was just dumbfounded. I'm making 6 figures now which I think is an indicator that I'm not bullshitting my way through interviews for the last ten years, but my contract is ending and I face the prospect of more of these timed code tests. I am literally dreading this.

    I get that they want to ascertain my code ability, but most developers that have been on a few interviews don't like the prospect of what I've done. Honestly, the jobs where I was the most appreciated and the client the most happy were interviews that talked about my previous projects and experiences rather than throwing some bullshit tests or obscure language syntax at me. If I say I wrote my own authentication piece, I should be able to answer questions about the tech I used, right?

  103. Under Pressure! by Edrick · · Score: 1

    A timed coding test is an excellent way to determine how a candidate performs under pressure and will invariably lead to an opportunity for the interviewers to ask many relevant and interesting questions based on their performance.

    Face it, anyone can write a program given enough time and resources, but it is a valuable & rare skill to be able to maintain one's composure and complete a program rationally and calmly in a limited period of time---ie in an emergency when time is limited (such as from a bug fix, changed deadline, staffing changes, etc...)

    1. Re:Under Pressure! by Anonymous Coward · · Score: 0

      > Face it, anyone can write a program given enough time and resources,

      The point of the test is to filter out that 95% of applicants who can't write programs at all. It is not a pressure test. That is why there is a lot of time and the task is simple.

      > but it is a valuable & rare skill ... in a limited period of time

      That is just insane. There should never be a hurry to fix something. And even if there is, you should never tell it to the developer (if you tell, it will take twice as much time to fix it, read peopleware and you understand this). Only think you can say is that something is priority 1 task. If you have a hurry to fix something, then project manager failed to arrange the testing.

  104. Re:Good developers that have done this before hate by Anonymous Coward · · Score: 0

    Poster here: I'm not sure I made this clear but of the 3 hours I was told I would have, I was allowed about one hour and ten minutes to complete the code exam. Maybe I'm actually slow, but I can't write a completed, polished web app in one hour and ten minutes, with chatter about the weekend all around me, while wearing a suit and under the pressure of my new job depends on this.

    I don't know, maybe I'm really not their guy. If so, I dodged a bullet. If I'd been allowed the three hours, God forbit I might have been hired at that misery-factory.

  105. Speed programming by Anonymous Coward · · Score: 0

    For a genius, a programming task with a tight deadline is a chance to shine. For most of us it's more like a rock climbing speed test: people with reasonable ability can still pass as long as they make no mistakes, but it tests bad habits as much as ability.

  106. Isn't it better to train the employee ? by tg123 · · Score: 1

    Seems to me this is really about exploiting the employee.

    The good places I have worked the interview process is about whether they like the person and will this person be a good employee for the company.

    The company would then train you to meet their standards.

    With this sort of test it is quite plain that you don't wish to train the person and that you don't care about the quality of the code just the deadline.

    Seems like a waste of the company's time to me.

    1. Re:Isn't it better to train the employee ? by TheGratefulNet · · Score: 1

      in the bay area, no one want to spend company time *training* you. they SHOULD and they used to but this is not the same world as it was even 10 or 20 yrs ago.

      if you don't come in knowing this version of tool, they won't want you.

      I'm not totally kidding, either; they look for very narrow knowledge areas and are not willing to invest in an employee.

      see, companies have shown their hand, now. they tell us, in no uncertain terms, that we are disposable. my 35+ years in the software field gives me the right to say that with certainty. and employees feel NO loyalty anymore, its a sour thing and companies know they ruined things by their own attitude.

      so, why train someone when they'll leave?

      its a vicious cycle and I see no solution to it.

      some (very few) companies are still run by human beings with hearts and souls. but most are run by very young 'managers' who have not developed a soul or compassion yet. they just don't know, they really don't know what life is about. they can see as far as the end of their nose and that's about it.

      this is the working world we have. no investment in employees anymore. we know we are all short-timers, one way or another.

      with a few rare exceptions. but in the bay area, where its a young and disposable market, employers have lost their way and there are few who still remember how things used to be.

      none of this is any good. sad to see things go so backwards instead of moving forwards.

      --

      --
      "It is now safe to switch off your computer."
  107. APL Anyone? by Anonymous Coward · · Score: 0

    I always ask if they mind if I use APL. If they will let me, I'll give them a one-line recursive solution and let them try to figure it out.

  108. I've Got to Ask by LifesABeach · · Score: 1

    Just of thought; could this be a more enlighted version of "Crowd Sourcing?"

  109. Don't get cute with your solutions by GodfatherofSoul · · Score: 1

    I see people recommending some esoteric, technical solutions to these tests to dazzle the interviewer with the scope of your knowledge. I'd avoid that since you run the risk of outsmarting your testers. In some cases, an incomprehensible correct answer is the same thing as a wrong answer.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
  110. It measures Anxiety and Choke potential by Anonymous Coward · · Score: 0

    Timed tests are "all about" performance under pressure.

    What they test is really immaterial, its whether they can perform "at all" in the time alloted.

    Generally there are two favorable reponses and one unacceptable:

    A. best effort and making the attempt with a good faith and good attitude

    B. paralysis and or a bad attitude

    C. lack of effort or complete dismissal of the requirement

    In the end what matters most are (a) ability to perform at some level commensurate with expectations (filters the BS) and (b) a good attitude.

    If a person shutsdown or becomes antisocial during a timed test. That person will probably be difficult to work with under pressure. And that is an important thing to know.

    If however the skillset is important enough to the company, and or the position requires little teamwork or human interraction (say a position in AntiArtica during the middle of the Winter.. other than human survival issues a time test wouldn't matter so much.. especially if they are particularly difficult to get along with.

  111. Re:If you put your life savings by Anonymous Coward · · Score: 0

    I understand that. I get to make a choice, as does the employer. I won't take a job where my first assumption would be that my employer is a liar, and they can't expect me to take a job where they accuse me of being a liar right off the bat. I'm sure they can find some folks with self-esteem issues to serve their purposes.

    Forcing a freshman coding test before even granting a real interview is accusing your candidate of being a lying low-life. Even if the candidate ends up being good at what they do, you will have gotten the loyalty and dedication you've earned by insulting them before you even knew them.

    Unless of course you want short-term, mindless coding automata. Which I guess most employers do.

  112. HR people almost never have a clue by billstewart · · Score: 1

    My resume has lots of buzzwords on it so I can get past the HR department, but I also try to indicate what I'm actually good at. HR department people usually don't have complex engineering skills, and while it would be nice if they could actually identify people who do, it's tough.

    And the fact that you wrote "CV" instead of "resume" implies you're not American - over here, calling the previous employer isn't going to get you anything more than a confirmation that they did work at the company, they usually won't say anything negative about work quality because they could get sued, and maybe they'll say something positive but you can't really trust it. Google might find you people with uncommon names who've done open-source work; it's much less likely to help for people with common names or people who've done their software work inside large companies.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  113. Lets put it this way by TheSkepticalOptimist · · Score: 2

    Do you want to work for a company that values hiring its employees on whether they can write code under pressure? No properly managed tech company should ever have a culture of stressful, high pressure, time based code development.

    I know a lot of people feel that in an interview they are the ones under scrutiny, but realize that there is a shortage of quality developers (but an abundance of wannabees) out there and you really should also be scrutinizing the company you are applying for. Making the mistake of only trying to be an attractive candidate without also attempting to "interview" the interviewer is the biggest rookie mistake any person makes when looking for employment.

    I have been to several interviews where I basically realized within 5 minutes that the company had their heads up their asses when it comes to finding talent. If a company is unable to adequately interview for talent then you can only imagine how poor the state of the quality of their management and leadership is in the company. I know a lot of people blame HR, but poor HR only results when managers and directors are unable to adequately convey the talent and skill requirements they are looking for, so HR staff have to make up the job description and interview process.

    Also, with over 12 years experience, I get really frustrated when being interviewed for a senior level position only to have to answer a bunch of junior level questions about coding. I know how to code, and it should be assumed I know how to code from my work history, how about asking me high level architecture questions, how to apply software patterns, or how to create efficient software process. I've moved away from being a code monkey and have been responsible for designing, architecting and overseeing development of entire applications, don't ask me what passing a value by reference means or how to write a recursive method, that just means you don't deserve my experience..

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
    1. Re:Lets put it this way by Billly+Gates · · Score: 1

      "Do you want to work for a company that values hiring its employees on whether they can write code under pressure? No properly managed tech company should ever have a culture of stressful, high pressure, time based code development.

      "

      Wow, what world do you live in? The one I am in the MBA's got rid of that and have 1 guy do the work for 4 people during the last Great Recession and kept it that way. It doesn't matter what the field is. If you do not not work like a dog and put out fires all day you lose your job. No vacation, no getting sick, 12 hour days at least a few a week, and no bonuses.You are a cost center after all.

      I think your company maybe a gem not under shareholder pressure.

    2. Re:Lets put it this way by Anonymous Coward · · Score: 0

      The thing is, you've identified exactly why companies want to give tests: there are a lot of wannabes out there. Some of them are good at bullshitting, and since most companies don't check references until after interview, you can't weed them out that way. A basic programming test is absolutely an appropriate way to separate you from someone who's never coded in his life, has read up a bit on development processes and design patterns, and lied on his CV about having 12 years of experience.

      Why should I want to hire someone who claims to have senior developer skills, but refuses to prove he can even do the basics?

    3. Re:Lets put it this way by Anonymous Coward · · Score: 0

      I was kind of with you until the last paragraph: Why should an interviewer assume you can handle the basics? How could they even verify, without asking? We're not talking about tough algorithm implementations but basics concepts that any senior developer should know.. If a junior developer or a member of your team gets stuck, you should be a go-to guy for answers and technical advice.

      To put things in perspective: I have 17 years of professional experience developing; if I include coding in school and during my youth, add another 10 years. While I'm nowhere near the best course & I don't consider myself brilliant, I'm still quite good at what I do. My skill set is broad compared and jumping to a new technology is really more of an annoyance in my view.

      But here's the thing: The only reason I have a broad skill set is because I understand the fundamentals. So far from considering it beneath me, I welcome basic questions because it means the interviewers are interested in two things: Do you know how to create software? Do you know how to maintain software? It's also a nice way to warm up an interview for the harder questions.

    4. Re:Lets put it this way by fdrebin · · Score: 1

      As mentioned elsewhere, this is to weed out the pretenders. If someone is so arrogant as to refuse to answer even basic questions, I don't want to work with them.
      I've been interviewing a fair number of candidates. I usually start with "write a command line program to sum the command line arguments and print it out". If they don't remember how to call main() - not that uncommon - I change it to "write a function" where the arguments look like what main() would take.
      Think of it as a tree - I ask a question, the answer defines which branch I'll follow next. I do NOT have an array of 20 trivial questions - if you can answer 1 or 2 of them, I'll move on to the next level so as not to waste my time, or the interviewee's. I would say that if you've proven yourself to be competent at a certain level,move on to the next level. If not, I'll ask a few more questions at the same level to see if I've just hit an odd hole in your knowledge, hoping to not discard an otherwise good candidate.

      One guy I asked to answer the aforementioned question said "give me a day or two to research it and I'll be able to do it". This guy had a masters degree in EE and CS. THAT is why you get these silly questions.

      I had an interview with Cricket Wireless a few years ago, and they asked me questions about the differences between SQL Server 2005 and 2008. I had said on my resume that I had experience with 2000 and 2005 but not 2008. I reiterated to them in the interview that I didn't know squat about 2008. The STILL kept asking me 2005-2008 difference and feature questions. I decided I didn't want to work with such boneheaded, narrow minded people. I think the feeling was mutual. I know a guy who had done some consulting work for them, he said that my boneheaded, narrow-minded view was pretty much on the mark.

      We just hired a lady who hadn't programmed in years, couldn't correctly write much immediate code - but she was able to accurately describe what to do and how to do it, and demonstrated a strong understanding of the fundamentals, algorithms, data structures etc. We felt that we could afford to help knock off the rust. So far she's working out great.

      We also hired an adjunct college prof. She is so arrogant that we get constant constant complaints about working with her. She knows her stuff technically, but no one can stand her. Interestingly, she interviewed great. You just never know.

      --
      Stupidity... has a habit of getting its way.
    5. Re:Lets put it this way by Anonymous Coward · · Score: 0

      The thing is that I don't know whether your CV is full of it or not. If you're any good, you should be able to dismiss the trivial stuff so rapidly it barely registers. I should be able to ask you ten or twenty such questions as a starter and that should take us almost no time at all.

      If you don't know how these basic things work I'm hardly going to trust you with big system design, am I? Software engineering is a tower of leaky abstractions. An amazingly large number of so-called architects can't code their way out of a paper bag and end up making massively complex and slow systems. If you're hot across the whole stack, only then do I trust you to make good decisions. And how am I going to figure that out without asking you some low-level questions as well as the more abstract stuff?

    6. Re:Lets put it this way by Anonymous Coward · · Score: 0

      Or to put it another way, as an interviewer, I can assume almost nothing. If you've been doing this for twelve years you really ought to know that by now. ;-)

  114. Never minded by Roogna · · Score: 1

    Back in the days before my own company, I never minded coding tests like this. If they're done right the 45 minutes should be more than enough time to complete the test. I don't remember running across any where time was the actual issue.

  115. I work for a company who makes assessment tests by Anonymous Coward · · Score: 0

    and though IANAL I believe they have to prove that their method of screening works otherwise they could be open to lawsuits. But like the first commenter said, it obviously could weed out the fakers/people who definitely don't know anything about coding.

  116. The employee is also interviewing you by Anonymous Coward · · Score: 0

    Remember the interview process works both ways. If I feel like I'm being jerked around in the process, I will end it. And have done so on multiple occasions.

    Once I did so right off the bat one time when I was given a choice of 2 interview times, I picked one, then they came back and asked me to do something completely different, I don't need to leave one cluster F* to another.

  117. oh god... that one by SmallFurryCreature · · Score: 1

    I know that one, in a slightly different variant. Instead of fizzbuzz, write the numbers out.

    for($x = 1; $x <= 100; $x++) {

    $found = false;

    if(!($x % 3)) {

    echo "three"; // or fizz

    $found = true;

    }

    if(!($x % 5)) {

    echo "five"; // or buzz

    $found = true;

    }

    if(!$found) { echo $x; }

    echo PHP_EOL;

    }

    THE TRICK is in READING the case CLEARLY.

    You COULD solve it in MANY different ways, how well you can READ what is being asked and do it in a minimal but correct way is the trick.

    SOME people get the answer right but the code wrong ONE mistake is for instance is to use an if/else construct with a 3rd if statement checking if $x is a multiple of 3 AND 5. BUT in the above code with just 2 ifs (no else) THAT is being handled as well, test it, if $x = 15, the first if triggers printing "fizz", then the second if triggers, printing "buzz", the printing of the number does not happen because $found has been set to true, and a new line is ALWAYS added.

    How you solve it (and there may be better methods, this is my level of understanding) shows how well you REALLY understand the posed problem and how well you understand coding NOT in knowing how to solve a complexe problem but in using the basic programming structures any language will support to do what is asked AND NOTHING MORE.

    The LAST is important ESPECIALLY in web development, I have had to tell coders far better then me to CUT IT OUT and STOP trying to expand a project beyond its scope because producing award winning code doesn't matter if it is not on time and budget. Build what the client asked, not your interpretation of what you think they might really really want if only they could see the magnificence of your vision!

    SIMPLE tests like this can work... It should take no more then 5 minutes. ANYTHING longer, POINTLESS. For web development at least. Why? Web coding is simple, all the complex stuff has been done by smarter people, probably decades ago. Most of efficient web development is coupling systems and libraries together to create what the CUSTOMER ASKED FOR, not what you want to develop because you think it looks cool.

    When it comes down to it, what I want to see is how someone approaches a problem, a bug. Debug skills. And NOT, can you spot the error in this code but "a customer called: FIX THIS". What do you do?

    Nowadays, I don't even bother with companies that want to see a code example of have a test that takes more then a couple of minutes. They are focusing on the wrong thing. I seen to many places that have brilliant code punchers but there projects falter because all they do is create code, not finish projects. There is a difference between a coder and a developer. It is the difference between 50k and 150k.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:oh god... that one by beelsebob · · Score: 1

      I know that one

      You just lost the job.

      "I know that one" means I'm not thinking about problems, I'm regurgitating solutions I read on stack overflow.

  118. And that is the wrong answer by SmallFurryCreature · · Score: 1

    Sorry, failed. On multiple levels.

    The question, PRINT on NEW LINE from 1 - 100 each NUMBER but if the number is a multitude of 3 print fizz, multitude of 5 print buzz, and if both a multitude of 3 AND 5, print fizzbuzz.

    EXPECTED OUTPUT:

    1

    2

    fizz

    4

    buzz

    ...

    14

    fizzbuzz

    16

    You are missing the new lines in your CODE

    You also magically came up with a non-existing requirement for modulo 15.

    And didn't see that by doing

    if mod(i,3) == 0 then print 'fizz';

    if mod(i,5) == 0 then print 'buzz';

    You would get fizzbuzz for 15 (oh you also reversed the fizz and the buzz).

    Sloppy reading and sloppy understanding on how if and if/else work.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  119. Requirements and Problem Analysis vs. Coding by billstewart · · Score: 1

    Real programming jobs usually spend a lot more time in the requirements gathering and clarification and solution analysis phases than they do in actual coding. On the other hand, it does weed out the people who don't actually have a clue, at least if you provide enough time rather than trying to get speed. Shouldn't be necessary, but HR departments are usually run by people who understand contracts, not technology.

    My department recently tried to hire a lab manager contractor to do router gruntwork and organize a lab move. We quickly found that after the candidate's contract shops and our HR department had both reformatted their resumes, we couldn't tell much except who they'd worked for (e.g. "working on CCIE" meant "didn't have CCIE", not "had CCNP, working on CCIE", and "worked on X" might mean "developed the X system from scratch" or "used the X system to enter data without understanding what it was"), and most of the people who really did know their stuff found better jobs so we didn't end up getting second interviews (good for them, we really needed somebody to do unexciting gruntwork.)

    We ended up asking everybody the question "You've just typed "google.com" into your browser, tell me what happens on the wire in as much detail as you can." It should be elementary, but way too many applicants didn't understand the OSI stack enough to talk about Layer 1 vs. 2 vs. 3, much less about arp or broadcasts, or didn't get the concept that typing things into your browser makes stuff happen on a wire, and the technically competent people could talk their way through it pretty quickly.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  120. Wrong as well but not as bad as some. by SmallFurryCreature · · Score: 1

    Others have pointed it out but the third if goes wrong. Anyway, it is far easier to use a boolean to check if the value has already been printed, yes, it not as compact but it far simpler and more correct.

    The above code would show to me, you can't yet code, you read the book but did not fully understand it.

    Just say i = 3, what happens then? mod(3,5) is true, so print i. fizz3 THAT WAS NOT what was required.

    You would get a chance for not forgetting the requirement for new line AND for putting it on its own because each value has to be on its own line regardless of its value.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Wrong as well but not as bad as some. by rgbatduke · · Score: 1

      Ow, you got me. That's why I like to actually debug my code. Needed a ! &&. Rats!

      --
      Even when the experts all agree, they may well be mistaken. --- Bertrand Russell.
  121. ObBetteridge by Anonymous Coward · · Score: 0

    No.

  122. Short-sighted thinking... by raehl · · Score: 1

    They know if you give them a test they can walk to someone else who wont.

    But then they have to work with a bunch of other people who couldn't pass the test.

    I'd seek out employers who tested applicants, as then I'd know the chances I had to work with idiots once hired would be lower.

    1. Re:Short-sighted thinking... by BonThomme · · Score: 1

      "But then they have to work with a bunch of other people who couldn't pass the test."

      No, just a bunch of other people who didn't take the test.

  123. What are you testing? by SmallFurryCreature · · Score: 1

    Take the above discussed fizzbuzz (threefive) test, it is a simple short test to see how well a person reads a simple problem and LOTS get it wrong. But it is trivial for an experienced developer who actually understand programming and takes the time to read.

    I am a web developer (LAMP stack) and I have been given my fair share of tests... including the most useless, sorting algorithms. I know what a bubble sort is and NEVER had to use it. I have had to sort stuff but basically either it was so standard that default PHP functions already covered it OR a simple search found a finished tested proven library to do the job for me... so why test me on it?

    Useless tests are useless. The sorting test ISN'T just not used in practice, it doesn't TEST any practical skill, such as reading, doing ONLY what is required and gives no insight how a person works in a team in a complex application.

    The same problem with companies that ask for a bit of example code. USELESS. How long did the person spend on it? How much did they polish it? Who WROTE it? Most web applications are nightmares of spaghetti code. Good for you you wrote a single page script that did a simple sorting... here is a single script 5000 lines long, no documentation, no comments yet it is core to the business and it isn't working anymore and were are losing money. THAT is a real world problem. How do you fit that in a test any developer not actually insane is willing to do?

    I have been given tests that would take a weekend to complete. Without pay? No way!

    And slowly, over the years I have learned that the companies that asks for this kind of useless testing are not places to work at.

    At most a simple test to check you actually understand some basics but for the rest, look at what they did before and then, try to judge if you can work with them as a person.

    You can test a bricklayer by asking him to build a small brick wall and see if he does it well. you canNOT test a bricklayers ability to showing up each day on time OR see that there are problems with the building process and raise the alarm before it is to late. Development is really often NOT about punching in code but in managing the entire project and keep it on track. If YOU can come up with a test for that, you will a rich man. I can find a hundred coders right now easily, but good team leads? And I wouldn't employ a single on of those coders WITHOUT a good team lead to keep them on track.

    I trade you ten coding wonders for ONE guy who understands the concept of deadline.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  124. "Simple" questions are great fun by Mandatory+Default · · Score: 1

    To all those people who pooh-pooh the "simple" questions - you are missing all of the fun. If you keep up with current literature, you answer those questions with sophisticated answers that go over the interviewer's head. Here are some example:

    - You can describe how to multithread across multiple cores and then coalesce the result set. Bonus points for referring to Google's MapReduce paper.
    - You can use functional programming and describe why an in-place, memory-saving result is a bad idea on modern processors because it's hard to parallelize. Bonus points for discussing cache contention issues across processors.
    - Many string manipulation questions can be answered in exotic ways with vector instructions like SSE (Streaming SIMD). Most interviewers say you can use any language, so picking a mixed C/assembly approach completely blows their mind. Bonus points for describing why you need a particular version of SSE for better performance.
    - And if all else fails, discussing x86 L1/L2 cache locality is a sure way to go over their heads. You can use this for nearly any data structures question. Bonus points for discussing pipeline stalls due to cache misses.

    So my goal is to make sure that the interviewer understands that they don't remotely understand the problem as well as I do, even for a very "simple" question. It's highly entertaining to watch the interviewers squirm by asking them questions to see if they are keeping up with you :-)

    And yes, this interview strategy has worked well. It's gotten me job offers from the two best companies I've worked at.

  125. CSS interview by Anonymous Coward · · Score: 0

    Using [] brackets because of HTML comment filter:

    Interview for a ~50K$/year web programmer job:

    [!DOCTYPE html][html][body][div id="menu"][ul]
    [li][a href="#"]First[/a][/li]
    [li][a class="red" href="#"]Current[/a][/li]
    [li][a href="#"]Last[/a][/li][/ul]
    [/div][div id="body"] ...
    [/div][div id="footer"]
    [a class="red" href="#"]Legal Notice[/a]
    [/div][/body][/html]

    I want the red links to be red inside the menu in CSS ?

    some people answered inline CSS like this:

    [a style="color:red" ...]

    when asked to do inside a .css file they answered:

    a{color:red;} or did not even know how to do this

    when I point out that first should not be red, some were puzzled.

    some answered .red{color:red;}

    in such case I point out that I might have a class="red" elsewhere in the document... like in the footer.

    if the person answered correctly:

    #menu a.red{color:red;}

    I then ask, give me the longest, strictest CSS query for this,

    html body div#menu ul li a.red{color:red;}

    and then I ask the same thing but for CSS3

    html > body > div#menu > ul li a.red{color:red;}

    Then I ask to do this in jQuery:

    $("#menu a.red").css({"color":"red"}); // or similar

    then do this with a click handler, so when "click" it becomes red

    $("#menu a.red").click(function(){
    $(this).css({"color":"red"}); // or toggling
    });

    Then I ask, but I want this only when the document is ready and the jQuery fully loaded ?

    if(window.$)
    $(function(){
    $("#menu a.red").click(function(){
    $(this).css({"color":"red"}); // or toggling
    });
    });

    Other stupid questions, what is this doing:

    #menu{padding:5px;}
    #menu{padding:5px 10px;}

    I don't expect candidate to know the 3 or 4 field format, but if they know it's a bonus.

    #menu{padding:5px 10px 15px;}
    #menu{padding:5px 10px 15px 20px;}

    Other question, why is this a bad idea in IE:

    #menu{float:left;margin:5px;} /* double margin bug in IE6 */

    What is a closure in JavaScript or jQuery, give me a common example (click handler).

    Why should your JavaScript variable should have a "var" declaration ? because it's global otherwise

    Why is this inefficient:

    $('.red').css({"color","red"});
    $('.red').click(function(){alert("click");});
    $('.red').blur(function(){alert("blur");});

    You should use temp variable, and avoid document.getElementsByClassName() in older IE
    and your page will crash in those IE, if you have an iframe or a Flash component,
    since document.getElementsByTagName("*") iterator will crash your page,
    because the tag content is not loaded yet, even on DOM Ready.

    etc.

    What is the difference between a LEFT JOIN and INNER JOIN in SQL ?

    If they are not sure, then I draw to tables: Users {id | firstname | lastname} and Admins {id | priv}
    and ask them to write a query to join them.

    If someone is saying they know Oracle, then I ask:
    how do you create a table with a string field of non-fixed length? varchar2()
    If they answer varchar(), I tell them that is a fixed length in Oracle, hence a hack is needed, due to compatibility
    concern with very very old Oracle code base.

    If someone is saying they know MS SQL or Sybase, how do you get a date displayed in YYYY-MM-DD format ?
    If they are not sure, I tell them it's a common SQL function in those databases,
    If they want a hint, I say it starts with C****. CAST or CONVERT is accepted, if they know the syntax and number code even better.
    If they mention only one, I ask them what's the other one.

    What are Generics in Java and why it's important ?

    What is MVC and why often it's a good idea to use it ?

    Name me some Design Patterns and explain them ?

    Then I ask in Java, how do you retrieve a GET parameter like for the fo

    1. Re:CSS interview by Anonymous Coward · · Score: 0

      Thanks! I'm applying for Web developer positions. This lets me know what to study this weekend. :)

  126. Codingbat by Brumdail · · Score: 0

    I enjoy these coding exercises, and use them for a sort of brain teaser. I have tried a bunch of the Java ones at codingbat.com and it is interesting to compare my results to the progress graphs of other random users.

    Would that sort of minimal IDE help or hurt this type of test? Nothing else to get in the way, and you get immediate feedback on your answer. Would it be better to see a candidate initially fail the test cases and then correct them or spend the time to run through it in his brain instead?

  127. Worst test I have taken: by stevenfuzz · · Score: 1

    30 minutes to complete a complicated recursion problem. The test verbiage was purposely written in very broken English and poorly explained. I was not allowed to ask questions.

  128. Well... On TopCoder... by Anonymous Coward · · Score: 0

    I remember that in division 1 weekly on TopCoder, back in the days (I was only yellow-ranked in div 1, thin brag ; ) where you had one hour and 15 minutes to solve three problems, the top guys were *really* smart.

    Smart as in: one of them had won something like 3 times some national (U.S.) Mathematics competition and one international one.

    So "good coders", I don't know. But smart ones, you can nearly be sure about that.

    I can you that 99.9% of the posers commenting here would not have beat these dudes.

  129. Accuracy and readability trump devel speed by Anonymous Coward · · Score: 0

    Bug free code, self documenting code, readability, usability, ease of use, all trump development speed.

  130. coding tests ... by Anonymous Coward · · Score: 0

    Totally worthless.
    The best programmers are feet on the desk lazy types.
    Who will spend a couple hours eyes closed to come up with two lines of code that solves ten problems.
    The eager beaver test types writes a hindered lines an hour breaks everything but impresses the boss.
    Of course the business morons cannot tolerate really good programmers.

  131. Payment type and payment ID by tepples · · Score: 1

    Why actually alter the invoice table when you can do it in a table variable and keep that maintenance nightmare out of the data?

    Because at the same time you add the "total" field, you also add the "payment type" (e.g. credit card, PayPal, Dwolla) and the "payment ID", so that the "total" reflects how much money was actually collected in that transaction rather than being a denormalized value. For example, when you buy something on PhilsHobbyShop.com, the grand total is stored along with the transaction ID in which that amount was billed, and each customer can look this up in his "Past orders" page.

    1. Re:Payment type and payment ID by Qzukk · · Score: 1

      Because at the same time you add the "total" field, you also add the "payment type" (e.g. credit card, PayPal, Dwolla) and the "payment ID", so that the "total" reflects how much money was actually collected in that transaction rather than being a denormalized value.

      As an answer to the question I gave, it's a good idea. From a business perspective though, the next question is "What happens when you let someone run up a tab of unpaid invoices, and they pay several invoices at once." Some people use NET 30, you know.

      The GP poster has a good point too. My "bonus points" was because my personal belief that Excessive Normalization is like Premature Optimization, but there are other solutions too (I don't use MS-SQL but I believe his temporary table is more readable but otherwise basically identical to the usual subquery usually used to solve these things).

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    2. Re:Payment type and payment ID by tepples · · Score: 1

      From a business perspective though, the next question is "What happens when you let someone run up a tab of unpaid invoices, and they pay several invoices at once."

      That's a good question. The closest thing to paying for multiple orders at once in the shopping cart software that our client uses is the purchase and redemption of store credit.

      Some people use NET 30, you know.

      Is switching to 30-day payment terms supposed to be three times as good as switching to this cellular carrier?

  132. PHP is free software by tepples · · Score: 1

    I do most of my programming in PHP, so changing the compiler wasn't exactly an option.

    Because PHP is free software, you have the option of writing a patch to add this as a parse warning, just as recent PHP warns about old # comments. It's an option, though I'd agree it might not be the most expedient option in a given case.

  133. Half hour deadlines are real by tepples · · Score: 1

    how often is the deadline 30 minutes? If you say often, I don't want to work there.

    Then you probably don't want to develop order management software as a service. When an unforeseen peculiarity in the new orders report from a third party sales venue such as Amazon or eBay causes your import of new orders to fail, the seller wants a fix before it sends out the day's purchase orders. And sometimes this import failure isn't noticed until the import that happens half an hour before the purchasing deadline. Just today I had to work around a peculiarity in how Amazon formats FPO (Navy and Marines) addresses.

  134. because individuals manufacturers also make low-c by Anonymous Coward · · Score: 0

    Its material is created to resist tearing, ripping, and stainingWristband Tips: All key players should have a wristband, not just the quarterback! When calling a play at the line of scrimmage, make the last number of the play the "real number" Cheap Jerseys They say: "I need to try harder!" "I need more repetitions!" "I need to spend more time in the gym, on the court, at the free throw line!" and so on A master of finding dead spots in coverage nike nfl jerseys limited and possessed of an absolutely wicked one-timer, Steve Stamkos is very reminiscent of a player by the name of Brett Hull, who feasted on opposing goalies, particularly during his time with the cheap nfl football jerseys St Long after ability fades and our bodies begin to degrade we kid ourselves into thinking we still have something leftAnd for a wholesaler, the min order is 10 pcs, you can mix order with authentic NFL jerseys, Pittsburgh Steelers jerseys, MLB jerseys, NCAA jerseys and so on "He's been able to play and do his job well even if he does miss some timeThe NFL salary cap, as negotiated by the players Union in the current collective bargaining agreement, is 62 Between the dark green qualifications shade, they put a rainbow in the chest Buyers can purchase multiple squares By the way, customers who bought Nike NFL Jerseys Cheap this NFL clothing were happy with the customer service and quick delivery Having said that, an excellentgenuine nfl cycling jerseys is notlow costeven soyou will discovernonetheless some techniquesto acquirepractical the price rangecommon nfl cycling jerseys around thewebespecially 1, the world's largest mobile rink refrigeration unit C the custom-built, 53-foot truck that houses the specialized equipment that will be used to make the rink at McMahon Stadium C began its 3,500 km journey to Calgary with a special fan event in Toronto and will continue with stops at Canadian Tire locations in Winnipeg, Regina, Saskatoon and Edmonton from Feb

    However, in reality it is not so and it is a big affair Effective communication, in any team sport, is a critical component for success In these cases, the price may fluctuate some and it could be official nfl jerseys a great time to buy the jerseyHowever, players complained about the distribution of logos I won't change my way of life Athletes such as Allen Iverson, Peyton Manning Josh Beckett currently wear Reebok apparel and shoes In order to save the game President nfl jerseys from china Theodore Roosevelt invited representatives of Princeton, Harvard, and Yale to a meeting where they discussed ways to save the gamesuch as:Baltimore Ravens Joe FLACCO #5 black Youth NFL Jerseys,Chicago Bears #54 Brian nike nfl jerseys limited Urlacher youth Navy Blue NFL Jerseys,Cowboys #9 Romo Personalized NFL jerseys Cheap Throwback jersey,Dallas Cowboys Demarcus Ware #94 NAVY Blue youth NFL Jerseys,Dallas Cowboys Roy Williams #11 blue Color Jersey,Indianapolis Colts Bob Sanders #21 Blue youth NFL Jerseys,Minnesota Vikings Adrian Peterson Youth purple NFL Jerseys,New York Giants #27 Brandon Jacobs blue NFL Jerseys,Pittsburgh Steelers #7 Ben Roethlisberger youth black NFL Jerseys,Purple vikings #4 Favre Youth jersey,Ravens #27 Rice purple youth jersey,Reebok White Chicago Bears #6 Jay CutlerYouth Jersey and etc For a little while we had been part of a team again and as one teammate crowed in the lo

  135. Time limits are a given by Anonymous Coward · · Score: 0

    There are no excuses for a small test like FizzBuzz, but why do so many interviewers insist on pen & paper? It's not hard to have a barebones, unnetworked terminal with just vi, notepad, and some other basic editors available.

    And if good coding style is a criteria, pen & paper is an odd way to go; mortal coders improve their code by re-writing in iterative steps.

    An interview is stressful enough for introverts like myself, without having to deal with atrocious penmanship and cramped fingers.

  136. cheap nba jerseys by Anonymous Coward · · Score: 0

    To make you enjoy the sport world better ,we always bring the best quality sport jerseys at the lowest priceLike I said, I knew my time had come and gone long ago Just enjoy the game to your heart's content They have the conventional stroll-in retailer, but they also have an on-line browsing site as well In all, he has earned 13 All Star selections and 9Silver Slugger awards This has led to the mass production and promotion of sports wear Amazingly, as offensively gifted as he is that isn't the strongest part of nfl jerseys from china his game One more measure you might interested in is definitely which the lettering in the shirt That way many developed just about every single several or even ten years along with along with layout on the MLB JerseysNHL Network's daily flagship show, On the Fly begins their special Trade Deadline coverage at 8 p They, along with USC (14th) and the rest of the Pac 10 have to go out and prove their mettle if they want to earn respectNowadays, women can nevertheless search forward to the sports fever, and their favorite teams and players jerseys We will post information about results of this match, as soon as possibleAs Discount NFL jerseys American football evolved throughout the years, the NFL or National Football League has been transformed when it comes to the jerseys as well

    It's very easy to set up satellite TV for PC, just download and watch live NHL games online straight away There was never any variationIt is very difficult to put a numeric value on exactly how much an athlete is worth to a college The materials are the same as the actual players on the field Cheap Jerseys "Red 337" would be play # 7 on the wristband But even that horrible scare didn't stop me from dreaming about it or imagining what it would be like to put the pads on for one more round8 C Daniel SedinIf anyone can challenge Nicklas Backstrom nfl jerseys wholesale and Alexander Ovechkin for the title of deadliest NHL duo it is this man and his twin brother Henrik In 1950,the Black Hawks movedfrom a barber pole visual appeal of their black NHL jerseys to your red jersey using an Indian head on entrance The Pac 10 is coming in as the hated NCAA football stepchild this year, as Oregon only managed to hit 11thRelated ArticlesObtaining Soccer Jerseys PracticalCheap NHL Jerseys an unbeatable powerBuying cheap nfl jerseys personalized nfl football jerseys on nbajerseyonline These basketball avid gamers are generally speaking about a history along with personalized nfl football jerseys anything regarding the basketball sport What's more, even if you rent an apartment or townhouse, you can also enjoy the quality offered by Dish NetworkWe totally dominated through four of the shortest quarters I have ever experienced

    Watch NHL Games Live Broadcast no matter where you are you can always watch your favorite NHL teams play live online NHL bottom-shirts should personalized nfl football jerseys be positively important for collectors and rebels sweater too NFL Jerseys are always in a great demand and sells well In case you need authentic jerseys cheap one, the free ebook offered in the Author's box below includes a blank football pool sheet (plus full instructions) 19 and from Noon until game time on Feb A business deal to broadcast hockey on television is sol

  137. disney - interview for a cartoonist by Anonymous Coward · · Score: 0

    "can you draw this mouse or moose or squirrel? If so, you may have an exciting career as a cartoonist?"

    A timed coding test as part of a IT interview is the same thing as that famous matchbook drawing test being used as part of a cartoonist job interview.
    (trouble is that the original poster just said "applied for a job at a large tech company", nothing was really stated as to the position or responsibilities, so the coding test might be pointless)

    Both tests could be measuring a fundamental job skill; both are used to weed out disqualified applicants. Passing the test does not mean that a candidate gets the job; it just means that he has one of the essential skills needed for the job.

    1. Re:disney - interview for a cartoonist by BonThomme · · Score: 1

      Moose & Squirrel are not yet Disney properties.

  138. Gee thanks by SmallFurryCreature · · Score: 1

    But your are an idiot, I am the one ASKING the question, not solving it.

    Oh, you want to hire only liars or people who don't recognize a highly common test. Well that is your choice I am sure, doubt you ever will be in a position were you will get to make it however. Explains why you left out the important part of the newline in your posting of the case.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  139. Obligatory.... by DrVxD · · Score: 1

    I did. Then I asked yo mama.

    --
    Not everything that can be measured matters; Not everything that matters can be measured.
  140. Pressure Cooker by Anonymous Coward · · Score: 0

    I'm all for having applicants perform joint coding exercises but the fact they're timing you is a hint of the type of environment you're potentially going into. Engineering software is not trivial but in general, coding exercises can be. I don't have all the facts, but assessing an applicants skills within temporal bounds is not in itself outrageous. However, the approach itself indicates they are looking for more of a code cranker and less of an engineer which prolly says they're the type of outfit that considers development an overhead instead of an investment.

    Ultimately, we all need to pay the bills. Second to achieving this; be careful in finding a culture that embraces the culture of technology versus those who view it as a necessary evil. Be sure that those who hold such views never perceive themselves as such and will always be polishing their hatchet and planning their stroke in your direction.

  141. Re Its just another dumb indicator-- I refuse... by Anonymous Coward · · Score: 0

    I would refuse to take the test. Its not a real life situation(writing great debuggable, maintainable, documented code). It leaves out the real life situation of dealing with bosses who want death marches with more code but less of the above quality, Tests tell you only one thing: That you can pass or fail the test. Nothing else. They are completely worthless otherwise.

  142. Bang! :-) by maroberts · · Score: 1

    perl -E 'say # print
          map # do the block...
          {(
            (Fizz)[$_%3]. # Fizz every 3
            (Buzz)[$_%5] # Buzz every 5
              ||$_) # if we're not Fizzing or Buzzing, print the number ."\n" # add LF to result
            } 1..100' # ... for 1 to 100

    Simples

    --

    Donte Alistair Anderson Roberts - hi son!
    Karma: Chameleon

  143. Re:If you put your life savings by BonThomme · · Score: 1

    So you'd be fine if the candidate asked to see the balance in the company's bank account?

  144. Re:If you put your life savings by Anonymous Coward · · Score: 0

    Would you just hire someone with a resume of stuff? What if he did have those qualifications? How do you know he wont sink you, destroy your marriage, retirement, and lose your home which is in co-lateral for the business loan?

    In the old days, we used to call the candidate's references and ask if he was full of shit. Not in so many words, of course.

  145. Speed does not equal quality. by Anonymous Coward · · Score: 0

    My business partner could code something in a day that would take me a week, but it would take him as much as a month to debug it while I could debug mine in a few days. His "elegant" code often left us with subtle bugs that were impossible to simulate.

    An employee who could code just about as quickly as he did, left us with maintenance nightmares, poor structure, inadequate documentation, very little error checking, no failsafe, and no failover. He had very little empathy or concern for users who were not as tech savy as he was and no compassion for naive users, and his code was so hastily lashed together, it was hard to modify it to accommodate the users who were paying for the product.

    My best employees were slower but methodical, didn't understand their code in one thought, so they had to document for their own understanding, and cared about format, structure, and presentation enough that someone else could take over if their code needed to be modified or updated.

    My experience has been that slower coding allows for more thorough attention to details that make the software bullet proof, reliable, maintainable, and easy to upgrade. Thinking rather than typing. Understanding and creating documentation, rather than spewing code. Creating a quality product rather than a big one in a hurry. Those are what make a good programmer.

  146. Re:Many companies are desperate to eject candidate by BonThomme · · Score: 1

    if you are a competent coder, companies should seek you out

  147. Nfl jerseys in the best price I played defensive e by Anonymous Coward · · Score: 0

    There are also many online nfl jerseys from china stores while they are stocking Football League Nowadays people love to wear with the autographs of their favorite stars and then wear Cheap Jerseys them in public2 During his NHL career, Orr also helped to launch the NHL Players Association Not only every available designs of nfl jerseys that you can get from online shopping, but also all original custom youth nfl jerseys colors of the jerseys Further, NHL Network will provide hourly reports from the On The Fly team from 2 p Now if your website has been ranked quiet high on the SEO page then you can earn good profit from your sales, you may get thousands of visitors visiting your website that are quiet interested in buying your books What you say to yourself and how you say it will determine how you feel and where your brain focuses Athletes would almost always choose the "money schools" over other colleges6 C Duncan KeithAs key as Toews is to his team's success I would argue that it is blueliner Duncan Keith that is the Blackhawks' most valuable asset Not only will you save money but you can choose from a wide variety of sports team products Several of the well-known NFL jerseys which are currently becoming purchased by many folks include:#9 Tony Romo - Dallas Cowboys#28 Adrian Peterson - Minnesota Vikings#43 Troy Polamalu - Pittsburgh Steelers#28 Chris Johnson - Tennessee Titans#18 Peyton Manning - Indianapolis Colts#9 Drew Brees - New Orleans Saints#17 Philip Rivers - San Diego Chargers#4 Brett Favre - Minnesota Vikings#15 Tim Tebow - Denver Broncos#85 Chad Ochocinco - Cincinnati Bengals#7 Michael Vick - Philadelphia EaglesThis really is a very brief list in terms of NFL players that have jerseys accessible at most retailers Even professional European hockey jerseys are gaining fast in popularity

    Gretzky mastered his skating skills on Cheap NFL Jerseys his personal ice rink Who currently is approximately in store the university upon June, this individual nfl jerseys wholesale china party favors taking part in the Cheap NFL Jerseys game regarding baseball, nevertheless should spend close to 12 considerable time carrying this custom baby nfl jerseys out classes, definitely doesn't need time that may play it just about all That is exactly nfl jerseys wholesale why cheap NFL jerseys are perfect for the NFL football fan whether youth or adult Several of personalized nfl football jerseys those jerseys are hugely wanted than other people but even although you are not just a frequent shopper you may lose out just one of the extremely best option Common individuals may take satisfaction in the NHLMeaning, after you are pondering how we're able to locate beneath wholesale cheaper American footbal nhl jerseys, you'll want to also take into consideration top-quality good quality, often the make and design as well as in a lot of circumstances considering the elements place to utilize in which help it become A business deal to broadcast hockey on television is solidifiedRelated ArticlesCheap MLB JerseysFans Go Online Now to Buy Soccer JerseyFind Your Favourite Jersey StoreFrugal Guide To Buying A Tebow Broncos JerseyNCAA football is definitely one of the m

  148. wholesale nba jerseys by Anonymous Coward · · Score: 0

    Nowadays people love to nfl jerseys from china wear with the autographs of their favorite stars and then wear them in public Rodriguez was the youngest player ever to break the 499home run mark Yet the highest paid player for 2008 was quarterback Ben Roethlisberger Stamkos has more weapons in his arsenal than just his incredible shot thoughSome authentic jerseys are really expensive but with great quality and style so that is good to make the most of your money The variety of sports channels include ESPN, Euro sports and other extreme sports not shown on normal TV like raw Thailand kickboxing and othersNCAA has some of the most competitive and elite college teams in basketball, football, nfl jerseys from china and baseballScom/tradetracker4Football memorabilia really hinges on the distinctive shirts that different teams wear for different matches Go to opt for the style of lettering, color choice, in addition to whether you're looking for these individuals sewed for and also computer screen produced This is considered to be an investment As we know, football fans tend to play football, and they want to do it in their favorite player's apparel, so this clothing is made to ensure a lot of stress I was a bit taken aback by the Cheap sports Jerseys lack of respect, but mustered up my dignity and walked away declaring that they would respect Discount NFL jerseys me after the game

    The United States time on Wednesday, the university of Kentucky (Kentucky) manager John Calipari (John Calipari) said he won't go to the knicks or other NBA team coach But before you decide to purchase a MBL jersey online or at a store, there are a few things you should know Whether it's red, white, or blue, stripes, sashes or denim, you'll see below that the designs are all over place And the shade appeared to be as well girlish and cheap nfl jerseys from china not challenging adequateDown and dirty enthusiasts constantly ideal changes within their avid gamers dress and therefore MLB and also to match the wants belonging to the fans and therefore the nfl jerseys wholesale china online players prepared adjustments inside the jerseys together with offered for sale your jerseys on increased rates throughout the summer together with within inexpensive as well as economical costs in the out couple of years while clearance purchase in that way enjoyable the handbags enthusiast everywhere What beer is it? 6 They can purchase these jerseys in larger quantity enough for cheap nfl jerseys from china everybody in the group or family to have a jersey they can wear when they watch the game of their favorite team Their career stats have been eerily similar over the years, and they almost seem to share a brain when they are tap-dancing on opposing d-men Datsyuk is the three-time defending Frank J Restricted to, lettering within the masturbator sleeves if you go for Get instant access of all NHL events using the software carrying the largest collection of sports TV channels All you need is one time registration fee to download our software load and play almost unlimited channels help you to convert you PC into real entertainment center Top rated Jerseys, This site offers hundreds of fake, various, throwback, tailor-made, devices plus reliable jerseys to get FOOTBALL admirers Top rated Jerseys includes low-priced cheap FOOTBALL Jerseys profit around number with shapes plus colorations

  149. Licensing by dolmen.fr · · Score: 1

    They should get the points only if they mentions the origin of the code and the license under which it is distributed and that licence is effectively allows redistribution.