Slashdot Mirror


Are Contests the Best Way To Find Programmers?

Nerval's Lobster writes "Tech firms are engaging in several non-traditional hiring methods, from programming contests to finding the right people via algorithm. One of the more popular methods: set up a coding challenge or programming contest to bring out interested parties, with the top prize being a trip to the sponsoring company's headquarters to interview for a job. Look at what Facebook is doing in this area, sponsoring several Kaggle.com programming contests to find the best programmers; it also makes use of the site InterviewStreet to screen potential applicants. In theory, any company can build and run a contest online. But is it really the best way to go about hiring a programmer (or any other tech-minded employee, for that matter)?"

42 of 260 comments (clear)

  1. Contests are the best way... by olsmeister · · Score: 5, Insightful

    to find programmers who like contests.

    1. Re:Contests are the best way... by dkf · · Score: 4, Insightful

      to find programmers who like contests.

      or who like gaming contests.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    2. Re:Contests are the best way... by i+kan+reed · · Score: 4, Funny

      to find programmers who like contests.

      or who like gaming contests.

      That is to say future business leaders.

    3. Re:Contests are the best way... by jellomizer · · Score: 3, Insightful

      Is it the best way.
      Those are closed minded questions. Contests are a good way to find a particular type of developers. Normally the developers who write code that is Quick, and often elegant in its solution. However they usually fail on code that is is easier to maintain, or requires bigger picture development.

      I use to be a hot shot developer and over the years I have cooled down and changed my tactics. Everyonce in a while I get into arguments with the new kids about how to do things, I tend to bring up adding hooks for those "Oh By the ways" that come up. For some cases I propose not to strictly type particular class elements and use more generic templates, or just use an enumerated array vs an other class. Just because I know the nature of what the Oh By The ways have without knowing what they are going to be. But it often requires adding extra detail, or sending different types of data, not in the specs. So instead of a rewrite of a class it is just a slight modification.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    4. Re:Contests are the best way... by Anonymous Coward · · Score: 5, Insightful

      Because the best programmers don't take time to thoroughly analyze the problem, look for process alternatives, look for opportunities to adapt existing code base and propose integrated solutions. They just jump right in a create a quick, one off and specific solution.

    5. Re:Contests are the best way... by David_Hart · · Score: 5, Insightful

      to find programmers who like contests.

      ...and who have time to participate in contests

    6. Re:Contests are the best way... by Anonymous Coward · · Score: 5, Interesting

      "Wanted: highly intelligent but deeply insecure attention seekers woefully ignorant in the larger ways of life. Must be easily manipulated and enthusiastically embrace indentured servitude for life (or until we deign to discard their burned-out husks). Will pay big shiny baubles and provide free desk, chair and leg iron benefits. Those with any self-respect or business acumen need not apply."

    7. Re:Contests are the best way... by DudeTheMath · · Score: 2

      My mod points seem to have vanished early; I thought I had two left for today.

      This is exactly my first thought. I like contests, but I've got a family with other obligations that, for example, prevented my participation in the recent Hillsborough County Hackathon right here in Tampa (as reported on Slashdot).

      --
      You save only 59 seconds over 8 miles by going 75 instead of 65. Do you really have to pass that guy? Do the Math!
    8. Re:Contests are the best way... by lgw · · Score: 4, Interesting

      to find programmers who like contests.

      ...and who have time to participate in contests

      Exactly. To judge by my interview with Facebook, in particular, I think they're OK with that. They seem quite focused on hiring young programmers who could bang out code quite fast (to solve non-trivial problems), with blithe unconcern for ideas like "maintainability" or "design review". They were also mystified why they had such a hard time hiring senior devs.

      Still, they know what they want, and contests seem to fit that quite well. And even if you prefer sanity to freneticness (freneticism?), hiring a few devs occasionally through "contest screening" could be worthwhile.

      I really like the idea of a purely objective hiring process where anyone can compete and resumes don't matter - but as an add-on to your normal process, not a replacement for it. That way madness lies.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    9. Re:Contests are the best way... by bzipitidoo · · Score: 4, Insightful

      No. There is preparation time. These days, if you just casually stroll into a programming contest without reading up on the idosyncracies of whatever scoring system they're using, and without training for it, you will be owned. Won't matter if you are a good programmer. I have won programming contests, but this was in the days when Pascal was the leading language.

      Years later, Top Coder showed up. I competed just once, and did poorly. In part this was because on Top Coder, other contestants can challenge your solutions. If it doesn't work, they score points and you lose them. In contrast, in all previous contests I was in, there was no penalty for trying at least once and being wrong, so you may as well send in whatever you have. (There was a penalty if you got it wrong several times before getting it right, but trying at least once is free.) That's what I did for one of the problems. To make it a little worse, in Top Coder the other contestants get to see when you submitted. The idea about challenging is that the challenger is supposed to have looked at the code, but these challengers did not do that. They only checked that the code was submitted at the last minute, and decided on that basis to challenge. Easy points for them. The veterans know how to work the system. Not knowing about wrinkles like that costs you in these contests. I decided right there that these contests were silly, and have not competed since.

      It also seems so many of these "contests" are just thinly veiled attempts to use people. The sponsor gets a bunch of code, some of it hoped to be of real use and value, sorted by the evaluation system. The winner gets a cheesy little prize. Or perhaps a big prize. The other dozens of contestants get nothing.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    10. Re:Contests are the best way... by Darinbob · · Score: 2

      So the person who wins the contest shows up and starts griping that they're expected to fix some simple bugs. Like winning after a season on The Apprentice and getting the dream job of flipping burgers. Or they've got a big ego now and aren't fitting into the team of non-contest-winners.

      A contest is going to filter for people who code fast and with clever tricks. Good programmers aren't necessarily fast programmers, and they're definitely not programmers who use a lot of coding tricks.

    11. Re:Contests are the best way... by Darinbob · · Score: 2

      I think sometimes that these contests are more of a way for the company to market itself. Ie, they put out a contest with an implication that they only hire geniuses, and the public buys into that myth.

  2. NO by Anonymous Coward · · Score: 5, Insightful

    No experienced competent software engineer would ever enter one of these code contest. If you need good engineers try offering the best compensation and the best working conditions.

    1. Re:NO by ShanghaiBill · · Score: 5, Interesting

      If you need good engineers try offering the best compensation and the best working conditions.

      Pro tip: Providing bad engineers with good pay and better working conditions doesn't make them into good engineers.

      Good pay and good working conditions will allow a company to be more selective about who they hire, but they still need some way of selecting the good ones. Many companies fail badly at this. I have worked for several that paid well, and ended up with salaries that were negatively correlated with competence.

    2. Re:NO by iamgnat · · Score: 3, Interesting

      I disagree. I think contests are a perfect filtering mechanism for experienced programmers. It tells us that the company would rather waste our time on trivial crap rather than solving the real problems.

      I do see value in this type of stuff for giving the people with no experience a chance to rise above the thousands of other resumes for the same entry level position.

    3. Re:NO by lgw · · Score: 2

      I strongly endorse Fizzbuzz-style screening - and not just for junior devs! Anyone senior who gets insulted and refuses to write some trivial code is giving you all the warning signs you need.

      Of course, if you're not hiring entry-level, you'd want a bit more than that, but it's amazing what a good culling mechanism "solve a couple of trivial problems in real time" is. I don' think that runs into the problems with contests at all, if it's just a screen.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  3. maybe, maybe not by ganjadude · · Score: 4, Insightful

    I believe that this is a good way to bring in young talent, people in college or kids who dont have a formal education but are self taught and need a shot.

    I dont expect this to be a good method for bringing in top level experienced workers however.

    --
    have you seen my sig? there are many others like it but none that are the same
  4. Time factor and software context by PseudoCoder · · Score: 5, Insightful

    Maybe I misunderstand the nature of these contests, but what I produce in 4 weeks is different than what I produce in 4 days. I have to make serious trade-offs that will impact the software design significantly and will not reflect what my vision would be for the "big picture" goals like clarity, maintainability, modularity, safety, error handling and all manner of best practices.

    I wouldn't want a prospective employer to judge me based on the stuff I can churn out in a flash, unless that's the nature of the work they have in mind for me.

    --
    "Now, I doubt any of you would prefer a rolled up newspaper as a weapon against a dictator or a criminal intruder."
    1. Re:Time factor and software context by geekoid · · Score: 2

      Any company looking for programmers the can churn code out in 4 days and not care about quality isn't an organization I want to be part of.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  5. Who has time? by serviscope_minor · · Score: 5, Insightful

    I'm not going to go out on a limb and claim to be one of the best programmers.

    However, I don't have time to do programming constests with my day job being rather busy. I generally give a lot to that job so I'm not going to spend time coding when I get home on the weekend.

    I'd imagine that I'm not particularly unique in this regard.

    On the other hand, you wil find good programmers who have no time commitments other tha coding, so I guess it does work out well.

    --
    SJW n. One who posts facts.
    1. Re:Who has time? by i+kan+reed · · Score: 4, Interesting

      Now, if I were in charge, what you just said wouldn't be a reason to not hire you. There are lots of good programmers who don't have time for extra programming, but the best programmers, in my experience, are those who really enjoy it, and will take on small projects for fun from time to time.

    2. Re:Who has time? by bad-badtz-maru · · Score: 2

      Is your first sentence a boolean logic test and you would've hired him?

    3. Re:Who has time? by ShanghaiBill · · Score: 2

      Job interviews also take time.

      And they take time during the working day, when it is hard for currently employed people to get time off. So you end up selecting for people that are currently unemployed, usually because their previous employer cut the bottom 10%.

      Pro tip: People looking to switch jobs tend to be better candidates than unemployed people, so you should accommodate them by offering to interview them in the evening or on a weekend.

    4. Re:Who has time? by vux984 · · Score: 2

      There are lots of good programmers who don't have time for extra programming, but the best programmers, in my experience, are those who really enjoy it, and will take on small projects for fun from time to time.

      There are lots of good telemarketers who don't have time for extra telemarketing, but the best telemarketers, in my experience , are those who really enjoy it, and will take on small projects for fun from time to time.

      That's why when my telemarketing company needs a new telemarketer, we just hold a contest and enthusiastic telemarketers clamor to do free telemarketing during their time off for a few weeks to show off their closing skills. I get a few thousand hours or free labour. One guy gets a position that needed to be filled anyway.

      Except that telemarketers, even the one's that really enjoy it, aren't stupid enough to spend their free time forming teams to telemarket a product for someone else, generating as many sales for them as possible, for nothing.

      They they know they are generating revenue, that the service is valuable, and that they should be paid for it.

      How many electrical engineers do you know who would go submit solutions to problems IBM or Intel is working on that they solved in their spare time for free? If IBM wanted something hard solved that badly, why wouldn't I patent it, and license it to IBM, or sell the patent to IBM?

      Why do so many programmers have rocks in their heads. Yelp is looking to develop an algorithm that would be very valuable to them. If you have the skill to do it, you should recognize that its valuable, and that you should be compensated for it. Yelp isn't your friend. Yelp isn't a charity. Yelp just wants a difficult and expensive to produce algorithm for nothing. Of course they would, who wouldn't? I like free stuff too.

      I should host a contest. I'll do a 100 hours of programming for the company that provides me with the most valuable patent. All patent submissions become my property. I reserve the right to award nobody if no patents of sufficient quality are submitted. You may submit more than one patent. You may form teams. Corporations are welcome to participate. Yelp? Are you listening? I'll create a twitter account just to mention you on it if you win!! Submit your very best patents for the best chance of winning!

      I mean there are lots of good companies who don't have time for extra patents, but the best companies, in my experience , are those who really enjoy it, and will take on small projects for fun from time to time. I'm sure they'd be happy to submit me a few patents to show how good they are at coming up with valuable patents.

  6. Something is wrong with this picture. by wcrowe · · Score: 4, Insightful

    Let's see if I've got this right: there is such a shortage of programmers in the U.S. that we have to raise H-1B visa limits in order to supply them, and yet companies have to create hiring contests in order to screen the overwhelming number of applicants?

    --
    Proverbs 21:19
    1. Re:Something is wrong with this picture. by Nidi62 · · Score: 2

      Let's see if I've got this right: there is such a shortage of programmers in the U.S. that we have to raise H-1B visa limits in order to supply them, and yet companies have to create hiring contests in order to screen the overwhelming number of applicants?

      Well, you have to see what exactly the best programmers have on their resumes so you can tailor job opening announcements to specifically avoid them so you can claim a shortage so you can bring in that H-1B holder at a fraction of the price. Either that or just tailor the contest so that no one wins, and claim that this indicate there is no one in the US qualified for the position.

      --
      The only thing necessary for evil to triumph is for it to be pitted against a slightly greater evil
    2. Re:Something is wrong with this picture. by Rakishi · · Score: 2

      Shortage of competent programmers. There is a difference. A guy who spend three days reading a "java for dummies" book may be applying for a programmer position but he isn't a competent programmer.

      Someone wrote a bit back that 70% of their applicants, who passed the HR screening I believe, couldn't even code fizz-buzz. As in couldn't code it at all, not even badly or not even mostly.

    3. Re:Something is wrong with this picture. by geekoid · · Score: 5, Interesting

      " but aren't these large companies wanting to raise the H-1B visa limits because of allegedly poorly trained/inexperienced programmers?"\
      no. They want highly trained and experienced people to work for cheap.

      We have plenty of programmers in the US, but we have the gall to want to be reasonably paid.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    4. Re:Something is wrong with this picture. by Njovich · · Score: 2

      Actually, it's the other way around, in layman's terms it is 'Not able to buy something at a price you are willing to pay.', in economic terms, what price you are willing to pay is irrelevant, if you are not willing (or able) to pay the price that it costs, you are not considered part of the demand side of things. Look it up. Of course, in no way am I implying that this is a free market with perfect competition. Most journalists or HR staff are not really economists of course...

      About this case: The reality is that if you place a job advert for a programming job, you get lots of totally unqualified people applying to your position. Many of them lying about their skill. Sometimes skillfully lying about their skills. Many of those you would never ever let touch your own projects. Finding a way to weed out the crappy applicants is a real world problem for real world people in IT that are not always so different from you or me.

    5. Re:Something is wrong with this picture. by vux984 · · Score: 2

      never heard of that test, just looked it up, you mean this fizzbuzz?

      for n=1 to 100
              case:
              n is divisble by 15: print 'fizzbuzz'; break
              n is divisible by 3: print 'fizz'; break
              n is divisble by 5: print 'buzz'; break
              default: print n
      end loop

      yeah, that's really sad* for a programmer job. (* and I probably goofed it, making me look ridiculous, lol) Doing it without testing for 15 makes the code more complicated and ugly though while using the 15 seems like a bit of cheat, in the sense that you are supposed to be testing for property x and y and this just happens to be a concise way of doing both at the same time, due to the way the math works... but its questionable that this code is maintainable or generalizable for any x and y.

      For example, here given x=3, y=5, and you can test for x^y (15). But only because 3 and 5 have no common factors and 15 is therefore the least common multiple. But If x=6 and y=9, the shortcut test would be to test for divisibily of 18 the LCM not 54 which is simply x*y....

      So the convoluted logic approach might be the better way to go.

      Quite bluntly, if I were confronted with fizzbuzz on an interview I'd spend more time wondering which solution was desirable -- than actually writing one. Are they looking to see if I'm good at math? Or are they seeing if I'm good at nested logic? Would they consider the math a desirable trait or a sign that I'll write opaque code as someone reading the code in the future may not understand why I'm testing for 15 given the specs.

      Maybe a better implementation is something like:

      x = 3
      y = 5
      for n = 1 to 100
          printedflag = false
          if n is divisible by x
                print fizz, printedflag = true
          if n is divisible by y
                  print buzz, printedflag = true
          if not printedflag
                  print n
      end loop

      or maybe im being tested on whether I know how to find something is divisible, and my pseudocode just glossed over that I'd write a modulus expression like if (!mod(n,x)) or is that opaque again treating a remainder as a boolean ... maybe I should write a function to do that...

      bool IsDivisible(int a, int b) return !(mod(a,b))

      I hate writing tests when I don't know what is being tested.

    6. Re:Something is wrong with this picture. by FilmedInNoir · · Score: 2

      I've just been adding Cheap Whore to my abilities section. I'll try your method.

      --
      Sig. Sig. Sputnik
  7. The best way to find programmers by The+Evil+Atheist · · Score: 4, Funny

    Interview question #1: Explain why you hate C++ Interview question #2: Justify why you repeated soundbites about C++ and not formulate your own explanations Interview question #3: Explain why you like Java or C# better Interview question #4: Justify why you didn't know that C++ can also do those things

    --
    Those who do not learn from commit history are doomed to regress it.
    1. Re:The best way to find programmers by Anonymous Coward · · Score: 2, Funny

      Interview question #1: Explain why you hate C++ Interview question #2: Justify why you repeated soundbites about C++ and not formulate your own explanations Interview question #3: Explain why you like Java or C# better Interview question #4: Justify why you didn't know that C++ can also do those things

      • #0: It is useless syntax sugar over C.
      • #1:You would not understand anything else then 'soundbite'.
      • #2: Java and C# are proprietary crap that only amount to event more high-fructose syntax syrup.
      • #3: C is sufficient for any project. OO is a design, not a language.

      Let me ask you one question; Why didn't you start numbering your questions with zero?

  8. Depends on What You Need by Nethemas+the+Great · · Score: 2

    It kind of depends upon what you need. Contests will find puzzle solvers, those that would work reasonably well doing research. Contests however, will not be very effective in finding the "big picture" folks that are needed to develop clean, robust architectures. I suspect they may well select against them. You will also almost certainly limit your applicants to college kids, and/or recent graduates looking to establish themselves not those that have already proven their abilities.

    --
    Two of my imaginary friends reproduced once ... with negative results.
  9. nope by JustNiz · · Score: 4, Insightful

    ....all those competitions do is find the fastest programmers.

    Fast usually means hacky. it definitely does not equal good, but unfortunately many managers dont understand that concept because they all subscribe to the "make it fit in my microsoft project plan" mindset.

    Sadly, In this culture, poorly engineered and buggy software and the corresponding very costly rework have just become accepted as unavoidable even though its actually not.

    Its actually much cheaper in real (but unfortunately largely hidden) costs to take the time to get it right before you deliver to the customer.

    I'll take the programmer who loses these competitions because they took the time to do a robust job thanks.

  10. Let's continue the lack of dignity for IT by bstarrfield · · Score: 5, Insightful

    Programmers and related IT folk are the absolute bottom of the corporate barrel - below custodians, below security guards, below the cafeteria staff. Only programmers / analysts / sysadmins / etc. are expected to take 6 month "contract-to-hire" positions. Only IT professionals can work in a job hierarchy with very few, if any, opportunities to advance to senior management. Mainly only IT professionals are told to take salary cuts, work extra hours, and train their successors due to outsourcing.

    And now you want a contest to decide who to hire? Do accountants, operations staff, finance staff, and marketing have contests to see who will be hired? Even in sales you're hired for a position - you need to meet your quota, but there's none of this patently demeaning treatment of IT professionals as mere expendable cogs in the machine.

    So what if you win the contest? Are you expected to perform at that amped up level every day of your work career? Are you supposed to quit when some new young buck / buckette does better in the contest next year? Is your education, prior experience, ability to work with others totally irrelevant? And damnit, do you have any sense of dignity in your job?

    I've worked in IT for 15 years. During that time I've seen friends from undergraduate days and graduate school days move steadily up the ladder while nearly every person I've worked with in programming are stuck in the same ruck - everyone's a "Senior Engineer" or "Architect." And now we can look forward to job duels? Coding against each other endlessly in a competition to stay gainfully employed.

    Don't accept this garbage. Being a productive employee is far more than just the ability to spew some excellent code in a contest. We have to make our field a profession, not a joke.

    --
    /* Dang, I can't type that well. */
    1. Re:Let's continue the lack of dignity for IT by Viol8 · · Score: 2

      "During that time I've seen friends from undergraduate days and graduate school days move steadily up the ladder"

      Why care? Management is for a dead end "career" for losers who weren't up to their original roles and greasy pole climbers.

      Programming is a profession. You wouldn't ask a top surgeon why he hasn't been "promoted" to a management position so why would ask a programmer the same question?

  11. It's teamwork, stupid by accessbob · · Score: 2

    Yes it is important that the candidate can program and can problem solve, but its not often that individuals analyze, design, code, and test an application, you work as part of a big team.

    Further, a team of egotistical coding superstars is never going to be an effective team. Dull plodders who have an attention to detail are as important as the superstar programmer. You have to have a mix.

    So yes, there may be a place for coding challenges, but a good coder is not necessarily a good analyst, a good tester, or a good integration guy.

    And given the above, the only tests I'd want to see are those conducted at the company where you can ask "Why that way? Why not this way? What if I needed these changes now? How would you scale that idea? How could you best document that for the testers? How could you make that easier to integrate with this?". It would be difficult to get any of that out of a coding challenge.

  12. Good way to screen, not select by SpinyNorman · · Score: 3, Insightful

    Decent programming skills are a requirement for a software developer, but only one of many skills required. Given how many people lie about their experience and fail *VERY* simple interview programming tests, having a programming test screening procedure wouldn't be a bad thing, but only to drop the worst, not to automatically hire the best.

  13. Re:nope by JustNiz · · Score: 2

    Yeah you just exactly demonstrated the point I was badly trying to make, that not enough people emphasise or even realise how productive doing a thorough job is, rather than doing a superfcial one.

  14. Re:Missing the point by vux984 · · Score: 5, Insightful

    Also it's a long-term contest (8 weeks) instead of the "overnight hackathon challenge" you might be thinking of. You can make several submissions and get feedback for how your algorithm is doing, and how it stacks up to other teams. ...

    Everyone complains about the HR "minefield" that sorts candidates by requiring useless or immaterial experience instead of raw coding ability. This is a new type of job search that doesn't have these problems.

    This has worse problems. They plan to get a useful difficult alogorthm solved for free. (And multiple variations on it too.) This will apparently will require teams weeks of efforts to come up with. That's hundreds even thousands of hours of free unpaid labour.

    I should have strata's landscaping done like this. Instead of paying a landscaper to come by everyweek I'll just hold a contest, and have 50 contractors each come in one week and do their thing. At the end I hire the best one for a one year contract.

    The year after that... I'm not sure he's the best one anymore... I'll need another contest.

    Free landscaping every other year is a pretty sweet deal.

    The only flaw in the ointment is that unlike programmers, landscaping contractors don't work for free. And they don't buy into idiotic arguments that the best landscapers love landscaping and want to spend their time off doing it for free too.

  15. Re:nope by pla · · Score: 4, Insightful

    Its actually much cheaper in real (but unfortunately largely hidden) costs to take the time to get it right before you deliver to the customer. I'll take the programmer who loses these competitions because they took the time to do a robust job thanks.

    Absolutely correct - And largely irrelevant to the modern business environment.

    In almost twenty years of working as a programmer, I've had the luxury of doing it "right" exactly four times. Outside that, the speed with which I can hack something together has mattered far, far more in my day to day job performance. Yeah, I can build you the Bugatti Veyron of code, given $X budget and Y months; but everyone just wants a slightly used moped, preferably by 2pm yesterday.

    Yes, you have it correct, some people can't handle large projects but might do okay on a coding contest - Certainly a problem. But some people don't know when not to turn a request for a moped into a Veyron. That hypothetical god-like software engineer who fails your contest? He failed not in doing "too good" of a job, but in ignoring the actual project requirements, simple as that: "Make it work, ASAP, ACAP".