Slashdot Mirror


Will the Solve-the-Riddle Hiring Trend Affect IT?

An anonymous reader wonders: "It's probably harder to find a good developer, than for a developer to find a job. Seems to be a Google-riddle trend; rather than caring about references/diplomas/resumes, employers are using solve-this-and-you-have-a-job approach, not even caring about any usual information. Does that give decent graduates/talented unexperienced devs/homegrown coders a chance at the corporate job, or does it alienate potential matches?"

30 of 579 comments (clear)

  1. It Seemed to Work for Bletchley Park by eldavojohn · · Score: 5, Insightful
    From the Wikipedia entry:
    Some 9,000 people were working at Bletchley Park at the height of the codebreaking efforts in January 1945, and over 10,000 worked there at some point during the war. A number were recruited for various intellectual achievements, whether they were chess champions, crossword experts, polyglots or great mathematicians. In one, now well known instance, the ability to solve The Daily Telegraph crossword in under 12 minutes was used as a recruitment test. The newspaper was asked to organise a crossword competition, after which each of the successful participants was contacted and asked if they would be prepared to undertake "a particular type of work as a contribution to the war effort". The competition itself was won by F H W Hawes of Dagenham who finished the crossword in less than eight minutes.
    Solving a crossword in under 12 minutes was the entrance exam. That's interesting. I remember reading about this in Simon Singh's The Code Book in the Chapter on Alan Turing.

    I think the ability to solve puzzles is tightly correlated with the skill set desired by IT. Because it takes an inquisitive and unrelenting mind to hit the hardest puzzles. If they like to do this for fun, surely they can do it well for a living.

    Perhaps it's even more important than the education because of the way IT problems arise? I constantly tell my boss that I complete the crossword everyday at work without fear of repurcussions. I feel this keeps my mind nimble and prepares me for the day.

    Isn't a college degree just a symbol that says, "Look, a whole bunch of people with good reputations threw a bunch of puzzles at me. Some were hard, some were easy, but overall I did well enough to pass through these puzzles. I retained some of the information and processes but that's not really important. What's important is the fact that I'm able to solve problems and paid to do it for four years."

    So, in the end, I predict this will have little or no effect on the IT world at all. In fact, I think it's a better shift towards hiring the most qualified person. For financial reasons, I went to the University of Minnesota but people on the East coast imagine a backwoods podunk frozen tundra instead of an institution of learning when I mention it. If I'm a good puzzle solver, it shouldn't matter.
    --
    My work here is dung.
    1. Re:It Seemed to Work for Bletchley Park by networkBoy · · Score: 3, Insightful

      You're making too much of it.

      The average network diagram is so convoluted that it can not be accurately put on paper. Having a mind that can actually grasp what's really going on is a rare thing. It's simply another puzzle to be solved.
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    2. Re:It Seemed to Work for Bletchley Park by Aladrin · · Score: 4, Insightful

      You hit the nail on the head there, twice.

      Real IT problems aren't as easy as the Sunday crossword. The problem being that different people are good at different puzzles. But if you're bad at problem solving, it'll show up in your lack of ability to solve puzzles.

      Even our small network here at the office was ugly to diagram out. I was amazed at what a pain it was. And the guy who installed the IP-based phones could not do his job until he drew it out on the whiteboard. We ended up fixing his drawing, then revising it several times as we re-ordered the office a bit for convenience. But we had to draw EVERYTHING for him. With extensive labelling. And we also had to call things by the names he learned in school. It had to be 'FQDN' and not 'domain name' or he'd be lost. (He did eventually figure that one out and start correcting us when we just said 'domain name', though.) He's exactly the sort of 'tech' the puzzles would have made sure they never hired.

      Relying solely upon the puzzles is as crazy as relying on any other single part of the interview process, though. Our office is extremely smooth, and most people get along with most everyone else. A year prior to my hire, the office was not like this. Most people hated coming to work, including the owners. They instituted a personality test during the interview process and things got better quickly.

      Just 1 more thing to help weed out bad apples, that's all.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    3. Re:It Seemed to Work for Bletchley Park by EastCoastSurfer · · Score: 5, Insightful

      These kinds of tests usually tell me I don't want to work at that sort of place. If they are going to expect an interview candidate to write a web server in a few hours, then what will they want when you work there? Expect to have demands like 'we need an entire application written this week, don't worry about design or figuring out what the application really needs to do, just write something.'

    4. Re:It Seemed to Work for Bletchley Park by Monkelectric · · Score: 4, Insightful
      Yea, but C++ is all about the details, and no external libraries meant you had to implement *EVERYTHING* ... no parsing tools (flex/yacc), no threading libraries, no file utilities. Not even simple things like path normalization.

      In the "real" world you'd be a fool to implement any of those things.

      --

      Religion is a gateway psychosis. -- Dave Foley

    5. Re:It Seemed to Work for Bletchley Park by Anonymous Coward · · Score: 1, Insightful

      Solving a crossword in under 12 minutes was the entrance exam.

      That's a great test... if you are hiring people to solve crosswords.

    6. Re:It Seemed to Work for Bletchley Park by sesshomaru · · Score: 2, Insightful
      FRANK: When we talked, you only referred to him in the past tense. Do you remember that? Like he WAS an under-achiever, or he HAD very strong opinions. And I think the other one was: he WAS a very spirited kid.


      [Frank slams his hand on the table.]


      FRANK: Do you know something we don't?


      ROE: Yes, I speak about Landon Bryce in the past tense, because there's a system in place, gentlemen, one that constantly evaluates our youths and our lives with no application of relativity. A 4.0 will succeed, a 2.5 will not. Below 750 on the SATs and certain doors close. A quality of person, sense of humor, heart, these are not on any applications. It's all about your numbers and although, yes, definitely Landon Bryce had it - that intangibility of soul that kept him in school, that could allow him to affect the quality of our lives for the better, that could lead people where they wished to go, Landon Bryce couldn't pass through the numbers. Numbers which tell a young person at 18 they're through. And unless there's some miracle of timing or events and greatness is thrust upon you, your life is over. Next? So, if I'm guilty of anything it's of giving in to this despicable system of numbers.


      Millenium: A Room with No View

      --
      "MIT betrayed all of its basic principles."
    7. Re:It Seemed to Work for Bletchley Park by tricorn · · Score: 3, Insightful

      Writing a simple web server is trivial. It doesn't even need to be multi-threaded, though it wouldn't be difficult to make it serve multiple connections at once with select.

      Someone who can't write the code to parse out a GET request is pretty lame. Heck, you SHOULD be able to write it all in 3-4 hours using nothing but system calls, no section (3) library calls at all. That is, you get to use socket, select, open, read, write. Write your own damned string parsing routines, most of them are about 3-15 lines long. No, you don't get to use malloc; include (and check) reasonable limits on string lengths, simultaneous connections, etc, then you won't need to dynamically allocate memory. If you insist, create your own memory allocator, using anonymous mmap to get more raw memory, but it won't be worth it. Might impress them, though.

      Suggestion: create an index file mapping URL to static file to return. Look up the URL, return the file. Manage the index file manually, with Perl, with shell scripts, whatever, they didn't tell you how to administer the server. If you're feeling slightly ambitious and want to impress them, include the ability to run programs with simple arguments passed in on the command line. Heck, you could even include POST and PUT support without too much trouble, but that might take more than 3-4 hours to get it all working just right, dealing with multiple processes and pipes that can block, etc, all while also dealing with multiple sockets, any of which can close or die unexpectedly, can be a bit tricky. I'd start off writing a generic process-handler library and integrate it with the socket handler so everything can be run off of one select (or poll) call. But, if you do that, come up with a better solution than CGI.

      Specifications? All you need to do is implement a subset of HTTP. If you can't look up the specs to that, I certainly wouldn't hire you. Since they didn't give you any other requirements, I'd consider the job done when a standard web browser (your choice) can connect to it and follow links. It's not like you have to implement PHP or JSP or whatever for the thing! I think 3-4 hours is reasonable. If you don't, you obviously weren't the right person for the job.

    8. Re:It Seemed to Work for Bletchley Park by j35ter · · Score: 2, Insightful

      Ummm, no one said it has to be an embedded server!
      You could actually run the server under (x)inetd...should make this a 2 hour job of just parsing and handling file requests. The socket stuff should be obsolete in that case.

      --
      Delta-Mike November Bravo Tango
    9. Re:It Seemed to Work for Bletchley Park by tricorn · · Score: 2, Insightful

      A more obvious meaning for their request is that they want you to write a simple web server without pulling in a bunch of libraries already written that implement a web server so that you can write "HTTPserver server = new HTTPserver(localhost, "http"); return server.process("/usr/local/http");" and claim you know how to implement a webserver in C++. "of any kind" simply means that they include string parsing libraries, socket handling libraries, error logging libraries, or anything else. "external" is much more the relevant phrase, and OBVIOUSLY means "not part of the actual implementation of the C/C++ compiler suite". So yes, "new", "malloc", "printf" would be allowed. "3-4 hours" is also a pretty big clue as well - since that's a reasonable estimate of the time it would take to write something like that using only the language-standard facilities.

      Saying "well, you SAID no external libraries of ANY KIND, so I took that to mean whatever would get me out of having to do it" certainly wouldn't impress me, unless you then went on to implement your own C compiler, operating system, Ethernet drives, TCP/IP services, wrote the web server for that, installed the whole thing as a boot block and brought it up by booting it straight from the BIOS. That would probably take a bit more than 3-4 hours, though, so it probably isn't what they meant.

      Your approach is basically saying "hahaha, you guys suck, you don't even know what's implemented as libraries in a C++ program, so I'm going to show you up by saying it can't be done". You've shown that you'd be very difficult to work with.

  2. I've used them by Cybert4 · · Score: 2, Insightful

    Well, I tried to do riddles when I was hiring at a technology company. I liked to do mathematical ones that couldn't show any cultural bias. For example, deriving the quadratic formula. Or proving that the square root of two is irrational.

    I like this. It's a lot better than the usual asking for "ten years in a five year old language". Cool trick too. I wonder how many people won't even get to the "view source" option!

    1. Re:I've used them by iapetus · · Score: 2, Insightful

      By the sounds of it you did show a cultural bias - towards people with a background in pure mathematics. If the work required that, then it's fair enough, but it shows next to nothing about problem-solving abilities. I dislike this - and not just because I didn't study pure maths to any particularly high level.

      --
      ++ Say to Elrond "Hello.".
      Elrond says "No.". Elrond gives you some lunch.
    2. Re:I've used them by RingDev · · Score: 4, Insightful

      While I appreciate the unforgiving rock solid logic that is math, asking someone who has been out of math based education for a number of years to prove the irrationality of sqrt(2) is a bit of a stretch.

      I'd much rather go with a series of standardized logic questions (pattern recognition, basic math story problems, etc...) and one question buried in the test that is intentionally vague or poorly worded. Because well defined problems are easy, it's the problems that are not well defined that really test us in IT. Seeing how a potential employee handles themselves in a confusing situation is just as critical as how they handle themselves in a well defined situation. I would stay away from anything that depends on a complex understanding of any given topic, because at this point, we're not looking for someone who has the quadratic formula memorized, we're looking at someone who can look at a situation and pull values from that situation to plug into a formula.

      -Rick

      --
      "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  3. Moo by Chacham · · Score: 3, Insightful

    Guvf vf xvaq bs fvyyl, ohg vg vf n avpr jnl gb svaq ng yrnfg *fbzr* gnyrag.

  4. It filters for one type of person by pauljlucas · · Score: 5, Insightful
    Does [solve-the-riddle] give decent graduates/talented unexperienced devs/homegrown coders a chance at the corporate job, or does it alienate potential matches?
    If I do say so myself, I'm a pretty good software architect and developer. However, I don't do well under the kind of pressure typically experienced at a job interview when asked to solve oddball problems in real-time. Often, my biggest insights come when I'm not consiously thinking about the problem, e.g., while in the shower.

    Those who do well at solve-the-riddle interviews are certainly intelligent and can solve problems, but it's not necessarily true that they can solve ill-specified problems -- real-world problems that need solving aren't usually as completely specified as a riddle or puzzle.

    There are other ways to conduct interviews that yield good candidates. Get the person to talk about his past work -- technical people who have done good stuff love to do this with great enthusiasm. You can then ask about trade-offs in thei designs and implementations. You can usually figure out whether the candidate was a key player in the work being discussed.

    Another way is to describe a real-world problem facing your company, but without actually asking the candidate anything. A good candidate will be interested in yoru problem, ask questions, offer suggestions. If the candidate just sits there, s/he's not a good candidate.

    --
    If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    1. Re:It filters for one type of person by starfishsystems · · Score: 3, Insightful
      Absolutely.

      There are certainly tech support jobs out there which consist primarily of what we might call solving puzzles.

      Generally, however, a technical person needs to be broadly competent, needs to have strengths in both analysis and design, needs to communicate well, needs to be able to manage relationships effectively, needs to be able to organize and prioritize effectively under directions which can be incomplete or ambiguous.

      The best technical people are not just able to address the issues in front of them, they use them to generate leverage in making progress toward larger goals. They have to articulate and negotiate for those larger goals, which means they have to be sensitive to interests of other individuals, and to the potential for alignment and conflict among them.

      These requirements hold especially for more senior positions. It's fine to be able to solve puzzles, but that's not most of the job. And as anyone with hiring experience knows, it's far more successful to gain senior people by letting them rise through the ranks than it is to hire them from outside the organization. Unless you make a point of attracting and hiring people who have that potential, you can risk ending up mostly with a whole bunch of puzzle solvers.

      Even scientific research, which obviously tries to solve some very hard puzzles, is mostly driven by collaboration. I've seen generations of compuer science grad students come and go, and the ones that go furthest are invariably the most collaborative. Out of the practice of collaboration they seem to have an easier time understanding their work in context, and they seem able to pick up all the other necessary management skills along the way.

      --
      Parity: What to do when the weekend comes.
  5. Re:Solution by Qzukk · · Score: 2, Insightful

    The interesting thing about it is that not only does it test the applicant's ability to use various PHP tools (in a roundabout way) it also forces awareness of some of the stupider things people do in their site designs. Hidden values in forms that are expected to be secure because you can't see them in the browser, aren't. People can post anything to your form from anywhere, not just from the page you thought they should be coming from, and so on.

    That said, I've done the kind of automation that they're looking for, and all I can say about it is that if my "targets" for scraping had tags like <mistake> that told me the important parts, my job would be five billion times easier. Especially if the tag was always the same. Nothing like setting up a script that logs into a website, "navigates" to the page I want and read the parts of the page that were interesting to me, only to have the company completely redesign their website... now if only companies would use SOAP.

    --
    If I have been able to see further than others, it is because I bought a pair of binoculars.
  6. Re:I like this by MindStalker · · Score: 2, Insightful

    1) It proves you are good enough not to get caught.
    2) If they tell you to do something illigal they don't want it comming back to them in the terms of "You hired a known felon..."

  7. Just when I thought interviewing techniques... by Quiet_Desperation · · Score: 4, Insightful

    ...couldn't get dumber. This is flavor of the week type of stuff, folks. I'm lousy at riddles, but I win design award after design award plus bonuses in my engineering job. I have several patents. I'm sorry, but I just have very little patience for these Grand Unified Theories Of Everything when it comes to dealing with human beings. It just strikes me as HR people looking for ever lazier ways to hire the talent.

    Also, Our IT people have that site blocked. I wonder what that riddle means?

  8. Re:Can't solve the puzzle, so you're trying Slashd by AKAImBatman · · Score: 2, Insightful

    The first rule is that there's always exceptions to the rule. ;-)

    Google appears to pursue non-degreed people in a couple of different situations:

    1. The early responders to their public Quiz sheet they put out a little while back.
    2. You have a project, product, or unique knowledge they wish to acquire.
    3. The position is not in a development area of the company, but is in a supporting function. (e.g. Customer Relations, Tech Ops, etc.)

    Unfortunately, things seem to NOT work out with Google more often than they do. I remember a couple of fellows who were in category 2 and went in for interviews with Google. Google ended up turning them down, again for reasons unknown.

    It's just *weird* working with Google. At times, even frustrating. There's absolutely zero visibility into the company and their practices. And from what I know from Google insiders, it doesn't get any better once you're there. I'm left to wonder if they're not having some growing pains as the company gets larger and larger. Being as meticulous as they usually are, I imagine that they're still trying to work out the best way of growing beyond a relatively small set of braniacs.

  9. Re:College is a game by Knara · · Score: 3, Insightful
    All of which are applicable to a corporate job.

    But if you think you can get through a good CS program without learning puzzle solving or problem analysis, you're either an idiot or you went through a really bad CS program (which admittedly, are probably not in short supply).

  10. best credentials by TLouden · · Score: 2, Insightful

    if you were a manager looking for a wrestler, wouldn't you want to test their physical strength?

    IT is now so much about problem solving, why not test potential employees ability to do just that.
    While it might once have been possible to already know everything about a technology which one was responible for maintaining, that's no longer how the industry works. When there's a new problem, we google. The better problem solver is the better hire.

    --
    -Tim Louden
  11. Re:It's a good filter by wintermute42 · · Score: 2, Insightful

    You certainly have a right to your opinion. It's great that there's a match between employers who do this sort of thing and people who like that sort of interview. I wrote a web page, Calculating Permutations and Job Interview Questions on this topic. What do I suggest for interview questions instead? How about detailed questions about the projects that the applicant has worked on, what exactly they did on these projects, how the solved the problems they encountered, how the software they wrote was structured, how they worked with other members of the team, how they dealt with conflict...

    I will note, just in passing, that Soviet Russia has not existed for some time so the present tense of the sentence below seems misplaced.

    In Soviet Russia, the government controls the commerce.

  12. Re:Thought Processes by Monkelectric · · Score: 3, Insightful
    I disagree heartily. Saying "it cant' be done" could equally be the response of a battle hardened veteran who isn't willing to go into a battle he has no hope of exiting.

    That was what I learned about myself during the test. That *I* ignored my own good sense that the task was not reasonable, and that a true master would not have.

    --

    Religion is a gateway psychosis. -- Dave Foley

  13. Re:My experience with riddles... by Anonymous Coward · · Score: 1, Insightful

    My answer was: If I eat faster, then cut into 3 slices. If I eat at the same rate or slower, cut into two pieces.

    If you eat faster, then you want the pizza cut into as many sub-slices as possible. If you are ten times faster and cut the pizza into 10 pieces then you'll be able to eat 9/10 of the pizza before your friend finishes 1/10.

    In the extreme limit, if you are arbitrarily faster than the other guy, and the pizza is cut into a infinite number of slices, then you'll eat the entire pizza and your friend will eat an infinitessimally small piece (i.e.: nothing). So my answer would be:

    "Assuming that I truly want to eat as much pizza as possible, then:
    If x is greater than y the pizza should be divided into as many pieces as possible (ideally an infinite number).
    If x is less than y the pizza should be divided into two pieces.

    However it would be most courteous to cut the pizza into two pieces."

  14. Battle-Hardened Veteran by theunixman · · Score: 3, Insightful

    The Battle-Hardened Veteran would explain to the potential employer/customer why the problem was impossible, and while perhaps not providing a formal proof, would present enough evidence that he would be seen as a Veteran. And he would still make an attempt to do it anyway, just to be sure. Watching how a person discovers why something is not possible is far more revealing than listening yet again to someone state quickly that it cannot be done.

    1. Re:Battle-Hardened Veteran by alienw · · Score: 2, Insightful

      Uh, no. The standard library and the OS API are not external libraries -- that would generally be considered part of the development environment. You cannot even talk to the network chip from Windows or Linux without using the appropriate API. They were probably referring to not using some kind of "sockets for dummies"/"webserver in a box"-type library. In any case, this is the kind of question that you should ask to clarify to avoid looking really stupid.

  15. Re:I think you overestimated what they wanted. by feenberg · · Score: 2, Insightful

    I think you were probably expected to invoke the server via inetd and could read commands from the standard input and send pages to standard out. That "handles" threading for you also.

    Daniel Feenberg

  16. Re:I like this by simishag · · Score: 2, Insightful

    "Brain dead?" Come on. A felony conviction is often an automatic disqualifier, full stop. Lesser convictions might be too depending on the position and company. It's nice to feel sorry for people who made a bad decision once and want a second chance, but when you have 10 other similarly qualified applicants in the queue who have no criminal convictions, the criminal's application is going to be the first one tossed in the circular file.

  17. Actually its even easier than that by bratwiz · · Score: 2, Insightful

    If you assume its hooked up to a UNIX system and fired off by INETD, which are certainly reasonable assumptions, especially in the face of "just do whatever you think is best" when looking for clarification-- then you could write the whole thing in C in just a few minutes. INETD will of course take care of hooking up the socket to your program's STDIO so all you have to do is parse the request, open whatever file, write a few headers and then spool it out. You could probably have it up and running before they got their hand off the doorknob...