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

260 comments

  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 Tough+Love · · Score: 1

      Everyonce... excellent new word, we should use it.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    7. 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."

    8. Re:Contests ARE the best way... by Anonymous Coward · · Score: 0

      If you're not first you're last! Shake aaannnnd Bake

    9. Re:Contests are the best way... by Anonymous Coward · · Score: 1

      neverway

    10. 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!
    11. Re:Contests ARE the best way... by DudeTheMath · · Score: 1

      That's right, Ricky Bobby: If you're not first, you're last!

      --
      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!
    12. Re:Contests are the best way... by nine-times · · Score: 1

      It's a generalized problem with metrics, measurements, and assessments. Holding contests are a good way to find people who like contests and perform well in that setting. Collecting resumes and cover letters is a good way to find people who are good at producing cover letters and resumes. Using algorithms is a great way to find people who fit those algorithms.

      Know what you're measuring, and try to find a measurement that lines up with what you want.

    13. Re:Contests are the best way... by Anonymous Coward · · Score: 0

      Sounds like sour grapes.

      Google's code jam is 2.5 hrs. The Hobbit is longer than that.

    14. Re: Contests are the best way... by SpaghettiPattern · · Score: 1

      Sure. When skills are beyond doubt there is that je ne sais quoi that lets you and the prospect resonate or at least give you an intense and good feeling.

      --

      I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    15. Re: Contests are the best way... by FuzzNugget · · Score: 1

      ...to lure a bunch of hopeful suckers into doing free work and externalizing HR.

    16. Re:Contests are the best way... by kakaburra · · Score: 1

      to find programmers who like contests.

      and the people who win these contests happen to be very good programmers, so, all in all its a great way to find talent.

    17. Re:Contests are the best way... by kakaburra · · Score: 1

      who have time to participate in contests

      don't blame time, blame yourself for not managing it.

    18. 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.
    19. Re:Contests are the best way... by Anonymous Coward · · Score: 1

      They're managing it by not participating in such contests?

    20. Re:Contests are the best way... by Anonymous Coward · · Score: 0

      Is it the best way. Those are closed minded questions. Contests are a good way to find a particular type of developers.

      You start with disagreement, then use vastly more words to say exactly the same thing the GP did....

    21. Re:Contests ARE the best way... by Anonymous Coward · · Score: 0

      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!

      But I do 90 and love every second of it. Sometimes, I skip my usual exit so I can drive a little more.

      Sounds like someone got pulled over a few too many times and had to take one of the idiotic safety courses to keep their license/insurance.

    22. Re:Contests are the best way... by wisnoskij · · Score: 1

      This.
      There are definitely competent programmers at these competitions, but most truly good experience ones would not bother and many would have a bunch of very useful specific programming skills, that your organization might need , but are not necessarily the rights ones to actually compete and win in competitions.

      --
      Troll is not a replacement for I disagree.
    23. Re:Contests are the best way... by jellomizer · · Score: 1

      The close minded argument is the nature of the story. Is this the Best way. There is rarely a best way. It is a good way for some use cases but not always the best for every case.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    24. 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"
    25. Re:Contests are the best way... by denvergeek · · Score: 1

      It's a perfectly cromulent word

    26. Re:Contests are the best way... by watice · · Score: 1

      a lot of those prizes involve you keeping your IP. I've entered in a few now, and only one large one required the final winner to sign over his IP rights for the prize.

    27. Re:Contests are the best way... by Anonymous Coward · · Score: 0

      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.

      Of course, there's always the cautious programmer who takes a thorough analytical approach, carefully crafting esoteric methods and obtuse strange functions, saving a few milliseconds every century at the cost of dozens of extra hours in work when all they were asked to do was create a quick, one off, specific solution.

    28. Re:Contests are the best way... by Anonymous Coward · · Score: 0

      The word you were looking for is "frenzy."

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

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

    31. Re:Contests are the best way... by oliverthered · · Score: 1

      To summeraise, it'a ain't what you do it's the way that you do it.

      --
      thank God the internet isn't a human right.
    32. Re:Contests are the best way... by kmoser · · Score: 1

      to find programmers who like contests.

      or who like gaming contests.

      That is to say future business leaders.

      Or politicians. But now I'm being redundant.

    33. Re:Contests are the best way... by Anonymous Coward · · Score: 0

      I put out some free Chinese food and see who hangs around. This ancient technique is called "Looking under a wok."

      Seriously, contests often involve speed. I've been programming almost a half century, and I've learned that speed kills. The current aesthetic of banging out some quick ephemeral web code usually costs more downstream money than it saves right now.

      (Will bang out quick ephemeral web code for food.)

  2. counteroffer by udachny · · Score: 0, Insightful

    How about some programmer sets up a contest, where interested companies can compete for that programmer (an auction maybe)?

    1. Re:counteroffer by Anonymous Coward · · Score: 0

      That's standard practice already. You interview several places and let them bid against each other if you get more than one offer. At the end of that you can accept whichever offer you want.

  3. Winner! by Anonymous Coward · · Score: 0

    Contests are a great way to find people who can win contests.. And, as we all know, Racing for an answer is obviously the best marker for finding the great programmer.

  4. Honest, and a bit more objective by Anonymous Coward · · Score: 1

    It's honest (that you are competing with other, perhaps qualified, candidates); and a bit more objective, in that you don't have HR weeding people by the wrong metrics.

    It's also a blantant attempt to get people to work for free.

  5. 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 Anonymous Coward · · Score: 0

      Most of the competent software engineers (representing the industry's top talent) are already employed. Poaching them is difficult, expensive, and risky.

      Some of them are unemployed, of course, and some of them are employed but looking. However, since they are talented and in-demand, that percentage is small. Filtering the set of applicants down to these is also difficult, and doesn't always succeed (you wind up with the job-hoppers who interview well but don't perform well, or the loyal ones who have deep knowledge of one specific industry or business which doesn't translate well to your industry and business, making their ramp-up time lengthy and expensive).

      So, even though there is a potentially high payoff to getting top talent (they are superstars once they are onboard, ramped-up, and incentivized to be loyal), the odds against succeeding are high, and the costs are high.

      It makes far more sense to try and pull the cheap-but-full-of-innate-talent self-starters out of the teeming masses of unemployed or mismatchedly-employed middle-tier-talent software developers. Hopefully they can be made into top-tier talent that you already own as they gain experience, or they can remain cheap enough that they are worth keeping even though they aren't on top.

    3. Re:NO by Anonymous Coward · · Score: 0

      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.

      Exactly. A contest will only let you hire someone for their first job. After that, you have to figure out how to keep them. There are plenty of companies out there that know how to find a programmer. Many don't know how to keep them. IT doesn't take long for a savvy person to determine their worth. The most these companies can hope for is some one who comes from a background that doesn't understand salaried work. I know, it happened to me and I make a point of telling new programmers exactly that.

    4. Re:NO by Cammi · · Score: 1, Interesting

      Noticed they said "Programmers" not "Software Engineers", there is a HUGE difference between the two. Programmers are peons who design nothing, just code what they are told to code. Software Engineers design the applications/software from the ground up, has a game plan ready AND programs. These companies only want Programmers.

    5. Re:NO by NewWorldDan · · Score: 1

      When I'm hiring, I usually just advertise on Craigslist. 90% of the interview is just being able to complete a freshman level programming assignment. But I usually am hiring entry-level developers. It's depressing to see just how few applicants can pass the test, even guys with 5 years experiance. I was beginning to think my test was unreasonable util I had a prospect pass both tests (FizzBuzz and sort a text file of numbers) in 15 minutes dispite never having used C#, .NET or Visual Studio before. His sense of engineering needs a lot of work and supervision, but he does do good UI work.

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

    7. 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.
    8. Re:NO by Anonymous Coward · · Score: 0

      Just remember that writing code on paper is really hard even for trivial problems. People aren't used to it and get stressed when they cant move text around and undo mistakes like they are used to. Using a plain text editor (and ignoring syntax errors since the applicant can't compile) or the IDE of choice if possible, a fizzbuzz test can be useful.

      I prefer to just present a problem that the applicant has not faced before, and ask the person to reason about this problem for a few minutes. What are the potential
      solutions, what benefits and drawbacks do these solutions have. The point of the excercise is to see if they can provide at least TWO solutions, and if they are familiar with what aspects of a solution are good and bad (such as running time, memory use, readability, difficulty/time of implementation and so on). Someone who can't reason about the merits of different solutions isn't going to find them. And even if they could find ONE solution and hammer it down flawlessly in seconds, they are a liability if they didn't consider the options. The art of programming is just choosing the least bad solution to every problem.

    9. Re:NO by Anonymous Coward · · Score: 0

      I am an experienced, competent software engineer. I entered Google Code Jam and passed the preliminary round, but will probably not get further. The tasks are challenging and interesting, but are geared towards math and big data solutions. I would guess you can find intelligent people this way, but has nothing to do with programming skills.

    10. Re:NO by Anonymous Coward · · Score: 0

      No experienced competent software engineer would ever enter one of these code contest.

      Why not?

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

      How does that ensure that you will attract only good engineers?

    11. Re:NO by Anonymous Coward · · Score: 0

      Above all else, employment is a relationship. I can solve your little puzzles all day long, but if you don't have the common courtesy to shake my hand and engage in a grown-up two-way dialog about our potential relationship then you can go fuck yourself.

      I'm not a whore and I'm not going to press my tits against the glass so you can inspect them to your liking. No healthy relationship starts with you treating people like two-dollar whores.

    12. Re:NO by Anonymous Coward · · Score: 0

      I would be offended to be asked such a question because my work is published and open source. If I refer to a potential employer my published work and they ask me a FizzBuzz question, I would be pissed.

    13. Re:NO by parkinglot777 · · Score: 1

      Noticed they said "Programmers" not "Software Engineers", there is a HUGE difference between the two. Programmers are peons who design nothing, just code what they are told to code. Software Engineers design the applications/software from the ground up, has a game plan ready AND programs. These companies only want Programmers.

      I don't agree with the definition. It may used to be that way, but I doubt it is that black & white any more. The words are just to be convenient. Often times, the responsibilities of those who are programmers & software engineers are overlapped. It depends on how a company names the position. Also, often times the name is related to salary rate. Don't simply put down "programmers" and praise "software engineers" with a bias. Some programmers do more design work than software engineers, and vice versa.

    14. Re:NO by Jiro · · Score: 1

      Cool. I think I can write a program to pass Fizzbizz or to sort a file of numbers. If what you're saying is correct, I would be in a category that includes very few applicants. Where do I send my application?

      (You're probably sincere, but so am I.)

      Also, if you are willing to hire someone who has never used C# before, and presumably are expecting him to code in C#, you're already ahead of 99% of recruiters. Job descriptions almost always require X years of experience. The concept that someone who knows how to program can pick up another programming language (even one that resembles ones they've already used) is nearly nonexistent.

    15. Re:NO by Darinbob · · Score: 1

      I keep downgrading my standing interview questions because they keep being failed. I apologize for asking such a dumb question in advanced, and then it doesn't get answered correctly... I'm baffled, even a stupid engineer applying for a C job who doesn't know C very well in a down economy should spend a couple hours the night before cramming for this stuff. And yet they don't know how to clear a bit in a word or insert into a linked list.

    16. Re:NO by lgw · · Score: 1

      would be offended to be asked such a question because my work is published and open source. If I refer to a potential employer my published work and they ask me a FizzBuzz question, I would be pissed.

      So you're "too good" to spend 30 seconds and write FizzBuzz? Are you also "too good" to write clear comments? "Too good" to test your own code? "Too good" to accept criticism during design discussions? "Too good" to spend time with the tech writer and review the docs?

      Now I'd be very hesitant to work at a place if all the questions in an interview were too easy, but to get upset because the first question was easy? Get over yourself. Some people get so nervous in an interview that they lock up, and you need to lead with an easy one to get them to relax and enter geek mode before throwing the hard stuff at them.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    17. Re:NO by Anonymous Coward · · Score: 0

      So you're "too good" to spend 30 seconds and write FizzBuzz?

      yup

      Are you also "too good" to write clear comments?

      nope - refer to my published open source work

      "Too good" to test your own code?

      see above

      "Too good" to accept criticism during design discussions?

      Perhaps "too good" to sit quietly on my hands at the design meeting instead of speaking up & contributing?

      "Too good" to spend time with the tech writer and review the docs?

      Your company has actual tech writers? Man, lap of luxury...

    18. Re:NO by jmcvetta · · Score: 1

      I see the words being used differently: "Software engineers" work for process-centric bigcorps; "developers" work for software companies (i.e. companies whose main business is making software for other people to use); "programmers" work everywhere else. Naturally there is much overlap.

    19. Re:NO by Rob_Bryerton · · Score: 1
      Do ugly BASH one-liners count? This is what I came up with in a couple of minutes (embarrassed to admit it took that long)

      for i in `seq 1 100`; do [ $((i % 3)) == 0 ] && [ $(($i % 5)) == 0 ] && echo FizzBuzz ; \
      [ $((i % 3)) == 0 ] && [ $(($i % 5)) != 0 ] && echo Fizz ; \
      [ $((i % 3)) != 0 ] && [ $(($i % 5)) == 0 ] && echo Buzz ; \
      [ $((i % 3)) != 0 ] && [ $(($i % 5)) != 0 ] && echo $i; done ; \
      sort -g numbers.txt

      Just a lowly high school educated sysadmin... :)

    20. Re:NO by chrismcb · · Score: 1

      because my work is published and open source.

      Because the potential employer knows for a fact that you wrote every single line of that open source code?

    21. Re:NO by lgw · · Score: 1

      I've adopted a language-agnostic interview question. At this point I'm happy if a candidate can write working code in any language. I'm more worried about design skills, but I've learned the hard way to insist on seeing code on the board.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    22. Re:NO by Darinbob · · Score: 1

      I'm not actually telling them that they have to use C, I'll take other stuff.

      I actually interviewed someone who refused to write anything on the board, giving an excuse that he just wasn't good at it or it wasn't his style, even though the rest of his resume and experience looked good.

      As a TA when C++ was new, we still had one class that used C. 8 weeks into the 10 week course I had one team come to me and ask for an extension on the programming, and they gave the excuse that they knew C++ but were still learning C :-)

    23. Re:NO by DuckDodgers · · Score: 1

      If you're demanding that the code they write on a piece of paper compiles properly and runs flawlessly on the first try, that's a lot to ask unless maybe you're quizzing a Python guru on "Hello World!".

      If you make it clear that mismatched parenthesis and a missed semi-colon or whitespace error is okay, and you just want to see a pseudo-code approach to the problem, I think it's legitimate. I don't have a lot of experience with this but at a previous job a guy that could sell manure to cows bluffed his way into a $100,000 salary position and after three months he hadn't written a single line of code. A simple code question like that would have stopped him cold, but they didn't ask it until the day they reviewed his lack of commits and demanded that he prove himself or get fired. Out he went.

    24. Re:NO by DuckDodgers · · Score: 1

      He's trolling you, pay no attention. The problem with solely referring people to your open source work and refusing to demonstrate any skills at an interview is that you could copy/paste code from other projects into your Github repository (or whatever public place you use to store the code you supposedly write). Until you write code at the interview, the interviewer can't be certain that nice set of code he saw under your name at Github was really written by you.

  6. no by Anonymous Coward · · Score: 0

    no

  7. Hmm.. a reality show in the making? by Anonymous Coward · · Score: 1

    Reminded me of this reality show called Hell's Kitchen where the winner gets to become new head chef

    1. Re:Hmm.. a reality show in the making? by Ashenkase · · Score: 1

      "Your a DONKAY"!

  8. No, because by Anonymous Coward · · Score: 0

    People do not buy, marry, or hire based solely on objective criteria. In fact, most of those objective criteria really become subjective after they pass through the lens of the people doing the buying, marrying, or hiring ("yes his algorithm was O(N-squared), but I liked the way he structured his code and added those unit tests..."). I've seen this before.

  9. 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
    1. Re:maybe, maybe not by Anonymous Coward · · Score: 0

      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.

      It serves it's purpose. If you want experienced workers they will have references. The contests are there because formal education isn't up to par when it comes to computer sciences.
      If you hire someone based on formal education alone you are more likely to end up with a person with an inflated ego but can't code for shit. (Yep, sadly universities allow those people to get through.) If you hold a contest you will know that the person at least knows how to compile the software.
      If you want skilled programmers without having to go through too many contenders then you hold a contest where formal education is the minimum requirement but then you might miss out. It's better to just increase the difficulty.

    2. Re:maybe, maybe not by ShanghaiBill · · Score: 0

      If you want experienced workers they will have references.

      Yes, and the number and quality of those references will be completely uncorrelated with ability. Over a thirty year tech career I have been involved in hiring hundreds of people, I have found references to be pretty much worthless. Why should their previous employer care if you make a bad hire? If they are a competitor, they could even benefit from it.

    3. Re:maybe, maybe not by lgw · · Score: 1

      Perhaps better to say "an experienced worker will have accomplishments". Never understood reference checking myself, except as a cheap background check that a resume isn't entirely fiction.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    4. Re:maybe, maybe not by Anonymous Coward · · Score: 0

      Why should their previous employer care if you make a bad hire? If they are a competitor, they could even benefit from it.

      That's an exceptionally Machiavellian view of it. When I choose references, I tend to pick people that I believe liked me personally. Unless I completely misjudge them, they are likely to say nice things about me. The only thing that my references would tell you is that I can find three people who have a positive view of me.

      If you are checking employment, previous employers are going to be reluctant to say negative things. Why? Because they can be sued for it. Why expose yourself to legal liability that you can avoid?

      In regards to the question asked by the headline, there is no "best" way to find programmers. There are many ways that may work for your particular circumstances. It's often best to use multiple ways. A contest can be useful if you want to find someone brilliant at throw away coding. During the interview you can then find out whether they understand how to write reusable coding. Or you might send them over to system administration, where throw away coding is normal (if you are using a multiple person team to write a shell script, you either picked the wrong platform or the wrong personnel).

      At the same time, if I was hiring for a position where Linus Torvalds was one of the applicants, I wouldn't expect him to participate in a contest. Either I already know about his coding (I picked him for this example because it is easy to view his code publicly) or I shouldn't be considering him. I might still want him to do a Fizzbuzz if I wanted to see how his coding process looked. Did he fully understand the requirements? Does his solution meet them? Am I going to be able to work with him?

      The time when a contest is most helpful is when you have a huge number of applicants and only a small number of slots. Facebook may want to hire direct from college but their profile means that the number of applicants will be prohibitively large. The HR winnowing process may be losing candidates who could pass the technical interviews. The contest thereby allows Facebook to see applicants they might have missed. Does this mean that they should replace HR winnowing with contests? No, because contests will miss all sorts of people who could pass the technical interviews. This gives contests their proper role as an adjunct to the overall hiring process.

      Another issue is that Facebook can afford to hire the support staff to deal with someone who is great at the kind of brilliance measured by a contest. It may be that you end up with someone who requires a manager who is a good coder and a good QA staff. Many smaller shops may need to force more of that onto the hire. Facebook has the resources to compensate for someone who is technically brilliant but socially inept. Smaller organizations may need a better rounded package, even if that results in someone who is weaker technically.

      Another reason to use contests is that they can make it easier to hire immigrants. As someone pointed out in an earlier conversation, O-1a visas do not have a numerical limit (in contrast with the H-1b visas, which do). They do require exceptional pay and some other proof of excellence. A contest win could provide the proof of excellence needed without having to wait for the person to win a Nobel prize (the example that the wiki page gives as a qualification). As such, they can help short circuit the chicken and egg problem. In order to get the visa, you need to demonstrate a body of work; in order to work, you need a visa.

    5. Re:maybe, maybe not by AuMatar · · Score: 1

      How does it help even that? If I was willing to lie to get the job, why wouldn't I give you a friend's phone number/email address rather than my actual boss?

      --
      I still have more fans than freaks. WTF is wrong with you people?
    6. Re:maybe, maybe not by BradleyAndersen · · Score: 1

      Yes!
      My Father ran convenience stores. When an employee needed to be let go (theft, laziness, whatever), he would provide shining recommendations.
      Why? - because he knew a competitor would scoop that person up.

  10. 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 Anonymous Coward · · Score: 0

      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.

      So interviews are out? Or do you want a 4-week interview? 4 days sounds like a great way to judge the person's ability to get the job done within a time constraint without the handwaving or on-the-spot nature of an interview, if this really is a 4-week problem. If it's a simpler, totally reasonable 4-day-or-less problem, why do you need 4 weeks?

    2. 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
    3. Re:Time factor and software context by charles2678 · · Score: 1

      So interviews are out? Or do you want a 4-week interview?

      I'd think that looking at my github account would make more sense.

      If it's a simpler, totally reasonable 4-day-or-less problem, why do you need 4 weeks?

      Because working on a big project can require kinds of discipline that small projects don't, so hiring someone to work on big projects based only on how they perform on small ones is a good way to get mislead. Note that I said "only". In-office code screens are essential; they just aren't sufficient.

    4. Re:Time factor and software context by Ashenkase · · Score: 1

      on-the-spot nature of an interview

      Yep, the last thing you would want to do is actually "talk" to a candidate.

    5. Re:Time factor and software context by Anonymous Coward · · Score: 0

      You can't put every candidate through a month long trial to see if they're a good fit. That's what probation periods are for - if you hire someone and find early on they aren't a good fit, you don't have to keep them.

    6. Re:Time factor and software context by Anonymous Coward · · Score: 0

      I wouldn't want a prospective employer to judge me based on the stuff I can churn out in a flash,

      God, I've been there. It was a job interview and he asked to see some of my work. Well, every job I've had till that point was closed source and the vast majority of the code I'd written was proprietary company secrets.

      I had some college projects, but well, nobody like code they wrote 5 years ago and school projects aren't exactly impressive. I had some pidly little things that I had coded up for my wife's thesis, but it was hardly a program.

      And then I had the one thing I had indeed published. A 7DRL. Seven day roguelike. I had never made a game before. I had never touched the curses library. I had to wrap my head around the fact that I couldn't resize the terminal. It was, in short, ugly code. But at the end of 7 days I had something that was playable, challenging, and even brought something new to the world of rogeulikes (at the time).

      But man oh man, was that some ugly code. Usually I tackle new things, look around online about how best to go about it, fret a lot about design and style choices, and end up cleaning up a lot of what I wrote at the start. Not here. With a constrained deadline, a bucket of features I wanted to add but knew I wasn't going to get to, and (most importantly) a project I knew I was never going to come back to, I coded up some truly horrific things. But they worked. And that was really all I had to show the hiring boss.

      Didn't get that job.

    7. Re:Time factor and software context by PseudoCoder · · Score: 1

      Exactly. I had a PhD and was even proposing changes to the C++ standard, and getting them accepted, but couldn't parse and XML file. Let him go 2 weeks into his probation period.

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

      There are situations in which being able to get something working very rapidly is an excellent skill.

      Eg. Building a prototype of something to demonstrate it. Explaining your new idea by letting people use it is 20x better than a powerpoint about it...

      Fixing a security issue. If an issue is found with a service, a rapid reaction to be able to close the hole is vital - we can't have the whole of facebook down for 4 weeks while you write documentation for your change. Obviously you also need to follow up with the properly designed and reviewed fix later.

      Building yourself a one-use tool. Eg. Say you have a load of data and you need to round it all to 3 significant figures. A 10 line C++ program might do just the job.

    9. Re:Time factor and software context by Anonymous Coward · · Score: 0

      And any organization worth working for wouldn't hire a fuckwad who doesn't know the difference between "the" and "that".

    10. Re:Time factor and software context by Darinbob · · Score: 1

      Reading the fine article, the person is involved with getting employees into "tech startups". That means very low pay, very long hours, and a constant rush and ever looming deadline. In that sort of environment maybe the contests work. They want to hire people who can churn out stuff in 4 days, because the goal is to get something to be demoed before the current funding dries out, they lie to themselves and say it can be cleaned up later. They also want the sort of person who's going to apply to such a contest to get a job, someone maybe who's above average at programming but without a lot of experience to prove it, which luckily is probably someone willing to work for less pay (as long as you throw in some worthless equity).

  11. 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 Hentes · · Score: 1

      Job interviews also take time.

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

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

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

    4. Re:Who has time? by i+kan+reed · · Score: 1

      Sort of. Double negatives have value in communicating certain complex ideas in the space of first order logic. Not for all people like GP not would hire the OP. There are other ways of semantically communicating the same idea, but that's the way I chose this time.

    5. Re:Who has time? by Zero__Kelvin · · Score: 1

      Since the prize is a job interview the two are cumulative rather than mutually inclusive. Also, you're fired.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    6. Re:Who has time? by Anonymous Coward · · Score: 0

      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.

      Two things:

      1) Programmer is ambiguous. Best CODERS != Best Software Engineer. Most companies want the latter, who aren't always 23 and live alone.
      2) Those with small projects are probably engrossed with them and aren't looking to do random contests.

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

    8. Re:Who has time? by Anonymous Coward · · Score: 0

      Well, I'm calling you an idiot. I can't tell whether your negatives are there on purpose or typos. May work for the machine, but who cares? If you can't talk to people, you are worthless.

    9. Re:Who has time? by gutnor · · Score: 1

      Contest coding is quite different than coding for a business. It is all about speed, knowing best of kind algorithm for a variety of problem. That is a fun activity that is related to coding.

      Plenty of people, even with families, have hobbies. As with other hobbies, it tells you that this guy is using up his free time and is not available for work anymore than the guy that go fishing with his kid.

      Now, because his hobby is related to coding, it may be relevant to some jobs, but most of the time it is as relevant as being a gamer is interesting for QA testing games (i.e. not relevant at all)

    10. Re:Who has time? by i+kan+reed · · Score: 1

      I see. I think I'll embrace your strategy of being antagonistic of everyone I talk to instead, because that's so much better for good communication.

    11. Re:Who has time? by i+kan+reed · · Score: 1

      1) I'm aware of the distinction, and I left the ambiguity on purpose. The same mentality can benefit both styles.
      2) I'd agree, but with the caveat that there can be fun contests. Most of the time, they're not, but it could be.

    12. Re:Who has time? by lgw · · Score: 1

      I've never expected someone to interview me outside of business hours, as a good job interview takes a day and a team of people - they're taking time out of real work, just like me.

      Phone screening is a different matter - I'm not going to take a day off to be phone screened, and you typically need to write code in those these days, so I'm not doing it from my desk at work. I've found people willing to be pretty flexible with that, however.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    13. Re:Who has time? by Anonymous Coward · · Score: 0

      BS.

      My last two jobs had open book programming tests to be done in a few days after hours. The interviews took place after hours too. Via Skype as I was in a different timezone.

      Any employer not willing to do that for me is not worth even my after hours time. Same reason I will never work for google or the like. I optimize for family time, not money.

      Don't get me wrong. I love my work and I give my employer everything I have to offer, but in return I want them to treat me as a human being with a family and not a 25yo nerd without friends who'll basically live at work.

      Big warning sign no 1: free lunch and gym in the same building.

    14. Re:Who has time? by GoodNewsJimDotCom · · Score: 0

      I'd hire him simply on the fact that he said he's one of the best programmers. Within a week or two of work, you'd know if he was telling the truth or not. I'm one of the best programmers too, but I can't find employment in the better part of a decade. No one is even willing to take a chance on me.

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

    16. Re:Who has time? by Hognoxious · · Score: 1

      Antagonistic to.

      Was the user I kant rite already taken?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    17. Re:Who has time? by i+kan+reed · · Score: 1

      No, I'm pretty sure I meant the genitive.

    18. Re:Who has time? by wwfarch · · Score: 1

      You'd be hiring and firing an awful lot of people if you were hiring purely because they claim to be good. If there's one lesson I've learned from interviewing people it's that most of them don't know their own strengths and weaknesses. Most people either lie about their abilities or don't actually know their own abilities. When I interview people I end up filtering out 90+% of them from a fairly simple coding test. If people aren't taking a chance on you that means you don't interview well or there's something wrong with your resume (depending on where you get filtered out). I think that most "soft" interview questions are completely worthless and I don't even bother asking them. When I interview someone I ask them about their past experience and ask enough questions to make sure they aren't just BSing about things they've worked on. After that they get a coding test that's a simplified version of the work I would expect them to do. I do a more extensive version of this for on site interviews.

    19. Re:Who has time? by GoodNewsJimDotCom · · Score: 1

      That sounds reasonable. I'm not a hiring manager. Just a guy who never got a chance to do the computer programming he spent his entire life on, and got a top tier university education with. I do know there is something wrong with how most places do their hiring. They make you spend 20-30 minutes filling out a long internet form, and never get back to you. It feels like they make you jump through a bunch of hoops only to be tossed in a bin that no one looks at.

  12. 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 cyberjock1980 · · Score: 1

      I agree with your logic. And while I don't share this opinion, but aren't these large companies wanting to raise the H-1B visa limits because of allegedly poorly trained/inexperienced programmers? If this is truly the case then I could see why raising the visa limit AND screening applicants via hiring contests would still be a logical solution.

    2. 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
    3. Re:Something is wrong with this picture. by Anonymous Coward · · Score: 0

      Applicants aren't necessarily competent just because they apply. The challenge here seems to be to extract the small number of worthwhile employees from a large pool of incompetent applicants. If the small list happens to be 50% foreign, then you need to get H1Bs. There could be too many H1Bs, but your argument doesn't show that.

    4. Re:Something is wrong with this picture. by dkleinsc · · Score: 1

      A quick look at the economics dictionary would tell the story of why there's a shortage of programmers.
      Shortage (n): Not able to buy something at a price you are willing to pay.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    5. Re:Something is wrong with this picture. by Anonymous Coward · · Score: 0

      Maybe they have a stack of applicants. That does not mean they are any good.

      When I graduated 20 years ago. I sat in a lab cranking on a program. Someone came in asking rudimentary questions about C. This was a graduate student. I asked them 'how many languages have you learned so far'. 'Well this C thing is the first one'. I expect it is still possible to get thru college with 0 coding and be a 'programmer'.

      Now to the company they are looking for experience. They however are unwilling to give people that experience. So the training will be minimal and they will want you to 'hit the ground running'. When the reality is, even for offshore, you spend 2-3 months training anyway...

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

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

    9. Re:Something is wrong with this picture. by dkleinsc · · Score: 1

      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.

      The demand curve is, in theory at least, the aggregation of what price people are willing to pay for the product. For instance, you might have a 100 people that would buy a widget if it cost $100, 1000 people that would buy it if it cost $80, and 10000 people that would buy it if it cost $60. If the equilibrium price is $80, then from the point of view of the 9000 people trying to pay only $60 there's a shortage, because they're going around and saying "$60 for a widget, anyone want to sell?" and getting no answer. But as soon as the sellers are willing to sell at $60, those 9000 people will happily buy up the widgets.

      Those players are the part of the market who's demand is not satisfied because their bidding price is too low. This is very similar to those who are attempting to sell, but can't because their asking price is too high (which is what an economist would see as a surplus).

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    10. 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.

    11. 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
    12. Re:Something is wrong with this picture. by ebno-10db · · Score: 1

      aren't these large companies wanting to raise the H-1B visa limits because of allegedly poorly trained/inexperienced programmers

      Because poorly trained/inexperienced guest workers are better than poorly trained/inexperienced Americans.

    13. Re:Something is wrong with this picture. by ebno-10db · · Score: 1

      Shortage of competent programmers.

      And the employers get to decide who is a true Scotsman, so they can always claim there is a shortage.

    14. Re:Something is wrong with this picture. by lgw · · Score: 1

      Yup, that's the literal Fizzbuzz, though people often use the term for any sort of trivial programming screen, e.g. "reverse a linked list". There are no hidden depths here - it's a simple as it sounds.

      Screening for "can you write code at all right here, right now, while I watch" can filter out a remarkable percentage of candidates before you waste time interviewing them, and that includes candidates with 20 years experience. You'd be amazed.

      Even for real interview questions, I've found I learn more from a question that 80% will find the answer to than one that 20% will - how fast and easily someone codes, and the style of code they write, are far more revealing than measuring whether someone solved a hard puzzle at all.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    15. Re:Something is wrong with this picture. by Todd+Knarr · · Score: 1

      I'd write it out longhand (2 modulos, then a 4-legged if/then/else block using the modulos) to make sure the logic worked, then compact it to the case version for performance with an explanation of why it worked so I'd remember what the real requirements were when I came back to it.

      And the last depends on the language. In C/C++ integers can be interpreted as booleans with 0=false and non-0=true. I think the same holds for PHP, Ruby, Python and a bunch of others. In C# I believe you have to use a boolean operator to test to get an actual usable boolean, ie. what in C++ would be "if ( m )" in C# would be "if ( m != 0 )".

    16. Re:Something is wrong with this picture. by Njovich · · Score: 1

      Actually I agree with you, I'm sorry if I gave the wrong impression there. I was mostly just referring to that the way these companies say it's a shortage is not even the way economists would coin that term. As you say, it looks like a shortage to them, but in terms of the whole market it isn't really. Of course, figuring out if there is an actual labor shortage is nearly impossible aside from very obvious cases, mostly because of the sheer range of variation in employees and jobs.

    17. Re:Something is wrong with this picture. by Anonymous Coward · · Score: 0

      This reminds me of a current situation at my workplace. I work in a department that is not programming, but there are a few programmers on the team, myself included. One of the other programmers got it in his head that if he just volunteered his own time to make software for internal use, that the company would somehow find a way to create a new position for him and double his salary as an engineer. So over the course of a few months he spent his nights at home writing a new database application for the department, and eventually convinced the managers to use it and it was deployed. However, he was not promoted nor given compensation of any kind other than a "hey thanks for doing that, here's a pat on the back. By the way since you're capable of doing this stuff we have some other tasks for you to do" In effect, all he accomplished was raising expectations on himself, make everyone else in the department look bad by comparison for not being able or willing to take on extra work and responsibility for free, and he's still in the same place as the rest of us. People like this might sound like a good deal for the company at first, but you have to realize that these people - the tryhard suckers who don't understand the reality of corporate management - are the reason why unions exist.

    18. Re:Something is wrong with this picture. by rollingcalf · · Score: 1

      "Someone wrote a bit back that 70% of their applicants, who passed the HR screening I believe, couldn't even code fizz-buzz."

      That looks like a problem with HR's ability to screen.

      --
      ---------
      There is inferior bacteria on the interior of your posterior.
    19. Re:Something is wrong with this picture. by Darinbob · · Score: 1

      When the emperor has no clothes, you're not supposed to peer too closely.

    20. Re:Something is wrong with this picture. by Darinbob · · Score: 1

      It could be worse. He could have done all that work as part of a contest to get a job. Then afterwords be told "thank you for your submission, if we have any need in the future for more free work we'll give you a call."

    21. Re:Something is wrong with this picture. by Hognoxious · · Score: 1

      I was mostly just referring to that the way these companies say it's a shortage is not even the way economists would coin that term.

      Now call me cynical if you want, but do you think it's possible they're doing that intentionally?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    22. Re:Something is wrong with this picture. by chrismcb · · Score: 1

      Just because someone applies, does not mean they are qualified for the job.

    23. Re:Something is wrong with this picture. by chrismcb · · Score: 1

      You know if you mentioned HALF of what you said, the interview will say "awesome" and move on to the next question.
      The other 90% of the candidates, who can't even answer 10% of what you just said, will spend the next half hour of the interview trying to figure out what a loop is, or how to add instead of multiply, or some other stupid thing.
      It is a simple question, to see if you have a clue what you might be talking about. Some people can BS there way past it, most good candidates will be able to answer enough of the issue to satisfy the interviewer. Everyone else will flounder. If you can have a good enough discourse about this question to satisfy the interviewer, you don't deserve to be interviewed.
      I used to ask people coming out of college to write strcmp. I am still amazed at how many people didn't understand how to sort strings and they were getting a CSc degree.

    24. Re:Something is wrong with this picture. by wwfarch · · Score: 1

      I fully agree with this. I frequently try to hire people and a vast majority of the applicants are abysmal. I filter resumes by looking for evidence of some degree of programming experience. That removes a ton of applicants that just apply for every job they see. Then on the phone interview I ask them to code a CS 101 level problem and almost all of them fail that too. This is when I'm looking for somebody that has the basics and potential to become good. I can't imagine how tough hiring must be when you're looking for more senior level people. I should also note that many of the people failing my interviews have 5+ years of industry experience supposedly.

  13. Am I missing something here? by gottahavea · · Score: 1

    What is the 'industry standard' anyway? If we're going to have one how about 0.0001. One error in 10 million lines. I mean, if we've got 0.66 for the linux kernel and its say 7 million lines thats 4620 errors. Now do the same math with x zillion LOC for (add you favourite: Windows, Oracle, ...) and its rather frightening.

    1. Re:Am I missing something here? by nedlohs · · Score: 1

      I think you are missing the correct topic.

    2. Re:Am I missing something here? by Anonymous Coward · · Score: 0

      It would appear that you replied to the wrong article, and are thus completely off topic.

      However, considering the general level of quality found in Slashdot comments, I wouldn't imagine that anyone will actually notice. (At least it's better than reading about HOST files.)

    3. Re:Am I missing something here? by Anonymous Coward · · Score: 0

      What is the 'industry standard' anyway?

      If we're going to have one how about 0.0001. One error in 10 million lines.

      I mean, if we've got 0.66 for the linux kernel and its say 7 million lines thats 4620 errors. Now do the same math with x zillion LOC for (add you favourite: Windows, Oracle, ...) and its rather frightening.

      Wrong thread ;-P

  14. Contests ARE the best way... by Anonymous Coward · · Score: 0

    ... to decide anything.

    Line them up at the start, fire the gun and watch them go! See the leaders drive the struggling second-raters noses into the dirt!. This is a great country, and it was built on being the best at everything. Don't settle for second-best - 'cause second is a LOSER!

  15. 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 CTalkobt · · Score: 1

      Interview questions that start with a false premise are usually places to avoid.

      --
      There's a gorilla from Manilla whose a fella that stinks of vanilla and has salmonella.
    2. Re:The best way to find programmers by nedlohs · · Score: 1

      1. I don't.
      2. I didn't.
      3. Java is better at some things, C++ is better at other things. I assume C# must be good at something but I know nothing about it.
      4. I didn't say it couldn't.

      Obviously I don't want to work at a company that has complete morons making hiring decisions, so no I really don't care that I failed your interview questions.

    3. 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?

    4. Re:The best way to find programmers by Anonymous Coward · · Score: 0

      Is the answer to all of the above questions 'Reflection' or 'Garbage Collection'?

      When do I start?

    5. Re:The best way to find programmers by geekoid · · Score: 1

      So you have no idea how to hire? thanks for sharing.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:The best way to find programmers by Anonymous Coward · · Score: 0

      no I really don't care that I failed your interview questions.

      ... or maybe you passed with flying colours!

    7. Re:The best way to find programmers by Bigby · · Score: 1

      Always ask candidates something like "Explain the advantages and disadvantages of an ORM database model vs the traditional JDBC SQL route; when would you use each and why". And then just listen for 5+ minutes. I want the candidate to do most of the talking.

    8. Re:The best way to find programmers by lgw · · Score: 1

      That whooshing sound you hear? Yeah. Also, I'm sure he didn't call himself the Evil Atheist by accident.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    9. Re:The best way to find programmers by Anonymous Coward · · Score: 0

      #1. Because it makes me do more work for no clear benefit.
      #2. Because it accurately describes my opinion.
      #3. Garbage collection is convenient, as is defaulting to pass by reference for classes
      #4. Because I've never been asked to solve a problem that required something C++ can do that other languages cannot and therefore have only a passing familiarity with C++

    10. Re:The best way to find programmers by Anonymous Coward · · Score: 0

      Hi, I notice you either don't recruit or you are just really bad at it. If a person can't explain the downsides with any language or platform, don't let them near it! Someone who thinks C++ is the be all end all of programming languages, is probably not very good, even at C++.

      #1 It is hard to learn. Its syntax is sometimes complicated and often allows for several ways of doing the same thing. A good way of judging a language design I feel is asking "how far from this language would we be if we scrapped ALL backwards compatibility in syntax and started over today"? I believe C++ would be closer to http://www.rust-lang.org/ if designed from scratch. Compile time pointer safety. Compact functional constructs. The list goes on and on.

      #2 I claim the above soundbites are my own.

      #3 C# is simple, relatively compact (not very compact, but still, less boilerplate than most imperative langs), easy to learn, and has less ways of doing the same thing. I can also interop with other languages such as F# from C#, without worrying e.g. about calling conventions. The downside with C# is that you (usually) need .NET, that you almost can't avoid GC etc. etc.

      #4 I don't know what you mean. Should I have answered "Garbage collection" on number 3 or what?

    11. Re:The best way to find programmers by 91degrees · · Score: 1

      Honestly, even if you love C++, it's full of oddities and issues that could probably be addressed without losing any of the benefits (except for C++ compatibility).

      Poor compile time, and lack of reflection are obvious examples. The requirement to have a class definition in a header because of antiquated #include mechanism means you're spending a lot of time keeping them in sync, there's no implicit "toString" on enums, and the template mechanism just seems to be a mess. Also there's no built in String type apart from string literals. This makes sense for a language designed in the 1970's than a modern language.

    12. Re:The best way to find programmers by Anonymous Coward · · Score: 0

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

      Why didn't you?

    13. Re:The best way to find programmers by Anonymous Coward · · Score: 0

      I did, idiot.

    14. Re:The best way to find programmers by Hast · · Score: 1

      Interview question #4: Justify why you didn't know that C++ can also do those things

      The fundamental issue I have with C++ as a language is it has a "improv theater style" design where the answer is always "Yes, and...". A more sensible language tends to be designed with "No, because ..." answers to at least some features.

    15. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      Ding ding ding, we have a winner.

      --
      Those who do not learn from commit history are doomed to regress it.
    16. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      If that's what you left it as, yeah, you probably would have failed the questions.

      But a longer exposition on your answers may not fail the questions.

      Most interview questions are just to get you to explain your thinking, and your failure to recognize that in this situation, hypothetical though it is, makes a bad impression.

      --
      Those who do not learn from commit history are doomed to regress it.
    17. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      Reflection: if they make reflection a feature of the language, then users pay for its performance penalties even though they don't use it.
      Enum to string: same as above.
      Inbuilt strings: While the std string library leaves a lot to be desired, I don't see why an inbuilt string type is needed. Now C++11 has regex as well.
      Templates: I find if you think of templates as less powerful LISP macros that only works on types.

      Your turn :) Aren't interviews fun?

      --
      Those who do not learn from commit history are doomed to regress it.
    18. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      #-1: Wrong.
      #0: Your answer to the first question means you didn't think about it and don't understand C++.
      #1: True.
      #2: Wrong. C++ is not about OO only. C++ can do things the other languages can do without always going OO, which I would think is the point of the question.

      Because interviews aren't programming languages and I don't waste my time changing trivial things to display my creds. Your turn :) Oh, and explain, if hired, would you be able to control your impulses of changing things in our product purely because you don't like it (or you feel a need to display your prowess) and probably delay schedules.

      --
      Those who do not learn from commit history are doomed to regress it.
    19. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      Hi, I notice that you took the questions as a window to the soul of the interviewer, but I would hope that in your extensive career experience, you would know they don't care :)

      #1 - It is hard to learn. But considering you're interviewing for a job, I would hope that when you learn new things (as you would need to in any IT career), that you make progress and not stay stuck at the same learning stage. Several ways of doing the same thing, but each way has their own strengths and weaknesses that could help future development if chosen properly. In modern C++, you don't really need pointer manipulation, so compile time pointer safety misses the point of using safer constructs to begin with. C++11 has lambda functions now. The list of new and cleaner features goes on and on.

      #2 - But they're not. They're frequently answered questions.

      #3 - Explain the "less ways of doing the same thing" with examples.

      #4 - Automatic memory management is one of those things that C++ can do and most fresh grads don't seem to know that since their lecturers keep repeating the horrors of new/delete. A candidate's failure to know these things is indication they don't form their own opinions and do their own research, and that is not what anyone needs as a programmer.

      Your turn :)

      --
      Those who do not learn from commit history are doomed to regress it.
    20. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      Candidates who go meta right off the bat are candidates to avoid. Going meta on a question is such an easy and hackneyed way to appear intelligent without being so. Similar techniques that people use to appear intelligent without being so are: being self-referential; speaking in acronyms; using elaborate words; correcting the use of the word "irony".

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

      Your turn :) Oh, and explain, if hired, would you be able to control your impulses of changing things in our product purely because you don't like it (or you feel a need to display your prowess) and probably delay schedules.

      Would you control your impulse to rewrite the project if it was written in this language? Just because your predecessor chosen the wrong tool doesn't mean that you have to continue using the same tool.

      Personally, in that situation, I would not take the job to begin with. But that just me and my 'impulse'.

    22. Re:The best way to find programmers by Anonymous Coward · · Score: 0

      Ding ding ding, we have a winner.

      Trolls don't get to call the winner on treads they start. The winner can only be declared from a consensus of the peers that participate in the thread.

      Do not start new trolling thread until you have reviewed all the current rules and regulation of the Interwebs. This is your first and final warning.

    23. Re:The best way to find programmers by nedlohs · · Score: 1

      When the answer is "I don't", there's no room for a longer exposition.

    24. Re:The best way to find programmers by 91degrees · · Score: 1

      if they make reflection a feature of the language, then users pay for its performance penalties even though they don't use it.

      Can be implemented as static members. Performance cost is a little bit of static data per class type.

      Enum to string: same as above.

      Not at all. If you don't use it then the string conversion function won't be linked.

      While the std string library leaves a lot to be desired, I don't see why an inbuilt string type is needed.

      Because the std::string type leaves a lot to be desired. A built in type means that the compiler is allowed to know what a string is and is and can handle strings differently for optimisation. It also means that we can have third party libraries that don't rely on an assumption that we're using the right std::string implementation.

      I find if you think of templates as less powerful LISP macros that only works on types.

      If I want that I'll add a lisp macro as a precompile step. Templates add a lot of complexity for limited benefit.

    25. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      Be creative.

      --
      Those who do not learn from commit history are doomed to regress it.
    26. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      Can be implemented as static members. Performance cost is a little bit of static data per class type.

      Yes, but the point is that it breaks the "you don't pay for what you don't use" design principle of C++.

      Not at all. If you don't use it then the string conversion function won't be linked.

      You can't guarantee it. For example, if some library happens to use some kind of generic conversion function for its templated type, and you include the enum, then you've automatically dragged in a whole bunch of stuff.

      A built in type means that the compiler is allowed to know what a string is and is and can handle strings differently for optimisation.

      Any implementation of a string in any language boils down to a char array, whether it's built in, or a library data type.

      It also means that we can have third party libraries that don't rely on an assumption that we're using the right std::string implementation.

      Those would be bugs in the string implementation, which do not disappear by becoming in-built. If the standard defines strings as a built-in type, you've just shifted the problem from the library to the compiler which doesn't fix anything.

      If I want that I'll add a lisp macro as a precompile step. Templates add a lot of complexity for limited benefit.

      If you want that, you can just use templates. If you don't use the full power of templates, then you don't need to expose yourself to that complexity. The complexity is pushed to compile time, and the "limited benefit" often means greater performance because virtual functions and class hierarchies aren't needed to achieve polymorphism.

      --
      Those who do not learn from commit history are doomed to regress it.
    27. Re:The best way to find programmers by 91degrees · · Score: 1

      Yes, but the point is that it breaks the "you don't pay for what you don't use" design principle of C++.

      If it prevents useful features from existing, this is a poor design decision. Plus, you'd only need to include it if it was actually used. It could even be added as an optional feature to classes.

      You can't guarantee it. For example, if some library happens to use some kind of generic conversion function for its templated type, and you include the enum, then you've automatically dragged in a whole bunch of stuff.

      This is a problem with the library. Not C++.

      If the standard defines strings as a built-in type, you've just shifted the problem from the library to the compiler which doesn't fix anything.

      string a = "hello ";
      string b = "world";
      string c = a + b;
      int d = c.length();
      return d;

      The above code can optimise to {return 11;} if strings are built in. If it's a type then it involved allocating at least 3 chunks of memory and 2 memory copies.

    28. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      If it prevents useful features from existing, this is a poor design decision. Plus, you'd only need to include it if it was actually used. It could even be added as an optional feature to classes.

      No, it's a good design decision. Why would anyone want their program to pay for something they don't use? Others have argued too many unneeded powerful features already exist in C++, thus contradicting your own definition of a poor design decision. I personally would side more with you than those who argue C++ has too much stuff, but there has to be a limit, and the limit of not bogging down a whole language just to include certain features is a sensible limit, because it is something that can be measured. Much more sensible than ideologically impose limitations like the OO or pure functional paradigm fanaticism.

      This is a problem with the library. Not C++.

      You simply cannot make a blanket statement like that. A library, especially highly generic concepts like containers, iterators, and algorithms, needs to cater to as many types as they can with minimal configuration. You can't fault a library or a language so absolutely.

      The above code can optimise to {return 11;} if strings are built in. If it's a type then it involved allocating at least 3 chunks of memory and 2 memory copies.

      If that kind of optimization is needed, people can use a string literal. If the string in your example needs to be modified later on, then that optimization cannot be done in any implementation. As for excessive allocations, this is now solved with rvalue references and move semantics.

      --
      Those who do not learn from commit history are doomed to regress it.
    29. Re:The best way to find programmers by 91degrees · · Score: 1

      No, it's a good design decision. Why would anyone want their program to pay for something they don't use?

      Simplifying development would be a good reason. This would be mitigated by making it an optional feature. Sure, you can argue all sorts of good reasons why this shouldn't be included, but more than once I've found myself cursing this omission.

      If that kind of optimization is needed, people can use a string literal.

      But then you're optimising. Not the compiler. And really this was just an example. I really think that a modern programming language without a built in string type is bizarre, and by the time C++ was introduced, the amount of string processing that programmers do was pretty well known. Retrofitting it is the wrong solution.

    30. Re:The best way to find programmers by nedlohs · · Score: 1

      There's no need to.

      If the first introduction is "why do you hate X?", when nothing has been said about X I'm not interested in working in that environment in the first place. Thus I'm not wasting my time with it. They can have fun with their "always use tool Y since it is always best" outlook, but I'd rather work someplace where the people are a little more rational.

    31. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      So you're the type of person to make far reaching generalizations from one question and refuses to look for an underlying purpose for those questions. I very wish programming was like that, but it's not. You often have to find patterns that allow you to generalize into a meaningful design/protocol/policy that is not immediately on the surface.

      Your employment prospects at this imaginary company are slim :)

      --
      Those who do not learn from commit history are doomed to regress it.
    32. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      This would be mitigated by making it an optional feature.

      It wouldn't, because if you use a library that inadvisedly uses the "optional" feature, you have no way to turn it off.

      but more than once I've found myself cursing this omission.

      You know what, so have I. But then I thought about the design for a bit and realized I could do it a much more better way. I like reflection when I'm doing rapid prototyping. Personally I find lambdas more useful than reflection, and luckily it's a major part of C++11 already implemented in most compilers.

      But then you're optimising. Not the compiler.

      There has to be some kind of manual optimizing. No compiler can fix people using the wrong data types or algorithms. Incidentally, C++11 templates can help the compiler optimize more efficiently. For example, std sort is faster than qsort, because qsort can only take in a function pointer, whereas std sort can embed the sorting function as part of the type once the template has been fully realized. But back to strings. What if an array of chars is the only efficient way to implement something, but the language has hijacked all string literals as built-in strings which are necessarily less efficient than a plain old array?

      --
      Those who do not learn from commit history are doomed to regress it.
    33. Re:The best way to find programmers by nedlohs · · Score: 1

      No I looked at four questions, most of which seemed to make an assumption on the what the prior answers would be before they were asked let alone answered. All of which seemed to be asked as if they already know my answer, in which case why ask?

      Eg: "Justify why you didn't know that C++ can also do those things".

      1. I didn't say C++ couldn't "do those things". Hence telling me a didn't know it could is just a tad of a stretch. Expecting me to justify whatever random thoughts happened to be in your head at the time also seems a bit of a stretch. I'd rather not work in an environment that requires mind reading, which I'm sure is my loss but I do seem to like it when people tell things rather than expecting to me know their thoughts.

      Of course in reality my third answer would be a bit more in depth, but given I'd already seen question 4 there was no point in bothering since apparently you already knew my answer.

    34. Re:The best way to find programmers by The+Evil+Atheist · · Score: 1

      No mind reading. Just a sense of humour.

      --
      Those who do not learn from commit history are doomed to regress it.
    35. Re:The best way to find programmers by nedlohs · · Score: 1

      OK.

      I guess if "I think language is X is better than language Y, and even though you haven't said a word I will assume you don't and belittle you" is humourous, have at it. I'll just find a job in which I'm more likely to be able to use the right tool for the job instead of the company mandated all purpose solution.

  16. Nope by Anonymous Coward · · Score: 0

    You end up with a hyper competitive monocultur. (brogrammer culture)

    1. Re:nope by Zero__Kelvin · · Score: 1

      I almost agree with you. I'll take the programmer who would have lost because they took the time to do a robust job, but didn't because he didn't waste his time and focused on something productive instead.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    2. Re:nope by Anonymous Coward · · Score: 0

      Companies do not want manageable or robust code.
      You deliver on time and according to specification with the price that is negotiated.
      The customer will always want something to be fixed. For example they might have failed to specify that the software should work on the latest windows version.
      Now the customer will have to choose between the cost of you cleaning up the program or hiring someone else to rewrite it form scratch.
      As long as fixing the badly written and hurried code doesn't take longer time than rewriting it the customer will be better off staying with you than finding someone else to rewrite it. (Unless they realize that they want more things that they didn't think of yet.)

    3. Re:nope by Anonymous Coward · · Score: 1

      You clearly don't have any experience with such competitions. You usually get zero points in these competitions if your program does anything wrong and you get a penalty every time you submit a wrong program - if you are even allowed to resubmit after that. In most cases, the more significant challenge is not typing stuff out on the keyboard quickly. The challenge is in figuring out a solution that is simultaneously efficient enough that it can be accepted and simple enough that you can implement it correctly within the deadline.

      The kinds of people who win these competitions are highly intelligent, they are world-class experts on algorithm design and data structures, they are able to write code quickly and with few bugs, they are good at thinking of corner cases and coming up with tests for those and they are able to identify bugs very quickly. It's no wonder companies want to hire these people.

      You are right that programming competitions like these do not measure the ability to write code that is readable to other people. There is no guarantee that these people can get along with other people or communicate effectively. The competitions do not involve finding a good design for a large system. These skills are not measured and therefore neither are they penalized - there is no reason to think that competition winners would be worse at these things than average. If you are smart enough to win such competitions, you are likely a quick study who can learn new skills rapidly.

    4. Re:nope by kakaburra · · Score: 1

      Don't you think a programmer who can churn out working code in a short span can do "properly engineered code" when the need arises? In coding contests, speed is important, it is the "goal" hence there is no need to "engineer" it properly. It just needs to work. A guy who actually "engineers" it for sake of robustness, readability, etc in a coding contest has lost track of the goals of the contest and would be more of an idealist than a practical man. The sort of people who rank high in coding contests are generally very good programmers, very strong in algorithms, pragmatic and fast. I would take them any day.

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

    6. Re:nope by JustNiz · · Score: 1

      >> Don't you think a programmer who can churn out working code in a short span can do "properly engineered code" when the need arises?

      Possibly but not usually, as it tends to be a polar opposite mindset.

    7. Re:nope by JustNiz · · Score: 1

      >> If you are smart enough to win such competitions, you are likely a quick study who can learn new skills rapidly.

      But I would also guess, way more likely to be an arrogant dick who doesn't play well with others. Most business do not want 'stars', they just want compliant code monkeys that simply follow orders.

    8. Re:nope by Anonymous Coward · · Score: 1

      FYI, IAAP. I here this all of the time, but where is your basis that it saves money? I've been on many teams where code was shoved out the door and as fast as possible hacks and all. Yes, it required costly re-work down the road, but non-existent features don't make any money.

      Quick bad math example: I work for an eCommerce company. Feature A is expected to generate $12 million over the course of a year. We can do a bunch of hacks and get it out the door 1 month earlier, but it will require 3 months of rework by a 10 person team. You're still banking quite a lot of money.

    9. Re:nope by Anonymous Coward · · Score: 0

      Did Linus Torvalds go around doing programming contests or did he spend his time trying to build something?

      Anyone done a follow up on the winners of any of those world programming contests? What are they doing nowadays?

    10. Re:nope by Anonymous Coward · · Score: 0

      Don't you think a programmer who can churn out working code in a short span can do "properly engineered code" when the need arises? In coding contests, speed is important, it is the "goal" hence there is no need to "engineer" it properly. It just needs to work. A guy who actually "engineers" it for sake of robustness, readability, etc in a coding contest has lost track of the goals of the contest and would be more of an idealist than a practical man.
      The sort of people who rank high in coding contests are generally very good programmers, very strong in algorithms, pragmatic and fast. I would take them any day.

      Sure, the problem is as soon as management asks them to work faster they'll throw best practices out the window and make more work for everyone. Programmers who think that fast sometimes trumps maintainability have no place on a team working on a commercial product.

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

    12. Re:nope by Anonymous Coward · · Score: 0

      That will work for one job per customer. They will then go to someone who anticipates what they really need and doesn't get hung up on paperwork.

    13. Re:nope by rastos1 · · Score: 1

      Candidate: I can quickly write a program that solves the problem.
      You: Perhaps you can, but it would be probably buggy. We don't want you.
      Candidate: Actually I'm pretty good and the code is bug-free and robust.
      You: Perhaps you can, but you are probably a dick. We don't want you.
      Candidate: ...

      Is that how it works?

    14. Re:nope by chuckybucky · · Score: 1

      Case and point, look at the releases by John Carmack and the ID team vs some of the other game companies (EA) that rush to get their products out to the market by a specific date. Yeah, the ID games have bugs too, but nothing in comparison to some of the other games I've played... And man does their code look polished!

    15. Re:nope by JustNiz · · Score: 1

      I think you mean "Case in point", and I think you have cause and effect backwards.

      Its not that they are fast programmers who happen to somehow also write good code when given a limited time; rather Its exactly because they take the time up front to write robust code that they can get games out fast with minimal bugs, due to the subsequent lack of hidden extra time costs that most managers dont understand so never account for, such as subsequent rework needed.

  17. NO! by Anonymous Coward · · Score: 0

    i doubt it. these contests generally encourage a programmer to quickly hack a program together while discouraging them from factoring out code correctly, creating useful abstractions, and even considering documenting source.

  18. don't participate! by Anonymous Coward · · Score: 0

    I've seen the ridiculous ads from companies that want you to solve a programming challenge before you can apply. these tend to be the companies that also expect you to do overtime without compensation. after all, they are performing a first test already whether you are prepared to work for free!

  19. No by Ryanrule · · Score: 1

    Its the best way to find alpha douchebags.

  20. They'll just leave. by Anonymous Coward · · Score: 0

    Why hire the best programmers? They'll just leave for another company after a few years. Hire the ones that are grateful to have a job, they'll stick around.

    1. Re:They'll just leave. by HornWumpus · · Score: 1

      As a bonus they will also drive away any competent programmers you might have.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  21. This can't be the best way to program by tdalbo92 · · Score: 1

    Seriously, I'm putting the blame on Hollywood for this one. Contests are just like the SAT - you have to train for it. It's a specific type of programming, and I don't think it necessarily brings the best coders. The snacks are always a great plus though.

    1. Re:This can't be the best way to program by Kittenman · · Score: 1

      Seriously, I'm putting the blame on Hollywood for this one.

      Good point. We've a glut of reality TV here in NZ - we just need one on programming. And the usual people on the stage (sorry, behind the desks). The weepy blonde. The aggressive dude. The young, naive guy. The token ethnic minority. The other token ethnic minority (taken from the minority of the week poll; example: albino). The guy who's overly confident. The person who's obviously going to win. The older person with a mission.

      Judges: Young-Attractive-female, Hip-Person and always-Grumpy-Person.

      --
      "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
  22. Sure by Anonymous Coward · · Score: 0

    ..If you're after kids with enough free time to worry about your contest, rather than pros who spend their time solving actual problems.

  23. 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.
  24. 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.

  25. Definitely better than HR by Hentes · · Score: 0

    It don't know if it's the best, but it definitely tells more about coding abilities than questions like 'what is your biggest weakness?'.

    1. Re:Definitely better than HR by Bigby · · Score: 1

      I find "do you have 10+ years of experience in HTML5?" to be the most useful.

    2. Re:Definitely better than HR by HornWumpus · · Score: 1

      Giving stupid answers to stupid questions.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:Definitely better than HR by lgw · · Score: 1

      It don't know if it's the best, but it definitely tells more about coding abilities than questions like 'what is your biggest weakness?'.

      Kryptonite.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  26. Not great programmers by Zadaz · · Score: 1

    Contests only gather a weird, smallish subset of programmers who are good enough to win a contest, but who have the spare time[1] and will[2] to enter a contest. [1] This means they have little internal motivation because they're not otherwise working on something that inspires them. Good employees have internal motivation, bad ones need Management to whip them, which is what you'll get here. Instead find those who contribue to open source projects or who spend free time giving stellar information to the programming community. (Blog posts, Stack Exchange, etc.) [2] Again, motivation. What are they really trying to get by competing in the contest? Can you, as an employer, provide that same motivation on a regular basis? Probably not. So once again you'll get a pretty great programmer who underperforms.

    1. Re:Not great programmers by Pinky's+Brain · · Score: 1

      Dunno if that level of self motivation is necessary a good thing for a large company, for which it's impossible to really bind employees emotionally ... seems to me self motivated people will also be more motivated to search out opportunities and jump ship faster.

    2. Re:Not great programmers by Anonymous Coward · · Score: 0

      Your argument could as well be used to say that Olympic athletes lack internal motivation, because they are not otherwise working on something that inspires them. Developing and exercising your skill is a perfectly good internal motivation.

  27. Depends on what your company does by Begemot · · Score: 1

    If your company can offer the combination of difficult tasks, aggressive schedule and high benefits, go for it.

    Otherwise you don't need the IT recons, deltas and rangers. They would die of boredom in your place. Let them go to cool startups, googles and facebooks, for the challenge they're worth.

  28. The real best way to find a great programmer by argoff · · Score: 1

    You see, between all the proprietary crap messing with peoples heads, and all the technology egos, and those daytime prisons they call public schools, it becomes really hard to find a good programmer.

    IMHO, the best way to find a great programmer is to find some high-school kid who hasn't been corrupted by the public school system, who can think analytically, and who has a good attitude, and train him.

    1. Re:The real best way to find a great programmer by Anonymous Coward · · Score: 0

      You see, between all the proprietary crap messing with peoples heads, and all the technology egos, and those daytime prisons they call public schools, it becomes really hard to find a good programmer.

      IMHO, the best way to find a great programmer is to find some high-school kid who hasn't been corrupted by the public school system, who can think analytically, and who has a good attitude, and train him.

      Highschool is way too late. If you want "can think analytically" and "hasn't been corrupted by the public school system" you need to look at elementary school (preferably below 4th grade).

      Anyone who makes it to high school without figuring out the game doesn't have strong analytical skills, and anyone who has figured out the game will have a crappy attitude.

  29. 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?

    2. Re:Let's continue the lack of dignity for IT by Anonymous Coward · · Score: 0

      Dude where do you work? It sounds like it sucks there. From my experience the only time you see 6 month contract to hires is when you are caught in the sewer of dealing with techincal recruiters. If you go the route of being hired full time you can avoid that trap and not get stuck with the stimga of coming in from an outside source. At a certian point in your career you should be able to build a good enough network of contacts so where if you need a job all you have to do is go to happy hour with former coworkers or call up old managers and send out feelers. If you were a good employee you shouldn't really have that much of a hard time getting someone to bite.

      As far as not advancing to senior management. Not everyone in every other field like accounting, etc get promoted into managment either. A company isn't going to risk promoting someone to management if they don't think they can handle it. I've seen guys from the IT field move into management as they go along. But along with anything else theres a lot of IT guys that don't have to skills to be a team lead let alone be promoted into C management or above. But that could also be said about people in other career fields as well.

      And where I have worked I've never seen talented guys asked to take paycuts and if they did I never seen one that couldn't get another job in a few days if they were dissatisified.

    3. Re:Let's continue the lack of dignity for IT by Anonymous Coward · · Score: 0

      Lol IT lifers crack me up.

      Some of us don't think $160k is a great peak income in 2013. You are living in the 90s. Today you need at least $200k to live halfway decent unless you are in flyover territory. Go into management or enjoy your 'profession'. Wanna know why surgeons don't care to go into management? (Hint: They aren't paid like you folk)

    4. Re:Let's continue the lack of dignity for IT by Anonymous Coward · · Score: 0

      You wouldn't ask a surgeon to demonstrate a surgery before you hired them either. You would look at patient (customer) outcomes and be done with it.

    5. Re:Let's continue the lack of dignity for IT by Anonymous Coward · · Score: 0

      You're still paid well, and there are plenty of jobs to jump too if your company is dumb enough to fire/replace the backbone. If you aren't paid well...start looking elsewhere.

      If you want to move up the company ladder, go get your MBA and change career paths.

    6. Re:Let's continue the lack of dignity for IT by neiras · · Score: 1

      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.

      Absolutely right. We have a serious image problem.

      I've seen so many talented, gung-ho people be so focused on their work that they forget to act like the well-educated professionals they are. They lay all their cards on the table; they fight for the technically correct ideal; they are true believers in what could be accomplished with the amazing tools they work with; they work all night for the cause; they overcaffeinate and burn out regularly; they are brutally honest in meetings with non-technical peers and are despised because of it; they have no idea how to dress like professionals; they may smell bad or clip their toenails on their desk each morning. I've seen and smelt this.

      The best case result is that they end up being treated like talented children with some bad habits. Gold star! Please don't forget your deodorant. Have some free pizza. The code you wrote made us a couple of million dollars last year, you are so awesome! Here's a small raise. If technical people get the "fun" workspace, while executives and accountants get "serious" workspaces at your company, guess what? You're a talented child! If you and your technical peers show up in jeans, while the rest of the staff dresses in slacks or skirts and nice shirts, guess what? Talented child! So very talented!

      In the worst case, they are tolerated until they leave, excluded from decision-making processes, and generally disrespected by their non-technical peers.

      If you're being paid to work in technology, you're working in the world of business. There are a whole host of social norms in the workplace. If you want to be respected and have a successful career, you do *not* want to be the outlier. If you are, you will be exploited and discarded.

      This isn't actually unique to technology people. Some folks just have issues adjusting to the professional world. It's just that businesses are happy to allow technology people as a class to devalue themselves by being an Awesome Place To Work (read: relaxing workplace standards that normal high-value folks expect from each other)

      It's hard to act like a pro when you're babied. It's a trap. Dress nice. Be a pro. If your workplace has the preschool programmer culture going on, find a new job.

    7. Re:Let's continue the lack of dignity for IT by rastos1 · · Score: 1

      I always thought that a geek seeks challenge. An algorithm designer asks "can I do better?". That a programming is an art. That a good programmer knows tricks, shortcuts and algorithms. Can apply paradigms and knows the tools. That some code is better and some is worse - and thus can be compared and judged by being more efficient in time/space. Or maintainability of course. That is not mutually exclusive.

      So what traits are you putting above that? Ability to write comprehensive documentation, create presentations, sit at meetings and get along with others?

      The task of the programmer is all that. But if he cannot write good an efficient code, then the rest does not save the day.

  30. Look at Pwn20wn at CanSec West by GPLDAN · · Score: 1

    Pwn20wn is probably the high bar for programming contests. Charlie Miller can walk in there and drop a 0-day for Chrome on the judges and walk out with a check for $100k. Is this not the market at work? Is browser sandbox security now such an integral part of the internet security landscape that it warrants the need to pay, and pay fruitfully for the knowledge of how these exploits work? A young guy, maybe 18, nobody heard of, with no real internet 'cred' from Eastern Europe, who had no real degree or CS education, walked in with an IE9 exploit that defeated DEP once it broke out. It also worked around address randomization.

    Unless that guy shows up and earns his rep that way, what's he going to do? Just start a blog and put the exploit code on it?

    I would argue that these programming contests are pure market forces, about as pure an application of the free market as one will see on the world stage.

    1. Re:Look at Pwn20wn at CanSec West by Animats · · Score: 1

      Charlie Miller can walk in there and drop a 0-day for Chrome on the judges and walk out with a check for $100k. Is this not the market at work?

      It is. There's an established market for 0-day exploits. They have to outbid the Russian mafia and the Chinese government.

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

  32. Yeah, it's a great way to judge... by Assmasher · · Score: 1

    ...their:

              Experience
              Work ethic
              Ability to work with others
              Software ENGINEERING capabilities (not to be confused with 'programming')
              Et cetera...

    --
    Loading...
  33. Debugger Programmer Or Startup programmer Or Fun? by Anonymous Coward · · Score: 0

    Debugger Programmer.
    Work Age 24 till 30 or 27 .Stop become analysis,then become project manager.And the new cycle continue. Bugs and bugs repair.
    Workplace environment : government contract
    Salary : very minimum.
    Start up Programmer
    Work at youngster Age, do what ever they like.might get profit.
    Salary : can be 0 can be millionaire
    Fun Programmer.
    Not ask do the job,but wanted to solve current job with programming. Does mean have CS degree.

  34. No by Anonymous Coward · · Score: 0

    Next!

  35. Bidding by sesshomaru · · Score: 1

    In Bioshock Infinite, Fink allowed potential to employees to bid on jobs. "Who can do it in 30 minutes?" I have 30 minutes. How about 15, who'll bid 15."

    Utopia.

    Although some might think it's insulting to a professional to have to bid for a job and pay for the bid with free work, I feel that this innovative thinking tells you what a wonderful place Facebook would be to work.

    --
    "MIT betrayed all of its basic principles."
  36. 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.

  37. Congrats, you "won" a job! by Anonymous Coward · · Score: 0

    Now you're going to want to work 80 hour weeks to keep your prize job.

  38. Check the fine print by AllenABQ · · Score: 1

    All code submissions become the property of the company sponsoring the contest.
    Brilliance in your programming does not equate to a job offer. After all, we already got the work we needed done out of you.

  39. stupid by Anonymous Coward · · Score: 0

    People who enter contests are naive. Even if they were to give 1 million dollars away, the only winner is the company. You see stupid contest junkies, you just made the company probably millions of dollars on a problem they were trying to solve. You just did it for free, because it's very unlikely you won. Collectively you just gave them thousands upon thousands of valid code snippets they will copyright, for free. Every contest I have every seen has a clause similar to "All your code are belong to us!" Collectively you have also just given the company a list of possible employees that will be willing to be taken advantage of, are willing to do things for only a pat on the back, in essence a bunch of pussies that won't stand up for themselves.

    1. Re:stupid by gweihir · · Score: 1

      Indeed. And there have already been contests used to get some algorithm implemented on the cheap, with nobody getting the job afterwards.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  40. Does not work by gweihir · · Score: 1

    The effort on the side of the programmer is far to big. This means you will only get desperate people and people that cannot manage their time effectively. Not good. If you want programing samples, pay them.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  41. Missing the point by Okian+Warrior · · Score: 1

    Apparently many of the posts on this thread come from people who didn't look at the contest.

    This is not a programming contest in the sense that they are asking people to create a program. It's a data mining contest where they are asking people to solve a data mining problem.

    Yelp is a business directory that allows people to post reviews. The programming challenge is to create a program/algorithm/method to determine how many "this was useful useful" votes a review will receive. Presumably they want this information to inform their reviewers on how best to write a review - what to avoid, how to phrase, &c.

    Winning the contest isn't writing the program per-se, it's making a better prediction algorithm than anyone else.

    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.

    Also also it's a team effort. You can enter solo or as a team.

    The job offering is for a data scientist at Yelp, so it makes sense that they are looking for people who can manipulate data.

    The job listing doesn't have the typical "must have 4 years experience in XXX" listings that everyone hates. It states:

    .) A passion for big data, and creative ideas for what to do with it.

    .) The algorithms and data structures experience to make your ideas workable.

    .) The coding experience to turn those ideas into reality. We use Java & Python. You don’t need to be an expert, but experience is a plus and we will expect you to learn them on the job.

    .) A background in Machine Learning or Information Retrieval.

    .) Minimum BA/BS degree in Computer Science, Math, or related degree

    .) A love of delighting people with local knowledge.

    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 doesn't appear to be what everyone thinks it is.

    1. Re:Missing the point by Anonymous Coward · · Score: 0

      No it's worse. You do 8 weeks of research for a company for free. They take what you produce and don't have to give you anything in return.

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

    3. Re:Missing the point by DavidHumus · · Score: 1

      ...

      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.

      But try to submit a project plan with an estimate anywhere close to the amount of work being done in a contest like this and you'll be told it's "too much".

  42. What a prize by jpschaaf · · Score: 1

    top prize being a trip to the sponsoring company's headquarters to interview for a job

    Last time I checked (a bit over a year ago), the normal cost of that "prize" is to spend a few hours on making an updated resume. Granted, I may be on the lucky side of having the experience needed to open doors, but I suspect that as a rule skilled people find more convenient ways to get doors open.

    That stated, if the potential job had a particularly impressive salary, I might change my mind.

  43. For College Kids, Yes by Anonymous Coward · · Score: 0

    The problem with online contests is the way it nebulously attracts 'everyone'. Who is everyone? Aged ??-???, varying skill levels, and varying interests. Presumably the contest can weed out the programmers who aren't interested in the job's subject, but the other two areas are tough to control.

    I'd rather trust something like the ACM's ICPC. It's targeted for college kids(undergraduate) and has restrictions on level of education and age. That way, you know that there isn't a team that has a disproportionate amount of experience compared to other teams, and you can reasonably say that the people in the teams ranked 1-10 in a region are far better programmers than the people in the teams ranked 150-160 in that same region. It also occurs over the course of 5 hours(maybe more, I forget), which lets you see how kids approach particular problems, but the questions are also designed so that a 'hacky' perspective is usually counter productive. Sitting down, thinking about a solution, and *then* writing the code is far more rewarding than jumping into the code.

    Also, the ICPC is run by the ACM: our very own professional society! Not some HR department that's counting buzz words.

    The ICPC, from my experience, was also very good at abusing hard programming problems like the TSP and towers of hanoi. In the actual competition you might receive 8 questions but you might only answer 3-5, so selecting which ones to answer is important. Their questions will reference hard problems in an attempt to discourage programmers from selecting that particular question, but in reality the scope of the problem being presented is significantly easier than the NP version. Being able to remain calm and understand what's actually being asked is a good quality that the top teams have.

    Contests should be the entry point, but not the long-running metric for a programmer's ability.

  44. Nope by Opportunist · · Score: 1

    Sorry, but such contests are ridiculous at best.

    Who will enter such a contest? Probably young programmers without much experience who have the time to actually do such ridiculous "tests", who view the whole thing as a big game show. I can't use game show candidates, I need people I can TRUST. Not people who'll play the price is right today and jeopardy tomorrow. I need people who also have the ability to stand up in a meeting and declare that they will NOT bend over and take it from marketing or accounting, and I highly doubt someone who submits himself to such humiliating ordeals has the guts and spine to face them.

    If that's what you're looking for, a spineless gambler who views your company as some sort of game or toy, go ahead and use such methods to find your candidate. Please tell me if you do so I can short your stock.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  45. Depends. by Dcnjoe60 · · Score: 1

    Are contest the best way to find programmers? It depends. If you are looking for programmers who can write use once, throw away code that doesn't have to be maintained, then the answer may be "Yes." On the other hand, if you are wanting programmers who can write code that can be maintained by somebody else five years from now and easily modified, then probably not.

    Will your contest winner be able to readily adapt to your entity's coding style/standards? Will your contest winner be able to adapt to your client's needs (and if it is for internal coding, then your internal customer's needs). And finally, will your contest winner, be there for the long haul or will he/she get bored and look for the next puzzle/contest, leaving you high and dry?

    1. Re:Depends. by VortexCortex · · Score: 1

      Will your contest winner be able to readily adapt to your entity's coding style/standards? Will your contest winner be able to adapt to your client's needs (and if it is for internal coding, then your internal customer's needs). And finally, will your contest winner, be there for the long haul or will he/she get bored and look for the next puzzle/contest, leaving you high and dry?

      There is only one way to find out! More contests! Contests for ease of Coding Style adoption, Contests for Internal and External Customer Ass Kissing! Once hired, we can even set up fake contests to see how loyal the programmer is! Congratulations! You've won the Contest! You're Fired!

  46. But would you want to work with them? by ZeroSerenity · · Score: 1

    A contest isn't enough to hire somebody. If you want the best, you need somebody who can do more than just code. People skills are what set apart wizards from the efficient.

    --
    For those who seek perfection there can be no rest on this side of the grave.
  47. Wait a second by redmid17 · · Score: 1
    The prize for winning a programming contest is an interview? What am I thinking of? Oh Yeah. I remember now.

    [fuckthatshit.jpg]

    Seriously if I win your contest and I don't even get a job offer, it's probably not a company worth working for in the first place. Jesus quit being dumbasses and just require a coding screen in the interview process.

    1. Re:Wait a second by Shados · · Score: 1

      It only works for top 1% hiring companies...the ones that everyone want to work for (sometimes they're mislead to want to, but hey, supply and demand doesn't always involve rational decisions). The kind of company that has to filter out hundreds or thousands of resumes because they're that popular.

      If you're not one of those, then it won't work

  48. Do NOT participate in these ever. by Anonymous Coward · · Score: 0

    Why are you giving these companies free work? They have a problem they can't solve internally. They pose it as a "contest" and let the suckers solve it for free and have several other secondary options.... If people want you to code then they must PAY for your services. When was the the last time a corporate executive, some of the most important people in the company, had to do shiz for a job? Do they take tests? Have a group a group fire questions at them for an hour? Or do they just know a guy they've played golf with a few times and saw at a cocktail party?.... Yes... the real reason these business' are failing is a bit more clear now... It's not lack of available talent but lack of competent leadership. There is plenty of local technical talent available. Offer a guy a sweetheart deal like the do nothing executives and you'll really get some nice work done. I've been in this business 30 years and 99 times out of a hundred the failure is in management. Getting to know the type of person I'm hiring is much more helpfully than seeing if he remembers how to program a bubble sort on the the spot or remember how to calculate big O(n). So ladies stop giving it away for free. Stop settling for little to no pay. And for God's sake stop participating in this crap and boycott these companies..I'm looking at you google i.e. top coder.
    Steps off soap box.

  49. Kind of by Murdoch5 · · Score: 1

    Some programmers can work in contests, Some can work alone in a cubical and some can work in a team or fit into all three groups. Holding a contest is a great way to spot the programmers who can think quickly on there feet and jam it into high gear but can lead to missing the other types of programmers. Just because I can't program in a contest doesn't mean I can't write great programs. If you put Linus, creator of Linux, into a contest and he doesn't win does that mean he's not a great programmer?

  50. FLOSS by VortexCortex · · Score: 1

    The best way to find good programmers who can work with your codebase effectively is to hire them from the mailing list of your Free (libre) and Open Source Software.

  51. I wouldn't give most of them the time of day by Anonymous Coward · · Score: 0

    The only "contest" I've ever entered was to solve a simple problem for a potential *employer* via e-mail, in order to demonstrate skill. I got the job and it was fantastic. This isn't what I consider a "contest" though. There was no entry form, rules, or prize in the traditional sense. It wasn't advertised as giving you a trophy or any crap like that. It was part of the interview process after answering the ad, and it wasn't like he was asking me to code up a finished product, it was to just to make a mod to an existing Open Source project that added a particular feature.

    A contest is like obscenity. You know it when you see it. If I were under 18 and there was a good purse of scholarship money or something, then that's another story. At that level I think contests are appropriate; but once you become an adult it's just humiliating to have a company like Google or Amazon do that. Not all contests are like that though. Something like the obfuscated C contest that's pure fun and not holding itself out as a possible job offer, you can enter that without losing your dignity. It's a judgement call.

  52. We wanted the best... by OrugTor · · Score: 1

    We interviewed the top contestants for a software developer position supporting internal systems such as accounting, claims processing and inventory.
    - one had severe Aspergers.
    - one never tested, on principle.
    - none of them ever documented anything.
    - one refused to code in anything but Haskell.
    - no-one had ever heard of accounting, claims processing or inventory.
    - one did not speak any English.
    There was one old guy who came last in the contest. He was slow but he wrote good code, tested thoroughly, documented, had mastered several languages, had extensive experience of common corporate information systems and seemed quite personable. In the end we went with the Aspergers guy. He accepted minimum wage so big win for the company. Right?

  53. needs to be something special at your company by Anonymous Coward · · Score: 1

    To get people to want to work this hard just to land an interview there needs to be something special about your company. Most companies talk about how special they are, but most are generic. I have found that most companies who use the line 'we want people who want more than money', don't pay well and have insane hours. They end up with people who just want a job and won't quit. There are some people who will work insane hours for below market pay (or even right at market) who are not H1Bs and just do what they are told. Most won't.

    Facebook has the 'cool' think going for them. I also think they tend to pay very well. If you don't have anything special you won't get people to do this. Also, this is more for entry/junior level technical staff. People with 10 years experience will just blow you off. We don't want to hear your BS. We have done alot of interviews and know what to ask to evaluate people. It doesn't take all this. I have found that really long interviews tend to just be rounds of people come in 1-2 at a time and all asking basically the same questions over and over again.

    If you want to recruit good people
    -- have a good place to work. Don't BS about it being good.
    -- have quality benefits including good Health Insurance (everyone says they have good health insurance,but you don' get the details until you start such as $1500 deductibles and so on)
    -- work/life balance. If I am good, what do I get out of living at the office for you just to work for salary? I can go down the street and work less hours. I have a life.
    -- don't let me google you and find that you are shipping jobs to India and laying off non-H1Bs. Why would I waste my time?
    -- if I show up and its all 25 year olds, that tells me you are loaded with inexperienced people and you don't want to pay anything. Young people are good. However, if that is all you have, then you are doing it to keep salaries down. It tells me that in 5 years when those 25 year olds turn 30 they are quitting since you won't pay them.
    -- don't give me BS about 'wanting people who want more than money'. We all know that is code word for we don't pay and we want you to live here.
    -- if I ask for a salary range up front, tell me. Every company has an HR department with a range. Any that won't discuss it up front, don't pay well and are just doing a cattle call.
    -- don't expect me to show up for a cattle call where you give expect me to blow a day with 100 other people. These other people are desperate for a job. I am not.
    -- Ask me competent and quality technical questions. I can tell when they are stupid.
    -- Technical staff need to be present in interviews. If its only managers, you are an idiot and think you know more than you do.
    -- Don't exaggerate in the interview about how you are the greatest thing ever. You remind me of a used car sales men. Be honest and up front. Be positive, but don't be a clown salesmen. If I ask you for weaknesses in your organization, don't get insulted and like the question. It means I am interviewing you also.
    -- do a phone screen first. I won't take a face to face interview without a phone screen. When I was younger I had to drive for a number of interviews that I clearly wasn't qualified for or didn't want. I had to wait 45 minutes because the manager was 'busy'. Just to be asked 'do you know cobol'? We couldn't do this over the phone or better yet by email? good people have options and we don't have to show up without a phone screen. Only the desperate do.
    -- Quoting the Science Fiction writer John Scalzi: Fuck you. Pay me.

  54. Homework by jackjumper · · Score: 1

    I've given out a homework problem to candidates for several years now and I really like the insight it gives me. the problem is based on this: http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html - just design a class that implements the prototype/property pattern. Amazing the stuff people come up with

  55. Two Programmers Alike In Dignity by BlackHawk-666 · · Score: 1

    In a position I held a while ago I had a pair of programmers about as unlike as you can get.

    One was fast, quick to offer a solution, never wanted to write docs and always made a hash of them when he did. He got code out fast, but it was often flawed in every way you can imagine and frequently didn't pass anything but the most obvious use case.

    The other was quite slow. She asked me a lot of questions and we spent time going over the best strategies for solving a problem before she wrote her code. Her code was always excellent, well thought out, to standards, and documented. It ran well with only the occasional need for me to provide a re-work to ensure it scaled to meet the demands of a 24/7 high volume web site.

    After numerous years of working together (both programmers) we slowly would down that account as we lost it to a joint venture from Microsoft, Accenture and Dell. When asked who we should downsize it didn't even take a moment to decide, the guy who churned out the code at lightning speed got the axe.

    The reasons?

    His code hardly ever worked beyond a the most casual testing.
    He had a low aptitude for learning.
    I re-wrote a lot of his work, which was expensive for our company as I was client facing and senior and he was mid-level.
    He was a bit of a twat.

    In the long run the slow, methodical, programmer was far better at her job than Mr 24 hours, earned the company more many and caused us far less grief.

    Code comps are a terrible way to decide who to hire.

    --
    All those moments will be lost in time, like tears in rain.
  56. Certainly this is the best way by Anonymous Coward · · Score: 0

    Yes, fatal death matches so only the most physically strong programmers survive. The tool of choice should be a sword. And it is another grand way for the young and strong to boot out the wise and old.

  57. indictment of the interview process by Anonymous Coward · · Score: 0

    The real problem is that the interview process, in general, does nothing to discriminate good candidates from bad. Engineers ask programming problems in interview with a very small sample size of candidate answers for comparison. All interview questions are just proxies for how good a software engineer is... but in the absence of concrete statistical evidence about your questions, you might as well be rolling a dice when it comes to selection.

    Programming contests apply metrics across a wide range of candidates. They bring quantitative analysis into the hiring process, and move away from antiquated and ineffective hiring practices. If you don't like the metric used? Add code smell metrics to the scores. Think 45 minutes is too short? They have marathon matches that go over several weeks on Top Coder.

  58. You deserve whatever you get by Anonymous Coward · · Score: 0

    There is more to a programmer than how well they code. People serve as programmers, and people bring a lot more to the table than just their programming skills. If all you are looking for is programming skills, if you think that the programmer is an interchangeable part (like something on the assembly line), then why are you *hiring* programmers to begin with? Just contract them like you would any other commodity.

    But *people* that you hire can bring so much more to the table. They come with all sorts of other strengths, weaknesses, business experiences, points of view, knowledge of competitors, etc. If you are going to pay for the ENTIRE person/programmer to work for you, shouldn't you have them contribute all that they are capable of contributing? To do less is just bad management, bad resource utilization, and bad leadership.

    The best places I have ever worked, and the most productive as well, were places where the interview process was focused just as much on the character of the person being hired as it was on their technical ability.

    Conversely, the worst places I have ever worked, and the least productive, were the ones that considered people/programmers to be interchangeable parts.

    If you want to remove from consideration countless PEOPLE that can make a positive impact on your entire business because they aren't the best coders...or else they aren't the best time-constrained contest coders, then by all means please do so. You deserve whatever you get, and the rest of us will gladly scoop up the diamonds you left behind.

  59. Reading Comprehension Fail by Anonymous Coward · · Score: 0

    He actually said the opposite of what you thought.

    He said he was NOT going to claim to be one of the best programmers. He was being faux-humble instead of arrogant.

  60. It's about exceptionalism by Anonymous Coward · · Score: 0

    At my company there seems to be a noticeable correlation between programming contest hires and success in the workplace as measured by promotions and impact. That said, the real goal is simply to find excellent candidates. We want programmers who are the best at contests, but we also want programmers who are the best at making open source contributions, programmers who do the best academic work, programmers who have done some of the best engineering work in industry, and programmers who have been great entrepreneurs. When the goal is simply to find exceptional people, you look everywhere.

    Google's employee #1 and Facebook's ex-CTO (now Quora's CEO) are both examples of people who were world class talents in programming competitions and went on to make a big impact in industry.

  61. yo dawg by Hognoxious · · Score: 1

    If contests are no good and interviews are no good, perhaps we need to come up with something better.

    But how can we find it? Hey, how about a contest!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    1. Re:yo dawg by Anonymous Coward · · Score: 0

      What's wrong with interviews? How about looking at work they have already done and asking interview questions about it? Even a fresh CS grad will have SOMETHING of significance that they can show you and talk about. You can judge from that whether they are competent AND if they are ready to develop or if they should be left to programming what they are told to program.

    2. Re:yo dawg by Hognoxious · · Score: 1

      Tehm tahr intarwebs are full of stories about guys with 17 years experience who were hired and turned out to be unable to write a "Hello, world!" program. They can't all be false.

      And if interviews were so great this story wouldn't exist, would it?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  62. Not the best way to find good programmers by Anonymous Coward · · Score: 0

    But the best way to find programmers with a lot of free time.

    Finding a good enough solution to win a contest with several hundreds participants takes, besides the necessary skill, usually only one thing, a lot of time. Something good programmer don't have.

  63. International Obfuscated C Code Contest finds obfu by Anonymous Coward · · Score: 0

    The International Obfuscated C Code Contest (IOCCC) manages to find that type of programs it is looking for (see www.ioccc.org) ... Not that your company would probably want people to produce that type of code. :)

    My guess is that contents are able find the types programmers the contest is looking for, the question your company should ask is if those types of programmers is what you need!

  64. Let's kill the straw men. by randomac · · Score: 1

    These contests, as focused as they are, are indeed vulnerable to attack when that focus is recast as tunnel vision. While it is true that most of the effort in a a software project is figuring out the right question to ask, the performance on a well-structured problem _does_ have value. It seems disingenuous for a misdirection towards less measurable skills, it allows 'I could do that just as well' to be plausible, just not to me. As someone who has proven worthy in these contests, and having been faced with naysayers, I have found that when I try to figure out what other aspects are important, I find that others have no real clue what they want, yet they blame me for not delivering it.