Slashdot Mirror


Tough Tests Flunk Good Programming Job Candidates

snydeq writes "Fatal Exception's Neil McAllister discusses the use of quizzes and brain-teasers in evaluating potential software development hires, a practice that seems to be on the rise. 'The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development. Other large companies have similar practices — Facebook and Microsoft being two examples,' McAllister writes. 'You'll need to assess an applicant's skill in one way or another, but it's also possible to take the whole interview-testing concept too far. Here are a few thoughts to keep in mind when crafting your test questions, to avoid slamming the door on candidates unnecessarily.'"

743 comments

  1. the way to go by lecoupdejarnac · · Score: 5, Interesting

    Radical idea: have them write code for a few hours to solve a given problem - then see how their solution looks. This goes a long way towards judging their fit for the job. You can even give them a couple of data structures and algorithms references - on the job we use references all the time, and being able to implement something from a reference and apply it to a problem is a real skill.

    1. Re:the way to go by Anonymous Coward · · Score: 0

      Thats exactly what my current employer does and it works well, and not just for developers.

    2. Re:the way to go by stanlyb · · Score: 1

      So, with such a tests, i wonder how would you manage to find quarks......oh, they don't exist you say, silly me.

    3. Re:the way to go by Anonymous Coward · · Score: 0

      That's probably a better way depending on the position you are hiring for. However, even these tests are fairly meaningless. A real test would take months or even a year or more and the candidate's skills would have to be evaluated on a longer term project. Solving little puzzles doesn't have much to do with experience in maintaining, debugging or designing a large application over a long period of time. I've seen PhDs who can solve those puzzles who crank out absolutely non-maintainable code. They are great at algorithms, and specialize in them, but long term development and maintenance of a software system is out of sight and out of mind for them.

    4. Re:the way to go by bonch · · Score: 1

      Asking candidates to write code on a blackboard or sheet of paper is common practice.

    5. Re:the way to go by anomaly256 · · Score: 5, Insightful

      This would be preferable to what one company I applied for a job with did recently. Gave me a fairly straight forward maths problem involving modulus, gave me about *5* seconds to solve it using real code and not just pseudocode. Sure, that was fine. Then they added the caveat 'What if % is an expensive operation? how would you work around it?'. Turns out it was a trick question. They were expecting you to statically store the result explicitly instead of finding different maths that achieved the same result dynamically but more efficiently. less than 2 seconds later the interviewer interjected with the answer before I had a chance to even say or do anything right *or* wrong.

      I don't see how *this* particular kind of quizzing *can* weed good candidates from bad, it's stacked against everyone equally. It's hostile. I'm pretty sure they didn't ever find the 'right' candidate.

      I'm all for puzzles and quizzes to test someone's experience and ability and problem solving skills during job applications, but they MUST a) be unambiguous otherwise you're just being a jerk, and b) must be given a reasonable amount of time to actually perform them otherwise, again, you're just being a jerk.

    6. Re:the way to go by Anonymous Coward · · Score: 1

      Asking candidates to write code on a blackboard or sheet of paper is common practice.

      Yea because programmers often write code in a blackboard or a sheep of paper in front of other people judring them over their shoulders on unknown metrics.

    7. Re:the way to go by anomaly256 · · Score: 4, Insightful

      In hindsight though, I'm really glad I didn't get that position. I'd hate to work for someone so near-sighted and irrational. :)

    8. Re:the way to go by Amouth · · Score: 3, Interesting

      When i do it i make sure to use an environment that has the same capabilities but they are not familiar with.

      Example for a graphic artist when they list Photoshop i give them gimp (unless they have both then i give them painter). or give them OpenOffice instead of MS.. as for programming normally i will have them debug something that is a language they didn't put on their application, making sure the bug is an obvious one (not a syntax problem).

      i look for how they solve the problem - some give up at the start, others try and figure it out, others will ask questions. when they are working and/or asking questions you can tell if they know what they need to do and are just confused by the environment or if they are completely lost. it is also a good way of testing their critical thinking skills.

      i'd rather hire and train someone who will work out side of their comfort zone, has critical thinking skills, and has the ability to learn. then to hire and spin someone up who might be an good at something but that is all they can or will be able to do.

      On a side note i'm not that great with people skills so while i write the tests i no longer do the interviews - last too applicants ended up crying during the tests.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    9. Re:the way to go by jo42 · · Score: 1

      Except whiteboards or pieces of paper don't do code completion or have function/method/library/framework documentation.

      Sod you with a stiff wire brush if this is how you hire coders.

    10. Re:the way to go by acak · · Score: 4, Insightful

      Too often the interviewer's questions are loaded in two different ways - there is no one right answer and not understanding this or dismissing anything outside the narrow set of answers he/she is looking for shows a lack of maturity on the interviewers side of the table.

    11. Re:the way to go by CannonballHead · · Score: 5, Interesting

      I interviewed at a company, some sort of advertising thing. Relatively small - I was fresh out of college and talked to some heads of something-or-other. Anyways, there were two of us that happened to interview at the same time; they had two test stations setup. There were a few multiple choice sorts of questions, and then an actual programming test dealing with extracting ads out of an XML page, as I recall, in PHP. Well, I'd never dealt with XML in PHP at all, so it was totally new to me. I found various things online (XML parser, etc). After a couple hours and making some progress, but not completing it - and having the other guy already finish roughly an hour or so earlier and whatever - I said I wasn't going to be able to complete it very quickly and asked if I should leave or not.

      The head hiring people asked if they could talk to me, so I said sure. Asked if I thought I could complete it, given time - I said sure, it wasn't that difficult, it's just that I had never worked with XML parsing before and was having to learn it as I went. Then they pretty much startled me. They said, basically, the following: the other guy interviewing had all the skills, he was able to churn out the problem, and his test scores were good (as were mine, incidentally). But they didn't like his attitude (somewhat arrogant, loudly proclaiming "oh yeah, it was easy!" and that sort of thing). They said that even though I couldn't complete it within an hour or two, they liked my attitude, they liked that I stayed at it for about two hours (without being asked really), they liked that I was honest to say I would not be able to complete it by the end of the business day (my interview was at like 2:30 and it was now 4:30). They basically said they'd offer me a Jr. Dev position based on the work ethic, honesty, and generally good attitude/personality (along with knowledge of general programming stuff based on test scores, resume, etc).

      I didn't end up accepting as I got a much better offer elsewhere - also, primarily, based on work ethic, personality, general knowledge, etc.... it was a "we'll train you to do what we want you to do, because we can see you're versatile enough and willing to learn" - but the experience was pretty eye-opening.

    12. Re:the way to go by RyuuzakiTetsuya · · Score: 1

      Actually that'll be a good test of their individual programming and development style. Have them work with another employee who has no idea what the problem is and see how your candidates work in a group.

      --
      Non impediti ratione cogitationus.
    13. Re:the way to go by Shinobi · · Score: 2

      Well, they want to see your raw abilities, not your development environments abilities.

    14. Re:the way to go by amicusNYCL · · Score: 1

      I'm pretty sure that something like code completion would be one of the things you specifically don't want them to rely on. Documentation is also available outside of any IDE, as long as they have internet access. Writing on a blackboard would be the rough equivalent of writing code in Notepad on a projector. A competent programmer should be able to do that.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    15. Re:the way to go by Anonymous Coward · · Score: 0

      They would be irrational if they asked you to use i in the calculation. ;)

      My irritation is with questions that the interviewer has thought about for a long time and is expecting you to answer in a few seconds/minutes. Plus, "call the existing "foo" utility that does this "foo" calculation" is always frowned upon as an answer.

    16. Re:the way to go by Anonymous Coward · · Score: 0

      Man, I feel for you:
      "All right hot shot. Now what if modulus is an expensive operation? How do you work around it?"

      "Well, if just the modulus operation were expensive for some reason, you could go back to the definition of modulus, and do an integer divide--"

      "WRONG. You store the result so you don't need to do the operation again. Get the fuck out of here."

      "But an integer divide is faste"

      "What are you still doing here. Get out! OUT!"

    17. Re:the way to go by sapgau · · Score: 1

      Agreed +1

    18. Re:the way to go by ackthpt · · Score: 1

      That's probably a better way depending on the position you are hiring for. However, even these tests are fairly meaningless. A real test would take months or even a year or more and the candidate's skills would have to be evaluated on a longer term project. Solving little puzzles doesn't have much to do with experience in maintaining, debugging or designing a large application over a long period of time. I've seen PhDs who can solve those puzzles who crank out absolutely non-maintainable code. They are great at algorithms, and specialize in them, but long term development and maintenance of a software system is out of sight and out of mind for them.

      Might be better to just hire candiddates, assign them to a work group on some Google Labs type of thing, see how they do. Keep the good ones and wash out the ones who prove not up to the task, unable to work with others or have other issues.

      --

      A feeling of having made the same mistake before: Deja Foobar
    19. Re:the way to go by beelsebob · · Score: 4, Insightful

      Do they? Why? You're going to be working in a development environment. What good is a guy who can solve trivial problems on a white board when you need a guy who can solve complex problems in a dev environment with a bunch of reference material.

    20. Re:the way to go by Anonymous Coward · · Score: 0

      is there some job that codes only on pencil and paper?

      This is like asking a craftsman to build a cabinet without using a square.

      Is it measuring "raw" ability? sure. Does that really matter? no.

    21. Re:the way to go by ackthpt · · Score: 1

      This would be preferable to what one company I applied for a job with did recently. Gave me a fairly straight forward maths problem involving modulus, gave me about *5* seconds to solve it using real code and not just pseudocode. Sure, that was fine. Then they added the caveat 'What if % is an expensive operation? how would you work around it?'. Turns out it was a trick question. They were expecting you to statically store the result explicitly instead of finding different maths that achieved the same result dynamically but more efficiently. less than 2 seconds later the interviewer interjected with the answer before I had a chance to even say or do anything right *or* wrong.

      I don't see how *this* particular kind of quizzing *can* weed good candidates from bad, it's stacked against everyone equally. It's hostile. I'm pretty sure they didn't ever find the 'right' candidate.

      I'm all for puzzles and quizzes to test someone's experience and ability and problem solving skills during job applications, but they MUST a) be unambiguous otherwise you're just being a jerk, and b) must be given a reasonable amount of time to actually perform them otherwise, again, you're just being a jerk.

      Interview panels I've been on, we generally throw out a few simple problems - we're not so concerned with whether the candidate arrive at a correct answer as we want to observe their thinking - "Explain how you would do X, in general terms" More telling than someone who has the IQ to pass the test, but then proves to be a problem in how they go about work.

      That aside:

      'The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development.

      This seems to explain some of the idiotic updates Google has been rolling out to Chrome and other products. Brilliant, but lacking wisdom.

      --

      A feeling of having made the same mistake before: Deja Foobar
    22. Re:the way to go by wideBlueSkies · · Score: 2

      Yup. The programming assignments work.

      I even go so far as to give them a couple of days to think it through, and send me code that compiles, along with written test cases / data.

       

      --
      Huh?
    23. Re:the way to go by Anonymous Coward · · Score: 0

      I, too, developed a slightly ridiculous seeming quiz for applicants, but the purpose was to check basic problem-solving skills for a field engineering position, and it did separate out the 3 applicants. One, very highly self-touted, appeared unable to follow instructions, and a liar [I started it by asking him to get a pencil and paper, and he said he had. But he never wrote anything down, and said he couldn't remember everything].

      One, had some trouble with the problem solving, but managed to do it.

      One did the job easily, in a way that was different than what I had thought of.

      Either of those two would have been acceptable, but in the end all three were asking more than our company would have been willing to pay. Oh, well. We did end up getting applicants that were qualified, though, who would work for what we were paying.

    24. Re:the way to go by Anonymous Coward · · Score: 1

      Might be better to just hire candiddates, assign them to a work group on some Google Labs type of thing, see how they do. Keep the good ones and wash out the ones who prove not up to the task, unable to work with others or have other issues.

      Or - a radical concept - hire candidates with minimal screening to verify qualifications, assign them to perform the actual work and get rid of them as soon as they fail.

      The more thoughtful person might realize that there is not a single recruitment method that fits all situations. Not everything in life is a simple equation.

    25. Re:the way to go by Anonymous Coward · · Score: 0

      Too often the interviewer's questions are loaded in two different ways - there is no one right answer and not understanding this or dismissing anything outside the narrow set of answers he/she is looking for shows a lack of maturity on the interviewers side of the table.

      Agreed, but that lack of maturity can be on the other side of the table too. I had an interviewee, throw a temper tantrum that there was no perfectly right answer to a question I asked. He was right and I knew it. He failed entirely. If he was going to act like that when my boss passed him an impossible spec to meet, I didn't want to have him around.

    26. Re:the way to go by agm · · Score: 2

      Might be better to just hire candiddates, assign them to a work group on some Google Labs type of thing, see how they do. Keep the good ones and wash out the ones who prove not up to the task, unable to work with others or have other issues.

      Depends on your local laws. Here in NZ you cannot fire someone without three written warnings, and even then it's difficult to do. We've only just passed a law which allows for a 90 day probationary period where no reason needs to be given for firing someone.

    27. Re:the way to go by mhotchin · · Score: 4, Insightful

      The saddest thing is - the 'no right answer" questions are (in my mind) one of the *best* ways of evaluating a prospective hire if the interviewer then follows up with "Why did you do it that way?".

      Rather than finding out if the hire can find the answer, I would want some insight into *how* the answer was achieved. Was it something they memorized? Did they evaluate trade-offs? Did the even *see* the trade-offs? Can they evaluate their own answer if (as happens in the real world!) new constraints are placed on the problem?

      An 'inefficient' answer is *just fine* if the code wouldn't be used much, and better if it's more maintainable, for example.

    28. Re:the way to go by superwiz · · Score: 1

      Remembering finer points of an API is not an "ability". In fact, if a person does remember finer points of API, they more than likely have difficulty understanding the difference between what's important and what isn't. As a result, they probably write extremely unreadable code. So, in fact, people that you are judging as able are most likely to do more damage than good to your code base. Remembering API base is about as much a skill as spelling is a skill. If a machine can perform a task, then testing people in performing the same task will only get you people who are replaceable with machines.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    29. Re:the way to go by bonch · · Score: 1

      If you can't write common algorithms without code completion or framework documentation, you may not be the hire they're looking for.

    30. Re:the way to go by Anonymous Coward · · Score: 0

      My experience has been that this is usually the result of allowing people who don't know the subject matter for the position they are hiring. They come up with tests having trick questions and ambiguous answers. Like, "in binary, 1 + 1 = a) 2 b) 10"

    31. Re:the way to go by superwiz · · Score: 2

      A competent programmer should be able to do that.

      No more than a competent mathematician should be able to do arithmetic. A good programmer should be able to manipulate concepts. Anyone who commits API to memory is most likely writing terrible code.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    32. Re:the way to go by bonch · · Score: 1

      As opposed to writing code in an IDE and having it judged over the shoulder of your code reviewer or pair programmer?

    33. Re:the way to go by gregmac · · Score: 2

      Development environments and reference materials don't help you if you don't understand the logic.

      When I ask people to write code or solve fizzbuzz-style problems, I tell them to do it in any language they want. I don't care about syntax errors, wrong function names, etc. I don't even care if you use % to take the modulus and your language doesn't even have a modulus operator, or you're writing in a language that doesn't even exist. What I care about that you knew you needed to use modulus, and really, that you solved the problem. If you can't solve fizzbuzz, how the hell are you going to write a multi-threaded high-performance ETL process?

      Missing a semi-colon or closing brace doesn't make you a bad coder. An off-by-one error that you still can't spot after I hint at it, that may. Complete failure to solve the problem, well that definitely does.

      --
      Speak before you think
    34. Re:the way to go by pclminion · · Score: 1

      I interview developer candidates and I will usually ask at least one "impossible" question to see how they behave. Do they get flustered? Angry? Do they swear at me? Do they roll straight into an answer before they've even realized my question has no meaning? Do they ask for clarification? Do they up-level it and challenge the basis of my question? Admit defeat? Smirk at me?

      The answer to the question is not relevant, the candidate's reaction to the question is what I'm trying to measure.

    35. Re:the way to go by lexsird · · Score: 1

      Ha ha! That is some funny, but warped stuff. Welcome to Earth, kids, it's a tough planet, will you help us survive and thrive? If not, there is the door.

      Human resource management, it smacks of irony sometimes due to the proximity it's to being an oxymoron.

      --
      Take the Red Pill.
    36. Re:the way to go by lgw · · Score: 1

      Except whiteboards or pieces of paper don't do code completion or have function/method/library/framework documentation.

      Sod you with a stiff wire brush if this is how you hire coders.

      If you think programming skill is measured by top-of-the-head knowledge if any but the most comon function/method/library/framework stuff, you'll do a poor job of hiring in any case.

      I find "whiteboard coding" incredibly useful to meaure the following:
      * Can the candidate write any code at all. Many cant.
      * Can the canditate solve some specific problems that are hard to design, but easy to code for (e.g., does he even know what recursion is).
      * Does the candidate care about code quality at all.

      The last is a bit tricky, but I centainly notice when the candidate points out the limits of whiteboard coding when it comes to things like "of course, I'd also validate my arguments" or "of course, in an editor I'd format this right" or "in real code this would ahve real error reporting". Yeah, I can't measure those sorts of things with whiteboard coding, but I can observe whther the candidate cares at all about them. I don't expect good code (style-wise) on a whiteboard, but I do look for verbal hints that the candidate would bridge the gap in a real environment.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    37. Re:the way to go by bonch · · Score: 1

      If they ask you to implement a common algorithm, and you can't do it without having to copy it from Google search results, they don't want you. Why can't you understand that?

    38. Re:the way to go by XaXXon · · Score: 1

      When I interview on the whiteboard, if they say they don't know what methods a hash has (or whatever), I tell them to just make up whatever methods they want and if I don't understand what they're talking about I'll ask them. They're frequently working in a language I don't know, anyhow.

      I'm not looking for someone with an ability to write in any particular language, just someone who understands basic programming concepts. You don't need autocompletion to show me that you know how to use data structures and such.

    39. Re:the way to go by cshark · · Score: 1

      I've been on both sides of stupid stuff like that. The best thing I've found that works though, especially when hiring younger candidates, is offering them a one day trial. Have them come in, and put them on something that's loosely related to what they'll be doing. It's especially good if the thing you give them is seriously broken, sloppy, and disorganized. Tell them you'll be happy to answer any questions they might have. In a test like this, you'll actually get to see their thought process. There's really no other reliable way to know what someone is like to work with, unless you do something like this.

      --

      This signature has Super Cow Powers

    40. Re:the way to go by bonch · · Score: 1

      What good is a guy who can solve trivial problems on a white board when you need a guy who can solve complex problems in a dev environment with a bunch of reference material.

      Um, your statement raises the even bigger question of what good someone is who can't even solve trivial problems on a whiteboard.

    41. Re:the way to go by Anonymous Coward · · Score: 0

      I had the same experience - at Accenture.

      The interviewer described briefly a situation where a hotel was experiencing a serious drop in customer numbers and wanted me to present something to do about it.

      I naturally start to list possible causes and ways to check for it. Like, "falling numbers across the entire industry - ok, there are going to be data sources you can consult, such as industry associations", and "lower travel to the area the hotel is in - you can check for that by..", going on to "if the situation is unique to the particular hotel, then you have to consider doing etc etc".

      She rapidly and progressively got more and more visibly frustrated and dismissive muttering "okay, and?" until I finally mentioned "you could do something like a bonus or loyalty scheme..". That's obviously what she was looking for all along and she barks "tell me how you would design it and what measurements you would use, unfortunately you only have 2 minutes".

      If I ever run a hotel that struggles on the staff numbers, I'm probably not going to hire Accenture.

    42. Re:the way to go by interval1066 · · Score: 1, Insightful

      Yeah, having hires solve a direct problem seems good to me. During the interview process (if I am involved) I try to get one simple question in like "name an algorithm, any one." If they stammer and haw, which is surprisingly often, that's a mark against. If they can at least name Nagle's, or binary tree, or something that makes sense, they're in as far as I'm concerened. But giving them a damn term paper, that's just a waste of time.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    43. Re:the way to go by shentino · · Score: 2

      Or maybe they just have you write their code for free under the guise of evaluating.

      Poaching an evaluation for free consulting isn't exactly new.

    44. Re:the way to go by lgw · · Score: 2

      We ridicule this sort of thing as "what do I have in my pockets riddles". Playing "guess what answer the interviewer was looking for" is completely useless as a hiring tool.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    45. Re:the way to go by Tomato42 · · Score: 1

      But not remembering the name of the function will make you a bad coder in this test.

    46. Re:the way to go by lgw · · Score: 0

      I even go so far as to give them a couple of days to think it through, and send me code that compiles, along with written test cases / data.

      If only I could then hire the person who did the work! It's hard enough trying to find phone interview questions that can't be googled - giving the candidate time to get a friend to do the work for him will strongly favor dishonest candidates.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    47. Re:the way to go by Anonymous Coward · · Score: 0

      It proves you don't have experience if you can't remember printf("^^^ This guy is a fucking moron.") is the function to print a line in a console off the top of your head. Or MessageBox.Show("Hello World"); will popup simple dialog with an ok button. What else? for(int x=0;x100;++x){ /*etc*/}

      I mean, really, how hard is it to write a trivial program on a whiteboard?

    48. Re:the way to go by peragrin · · Score: 2

      they wouldn't call it a resource if it wasn't intended to be strip mined

      --
      i thought once I was found, but it was only a dream.
    49. Re:the way to go by Anonymous Coward · · Score: 0

      You miss the point. If done properly, you will not be flunked for this kind of test because you do, say
      printf("foo")
      instead of
      printf("foo",%s);
                The point is to see if in general you can write out some logically consistent and reasonable code to solve a problem. So, the code completion and framework documentation are irrelevant for this type of testing.

    50. Re:the way to go by anomaly256 · · Score: 1

      Somehow I don't think this is what they were doing, otherwise they would have given me more than 2 seconds to respond, and I would hope that pausing to think through the problem instead of rushing down one path or another would be a correct response .

      I do think this behavioral test is a good thing, only people who aren't really cut out to be developers would get angry at an impossible question. Real developers would relish the challenge :)

    51. Re:the way to go by anomaly256 · · Score: 1

      It's like you were actually there.. :)

    52. Re:the way to go by lexsird · · Score: 1

      Strip mining is for Asteroids. Are we there yet?

      --
      Take the Red Pill.
    53. Re:the way to go by Em+Adespoton · · Score: 1

      One company I interviewed with gave me the questions ahead of time and got me to submit my answers. They then grilled me on my answers when I came in, not the questions.

      To me, this is a much better way of doing things, as you can use whatever means you want to answer the questions, but you should be able to understand your answers without reference material and communicate the ideas to others -- skills that make a great team player.

    54. Re:the way to go by Ethanol-fueled · · Score: 5, Insightful

      On a side note i'm not that great with people skills so while i write the tests i no longer do the interviews - last too applicants ended up crying during the tests.

      Huh, you might work for my company. An entire software department in a company I may know about has jumped ship wholesale, with one person literally getting up and walking out with no notice, and chatter of the remainder leaving, because its run by an insecure touretty-aspie asshole.

      The funny thing is, he (you?) asks all new hires how they can "think outside the box" and make the department better. When people actually bring up useful suggestions, he gets all butthurt and snappy and puts them on his shit-list for making him feel stupid, harassing them at every opportunity. He's certainly one of you, raised in an affluent household and given everything he wanted while mommy made excuses for his rotten behavior. Working for the company is a double-edged sword - it is impossible to be fired for anything short of murder. It's hell when you get stuck with the wrong boss.

      But Ethanol, isn't harassment illegal?

      In corporate Amerika, harassment is not illegal unless the harassment falls under a protected category like race or gender. That means your boss yelling at you daily for inadvertently making him look stupid is not really harassment.

      But Ethanol, why doesn't anybody complain?

      Because the economy sucks and some people have families to feed. The ones who don't would not dare jeopardize their good references within the company, because nobody likes a complainer. You know those 3-page exit surveys you get? HR laughs at them and tosses them in the trash anyway.

    55. Re:the way to go by PeterM+from+Berkeley · · Score: 2

      Hello,

        I think they just didn't want to hire you, so they "failed" you on those two questions. They could then give half an hour on each to the person they actually wanted. Maybe their preferred candidate was the interviewer's brother in law or something.

      Then they justify choosing their BiL by saying "he scored the highest on our test!"

      --PM

    56. Re:the way to go by Splab · · Score: 2

      When I hired for the backend department which worked mainly with databases for a small telecoms I used to hand them some questions.

      Some of them was really basic database stuff, but others had no right answer, they did however, have downright wrong answers:

      E.g. a client reports performance problems with a certain function, you trace it down to the following query:
      "SELECT * FROM PICTURES"
      What do you do?

      This question is not really a trick question, but it weeds out those who have worked with databases but doesn't really know what makes them tick. A "right" answer is to discuss it, ask more about the structure or the needs of the client (can we limit the query somehow, is it returning a bazillion rows? Is it returning binary data? Is it a view?). A downright wrong answer is "I'll add an index".

      Personally I've only once been asked to do programming at an interview, they asked me to do a hashmap in pseudo code; I outlined the functions on a whiteboard and when it came to the actual hashing function I told them, that it isn't something I can do from the top of my head, but I know what book to look in.
      They really liked that, first of all I wasn't afraid of tackling an unknown problem, I didn't mind being exposed at the whiteboard and above all - I know my limitations.

    57. Re:the way to go by Anonymous Coward · · Score: 0

      An environment where people are hostile towards intelligence is about as awesome as it gets as an information worker. Alas, I missed that class on feigning proficiency and pleading ignorance.

    58. Re:the way to go by Surt · · Score: 1

      We use a take-home exam followed by phone screen (followed by in-person interview). To the best of my ability to detect, no one has gamed the take-home without being caught by the phone screen (and we have caught a few). So the phone screen, to me, is a key part of the take-home programming exam. Ask lots of questions about their work, why do something this way vs that, etc. Pretty easy to spot when someone else did the work.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    59. Re:the way to go by anomaly256 · · Score: 1

      This did cross my mind. There's also the fact that if they did hire me they would have had to pay a percentage on top of my wage to an external recruiter who got my foot in the door for me which reinforces this theory.

    60. Re:the way to go by Mia'cova · · Score: 1

      How does that matter? If you want a .Sort() say you want a .Sort(). It doesn't have to compile perfectly to make sense. What's the point in giving someone access to auto-complete and a framework documentation if they don't know what they want?

    61. Re:the way to go by ari_j · · Score: 2

      You're the kind of cheat who would rig the Kabayashi Maru...oh, wait.

      There really is value in recognizing not only that you can't solve a problem in the time allotted but also why you can't. There is also value in recognizing that value in others, and in working for people who recognize it in yourself. I would much rather have someone interrupt me at 9 a.m. to say they need some direction to get a task done by 5 than come in at 5:15 p.m. to tell me it didn't get done. I would also much rather work for someone who gives that added direction at 9 instead of just being ticked off about the whole thing.

    62. Re:the way to go by Renraku · · Score: 1

      But HR cannot easily administer and interpret that tests themselves. They can, however, apply a 'difference' condition to the number of years they've worked in the field and the level of their college degree. They're pretty good at that.

      --
      Job? I don't have time to get a job! Who will sit around and bitch about being broke and unemployed then?
    63. Re:the way to go by Anonymous Coward · · Score: 1

      Example for a graphic artist when they list Photoshop i give them gimp

      Any decent graphic artist would immediately walk out the door. Giving a graphic artist the Gimp is like giving someone that requires 3D Studio Max a broken crayon. Watching a graphic artist work in Photoshop or Illustrator almost immediately reveals if they are an amateur or a professional, and absolutely no one in the field takes the Gimp seriously. Most graphic artists would laugh at the mere suggestion.

      On a side note i'm not that great with people skills

      Shocking.

    64. Re:the way to go by lgw · · Score: 1

      I like that approach for new college hires. At least you get some weeding out before the phone screenings.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    65. Re:the way to go by thebrieze · · Score: 1

      Wish I had mod points.. but very true.. Language tricks and knowledge can be learnt. Solving brain teasers can be hit or miss. Being able to objectively evaluate multiple options and see the trade off's of each and apply them to find the optimal approach for the given situation is an invaluable skill and something that is not easily acquired. I have seen too many cases where people get through the interviews based on their knowledge of the platform or programming language, but are absolutely horrible in reality, since their code always has "issues" even if it solves the task at hand, because they never put it in context of the larger picture/system. Another critical skill is being able to write clean, structured code. I've seen too many "bad hires" because the code they do write once hired is a complete unmaintainable mess.

    66. Re:the way to go by rtaylor · · Score: 1

      A downright wrong answer is "I'll add an index".

      Oddly, a covering index could make it faster by reducing the IO for certain products.

      Still not a great answer but it isn't completely invalid if you really need all columns and all tuples.

      --
      Rod Taylor
    67. Re:the way to go by CannonballHead · · Score: 2

      In my particular case, I came in around 2:30pm (this was about 3 1/2 years ago, so I'm a bit foggy on the exact timing) and I asked, after about an hour, if I should keep trying. They said yes, please do.... so I kept trying until I thought it'd be close to when they'd want to leave (and I had a previous engagement that evening).

      But yes, I agree; asking for help on the job is a good idea. Utilizing the skills of your team members, being willing to say "hey, any ideas on how I might be able to do this?" or "can you check to see if I'm doing this correctly before I finish everything?" is something I have seen both ignored (and thus, stupid mistakes are done) and efficiently done (which, in addition to helping get stuff done, also helps the team ... work together as a team and "feel" like a team).

      As I recall, I was able to make headway on the problem. I got it to display the first set of results... oh, that's what it was. Given XML, display them in this page where designated... including pagination. By 4:30 or so, I had gotten the results displaying correctly and all that, but didn't have pagination done.

    68. Re:the way to go by Mia'cova · · Score: 1

      You'd accept "binary tree" as an answer to "name an algorithm"? Yikes.

    69. Re:the way to go by ChrisMaple · · Score: 1

      Particularly appealing is the interviewer who asks you to solve a problem the company has been working on and failed to find a solution to.

      For an optional bonus, you provide a solution, the company doesn't hire you but implements your solution profitably.

      --
      Contribute to civilization: ari.aynrand.org/donate
    70. Re:the way to go by pipedwho · · Score: 2

      But not remembering the name of the function will make you a bad coder in this test.

      Why? It's not like they're going to compile the result directly off the sheet of paper / blackboard / whiteboard.

    71. Re:the way to go by man_of_mr_e · · Score: 1

      Not really. People perform differently under different conditions. Some people get stage fright, and have trouble remember things when put on the spot like that.

      Whiteboard tests do absolutely nothing to help you know if someone will be a good hire. All it does is test for good whiteboard skills.

    72. Re:the way to go by Anonymous Coward · · Score: 0

      Any decent graphic artist would immediately walk out the door. ... no one in the field takes the Gimp seriously. Most graphic artists would laugh at the mere suggestion.

      I guess that's the point. It weeds out the arrogant assholes like you.

    73. Re:the way to go by treeves · · Score: 1

      You're confusing imaginary with irrational.
      irrational:e::imaginary:i

      --
      ...the future crusty old bastards are already drinking the Kool-Aid.
    74. Re:the way to go by locopuyo · · Score: 1

      One interview I went to the interviewer asked me to write code for an impossible task. I told him I don't think this is possible then tried a few things on paper to show it. Then the interviewer said it was possible and attempted to show me the answer and we stepped through the code line by line and I showed how it didn't work. He said oh I'll have to look this up later I thought I could do this before. Every interview I've ever had at a large company the questions and interview processes have been terrible, even worse are processes you go through at large recruitment companies like Robert Half. The interviews at smaller companies tend to be much more productive.

    75. Re:the way to go by trcollinson · · Score: 2

      Are you really attempting to say that writing code on a blackboard or a piece of paper in an interview setting is substantially similar to pair programming or getting a code review? I can't imagine how that comparison could be made at all. First of all, I have been in a lot of pairs and a lot of code reviews, I either know the person I am pairing with or who is reviewing me very well, or they have some stake in the situation that is equally as high as my own. Second, yes comfort and familiarity with your coding environment are important. I find nothing comfortable about "coding" on a blackboard with people staring at me who may be my next employer, and who have to look at 4 other candidates that day.

      That being said, I think asking a developer to develop is a good idea. I have often given developers a real world task to complete at home before they come into the interview (sent a few days ahead of time). They turn in their work, which they accomplish in whatever environment they feel comfortable, and then we talk about the results when they come in. It works very well, and it a lot less stressful on them than blackboard coding.

    76. Re:the way to go by amicusNYCL · · Score: 1

      Committing an API to memory and using auto-complete are two completely unrelated things. None of my code editors have auto-complete enabled, and anything that I have committed to memory is there because of the frequency that I use it. My point is that any competent programmer should never have to rely on auto-complete, I didn't say anything about memorizing APIs. If you don't know how to use what you need to, then look it up online. That's a better skill to have than using an editor with auto-complete. Auto-complete is a bonus, it shouldn't be a requirement for someone to be able to do their job. Force them to write everything by hand and look up whatever they don't know. If they don't know how to find the answers they're looking for, then they're useless. In my opinion, the two most important skills a programmer can have are being able to effectively troubleshoot problems, and being able to find the answers they are looking for. Anyone out of school can write code, but if you can't debug and you don't know how to do research then you're not ready for a job.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    77. Re:the way to go by Anonymous Coward · · Score: 0

      It's hard to understand because it's retarded. Why can't you understand that? You should probably kill yourself for being so fucking oblivious.

    78. Re:the way to go by interval1066 · · Score: 1

      "binary tree" is an algorithm. No need to split hairs. I think you need to re- read the article, then read something on that algorithm.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    79. Re:the way to go by black6host · · Score: 2

      On a side note i'm not that great with people skills so while i write the tests i no longer do the interviews - last too applicants ended up crying during the tests.

      If you can't conduct the interviews, because of your people skills, how can you work with, train and motivate your staff?

      Having said that, I too have poor people skills. But I've run development teams very successfully. I've managed non-technical people (I was an operations manager for a non tech company) and it was a disaster. But when I work with people who share my love of development and systems work in general, and who want to learn from me, I do rather well. I like to teach people things and help them grow in their chosen field. Then again, I only hired people that I felt were passionate about what they were doing. I had skill tests and all that prepared for them but a fair portion of my assessment of their suitability was their desire and whether or not I thought they would do well with my training and mentoring. "Prima Donnas" were never hired. I had to fire very few of those I hired in the technical arena. Now in the non-tech arena I once fired everyone in the building (not at the same time) but I inherited a staff full of the "This is the way I've always done it and I'm not changing" attitude. Needless to say I got out of non-tech industry. I wasn't good at it. The key is: Can you motivate your staff. If not, then you shouldn't be there.

    80. Re:the way to go by Anonymous Coward · · Score: 0

      They liked you better because you were good enough and cheaper. The rest was smoke up your ass.

    81. Re:the way to go by Anonymous Coward · · Score: 0

      only on slashdot can you find advice on how to not get hired.
      whoo hoo!

    82. Re:the way to go by sexconker · · Score: 2

      Well, they want to see your raw abilities, not your development environments abilities.

      "raw abilities" my ass. No one codes that way anymore. Shit would never get done if you had to hire someone who actually knew a language and environment completely.
      Working in language x, environment y, trying to do z? Regardless of whether you've never even seen x, y, or z, or if you're the fucking inventor of all 3, you're going to point your web browser at the google machine to look shit up at some point.

      I haven't touched C/C++ in ages. I've never touched Ruby. If I was asked to blindly code shit on a board/piece of paper, I'd probably just scratch my nuts then leave. If I was asked to actually work with them I'd jump into the existing code and environment (if any), start poking around, look up some reference material, and be on my way to getting shit done.

      There's a reason computer science focuses on concepts and algorithms more than individual languages and environments.

    83. Re:the way to go by sexconker · · Score: 1

      If they ask you to implement a common algorithm, and you can't do it without having to copy it from Google search results, they don't want you. Why can't you understand that?

      I'd prefer the candidate who said "I dunno, I'd just grab it from Google" over the candidate who invented the damn algorithm.
      Google has a better memory.

    84. Re:the way to go by antdude · · Score: 1

      Nice typo (too), lowercased "i" pronouns, etc. You made them cry from your tests? :P

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    85. Re:the way to go by buddyglass · · Score: 1

      Yes, yes, a thousand times yes! I've had one interview that went like this. Exactly one. Didn't get the job, but I thought it was a better measure of my ability to write code than having me write up non-recursive Fibonacci or binary search on a white board.

    86. Re:the way to go by Anonymous Coward · · Score: 0

      Sounds like fun!

      Imagine opening up a job for a musician.. maybe a keyboardist. Give him an instrument who has the keys rearranged in a manner inconsistent with his experience.

      Watch him try to play the damned thing.

      Then watch him cry, because he needs the job so bad, but there is some highly paid tie-guy that has dreamed this up for him.

      You read it right here on Slashdot, fellas. There are actually executives out there who will pay a salary plus benefits for things like this to go on.

      More fun than pulling the legs off of grasshoppers or shoving firecrackers up cat-sass.

      Oh, the fun of being one of the 1%!!!

    87. Re:the way to go by buddyglass · · Score: 1

      Wouldn't you be able to evaluate all these things to an even greater degree by sticking the candidate in a room for 2 hours and having him complete a slightly more involved coding task instead of ask him to write out snippets on a white board by hand?

    88. Re:the way to go by Machtyn · · Score: 2

      Perhaps these guys were so proud of their questions, they couldn't wait to tell you the answers to show how clever they were.

    89. Re:the way to go by anomaly256 · · Score: 2

      Or maybe I offended them by offering up a better solution than they had imagined :P

    90. Re:the way to go by osu-neko · · Score: 1

      Um, your statement raises the even bigger question of what good someone is who can't even solve trivial problems on a whiteboard.

      Depends on what you're hiring them for. Assuming their job doesn't involve solving trivial problems on a whiteboard, how good they are at that is pretty irrelevant. I can understand this test if you're an academic. It doesn't make a lot of a sense for testing the skills of a practicing software engineer, though. Sure, it can hint at them, but you could easily design a much more accurate test, and any more accurate test will almost certainly involve not using something other than a whiteboard. I would consider being able to design a far better test than that to be an even bigger reflection of your skills. The people who think the whiteboard test is a good one obvious lack the skills necessary to do more complex and genuine problem solving...

      --
      "Convictions are more dangerous enemies of truth than lies."
    91. Re:the way to go by TheCouchPotatoFamine · · Score: 2

      programming with pointers is for weenies! real programmers never use a reference, amirite?

      --
      CS majors know the time/space tradeoff, but they never get taught the 3rd, crucial, tradeoff of the set: comprehension!
    92. Re:the way to go by anubi · · Score: 1

      I guess tests like this separate companies who are in business to make money from companies who are in business to fulfill a personal need of "being the boss".

      If you needed the services of a surgeon, would you insist he use tools he was not familiar with?

      Of course, that was a trick question... of whether the surgeon was operating on YOU or your Mother-In-Law... ;-}

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

    93. Re:the way to go by osu-neko · · Score: 1

      gah... edit failure (left a "not" after rephrasing that shouldn't be there).

      --
      "Convictions are more dangerous enemies of truth than lies."
    94. Re:the way to go by swalve · · Score: 1

      If you say you know C, then you really shouldn't need the documentation to complete a simple test in C. If you can't program in a simple text editor, you are just a monkey poking at shiny objects until you get the right result.

    95. Re:the way to go by lgw · · Score: 1

      Oh, we also do that. But the more data you can get, the better (I'm primarily looking for design skills, so anything I pick up on coding style is bonus information).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    96. Re:the way to go by swalve · · Score: 2

      Yes, that's exactly what it is like. A good carpenter would just use a tape measure, which is the better tool anyway. The test is for problem solving, not symbol manipulating.

    97. Re:the way to go by superwiz · · Score: 1

      Autocomplete expands the range of your available tools. Looking things up is only useful if you have a vague idea of not only how things work, but also of what is available. Autocomplete won't help someone doesn't understand algorithmic complexity to write efficient code. Nor will it help someone who has no clue how to identify and manage abstractions. When your tools have autocomplete, then you choose languages and solutions most appropriate for the job. When you have to research everything, your ability to pick the best available solutions becomes severely MORE limited by time constraints. There is a vaaaaast difference between what you don't know and what you know but don't remember in detail. Without autocomplete, most esoteric api doesn't get used. People, being what they are, often drop the ball on doing exhaustive research on everything available. With autocomplete, one of the levels of complexity is removed. So the research that you do ends up being on more high-level solutions. To be more concrete, if you don't have autocomplete, you spend X amount of time on looking up API and Y amount of time on looking up best solutions to a particular problem. If you do have autocomplete, you spend Y+some fraction of X on looking up solutions. I actually find, that I remember MORE api when I use autocomplete. Just because the amount of code that I write multiplies by a factor of roughly 5. There is a large difference between not knowing how to do research and knowing what is too trivial to have to be researched. If a machine CAN figure it out for you, then it should be figured out by a machine. This whole attitude that computers should not be used to assist with trivial tasks reminds me of how someone who just learned arithmetic might look down on those who use calculators to do arithmetic (even though every accountant who is much more proficient in arithmetic than grade school student would use a calculator).

      --
      Any guest worker system is indistinguishable from indentured servitude.
    98. Re:the way to go by internettoughguy · · Score: 1

      The candidate who invents as he goes and has algorithms named after him is the one you want. But the guy who hacks together a quadratic time algorithm when Google can give him a perfectly good linear one certainly isn't.

    99. Re:the way to go by JoeMerchant · · Score: 1

      I have usually hired "graphic programmers" people expected to turn data into pretty pictures. Most applicants have 5+ years of "graphic programming experience in C and C++" on their resumes. I give a simple test:

      Here is some C code which draws an empty box on the screen.

      Add code which draws 10 cycles of a sine wave, linearly decaying from 90% amplitude to 10% amplitude.

      So, the environment is ready, there's the compile & run button to test your work, no time limits, I'll be in the next room working, just get me when you're ready.

      I think I've given that test 40 times over the last 15 years, I think I've had a total of 6 people who actually produced a sine wave on the screen.

      Nearly every applicant who has listed more than 10 years of "graphic programming experience in C and C++" got up and walked out within 15 minutes, none of them ever produced any C code of their own. A few guys would fight with it for hours and hours and still get nowhere. One of the marathoners was getting somewhere slowly, but he was drawing each half of a sine wave with its own for loop and calculating several parameters for each loop by hand on paper, and they weren't matching up very well on the screen. The bulk of them tend to realize they are getting nowhere within 30 to 45 minutes, the excuses they give tend to be very revealing about their personalities - some actually blame me saying the test is unfair, others want to work on it that night and get me an answer in the morning, the only one who ever came back with an answer was an attractive young woman who wore a low cut blouse on her return visit with the answer, she was shockingly unable to complete a similar test onsite that day. I wish I had been hiring for sales or marketing, sadly, I actually needed someone who could program for the programmer position.

      Even among the people who could write the code, a couple of them insisted on calculating an exponential decay curve even though the instructions specified linear - one asked me for additional parameters to specify the exponential decay, I told him it was linear, he still left his answer as exponential. One fresh East German immigrant was a real wizard, he e-mailed in a perfect answer, when we interviewed him on-site I asked him to do it again, but with 5 cycles in polar coordinates, he finished in 15 minutes with great looking code - we made him an offer and he accepted, but 3 hours later phoned back and sheepishly declined, it seems he hadn't discussed the possibility of moving with his girlfriend.

      Over the years, I hired in a couple of people who performed marginally on the test, couldn't do it themselves but managed eventually, with a lot of help, we needed people and they were the best who had interviewed. Those people never did stop needing a lot of help. The ones who did well on the test consistently turned out to be better employees.

    100. Re:the way to go by Culture20 · · Score: 1

      If I was asked to blindly code shit on a board/piece of paper, I'd probably just scratch my nuts then leave.

      And you'd be the butt end of jokes for the rest of the hiring process; I know because we've laughed at people who gave up without trying to step through simple C code that was provided for them. Raw computational logic is far different from knowing an IDE inside and out. If you have to test even the tiniest loop output to see what it does, you don't belong in IT.

      There's a reason computer science focuses on concepts and algorithms more than individual languages and environments.

      That was GP's point. Git yer own.

    101. Re:the way to go by buddyglass · · Score: 1

      I'd still think you could learn more about someone's design skills with a larger, more involved task. Something not suited to whiteboard work.

    102. Re:the way to go by Dragon+Bait · · Score: 1

      As opposed to writing code in an IDE and having it judged over the shoulder of your code reviewer or pair programmer?

      While working at my first programming job out of school a 3rd level manager and a 4th level manager came to talk to my 2nd level manager asking for a developer. They needed a program written, debugged, and put into production by 5pm that night. The 2nd level PHB nominates me and as I'm coding in a new IDE in a language dialect I hadn't seen before, 3rd-level PHB stood over one shoulder while 4th level PHB stood over the other. They were passing a bucket of TUMS between them. I finally concluded that they cared a lot more about this program than I ever would -- so I started making the margin bell ding while saying "oh no" under my breath. They would panic, take a handful of TUMS each and ask what happened.

      I think I resigned a month or so later.

    103. Re:the way to go by Jimmy+King · · Score: 1

      Ugh. Robert Half. I won't even talk to those assholes anymore. Last time I went in there they made me take tests on Perl. The examples did not use strict and whoever wrote the questions didn't know the difference between "$var" and '$var' and there was something where some sort of brackets was used incorrectly on one question as well.

      My most recent interview, which was just a couple months ago and I got the job, I was pretty happy with. I e-mailed some short code samples in a few different languages a few days before my interview. In the interview we just talked more high level design and architecture and then I walked them through some of the code I had written, explaining what I had done and why.

    104. Re:the way to go by Anonymous Coward · · Score: 0

      Oh, they found the right candidate. The one they had in mind all along, who bathes, washes his clothes, brushes his teeth, drinks and urinates 50 feet from the bobbing corpse of his dead aunt that has been floating in the ganges for the past 5 months. Oh, he'll work for a bowl of rice and a moldy fishhead a day. I bet he never got that interview question tho....

    105. Re:the way to go by geminidomino · · Score: 1

      This seems to explain some of the idiotic updates Google has been rolling out to Chrome and other products. Brilliant, but lacking wisdom.

      Not everyone uses CHA as the dump stat...

    106. Re:the way to go by lgw · · Score: 1

      Too time consuming. I spend a ful 45 minutes on my design discussion, and it's mostly verbal. I've used this when I didn't share a (programming) language with the candidate. Other people assess different areas. Since we don't insist the candidate knows the language we primarily work in, an involved coding test wouldn't work. (For the 2-hour coding test we do, if the candidate knows a related language we help him over the compiler errors - anything but a language trivia test, please).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    107. Re:the way to go by Anonymous Coward · · Score: 0

      I've taken some of the online programming tests, usually from companies saying they want "the best of the best, the brightest, most productive, blah blah blah." Yeah, so, in school and anywhere I have ever worked, I have consistently produced "top of the class" work, not 100% perfect all the time in half the time of anyone else, but always as good as and usually better than the best other people in my class or team, and as fast as anyone.

      These tests are usually just esoteric crap... obscure order of initialization tricks, seriously deranged pointer syntax, capitalization matters / doesn't matter tricks, more questions than I can answer in the time allotted, and on and on. My scores, when they give them, come back as something like "sorry, you are in the bottom 35% of applicants." Compare this with my GRE scores, 790 math, 800 logic, and 670 verbal, and I was finishing those tests (and finished rechecking my work) in less than half the time allotted. Sure, the GRE is esoteric crap and not directly applicable to programming knowledge, but come on, the people making up these programming tests are just arbitrary and clueless.

      Well, there was this one guy from the Philippines who was clever, he had identified a performance problem in the Qt libraries under windows and he was basically asking for an order of magnitude improvement in the speed - it was doable, but it looked like about 30 hours work, a bit steep for a "job interview" with a guy who's probably going to take your answer and disappear.

      O.K., so I have been there, done that, and I know where I fall relative to the programmers that are out there, bottom 35% is hardly representative of my productivity... If their "best of the best" programmers are producing code anything like what is on their tests, no wonder projects like the infamous Denver baggage handling system never get completed.

      The way to get hired is to know the people who are doing the hiring and have them know you, have them know what you're worth before you need a job. Let them know you're available and when they have an opening, you're in. The trick is for you to be available when they have an opening, without dicking over your current employer too badly. Thanks to the wonderful turn in the economy since 9/11, I have had 5 jobs in the last 8 years, job before that I had for 12 years. I only left one place by choice, others were either shutting down or leaving town. Leaving by choice feels like you're hurting your employer, but not nearly as much as getting dumped on the curb actually hurts you.

    108. Re:the way to go by internettoughguy · · Score: 1

      A simple trick for doing a hash map for integer keys is just to modulus each key into the size you want the hash map. So if you want to chuck a bunch of values into an array, you just go:

      array[key%array.size] = value

      Only problem is that I often forget what year it is when I'm under stress.

    109. Re:the way to go by JoeMerchant · · Score: 1

      I interviewed once as a "Systems Engineer," bridging the gap(s) between electrical, mechanical, optical and software. I interviewed with each department and each one grilled me in their own manner, the software guy had a little statistics riddle about black and white marbles in jars, but what they were really looking for was somebody who could understand every department and communicate effectively with all of them. I think I fit the bill, the top guy made noises like an offer would be coming shortly. But, we were waiting for the VP to get back from overseas and sign off on the position. And we waited, and the stock tumbled 20% over the next 2 weeks, and they never hired anyone....

    110. Re:the way to go by Mia'cova · · Score: 1

      Splitting hairs? It's a data structure, not an algorithm. There's a pretty fundamental difference.

    111. Re:the way to go by heironymous · · Score: 3, Insightful

      When i do it i make sure to use an environment that has the same capabilities but they are not familiar with.

      If that really were a good idea, then do more of it. For example, give them only Dvorak keyboards if they are fluent in qwerty. See how silly that sounds? Introducing unnecessary cognitive overhead isn't testing much of anything except whether the applicant is willing to accept ridiculous constraints just because they are directed to do so.

      And actually I suspect that obedience is the real property your company needs to test for anyway.

    112. Re:the way to go by NotSoHeavyD3 · · Score: 1

      You could always hire them as a contractor for 6 months to a year and if they do alright convert them to full time employees.

      --
      Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
    113. Re:the way to go by lgw · · Score: 1

      Wow, I'd fail hard on trying to find what to include to get a sine function. Well, I'd probably grep *math* for sin. Other than that, that's a neat pactical coding test!

      --
      Socialism: a lie told by totalitarians and believed by fools.
    114. Re:the way to go by lgw · · Score: 1

      Asking someone to solve fizzbuzz on the whiteboard will occasioanlly make you miss a good candidate with stage fright, but it's an imperfect world. Far more important is to avoid hiring someone who can't actually write a single line of code. You'd be amazed how common that is.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    115. Re:the way to go by lgw · · Score: 1

      Which is great until you need to solve a problem that can't be Googled because no one has solved it yet. Admittedly, this never occurs in many "business programming" careers, so if you need someone to create an inventory database, I'd agree with you (though I would ask them to explain normalization - it's shocking how bad programmers can be at database stuff).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    116. Re:the way to go by Fujisawa+Sensei · · Score: 1

      Please enlighten us as to which company you work for, so we can strike it off the list ahead of time.

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    117. Re:the way to go by lgw · · Score: 1

      That's true in C, but Java is more abount the monkeys and the shiney. I used to half-believe that before I prgrammed Java professionally, but now I'm certain of it. Ook oook.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    118. Re:the way to go by timeOday · · Score: 3, Interesting

      Well, they want to see your raw abilities, not your development environments abilities.

      After migrating from C++ in emacs to Java in Netbeans only recently (and maybe a bit grudgingly), I have been spending some time looking over the shoulders of IDE whizzes and found something to admire. One guy I watched basically writes software backwards, starting with a small kernel and "refactoring" it up to a program by referring to classes, methods, and parameters that don't exist, and having the IDE create the skeletons with a few hotkeys. (Not to mention more obvious things like auto-complete and creating imports). I was surprised how fundamentally the tools affect the workflow of somebody who first learned to program using them.

    119. Re:the way to go by heironymous · · Score: 1

      I guess that's the point. It weeds out the arrogant assholes like you.

      No. It weeds out those who take no pride in their tools or their work. I cannot imagine a chef who doesn't have a preferred set of knives. Why should we expect otherwise in other artistic endeavors?

      Unless that's your point: that programmers are interchangeable.

    120. Re:the way to go by nabsltd · · Score: 1

      Because knowing there's a big difference between strcat, strncat, strcpy, strncpy, wcscat, and wcsncat is important. One small "typo" on the whiteboad might mean the logic is completely wrong, but an IDE with online help and function/argument completion would allow you to make sure to use the right one in a real work situation.

      Or, what if you use a method/function on an object that doesn't support that method? Will the tester know it wouldn't work, or would they just assume that any referenced function is implemented on a whiteboard in the library? Either one could lead to an incorrect evaluation.

    121. Re:the way to go by tzanger · · Score: 1

      You shouldn't need code completion or man pages for the types of simple tests you should be asked in an interview. A second interview where you might have to work with a simple library you've never encountered before, sure, there should be a shell or whatever library API documentation you need, but I see nothing wrong with interviewing or being interviewed with nothing more than a piece of paper.

    122. Re:the way to go by heironymous · · Score: 1

      In corporate Amerika, harassment is not illegal unless the harassment falls under a protected category like race or gender.

      A minor quibble. Even outside of a protected class, it's still illegal, but the burden of proof falls upon the plaintiff instead of the company. This makes such cases harder to win, but not impossible.

    123. Re:the way to go by syousef · · Score: 2

      Too often the interviewer's questions are loaded in two different ways - there is no one right answer and not understanding this or dismissing anything outside the narrow set of answers he/she is looking for shows a lack of maturity on the interviewers side of the table.

      Agreed. The interview is often a very good indicator of what the job is like. It's just as much of a way for the interviewee to evaluate their prospective employer as it is for the employer evaluating the employee. Even if HR is administering the test or it has been outsourced, that tells you something about how you'll be treated. I remember being rejected based on one of these idiotic interviews for one particular job. It was crushing at the time but in hindsight boy am I glad I didn't get that job! It certainly didn't hurt my career in the long run.

      --
      These posts express my own personal views, not those of my employer
    124. Re:the way to go by tzanger · · Score: 1

      Whiteboard tests do absolutely nothing to help you know if someone will be a good hire. All it does is test for good whiteboard skills.

      Utter nonsense. Are you saying you can't hold a conversation about software development or some new algorithm you read about online without a fucking IDE in front of you? The test isn't measuring your ability to write flawless C on a piece of paper; the test is measuring your ability to think through a problem, come up with intelligent questions and to display your problem solving skills. Stage fright happens, of course, but any interviewer worth his salt will be able to not only recognize it but also be able to help the poor interviewee off the cliff, so to speak.

    125. Re:the way to go by stanlyb · · Score: 1

      For such a guys like you, i have two answers:
      1.Make a program testing if there is only one bit set. Make it as fast and short as possible.
      2.What is polymorphism? It is actually a bridge pattern between an abstract factory pattern and strategy pattern, you could say even a singleton pattern from the class view of point, and facade pattern from the object point of view.
      Did you got your answer now? Then see you, and thanks for the fish.

    126. Re:the way to go by tzanger · · Score: 1

      This is like asking a craftsman to build a cabinet without using a square.

      I think there are an awful lot of people commenting on this story who don't get why whiteboard/paper interviews are useful.

      It's not like asking a craftsman to build a cabinet without using a square. You're not asking the interviewee to write something that'll compile. It is like asking the craftsman to describe how he would build a cabinet. It's like asking him to take you through the steps of creating a beautifully routed inlay and piece together the door. You're not asking him to build anything, just like you're not threatening the software interviewee that you'll type his code in and dismiss him if it doesn't compile.

      Honestly, are you guys that short-sighted or insecure that you can't TALK about a problem or write some pseudocode??

    127. Re:the way to go by interval1066 · · Score: 1

      http://en.m.wikipedia.org/wiki/Binary_tree In the first paragraph.
      You didn't go to school for this stuff did you?
      Now I'm on my way to the liquor store, so everyone do the dinosaur.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    128. Re:the way to go by heironymous · · Score: 1

      Wouldn't you be able to evaluate all these things to an even greater degree by sticking the candidate in a room for 2 hours and having him complete a slightly more involved coding task instead of ask him to write out snippets on a white board by hand?

      I agree. Even more telling might be spending a little time looking at their open source contributions, which reflect actual development, unencumbered by nerves, the clock, and an unfamiliar environment.

    129. Re:the way to go by lucifuge31337 · · Score: 1

      This is why (even though the laws aren't so severe in the US) I like to hire people on temp-to-perm contracts. If they don't work out, they are gone when their contract ends. Call it a probationary period.....

      Thank you California labor laws for making me do this, and not being able to offer the bulk of these people who end up working out health insurance and other benefits as soon as possible.

      --
      Do not fold, spindle or mutilate.
    130. Re:the way to go by Call+Me+Black+Cloud · · Score: 2

      I do the tech interviewing for our project and we are pretty rigorous in our screening and our interviews. The make or break quality, though, is attitude.

      You can teach skills but you can't teach attitude. In fact, my summer intern this year wasn't even a programmer - he was a double major in math and econ - but his spirit and attitude were outstanding so I brought him on (sort of a Pygmalion test of skills vs attitude).

      After his internship was up we hired him as a part-time programmer, with an eye towards full-time employment if he wants to go that route. He fits in great with our team and he's picking up programming very fast (he'd only had one Java class previously).

      Remember, you're interviewing the company as much as they are interviewing you.

    131. Re:the way to go by AuMatar · · Score: 0

      The problem with this is absolutely noone decent would even consider a temp to perm contract. We know that it's a way to try to underpay us for months while dangling a job under our nose at the end. The only candidates who apply for those are people who didn't read the fine print, the desperate, and the mediocre.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    132. Re:the way to go by AuMatar · · Score: 1

      Are you paying them for this real world test? If not, why the fuck would they do it, especially before the interview? If it's actually real world (as in, will be put to production) code, I want to be paid. If it's a bullshit question to test my skills, on top of an interview, you're taking up way too much of my time. I'd only even consider it after the interview, and then I better really want the job.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    133. Re:the way to go by lucifuge31337 · · Score: 1

      The problem with this is absolutely noone decent would even consider a temp to perm contract. We know that it's a way to try to underpay us for months while dangling a job under our nose at the end. The only candidates who apply for those are people who didn't read the fine print, the desperate, and the mediocre.

      I suppose you are a super starr who doesn't have to bend to the wills of those who might hire you.

      I have no problem finding candidates this way, especially since I explain WHY it's a 3 month contract. Good thing I'm not looking for prima donnas.

      --
      Do not fold, spindle or mutilate.
    134. Re:the way to go by AuMatar · · Score: 1

      If you're testing their library/framework knowledge instead of their fundamental understanding of programming and problem solving, unless you have something they'll need to work on that goes to production that week, you're doing it wrong.

      Granted whiteboards aren't the best, but they're frequently more convenient to read off of than staring over their shoulders at a computer screen. But the test giver needs to give some allowance for minor mistakes due to it (misspelled variables, missing ; , sloppiness due to not having cut/copy/paste, etc).

      --
      I still have more fans than freaks. WTF is wrong with you people?
    135. Re:the way to go by JoeMerchant · · Score: 1

      Wow, I'd fail hard on trying to find what to include to get a sine function. Well, I'd probably grep *math* for sin. Other than that, that's a neat pactical coding test!

      People usually got that (math.h), and if they didn't I gave it to them. It didn't usually help.

    136. Re:the way to go by AaronLS · · Score: 1

      "last too applicants ended up crying during the tests."

      Really? Is this not enough of a sign that there's something wrong with this process? It sounds like you are trying to break people instead of test them. Graphic design is usually not a matter of life and death and shouldn't be a boot camp experience, and if your testing procedures are so ridiculous that you are bringing people to tears then its time to rethink things I think.

      Good interview processes discover a person's potential, not their capabilities.

      Let me preface this by saying I have used many open source programs and libraries and find many of them useful. I have used GIMP off and on for a year and Photoshop for many years before that, and the same is true for my brother who for the most part agrees with my assessment of GIMP. Everything in GIMP feels unnatural, non-intuitive, and usually requires alot of googling before I can figure out how to accomplish what I need to(versus Photoshop that usually is intuitive enough to figure out without references). When I read some bug/feature reports/requests on GIMP it is clear it is a case of the designer believing they know what is best, and dismissing the concerns user base. Granted it is free and that's their decision if they want to do things their way. The point I'm getting to though is that forcing someone to use GIMP instead of Photoshop on the spot is a little extreme. I understand your goal, but they are such different beasts that I feel that's a little eccentric. I think if I were put through that my first intuition would be that these eccentric approaches are probably also unnecessarily forced into projects on a regular basis despite the best interests of the projects' success.

      If your goal is to test critical thinking, there's plenty of ways to do that within Photoshop. Photoshop is very much like math in that there's usually lots of different ways to approach the same solution, and if you formulated the task appropriately you would give them an opportunity to demonstrate their critical thinking. There's also the same aspect of quick and dirty versus maintainable/flexible that you'd find in programming, where you can ask them questions like "If we needed to swap out this part of the graphic every week, what would you do to allow those weekly edits to be as efficient and consistent as possible without?" Someone with good critical thinking will think about how they can structure the layers and effects/macros so they don't have to manually repeat the same steps every week.

    137. Re:the way to go by stanlyb · · Score: 2

      Actually, here is who this guy reminds me of: http://www.youtube.com/watch?v=zP0sqRMzkwo

    138. Re:the way to go by AuMatar · · Score: 1

      I don't. There's a negative unemployment rate in my area for programmers. It's a sellers market. And even in hard times, that means I may miss out on one job, and it will take me a whole extra 2-3 weeks to find the next one. That's why I have a years salary banked. Job interviews are a two way street- you have to be a good fit for me as well. I'm not willing to take a risk on an employer who isn't willing to take a risk in me. Nor will anyone else decent. You don't see it eliminating candidates because the good ones never even bothered to apply.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    139. Re:the way to go by Mia'cova · · Score: 1

      "In computer science, a binary tree is a tree data structure"

      Yes, it starts by saying that a binary tree is a data structure... You enjoy your drinks. And yes, I do have a computer science degree.

    140. Re:the way to go by stanlyb · · Score: 1

      Why stop here? Let them use only black on white fonts. No syntax coloring (too distracting), not bold/italic, actually not even graphics. Let them write line by line, on 80x25 text screen, and if they make mistake, erase the whole program and let them start from scratch, as every real developer should do.

    141. Re:the way to go by C10H14N2 · · Score: 2

      Had one of these interviews awhile ago. I'm prone to getting spooked under interrogation. But, in an interview I conducted, I was able to recognize our candidate was both brilliant as hell and nervous to the point of babbling (Aspie galore). We hired him. He _is_ fucking brilliant, but sucks at interviews.

      If your main goal is to weed people out by putting them in an unnatural setting for the purpose at hand then test their skills using tools totally removed from how they are actually performed, yes, you may find that one bright shining star who can do and teach, but you'll also write-off as fools legions of people who are gifted as hell but just don't function in that environment. Chances are, though, you'll get middling candidates who have just enough rote knowledge to pass your ten minute test, but would pale in comparison when the test takes weeks, months or years with all the proper tools and resources available.

      Had a whiteboard Nazi been at the helm during the interview, we'd never have hired our best engineer.

    142. Re:the way to go by jeff4747 · · Score: 2

      Because you don't want to pay your developers to spend days solving problems that have already been solved. You want them to spend minutes looking it up on Google.

    143. Re:the way to go by Lord_Naikon · · Score: 1

      That only works well when the keys are randomly distributed, which is rarely the case. Multiplying the key by a prime number (with respect to the size of the array) first avoids a lot of the degenerate cases occurring in practice, but is still not truly "random" as a proper hash function should be.

    144. Re:the way to go by tzanger · · Score: 2

      Chances are, though, you'll get middling candidates who have just enough rote knowledge to pass your ten minute test, but would pale in comparison when the test takes weeks, months or years with all the proper tools and resources available.

      If you're using a ten minute whiteboard test as your only rule of thumb, then you deserve to hire idiots.

      I'm saying that being able to use a whiteboard or piece of paper or back of napkin to describe a problem set and how you'd work your way through it is a fucking valuable skill, and one I'm specifically testing for. I'm not going to wait an hour to have a candidate come in and set up the workstation exactly as they will be using it should they be hired for ANY stage of an interview. That's as ridiculous as making the candidate jump through hoops and answer stupid brain teasers or trivia about computing.

      People get nervous in interviews. If you can't adjust the interview to try to accommodate them, or be personable enough to recognize their nervousness and "talk them down" until they can get their geek on (as another poster wrote)... then you're failing as an interviewer. I don't care how brilliant a person is, if they can't work out a problem on paper or talk their way through a solution, I'm not hiring them.

      I think a lot of the people railing against whiteboard tests are either under the assumption that I'm judging code quality or syntax, or that that's the only test in my arsenal. It's a really quick way to get a good feel for the technical prowess and personality of the interviewee, nothing more.

    145. Re:the way to go by hibiki_r · · Score: 1

      An actual programming assignment is a key part to the interviewing process of my current employer: A day or two before the interview, you are handed a relatively small codebase that uses all the base techs almost every project uses. The interviewee will be asked to add a feature to it. We measure if the candidate can actually solve the problem, if he paid any actual attention to the original codebase, and how he adds the feature: There's always more than one way to do it, and the code is weak on purpose, to provide the candidate opportunities for refactor. It has a very good success rate at finding people that can actually do the job.

    146. Re:the way to go by smellotron · · Score: 1

      One small "typo" on the whiteboad might mean the logic is completely wrong, but an IDE with online help and function/argument completion would allow you to make sure to use the right one in a real work situation.

      That's why interviews are interactive events. If someone doesn't remember the order of parameters for strncpy, they negotiate some assumptions (or ask for reference assistance) and move on with the problem. It's not the end of the world, provided they know the important bits about the function and that they recognize the gap in their knowledge/memory.

      OTOH, if someone says they are an experienced programmer in $language_or_library, then they had better know some of those APIs down cold. Programming is hard when you are constantly looking up reference material (thus getting pulled out of "the zone").

    147. Re:the way to go by Anonymous Coward · · Score: 0

      No, that would be *unreal*. Irrational would be if they asked you to use something like *pi* in the calculation.

    148. Re:the way to go by smellotron · · Score: 2

      Whiteboard tests do absolutely nothing to help you know if someone will be a good hire. All it does is test for good whiteboard skills.

      In my experience, whiteboarding encourages the interviewee to talk about the problem and his/her approach in a fashion similar to rubber duck debugging. I don't want to share a repository with a developer who cannot get past this step. What whiteboarding should not be is a confrontation between interviewer and interviewee. Stage fright happens, people forget things on the spot, and a good interviewer should take action to help steer an interviewee out of the hole and back to solving the problem at hand.

    149. Re:the way to go by StikyPad · · Score: 1

      What you're describing is top-down programming, and to be fair, the top-down vs bottom-up debate* has been ongoing since long before there were IDEs, and doesn't even have much to do with an IDE except that automatically generated code stubs have made it easier.

      * Debate is probably the wrong word. It's usually a matter of using the appropriate development style for a given project/team, though as with anything else, you'll find people who adhere religiously to one or the other.

    150. Re:the way to go by smellotron · · Score: 1

      But the guy who hacks together a quadratic time algorithm when Google can give him a perfectly good linear one certainly isn't.

      This assumes that big-O complexity is the most important aspect of the job. Plenty of real-world problems involve small datasets or situations where "easy to implement correctly" trumps "performs optimally". But since everyone gets to use the Internet at work nowadays, I'd rather pick the guy who can derive an inefficient algorithm over the guy whose answer is, "The Google Knows."

    151. Re:the way to go by superwiz · · Score: 1

      And make sure that you don't spoil them with descriptions of error messages. They should be lucky if the compiler prints out "error" when it finds one.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    152. Re:the way to go by randyleepublic · · Score: 1

      Jesus H. Christ! You managed to interview at the only two rationally hiring companies in the history of the universe! I am so fucking jealous!!!

      --
      Social Credit would solve everything...
    153. Re:the way to go by smellotron · · Score: 1

      ...in an interview I conducted, I was able to recognize our candidate was both brilliant as hell and nervous to the point of babbling...

      Well, it sounds like you are a good interviewer, and your strawman "whiteboard Nazi" is not. It seems that the underlying problem is not the practice of whiteboarding (which is a useful tool), but knee-jerk cuts from inattentive interviewers (who will make bad decisions with any tool).

    154. Re:the way to go by man_of_mr_e · · Score: 1

      I think it would be more than occasionally. I'd hazard that as many as 50% of compentant candidates would fail a whiteboard test. That's entirely based on my experience with other developers and no way an empiracal fact, but I think it's a lot higher than you might realize... I mean, by definition, if they fail your test, you won't ever know how good or bad they really are.

      You really underestimate how poorly people do when put in a spotlight. Critical thinking stops. Ability to remember evaporates. Things you can otherwise do without even thinking become a challenge. And Lots and Lots and Lots of brilliant people are like that.

    155. Re:the way to go by smellotron · · Score: 1

      Remembering finer points of an API is not an "ability".

      I think people with very strong memories for details would disagree with you. It most definitely is an ability, and it should be weighed along with all of the other abilities the interviewee has.

      Remembering API base is about as much a skill as spelling is a skill.

      If your "whiteboard tests" are solvable with nothing more than a memory of APIs, then You Are Doing It Wrong. The problem should warrant discussion and pseudocode in order to be useful on a whiteboard.

    156. Re:the way to go by man_of_mr_e · · Score: 1

      I said nothing about having an IDE in front of you. Where exactly did you jump to that conclusion from?

      I said that lots of people simply shut down when put on the spot like that. I consider myself a pretty good public speaker, when i've had preperation on the topic and the ability to consult my notes. But having a random puzzle thrown at me, then told to figure it out on a white board in front of people that are doing nothing but judging your every move still makes me lock up. In one such interview, I couldn't even remeber the name of my high school when asked.

      So please don't act like this should be a breeze for anyone that knows what they're doing. You're being ridiculous.

    157. Re:the way to go by Animats · · Score: 2

      Then they added the caveat 'What if % is an expensive operation? how would you work around it?'

      Do they program really low end microcontrollers, or what?

      That's a reasonable question for people hired to program very low end microcontrollers. Something in the ATTiny11L class, price about $0.35 each, might need that. If, for example, you're writing code for a transponder key for a car, you might have to cram a crypto algorithm into a device that only has 8-bit add, subtract, and shift. This sort of thing is Not Fun. Especially since you usually have to program the thing in assembler.

      Around $5 per CPU, you generally get enough machine to support C.

    158. Re:the way to go by anomaly256 · · Score: 1

      No, they write websites in ruby. The question wasn't relevant to the task at hand, just a critical thinking test. A critical thinking test where pausing to think about the problem was apparently the incorrect response.. *shrug*

    159. Re:the way to go by S.O.B. · · Score: 1

      A binary tree is a data structure. A binary tree search is an algorithm.

      I hope you never interview me. It's never good to tell the interviewer that they don't know what they're talking about.

      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    160. Re:the way to go by man_of_mr_e · · Score: 1

      I would agree that being able to do what you suggest is a valuable skill. But it is not a skill that defines a competant programmer. Lots of people can have that skill and be terrible programmers (i've seen them, they typically give great presentations on a given technology, but they can't ship a real product to save their lives).

      You are prizing a communication skill, and somehow thinking it translates to competancy as a developer. Certainly, communication skills are very important. But to me, I can live with a guy that can't do a whiteboard test if he delivers quality code on time.

      Apparently, you would rather have sloppy developers that never make a deadline, so long as they can work through a problem on a whiteboard.

      I would count myself blessed to fail one of your interviews.

    161. Re:the way to go by smellotron · · Score: 1

      Or maybe I offended them by offering up a better solution than they had imagined :P

      I've had a few interviewees provide better answers than I had thought up. I don't understand why an interviewer would get offended by it, I think it's "friggin' awesome" when that happens!

    162. Re:the way to go by man_of_mr_e · · Score: 1

      I think the person that doesn't get something here is you. You don't understand that interviewing requres a different mindset from problem solving. When someone goes to an interview, they've prepared themselves to be interviewed. They're prepared to talk about their history, how they can contribute to the company, why they should be hired.

      Many, if not most coders require time to get their head in problem solving mode, and the stress of an on the spot, randomly selected problem does nothing to help with that.

      Yes, you will certainly find some people that can do it. But you guys are the ones that complain that out of 100 candidates you only find 3 or 4 potentials.

      How hard is it for you to understand that an interview is *NOT* an environment that is conducive to problem solving?

    163. Re:the way to go by Berfert · · Score: 1

      Even more important to me, paper/whiteboards don't have the ability to move code around. I'm an extremely non-linear coder; I write the code as it comes to mind and add the pieces needed to it as I see they're needed. Not being able to move code around, refactor, wrap blocks in checks, or even just add lines of code in above what I'm currently working... kills me.

    164. Re:the way to go by man_of_mr_e · · Score: 1

      See, that's the problem right there. Instead of *ASKING* the guy what recursion is, and why and where you might use it... Instead, you give him a cryptic problem that might be solved using recursion, then judging him if he doesn't use it.

      That's the most retarded and downright sadistic way of finding out if someone knows something. Just farking ask them.

      Ask them about concepts that only a seasoned developer would know much about. Ask them about problems they might encounter with a specific approach. Don't make up puzzles and then look down on them when they don't produce the answer you were looking for.

    165. Re:the way to go by Anonymous Coward · · Score: 0

      A bunch of people place a gauntlet of tests before applicatants. An applicant finds he has the skills for the tests and displays his confidence. The evaluators immediately determine the candidate applying for their position is arrogant.

      Analysis: The interviewers are a bunch of back kettles running a coliseum.

      Join ? Depends on your personality.

    166. Re:the way to go by Anonymous Coward · · Score: 0

      We vary that depending on the experience, usually.

      If the resume has solid experience, and the interview confirms that the resume is not overstated, I'm not gonna give the person a silly programming task. They will get a test, but the test simply again confirms their resume, in that case.

      If the person is right out of college, then it depends on how the discussion goes and what they have on the resume. If they can actually tell me something about their projects (most of the time they can't because their friends did the projects...), I might not bother giving them an assignment. Again they will get a test, but that will just confirm their experience. But if they come out a bit shaky after first 5 minutes, sure - here is a blank piece of paper, and a random basic math problem of the kind "add 10 numbers" - write me a piece of code to calculate that, don't care which language you use. But regardless if they get a programming problem or not, I'd always ask them a design question of the kind "we got a project to write a webpage that holds a personalized phonebook/music playlist/book reviews/whatever... - design this system for me - platform, architecture, UI, flow, etc".

      If they are experienced, but the resume has gaps or rather not so recent experience, they will always get the programming problem. I need to see that they can actually write a piece of code.

    167. Re:the way to go by crucini · · Score: 1

      Preferred knives? Probably. But I've seen comments from chefs that they wouldn't take their good knives to work, where kitchen help would borrow or ruin them.

      "He can do more with a candlestick than most men with a pistol. But he is pretty sure to have the pistol, too."

    168. Re:the way to go by leetrout · · Score: 1

      Been there done that... My problem was writing a function to generate phone number letter permutations. At least permutations are useful in "real life" and coincidentally working through them brought me to modulus as well. I couldn't answer the question and didn't get the job, but to be fair they gave me 10-15 minutes (or so it felt like).

    169. Re:the way to go by rk · · Score: 1

      If looking up the order of a couple arguments in a reference document is enough to pull you out of "the zone", programming is going to be very hard indeed.

    170. Re:the way to go by RajivSLK · · Score: 1

      That's very similar to the way we interview at my company. On interview day my co-interviewer basically tosses out some new interesting problem solving questions and I give them a go. If I can't solve them relatively easily then we don't ask them. We generally pick questions that have multiple solutions some better than others and if the candidate gives the O(n^2) answer we hint towards the O(n) answer. All the programming questions are done in pseudo code and we ask the candidate walk us through their code and explain it.

      The basic idea is to see how they think, how well they can learn, and how well they can explain themselves and the code they write and how good that code is. Nobody is going to get the O(n) answer to some of the questions in the given time (unless they have seen it before) but their attitude and ability to figure it out given enough hints in really telling. With some candidates a few hints are enough; with others I can pratically tell them the answer and they still don't clue in. That is really telling.

    171. Re:the way to go by Anonymous Coward · · Score: 0

      Ugh, a few hours? No. People ask me these as a contract worker. You want me to work on a programming problem for a few hours, here is my hourly rate. Some questions even seem like actual problems the business is having. Which makes me wonder if they found a way to chunk their development into 4 hour blocks and are just having job applicants do it all.

    172. Re:the way to go by rk · · Score: 1

      Depends on your definition of "fail". We had a candidate a few weeks ago that couldn't really solve the one I posed, but I still recommended we hire him. I can generally see through the difference between nervousness/stage fright and cluelessness. He asked good questions, and was obviously engaged in trying to solve the problem. I don't ask the questions I ask to see if you get the right answer, I want to see how you think.

    173. Re:the way to go by EETech1 · · Score: 1

      Not fun... For some...
      The bigger the challenge, the more fun it is because I have to really understand what's involved. I get to learn new ways to use math, and look at problems from multiple angles when breaking it down to the assembly level. Especially when dealing with limited hardware resources, and instruction sets!

      It's also more rewarding to see it get completed as well.

      Knowing how to multiply two 32 bit values when can only add and shift two 8 bit values should be something every self proclaimed computer geek should know, and be able to optimize!

    174. Re:the way to go by Anonymous Coward · · Score: 0

      Both user 'sexconker' and 'man_of_mr_e' in the subthread above have posting histories that indicate that if they're not Microsoft employees, they at least are working primarily with Microsoft products and advocate them at every opportunity.

      Their essentially saying that IDE knowledge is superior over basic logic knowledge is rather...troubling, shall we say?

    175. Re:the way to go by wmbetts · · Score: 1

      I write all my code on sheep.

      --
      "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    176. Re:the way to go by mikael_j · · Score: 1

      I hardly consider myself a guru when it comes to coding and I haven't really touched C or C++ in years but for some reason that doesn't really seem like a hard problem to solve, if anything it sounds more like the mode 13h stuff you'd do in an "Intro to programming" high school course in the 1990's...

      Which sort of raises a question, if people who can't pass that test are still finding jobs, why did I get stuck working tech support for almost two years after college?

      --
      Greylisting is to SMTP as NAT is to IPv4
    177. Re:the way to go by mwvdlee · · Score: 1

      If you needed the services of a surgeon, would you insist he use tools he was not familiar with?

      Of course, that was a trick question... of whether the surgeon was operating on YOU or your Mother-In-Law... ;-}

      You said "needed" instead of "are legally obligated to solicit", so I'm going with "No" here.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    178. Re:the way to go by mwvdlee · · Score: 1

      Cry laughing.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    179. Re:the way to go by beelsebob · · Score: 1

      The point is that the parent made it clear that the reason they wanted the test done on a white board was not because they wanted to find out if people could solve fizzbuzz (that's a great thing to do in an interview). Instead, they stated that they wanted to see how they got on in an environment without code completion/documentation. Why do you want to do that? They're never going to be in that environment.

    180. Re:the way to go by beelsebob · · Score: 1

      It proves you don't have experience if you can't remember printf("^^^ This guy is a fucking moron.") is the function to print a line in a console off the top of your head.

      Really? While I struggle to imagine someone forgetting printf, I can easily imagine that someone very experienced might forget - (void)addObserver:selector:name:object: because while they've used it 10000 times before, every time they've used it it's been spelt addOb

    181. Re:the way to go by Splab · · Score: 1

      No it isn't oddly that indexing the entire table *might* make it faster - but most database will disregard any index for that query since they are going to load the entire content of the table and thus skipping the index load will actually be faster - obviously, if the index is already cached, then yes it will be faster if the query optimizer decides to go down that road. However, since the query is running slow, it is safe to assume that either the table is containing a lot of rows or a lot of data, neither of which is good to have covering index on unless you have unlimited budget (and if you can't contain the index in memory then you are bascially down to sequential read of the table anyways).

      So no, you failed. But thanks for playing.

    182. Re:the way to go by HopefulIntern · · Score: 1

      I had a very similar experience with my interview for the company I work for now. Basically, 80% of the skills required for the job were stuff I had never done before (primarily the fact that most of my web dev experience was with LAMP. I had never used a Windows server, nor any .NET tech). They went through interview questions anyway, and I answered as well as I could, and was honest about everything I did not have experience with. They said they liked my attitude and were not too worried about experience, rather they wanted someone with a good work ethic that they could train (much of the work would be with their bespoke software anyway). I ended up being made an offer and I took it :)

    183. Re:the way to go by Anonymous Coward · · Score: 0

      Are you the guy who gave me an NP-Complete problem to solve 3 month ago on a job interview?

      If so then I hate you!

    184. Re:the way to go by jimicus · · Score: 1

      The saddest thing is - the 'no right answer" questions are (in my mind) one of the *best* ways of evaluating a prospective hire if the interviewer then follows up with "Why did you do it that way?".

      I've actually been given grief for trying to interview that way - fortunately the HR department was one person who had a hundred other things on her plate so it didn't go any further - but the impression I had was that HR bods tend to like questions that there is a definite yes/no, right/wrong answer to - and they don't like "why would you think this way?"-type questions because it's much easier to demonstrate you've followed a fair, non-discriminating process when you can simply say "this person ticked 12 boxes out of 15, this person ticked 14".

    185. Re:the way to go by AmiMoJo · · Score: 1

      It sounds like the interviewer had already decided not to give you the job and was just going through the motions. I have been to a few interviews like that where you get the impression they were just trying to make up the numbers.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    186. Re:the way to go by bjourne · · Score: 1

      That's a great test and I'm one of the dudes that also would ace it. But when you run such a test, and this is very important, make the test actually matter! If someone completes the test with flying scores, you can not reject him because you dont like his style, he doesn't have a manly handshake or is socially awkward. Because that is very unfair if you have your applicants waste hours with a skill test and then return to them that they aren't a "good fit" for the company which you could have figured out after talking to them for five minutes, if fitting in is the most important variable you judge applications on.

    187. Re:the way to go by jimicus · · Score: 1

      I didn't end up accepting as I got a much better offer elsewhere - also, primarily, based on work ethic, personality, general knowledge, etc.... it was a "we'll train you to do what we want you to do, because we can see you're versatile enough and willing to learn" - but the experience was pretty eye-opening.

      Doesn't surprise me, but I can see how it would be a shock if you were straight out of college.

      Hiring people isn't a science, it's an art. And a bit of a black art at that. You're not just looking for "person who's a whizz with A, B and C". Generally speaking, you're also looking for "person who can be trusted to follow instructions, person who will get on with everyone else in the company, person who has the good grace to recognise their shortcomings and deal with them, person who can learn new ideas." (and probably a whole bunch of other things that you can't put in a job ad or explicitly screen people for because it would get you into legal hot water).

      More than a few managers will tack on things like "person who won't make me look bad by being dramatically smarter than I am". (IMV a huge tactical error - any manager who's got a habit of hiring really smart people to do the job very efficiently is going to bask in some serious glory - but it's not unknown by any stretch of the imagination). Most of these extra things I've mentioned can't really be taught - you've either got them or you haven't.

      By the time you add all that up, it's really very common to find that "person who's a whizz with A, B and C" would be a terrible fit whereas the person who met all the other criteria could be paired with someone who's really good to act as a mentor and you'll get much better results.

    188. Re:the way to go by neyla · · Score: 1

      Even in jurisdictions where that's the case, you can generally hire someone for a single project.

      Thus you hire them for some 3-month project, and use their performance on that as the basis for whether to hire them permanently, or not.

    189. Re:the way to go by Hognoxious · · Score: 1

      Of course it's better when you're doing a real job day in day out to be able to use all the fancy tools. But someone with genuine talent ought to be able to work with just the basics in a pinch.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    190. Re:the way to go by Angostura · · Score: 1

      I always insist on conducting the whole interview in Esperanto - particularly for those people who have said they have "good communications skills". Suckers!

    191. Re:the way to go by realityimpaired · · Score: 1

      When you have 15,000 qualified applicants for a single programming job (the kind of ratio that a company like Facebook or Google sees, and that's being conservative), you start adding criteria that have nothing to do with the job to the job description in order to weed out candidates... stuff like requiring bilingualism for an English-language copywriter, or the ability to prove that pi is exactly 3. It's not about excluding people who'd be able to do the job, it's about reducing the number of resumes and interviews that they have to conduct, which is an expensive process for them, both in time and energy.

    192. Re:the way to go by Aladrin · · Score: 1

      I think his point was that implementing a solution without further investigation is the wrong approach. Collaboration is also desired.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    193. Re:the way to go by Aladrin · · Score: 1

      I don't buy the wages thing, though. If that were the case, they wouldn't bother using recruiters in the first place.

      Unless the brother-in-law thing were already true. In which case, the percentage still doesn't matter, since it was never an option.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    194. Re:the way to go by Hognoxious · · Score: 1

      Which is great until you need to solve a problem that can't be Googled because no one has solved it yet. Admittedly, this never occurs in many "business programming" careers, so if you need someone to create an inventory database, I'd agree with you

      I wouldn't, because every company (and often every department within it) seems to have its own quirks and foibles.

      These, umm, idiosyncrasies - though they appear trivial, retarded and plain wrong to an external observer - are always absolutely totally critically necessary to the operation of their business.

      Also, I wonder how many SNAFUs have occurred due to people blindingly copying and pasting code they've found on teh interwibbles? Even if the code is bug free (LOL) it may rest on assumptions that aren't correct in context.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    195. Re:the way to go by Anonymous Coward · · Score: 0

      A downright right answer could be to add an index. it you have a billion rows and you add a where clause to a well chosen Key column, you've changed your table scan to an index seek and cut your reads from a billion to maybe 3. Then again Select * from Pictures doesn't give many details about table structure, cardinality etc. so yeah, dicussing it and getting more details is a way to show you know your shit.

      What's the old line? the only answer a DBA will give is "it depends"

    196. Re:the way to go by TheRaven64 · · Score: 1

      And it makes about as much sense as asking an applicant for a job as a truck driver to run carrying a heavy backpack. Sure, the test and the job both involve moving heavy goods, but skill at one is not really related to skill at the other.

      A good programmer types largely subconsciously. You think about the structure and your hindbrain makes your fingers translate it into concrete syntax. Move to a board, and now you're consciously thinking about the syntax, and probably consciously thinking about moving the pen, since writing on a board is not something most programmers do regularly.

      --
      I am TheRaven on Soylent News
    197. Re:the way to go by TheRaven64 · · Score: 1

      Depends on the complexity of the problems. If they're very simple, any vaguely competent applicant will be able to solve them, but that won't tell you anything because you should have filtered out the ones who couldn't long before they got to the in-person interview. More complex ones will filter people out, but on a criteria that is so far divorced from any relevance to the job that you may as well ask them to paint a picture or compose a song.

      --
      I am TheRaven on Soylent News
    198. Re:the way to go by Anonymous Coward · · Score: 0

      It goes both ways:

      A test tells as much about the tester as it tells about the person being tested.

      And each side can find that the other side is a bad match. Which side has the most to lose I am not sure, but applying ill-minded criterias to hire people certainly has a cost for a company. And a long-term one.

      Good luck to the testers.

    199. Re:the way to go by Splab · · Score: 1

      So you are saying that if you answer a completely different question it might be correct to use an index? You sir, are a genius!

    200. Re:the way to go by rally2xs · · Score: 1

      Poor people skills? There's a cure for that. Its called "The Dale Carnegie Course." Take it. You'll be amazed.

    201. Re:the way to go by tzanger · · Score: 1

      I would agree that being able to do what you suggest is a valuable skill. But it is not a skill that defines a competant programmer. Lots of people can have that skill and be terrible programmers (i've seen them, they typically give great presentations on a given technology, but they can't ship a real product to save their lives).

      It's the project manager's job to eventually shoot the engineer and start production. I'm not necessarily looking for people who can run the project, but who can think through problems. People who can't handle the slightest bit of stress are also usually candidates I'm not likely to hire, but for larger companies who can afford to have genius tucked away and protected from the realities of business I could see your point.

      You are prizing a communication skill, and somehow thinking it translates to competancy as a developer. Certainly, communication skills are very important. But to me, I can live with a guy that can't do a whiteboard test if he delivers quality code on time.

      Apparently, you would rather have sloppy developers that never make a deadline, so long as they can work through a problem on a whiteboard.

      I would count myself blessed to fail one of your interviews.

      That's a false dichotomy; you seem to think that these things are mutually exclusive, or at least uncommon. My experience suggests that if they can't handle the whiteboard test chances are they also can't handle the kinds of tasks I'm looking for. I will concede that perhaps I'm not looking for the same type of developer that you are, which is perhaps why we're at odds with interview methodologies.

    202. Re:the way to go by tzanger · · Score: 1

      I said nothing about having an IDE in front of you. Where exactly did you jump to that conclusion from?

      I got it from your post (emphasis mine):

      If your main goal is to weed people out by putting them in an unnatural setting for the purpose at hand then test their skills using tools totally removed from how they are actually performed, yes, you may find that one bright shining star who can do and teach, but you'll also write-off as fools legions of people who are gifted as hell but just don't function in that environment.

      I took from that comment that unless they're sitting down at a computer in an environment they're comfortable with and using tools they're comfortable with, then I'm likely to be writing of as fools legions of gifted people.

    203. Re:the way to go by Thiez · · Score: 1

      Bubblesort! :p

    204. Re:the way to go by mini+me · · Score: 1

      Why do you want to do that? They're never going to be in that environment.

      They're never going to be in an environment where they can't look up the solution to fizzbuzz either.

    205. Re:the way to go by voidphoenix · · Score: 1

      Apparently, you ended up in the liquor store on your way to school. Read your own link, slowly. It's a data structure.

    206. Re:the way to go by CastrTroy · · Score: 1

      I guess it depends on how much you want the job. If the job is better than your current one, and pays an extra $5000 a year, what's a couple hours of work to land the job? Maybe they should pay you for the time you spent in the interview too, and the time you spend fixing up your resume and writing a cover letter so that it would be targeted toward the specific job you are applying for. If it's too much to ask, then don't apply, and turn down the job. Maybe let them know why. But for many people it's not too much to ask, especially if it's a good job.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    207. Re:the way to go by Amouth · · Score: 1

      I'm sure i'm not the person you are thinking of.. and he is not "one of you[me]" as wasn't raised in an affluent household or given anything.

      The reason I do this on interviews is because we are a small company (sub 30 people) in a very niche industry and job roles and responsibilities blur quite often. It takes ~6 months for a new hire to get acquainted with our company and know where they need to go to find what they need and also what all the terms used with clients mean. I don't want to spend that time with someone who is either going to leave in 2 years or can't handle being cross trained in something that isn't in their normal profession. Our average turnover rate is ~10 years.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    208. Re:the way to go by BVis · · Score: 1

      They're frequently working in a language I don't know, anyhow.

      Then why the hell are YOU doing the interviewing?

      Developers should be interviewed by people who are familiar with the job the candidate is being interviewed for. Any company that requires HR to do any interviewing is on my list of places I probably don't want to work at. I got my current job by talking to my now-director and providing code samples that were reviewed by another programmer.

      Asking a candidate to provide code samples, then to explain/describe/review them in the actual interview, is a far superior method IMHO. I'm surprised nobody's mentioned it in these comments so far.

      --
      Never underestimate the power of stupid people in large groups.
    209. Re:the way to go by bipbop · · Score: 1

      What is polymorphism? It is actually a bridge pattern between an abstract factory pattern and strategy pattern, you could say even a singleton pattern from the class view of point, and facade pattern from the object point of view.

      That appears to be a really bad definition. Can you explain why you think it's a good one?

    210. Re:the way to go by Zironic · · Score: 1

      Most whiteboard problems are solvable in less then 10 lines. Why would you need to refactor and move around code o.O?

    211. Re:the way to go by Amouth · · Score: 1

      If you can't conduct the interviews, because of your people skills, how can you work with, train and motivate your staff?

      ....

      For me it's simple i am just a part of the hiring team - i guess i miss led when i said i hire/don't hire, rather i have my vote. My responsibility is to determine if they have the skills and ability to preform the job function they are being hired for. i am in no way an HR person or a manager other than for specific projects.

      My bad people skills are not from be being an ass like some but rather me not realizing how other perceive my actions.. For example one thing that is bad that i am working on is, when talking/discussing a problem and working it out in my head i have a habit of staring in a random direction, i'm not actually looking at anything hell i couldn't tell you what my eyes are pointed at, but to the other person i'm talking to they view it as "rolling eyes"/not paying attention.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    212. Re:the way to go by Amouth · · Score: 1

      Yea I have horrid spelling skills, i noticed them after i submitted but damn /. for not allowing edits.. I understand why they don't allow edits but it would be nice to do it if you could allow it from fixing typos and spelling/grammar only.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    213. Re:the way to go by Anonymous Coward · · Score: 0

      In 21 years of working in development I have been asked to write code twice. I have never understood why asking job candidates to write code is not more common, because writing code is what they are going to be doing. I suspect the reason is that many times the interviewer doesn't write code on a daily basis, if at all.

    214. Re:the way to go by Ash+Vince · · Score: 2

      This would be preferable to what one company I applied for a job with did recently. Gave me a fairly straight forward maths problem involving modulus, gave me about *5* seconds to solve it using real code and not just pseudocode. Sure, that was fine. Then they added the caveat 'What if % is an expensive operation? how would you work around it?'. Turns out it was a trick question. They were expecting you to statically store the result explicitly instead of finding different maths that achieved the same result dynamically but more efficiently. less than 2 seconds later the interviewer interjected with the answer before I had a chance to even say or do anything right *or* wrong.

      Quite often in interviews people will ask you this sort of bs question. Some parts of and interview are about testing your technical ability but some parts are going to be about seeing how you cope with an unsolvable problem or impossible situation. Quite often they are just checking you can keep your cool and not react to crap being dumped on you without getting irate. Calmly responding that you need more information to solve a problem or need more time never did anyone any harm in this situation.

      For the best training at this go and work in a support department answering the phone to a myriad of pissed off morons. Soul destroying, but will get you lots of practice at remaining calm despite some clueless halfwit screaming in your ear that "its broken" without giving you any useful information that would enable you to fix it or find out what exactly has gone wrong. What doesn't kill us only makes us stronger.

      I'm all for puzzles and quizzes to test someone's experience and ability and problem solving skills during job applications, but they MUST a) be unambiguous otherwise you're just being a jerk, and b) must be given a reasonable amount of time to actually perform them otherwise, again, you're just being a jerk.

      Although by not giving you enough time to work out the solution or by not giving you enough information they are actually simulating the world of work you were looking to enter. I have been working as software developer for years and I have lost track of how many times I have been asked to solve a problem that the client didn't really understand and have the solution by yesterday. That is not to say this is a good thing, but you have to get used to being asked for that crap sooner or later.

      The hardest part of any development project is figuring out what you have to develop with the client. Sometimes the client is a jerk and you just have to deal with it and try your best to help them anyway. Think "The customer is always right, even when they are wrong".

      This is the reason agile software development came about as you can simply not expect a client to stick to a theoretical plan. Invariably when you put the product in front of them they will start thinking of ways it can be improved. Instead you get them involved early and try and develop in such a way the moving goalposts are the most important part of the design.

      I might hate it but I have to deal with it.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    215. Re:the way to go by obergfellja · · Score: 1

      that is better than the Will to work laws of Indiana. In indy, If a manager wants to fire someone, they can do so without reason or explanation. If employee feels there was discrimination, they can fight it, but they would have to provide evidence and it is hard to come by if there is not information to base it on.

    216. Re:the way to go by Amouth · · Score: 1

      One fresh East German immigrant was a real wizard, he e-mailed in a perfect answer, when we interviewed him on-site I asked him to do it again, but with 5 cycles in polar coordinates, he finished in 15 minutes with great looking code - we made him an offer and he accepted, but 3 hours later phoned back and sheepishly declined, it seems he hadn't discussed the possibility of moving with his girlfriend.

      That to me sounds like a great candidate for a remote employee, of which we have three right now. More and more people here are starting to realize that we don't need to be in an office to get work done. It also helps widen the pool of talent we can tap.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    217. Re:the way to go by bmajik · · Score: 1

      You may be right about the things you extrapolated about the OP and her/her organization, but there is a lot of mal-reaction to the idea of putting people in a slightly different context during an interview.

      I think that's an inappropriate reaction, depending on the type of company you are in and the type of hiring decisions you make.

      I have never hired someone based on their skills in any particular programming language. My view of software engineering is that the majority of the job, and what a candidate must really have to be successful, is figuring out how to decompose the problem and then figuring out how to express a solution as something a machine could go and do.

      The language of either part of that is irrelevant, and at least for the positions I've looked for, I am less interested in someone who is a "great C programmer" and more interested in someone who is a "great programmer".

      A big part of what makes you successful where I work is dealing with ambiguity. We really don't have a lot of use for people who are highly specialized but who wouldn't be productive outside of their specialization. Often, we hire them as vendors for a time limited basis.

      I take kind of the opposite approach as the OP when I ask coding questions. I tell people I don't care what language they use, and that I'm not going to dock them for syntax errors, and if they'd like, pseudo-code is perfectly fine. But they had better be able to explain everything they wrote / invented when I ask them what it does.

      This is valuable actually, as I want to hire people that make good decisions when there is autonomy and underspecification, and who can justify those decisions when challenged.

      I also ask questions that are intentionally vague. People sometimes assume I am asking them a much harder problem than I actually am, and then struggle. If people don't get clarity on the problem, on expectations, and if they don't push back or ask bounding-type questions, they won't be successful at my company and they won't be successful in my interviews.

      Finally, the oft-maligned brain teaser had a valid purpose but is basically toxic in modern interviewing fashion.

      The purpose was to challenge people with problems they didn't already know how to solve and to observe their problem solving _approach_. The point wasn't the right answer (although that was nice), the point was to listen to the candidate talk through their problem solving approach. Can someone tackle a problem they've never seen before? How do they do it? If they get stuck, what is their strategy for getting unstuck? If they get a hint, can they make use of it?

      It was admittedly artificial. So is everything. We've stopped using them because the stigma around them has overshadowed whatever utility they had.

      Something I like doing much better is asking someone to write a solution to a problem my team recently faced. I have plenty of problems that should be solvable within 1 hour. Some of them I haven't actually coded up before; I've figured out roughly what to do in my head but haven't had a chance to write it up yet. Scaling the problem difficulty up or down based on how the candidate is doing is also a great technique for deciding how _much_ you like a candidate or how they can differentiate themselves from other people you've spoken with.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    218. Re:the way to go by obergfellja · · Score: 1

      I have lost out on many many jobs due to improper practices like this. It wasn't the fact that I couldn't do the job, but they expected a complex code issue to be resolved in a half hour. 5% of the jobs may have been life and death, but the majority of these extreme tests expected high quality coding in such a short time by entry level employees.

      I am not saying they shouldn't expect the best out of their employees, but if you are where I live (Indiana, US), the pickings aren't as good as, lets say, Silicon Valley, CA. The code ideas they never give in advance or allow one to ponder over, just here is a problem, solve it now or your fired ideology by those who pursue the testing in this manner. It isn't really the best of coding but "can you make the code faster than our competition?" Better code is well thought out and created over time. A stable version of Windows wasn't made over night, but made over time, tested, beta tested, user tested, and they are still working out the kinks.

    219. Re:the way to go by antdude · · Score: 1

      They should have temporarily timer to let you edit and show last edited date and time. :(

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    220. Re:the way to go by Amouth · · Score: 1

      Actually what i'm looking for is if they are capable of applying knowledge.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    221. Re:the way to go by Ash+Vince · · Score: 1

      I do the tech interviewing for our project and we are pretty rigorous in our screening and our interviews. The make or break quality, though, is attitude.

      You can teach skills but you can't teach attitude. In fact, my summer intern this year wasn't even a programmer - he was a double major in math and econ - but his spirit and attitude were outstanding so I brought him on (sort of a Pygmalion test of skills vs attitude).
       

      This is the most insightful comment I have read here today.

      Unfortunately there are a lot of developers entering the market who have read about how the job market was for developers in the 80's and 90's and think it still applies that they will be hired on technical merit alone. Now many more companies hire based on attitude then rely on teaching the technical skills on the job.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    222. Re:the way to go by Amouth · · Score: 1

      I know what your saying and I know I don't do that .. when mentioned having someone debug in a different language it's always printed out and something that should be obvious (things like no exits from loops or conditions that can't be met)

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    223. Re:the way to go by Amouth · · Score: 1

      i'll remember about the laying - not a bad idea - sadly that normally isn't want we are working on. I don't just interview graphics designers i have to test for a wide range of jobs - i just used that as an example. but in our business the companies that we work with each one is different with their own environment and constraints and each job is nearly a custom job to fit their needs.. therefor people have to be very well rounded and willing to work with things they are out of their comfort zone on a regular basis.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    224. Re:the way to go by Amouth · · Score: 1

      i assure you it isn't that bad by a long shot..

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    225. Re:the way to go by obergfellja · · Score: 1

      Switching from language to language is easy in our minds, but to change the code from one to another isn't so easily translated. I do print out the code or put it aside in a different place before I edit it into a new language (IE: vb -> c# or c# -> vb). I have done this before and it isn't a one day project but takes some time to change from one to another cleanly.

    226. Re:the way to go by Amouth · · Score: 1

      i agree

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    227. Re:the way to go by stanlyb · · Score: 1

      After having 15 years of OOP, using it with 4 different languages, and actually having done a lot of program, do you think that i DONT know what polymorphism is? Anyway, the definition is not bad, it is actually kind of test to see if the head pointed guy asking me stupid questions actually knows what design pattern is, and why my definition is almost correct.

    228. Re:the way to go by Berfert · · Score: 1

      You must not be doing the same whiteboard problems I have. The ones at Google in particular can easily fill up an entire whiteboard with code, but they're only one example.

    229. Re:the way to go by Anonymous Coward · · Score: 0

      A "right" answer is to discuss it, ask more about the structure or the needs of the client (can we limit the query somehow, is it returning a bazillion rows? Is it returning binary data? Is it a view?).

      The problem with your "answer", and many interviews, are the implicit assumptions people make during their interview. Many would assume that your question and requirements are well-formed and you know what you need (i.e., every column and every row of the PICTURES table). They'd attempt to work within that limitation rather than thinking that the interviewer doesn't really know what he's asking for or that he's stating poor requirements on purpose to test the interviewee. The context is completely different than when a non-technologically-inclined, "real" client asks for something ridiculous.

      Have you ever seen someone ask a question on stackoverflow.com and get the response: "Why would you do that..."? It's kind of the same thing. If you respect the person asking the question (or you're intimidated by their interviewer status), you usually attempt to actually answer the question instead of finding fault with it. You assume they know what they're talking about and that they thought it through.

    230. Re:the way to go by KermodeBear · · Score: 1

      I interviewed with Amazon a while back and I ran into this issue. If I gave a solution to a problem that was correct - but wasn't the interviewer's correct - then they would get annoyed and huffy, hounding me for the 'real' answer. 85% of the interview process was these "Stupid Code Tricks" that have very little bearing on real development practice. I also found most (not all, but most - two of them were really cool) of the interviewers to be pretty arrogant.

      Really a shame - I was offered a position (with great pay and benefits, I might add) but I was so put off by the behavior of the team I would have worked with that I declined.

      --
      Love sees no species.
    231. Re:the way to go by Anonymous Coward · · Score: 0

      I don't think that's a bad idea. It gives them a chance to see what you can do and you a chance to see what they're like. I had an interview once where as part of the interview process, they actually paid applicants to come in for 2 days to write a sample module. While writing the code, I figured out within about three hours that I wouldn't want to work there. I finished the code and walked away with a couple of hundred bucks for the adventure.

    232. Re:the way to go by Actually,+I+do+RTFA · · Score: 1

      An 'inefficient' answer is *just fine* if the code wouldn't be used much, and better if it's more maintainable, for example.

      Hear hear!

      Some code is normal. Some is called infrequently, and is complex... and therefore should opt for readability over performance. Some code is extremely time-sensitive... I hope you read the comments, because otherwise you're fucked.

      --
      Your ad here. Ask me how!
    233. Re:the way to go by StuartHankins · · Score: 1

      If someone ever submitted "select * from " in production code I would immediately reject it. There are too many problems with that to know where to start... it definitely tells me the person who wrote it had no clue and would make me scrutinize the rest of their code more thoroughly in the future.

      Please don't tell me you would create a covering index (by definition having all columns) with no "where" clause and workload to analyze (so you can't cluster it correctly). That would be silly and wasteful.

      Concepts that could come into play involve number of existing records, desired columns, frequency of query (if you run it once a year I'm probably not adding indexes for it), existing indexes, planned table growth, index selectivity, horizontal and vertical partitioning, etc.

      This is why a DBA needs to talk with someone who requests something of this nature. You don't even know what you don't know.

    234. Re:the way to go by scamper_22 · · Score: 1

      I was offered a job at MS after their full 8 hour long interview process. Maybe it was the group I applied to, but I didn't see any 'trick' questions.

      There was one really good question that did ask me to write full code. I can honestly say it was one of the best interview questions I had as it walked you through the problem step by step ratcheting up the difficulty at each iteration. Albeit it was on a whiteboard.

      Some of the questions I didn't like were those that pretty much depended on you having memorized your algorithms and data structures book. I can't remember the exact question, but it was some weird permutation of binary search. I got eventually, but definitely not a regular problem, and if I ever ran into it, I'd be able to look up the algorithm.

      Now one really impressive, if not devious thing they did was they had a 'spy' in the waiting area. Apparently it was this person's job to observe my social skills or something. At least that is what I suspect as that person only later joined the interview process as the HR associate or something.

      Similarly at Cisco, I didn't see anything I would consider a trick or brain teasing question. About the only trick they did which I now actually do myself is ask a question the person is not likely to know and see how much they bullshit before they say I don't know. I actually find this one of the best ways to weed out people. In my case, it was a software engineering position and they kept pressing me on the details of flip flops and some of the digital hardware. Not just general digital design. I'm talking in depth details.

      Maybe I've just never had the opportunity to see these brain teasers. I've only experienced what I would say are pretty reasonable technical questions and some pretty interesting HR and human behavior tricks.

      And if they do ask brain teasers, it's more just to see your thought process and make sure you're a reasonably person.

      But of course, maybe I just haven't been exposed to these nuttier interview people talk about.

    235. Re:the way to go by Splab · · Score: 1

      When they work in an environment like that they are expected to ask questions, figure out what the problem actually is *before* creating a solution - in a world of fast to market, this might seem weird, but when *all* your money is in that database, we don't want any cowboys messing around, we want the people who in a high stress situation are able to stop and think. What good is a programmer that panics when shit hits the fan; it will at some point and you need someone who can keep their mind focused on the exploding server rather than panic mode.

    236. Re:the way to go by TheLink · · Score: 1

      One fresh East German immigrant was a real wizard, he e-mailed in a perfect answer, when we interviewed him on-site I asked him to do it again, but with 5 cycles in polar coordinates, he finished in 15 minutes with great looking code - we made him an offer and he accepted, but 3 hours later phoned back and sheepishly declined, it seems he hadn't discussed the possibility of moving with his girlfriend.

      If he's not that expensive why not have him work for you without emigrating?

      --
    237. Re:the way to go by tehcyder · · Score: 1

      Well, no, companies have obviously worked out that there is more than simple technical knowledge involved in real life jobs.

      Despite the standard slashdot antipathy, there is a reason that HR exists. Working is not like going to school, where it is sufficient to do well in your end of year exams. Like it or not, you are part of a team.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    238. Re:the way to go by datavirtue · · Score: 1

      Code completion/suggestion is a productivity enhancer. Counting all the distractions, bouncing between frameworks, languages, and IDEs; most people forget stuff. Anyways, a lot of these development frameworks are huge and code completion can help you rifle through a bunch of libraries or classes to find what you need. Some people will do things the "wrong way" just because they do not want to look something up or simply because they do not know, code suggestions/completion can help with that too. As a lone developer it helps me get more done in less time.

      --
      I object to power without constructive purpose. --Spock
    239. Re:the way to go by Amouth · · Score: 1

      i fully agree - but when you task someone with this I've found there are four types of people..

      A) want to argue why they shouldn't have to do it or make excuses why they can't
      B) flat out can't do it and stare at it blankly
      C) will try and either progress or struggle
      D) have zero issue with it.

      C i'm willing to teach/help and see if they have the ability (i mention that they can ask any questions as i'm there to help, some will some won't) - D is optimal - A & B i don't want as they flat out it won't workout here.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    240. Re:the way to go by Anonymous Coward · · Score: 0

      "Im all for puzzles and quizzes to test someone's experience and ability and problem solving skills during job applications, but they MUST a) be unambiguous otherwise you're just being a jerk"
      If you are looking for a "doing what I am told" kind of person, that is, probably the right approach. But for those of us who prefer more of an independent thinker, capable of solving real-life problems on his own, I think, it helps to make sure he is not expecting them to be unambiguous, because that is just never the case

    241. Re:the way to go by obergfellja · · Score: 1

      To be honest, A & B, no one wants. It doesn't matter what the field is, those two groups are undesirable and interview process usually weeds them out, but sometimes, the testing can expose them easier. C and D are desirable, but D is optimal as you have said. But in this economy, I would assume you would want C over any others, once the economy gets back on track, D will jump ship because they can, C will be where you will want them to really be, while A and B shouldn't have ever touched day one of job. It is all a matter of what the company is needed and what the learning curve is.

      I have applied to quite a few jobs where I have been C, not because I want the job, but I know that I want to grow into the position and work with the company for a while. usually if I feel that i am in the D, I will get bored and search elsewhere. To grow from C to D is optimal for this time period. By the time the economy is better, if you have grown into D from C, you are more likely to stay because of your hard work. That isn't always the case though.

    242. Re:the way to go by Anonymous Coward · · Score: 0

      Don't fool yourself - it could've been about getting the "cheap" hire. If so they still need to tell you a story about why they want you and not arrogant/competent guy, and the stories which don't add cash to the offer are about soft skills (like attitude.)

    243. Re:the way to go by JWSmythe · · Score: 1

      I've only asked for pseudocode (something that looks like the language I want them writing in). syntax errors, shortcuts representing something better, etc.

          For example, I'm perfectly happy with:


      function do_something($var){ // do requested item

      };

          (sorry, Slashdot ate my formatting on that. Assume correct line breaks and spacing)

          I may ask them to elaborate on some part.

          I've asked prospective Linux sysadmins to show me how to set an IP. Most of us can rattle it off. Some get stuck when I tell them that a redhat conf file isn't going to work in this scenario. Most can give me the command line perfectly, or close enough.

          I've had sysadmins who say they can write shell scripts. I give them a request of something that can be written in a few lines, in their favorite shell language. Some people get hung up on printing a line to the screen. We're talking about print, not even something as complex (hmmm) as sprintf.

          I'm usually looking for basic skill sets, where I can work with them.

      --
      Serious? Seriousness is well above my pay grade.
    244. Re:the way to go by Amouth · · Score: 1

      I fully agree.

      As for the D's that would jump ship for greener grass, you can normally see their pattern on their job history, and we do a fairly good job of weeding them out. Our average turn over is ~10 years.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    245. Re:the way to go by TheRaven64 · · Score: 1

      And, more importantly, remembering printf tells you nothing about the candidate. I could have remembered any of the things the grandparent suggests when I was 11. I can still remember them now. Hiring someone with 11-year-old me's knowledge of C would be a disaster for most companies (I'd like to think hiring me now would be a bit better). This kind of test checks for superficial understanding of the language, but little more. If you're relying on the interview to test whether the applicant has read the first chapter of a C book, then you should reevaluate the rest of your hiring process...

      --
      I am TheRaven on Soylent News
    246. Re:the way to go by datavirtue · · Score: 1

      Everything at a smaller company is more productive.

      --
      I object to power without constructive purpose. --Spock
    247. Re:the way to go by TheRaven64 · · Score: 1

      I had a really good telephone interview for one company. The initial question was impossible, and a few seconds thought made me realise it was impossible. Part of the point was to see how you approach this kind of challenge, when confronted with really bad specifications. The problem - as stated - was impossible, but it was possible to solve it in the cases where people were actually likely to care about the results. I quickly came up with a hacky solution with the proviso that it would be inefficient but may not be worth optimising depending on how it was being used. He then asked me how it could be optimised, and we discussed a few strategies. Most of the half hour interview was focussed on the same problem, but the requirements gradually changed and by the end it was focussing entirely on speed and not caring about 100% accuracy for the algorithm as long as the common cases were very fast.

      --
      I am TheRaven on Soylent News
    248. Re:the way to go by TheRaven64 · · Score: 1

      Do Google and Facebook have that many applicants? Their recruiters keep pestering me, and the Facebook one seemed quite disturbingly desperate. Neither seemed like they were swamped with candidates. If you have thousands of qualified candidates for every position, then you don't generally approach more unsolicited...

      --
      I am TheRaven on Soylent News
    249. Re:the way to go by TheRaven64 · · Score: 1

      I really want to believe that you are exaggerating. Last time I wrote code like that I was 14 (in OPL for the Psion Series 3 originally, then again in C). I've not done any graphics stuff (except for mentoring a summer of code student who was working on some graphics API things) since I finished my PhD, and as little as I could get away with back then, and it still sounds like a trivial problem. I guess it depends on the APIs - presumably they had some kind of set pixel or draw line function (or a frame buffer in memory) available and it wasn't some weird system?

      --
      I am TheRaven on Soylent News
    250. Re:the way to go by gl4ss · · Score: 1

      what job allows you to code in the zone more than 10% of the time? friggin nothing.

      he should be interviewing to find out how good the guys are finding out at what other people want them to code, pulling specs out is what takes most time - once you have something resembling a problem needing to be solved you can go on doing it in the zone. but what good is that if the email next week is going to show another picture of what it should do and turn all the code to useless.

      but maybe this guys hiring methodology weeds out just that, if the applicants have to social engineer the interviewer to find out just wtf they're applying for and what hoops he wants to see jumped.

      anyhow, for longer spending in 'zone' I quit an android consulting job and joined a startup that has a product to implement. so at this stage I get to crunch out a lot of code with a clear picture of what the code should achieve.

      and as for one interview i've "failed" at technical test, it had to do with me not remembering modern c++ pointer syntax(which the company pretty surely wasn't using for anything). the jobs I've bagged have had to do with me showing something I had done, or they already knew where I'd been and what I had done.

      I'd pretty much just walk out of multi-hour testing - it's usual that there's a test time with a new contract where they could just fire me with a days notice and when I could walk out on a days notice, they should just use that if they want to see how I work. if they'd like to test me to figure out a way to make a codebase run on something it wasn't meant for, or to tell them of the platform features that were left out of the brochure. well, they should just pay or friend me. I ain't working for totally free anymore.

      sure this doesn't do very well for me if I'd try to get into Big Corp, but funnily enough it did lead me to a stint in big corp. and you know what, fuck it, it's just bullshit and money begging the same as small operations, just the suits are cleaner and there's even more guys shaving money from your pay. when 4-way company negotiations -with guys in every company falling for the axe if they don't get budget increase- are needed for simple screen changes and 200 line file changes you know that it's not about the code anymore, it's just about peoples house loans and about saving face and then everything grinds to a halt - even though everyone involved is a highly trained experienced top professional...

      --
      world was created 5 seconds before this post as it is.
    251. Re:the way to go by desdinova+216 · · Score: 1

      soon

    252. Re:the way to go by mrchaotica · · Score: 1

      Slashdot does allow editing; that's what happens when you hit "Preview" instead of "Submit."

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    253. Re:the way to go by JoeMerchant · · Score: 1

      I really want to believe that I am exaggerating too, I was writing stuff like that test, for fun, with no guidance, when I was 12, in BASIC. By the time I was 14, I was doing it in polar coordinates.

      Unfortunately, no, and I didn't make up the test, it was the test given to me for my first job, and I used it first while hiring people for that company. They said that my results were similar to their experience with giving the test before I was hired.

    254. Re:the way to go by JoeMerchant · · Score: 1

      One fresh East German immigrant was a real wizard, he e-mailed in a perfect answer, when we interviewed him on-site I asked him to do it again, but with 5 cycles in polar coordinates, he finished in 15 minutes with great looking code - we made him an offer and he accepted, but 3 hours later phoned back and sheepishly declined, it seems he hadn't discussed the possibility of moving with his girlfriend.

      If he's not that expensive why not have him work for you without emigrating?

      The East German was almost 15 years ago, and he had already emigrated to Mississippi. The internet wasn't quite robust enough for things like Skype video back then, and we really needed somebody who could talk with the end users to get their feedback.

    255. Re:the way to go by amicusNYCL · · Score: 1

      This whole attitude that computers should not be used to assist with trivial tasks reminds me of how someone who just learned arithmetic might look down on those who use calculators to do arithmetic

      Again, you're missing the point. If someone wants to use autocomplete, or any other automated tools, once they have the job, then let them be as productive as they can. The interview is not about being productive, it's about demonstrating the basic skills that let them do the job in the first place. The best way for them to do that is to take away the automated tools that do their work for them.

      That being said, in a production environment, I don't see any benefit beyond a time savings to using autocomplete vs. an API reference. Autocomplete makes writing code faster, but your claims about how a popup list of methods would increase your understanding of an API fall a little flat. Autocomplete is no substitute for a reference like this:

      http://docs.sencha.com/ext-js/4-0/#!/api

      I can scan through that reference and get much, much more detail and insight into both what is available in the API, and how it works (plus links to examples, the complete class hierarchy, not to mention the actual source of the API methods) that you just don't get from a popup list of available methods. Quite frequently I scan that documentation for a class that I'm using just to see which methods, events, etc are available on it. When I find a new problem I always scan the API first to look for methods or events that are going to help solve the problem. With autocomplete I still need a link to the documentation to complete the learning. Might as well skip that step and go straight to the source.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    256. Re:the way to go by amicusNYCL · · Score: 1

      I agree with all of that, and still think that automated tools have no place in an interview unless you're specifically trying to judge their knowledge of those tools.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    257. Re:the way to go by JoeMerchant · · Score: 1

      That's a great test and I'm one of the dudes that also would ace it. But when you run such a test, and this is very important, make the test actually matter! If someone completes the test with flying scores, you can not reject him because you dont like his style, he doesn't have a manly handshake or is socially awkward. Because that is very unfair if you have your applicants waste hours with a skill test and then return to them that they aren't a "good fit" for the company which you could have figured out after talking to them for five minutes, if fitting in is the most important variable you judge applications on.

      In the world I live in, fitting in with the team is at least as important as technical skills. Some people might wish that we all worked in caves and never saw each other, but interpersonal communication is actually key to doing a good job as a team.

      If we were building little toy software that one guy could produce and maintain, fitting in would matter less, but it still matters. If you want to put out there that "people should be professionals and respect a job well done, the rest shouldn't matter" - that's a nice ideal, I've never found a place where it was true in practice.

      As for "the test" - it's always the last part of the interview. I may have turned away about 10% of the candidates before offering them the test, and they certainly have the option to walk away before taking it if they don't feel a good fit based on the interview - but, to a certain extent, it feels cruel to not give them the opportunity to shine technically if there's any chance they might be a good candidate.

      Also, pass rates on the test are so absolutely dismal, we can't afford to be too picky about who gets to take it or we'll never find anyone to hire.

    258. Re:the way to go by JoeMerchant · · Score: 1

      Just a note: the dudes who ace the test are usually done within 20 minutes, 30 tops. Beyond that I kind of peek in and see if I can "mentor" them through the problem a little bit, but that only helps a small percentage of people (about the same number as can do the test without help.)

    259. Re:the way to go by lgw · · Score: 1

      That's kind of sad, really. But then, so many people fail fizzbuzz that it's not surprising (but still sad). Hmm, I guess you would have to know (or figure out) that the period of sin was 2pi, so it's not entirely trivial, but still seems quite appropriate for a graphics coder.

      The coding test we use requires the candidate to figure out what an API does by calling it and observing, or debugging through, or whatever (we want to make sure that the candidate can handle legacy code). Many people who can actually code fail hard on that.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    260. Re:the way to go by lgw · · Score: 1

      I've interviewed more than 100 candidates in my career, probably closer to 200. Very few just freeze up like that - and those that do tend to be so introverted that you couldn't really work with them on a team anyhow.

      My rule of thumb is: if you can't communicate your ideas in a group meeting, for whatever reason, be it stage fright, language barrier, not very smart, I'm happy to move to the next candidate.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    261. Re:the way to go by sam0737 · · Score: 1

      Interview does not go one way, but two. At the same time you are interviewing the future employer. Ya---in a world where both employee and employer could be suck.

    262. Re:the way to go by lgw · · Score: 1

      We also do a coding session with no code completion/documentation, because we have a legacy code base to support. If you can't write against an undocumented API, you're going to have real problems in our industry. Of course, with a good IDE you'll be faster, but we give a lot of time to solve a very small problem, and will help the candidate with compilation errors and such (we hire people who haven't worked in this language before).

      Working with legacy code is annoying and frustrating. Some people just can't deal with that, even for trivial problems. We want to screen for that. If you're going to give up just because it an unfamiliar language, unfamiliar codebase, and there aren't any docs, we'll move on to the next guy.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    263. Re:the way to go by DamnStupidElf · · Score: 1

      People who have only ever used a single programming language and can't even understand another language are not programmers. I'm not sure they're even human. Same goes for application usage.

    264. Re:the way to go by lgw · · Score: 1

      I agree, and you missed the big problem: what exactly is the license agreement for each of those code snippets copypasted from some forum? The frequency of bullshit lawsuits over crap like that would amaze you. Glad that's not my problem in my new gig.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    265. Re:the way to go by lgw · · Score: 1

      The thing about job interviews: people often lie about their abilities. Also, there are a bunch of people with 20 years experience who can't write a line of code. Given a tree-walking problem, anyone with a bit of awareness will realize "oh, yeah, toy recursion problem" and spit it out. A kernel programmer might do something overly clever to avoid recursion (and explan why), but that's excusable given the background.

      Similarly for the so-often-used "reverse a linked list" problem. You'll discover right away whether they know what a pointer is. Looking for tricks like XORing the pointers to swap them without a temp variable is where people get silly, but "can you manipulate pointers at all" is a fair thing to test. And no, I'm not going to ask you if you can, I'm going to ask you to demonstrate.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    266. Re:the way to go by GodInHell · · Score: 1

      In corporate Amerika, harassment is not illegal unless the harassment falls under a protected category like race or gender. That means your boss yelling at you daily for inadvertently making him look stupid is not really harassment.

      This is incorrect. Google "Hostile Work Environment."

      -GiH

    267. Re:the way to go by Coren22 · · Score: 1

      It works in Eve.

      --
      APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
    268. Re:the way to go by DamnStupidElf · · Score: 1

      I think they are swamped with UNqualified candidates. Recruiting gives them a list of at least potentially qualified candidates. If their standard interview process has a false positive rate of 1% and they have thousands of candidates of whom 99% are unqualified, then 50% of their hires will be qualified. If their recruiters give them a list of candidates of whom 25% are qualified, their odds of a qualified hire go up to about 97%.

    269. Re:the way to go by JoeMerchant · · Score: 1

      I might fail hard on the debugging test... more because I don't want the job than anything else ;-)

    270. Re:the way to go by Anonymous Coward · · Score: 0

      Ah, that makes sense. It would probably be torturous if it were a different scenario :) Believe me, in my non-tech roles (which I basically did as a favor for a family member) I was most unhappy. Now though, I'm retired so I don't have to go through all that anymore. It was fun, however, on the tech scene, which was the majority of my career. And most of my staff were much more like me, personality wise, than in the non-tech part. Guess it made it easier for them to understand me. I can be very Mr. Spockish at times :)

    271. Re:the way to go by Anonymous Coward · · Score: 0

      In the past few years at my job, I've needed to work with C, C++, Perl, x86 assembly, Pascal (both Delphi and classic), PHP, Javascript, and two domain-specific languages. I'd only learned the first four before I got the job (and I still can't write new code in PHP or Pascal).

      Seeing how people react when they encounter a problem in an unfamiliar language strikes me as a useful thing to do.

    272. Re:the way to go by jafac · · Score: 1

      I've pretty much always had cupcake interviews. . . but I've pretty much always ended up working for near-sighted and irrational people anyway. Seems to come with the territory.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    273. Re:the way to go by baerm · · Score: 1

      Agreed. The interview is often a very good indicator of what the job is like. It's just as much of a way for the interviewee to evaluate their prospective employer as it is for the employer evaluating the employee. Even if HR is administering the test or it has been outsourced, that tells you something about how you'll be treated. I remember being rejected based on one of these idiotic interviews for one particular job. It was crushing at the time but in hindsight boy am I glad I didn't get that job! It certainly didn't hurt my career in the long run.

      +1 to this. When I was just out of college, I interviewed at a company once where everyone was very friendly, including the VP I would be working for, up until I took the test he wrote. I got everything correct on the test and the VP became seriously angry. I was very confused. In retrospect, instead of continuing a polite interest for the rest of the interview, I wish I had just gotten up and left at that point. But definitely glad they didn't offer me the job, I may have taken it and that guy would have been awful to have as a boss.

    274. Re:the way to go by Bengie · · Score: 1

      Assuming the table actually holds binary data(pictures), and the table is of any decent size, you're not going to have the table cached. Plus, most tables don't store binary date in the pages themselves, so the DB will still stream data from the IO.

      I can't think of a situation where this won't cause heavy IO, assuming the table has a decent size. An index won't help, it will just add more overhead during inserts and possibly updates.

    275. Re:the way to go by man_of_mr_e · · Score: 1

      Then ask them to demonstrate. Don't give them a problem and not tell them what you're looking for, and then mark it against them if they don't give you what you want.

      Basically, you're doing the same thing as a customer that doesn't give a programmer their real requirements. It's unfair, and it makes you a deuche.

      You have to realize that people come from very different backgrounds. And what they've been working on for the last few years colors how they will implement given solutions. Even if they know what recursion is, if they haven't need to use recursion in a long time it may not be their first thought.

      You're letting the fact that you deal with certain problems all the time color your judgement and assume that they should have been dealing with those problems all the time as well.

    276. Re:the way to go by man_of_mr_e · · Score: 1

      Great logic. Except that wasn't my post. That was someone else.

    277. Re:the way to go by bipbop · · Score: 1

      do you think that i DONT know what polymorphism is?

      No, I have no idea whether you know what polymorphism is. Certainly you have yet to demonstrate the knowledge.

      Assume I've failed your test. Can you explain why you believe your definition is "almost correct"?

    278. Re:the way to go by stanlyb · · Score: 1

      1.The way the polymorphism is implemented (by the compiler) is actually a combination of the before mentioned design patterns, in one way or another. 2.I still have to see a product/program/company using properly polymorphism in its real pure sense. And just for the record, because C++ is missing RTTI, you have to use a lot of funny tricks instead of, which makes your program non OOP, with all the consequences. 3.Really? A definition (the standard one), that a 5 years kid could repeat is good enough to demonstrate your knowledge in OOP!!!!!! REALLY? 4.So, to answer your question, ANY funny definition you could make up is much more better than the standard one, but is always almost good enough, by definition of course. 5.I don't have to prove anything, my experience is good enough for any position. The only way for you to know how good am i is one month. Any other test/quizz/psycho or whatever entry test you could imagine would be analyzed and solved by hundred of thousands of jobless developers...do you think you have the slightest chance to outsmart them? Really?

    279. Re:the way to go by Anonymous Coward · · Score: 0

      As a SWE who frequently gives interviews in this form at a top tech company, I think that you'd be very surprised how many people don't have a basic understanding of _anything_. And as for the good candidates, it's the speed of understanding, comprehension, and well designed code. You really just don't understand what you can garner from these interviews until you do them. They are _excellent_ indicators and I'm sorry that some have bad experiences, but these interviews are amazing from an interviewer's standpoint. It's their own fault for not doing them well. You're right, they won't find a good candidate by being jerks, but we do it all the time.

    280. Re:the way to go by sarkeizen · · Score: 1

      We use take-home problems. We also do some verbal testing on concepts - to see how well they can talk about things developers tend to discuss. We have used written tests but they weren't that good.

      I'm actually working on trying out a "live" requirements gathering test but as hiring is only a small part of my job it's not yet been validated.

    281. Re:the way to go by misnohmer · · Score: 1

      There are 2 kinds of interviewers the ones who what to find out what you know and the ones who want to see if you know what they know. The latter tend to be very narrow minded looking for the interviewee to come up with the only answer they know, often phrased exactly how they heard or read it.

    282. Re:the way to go by bzipitidoo · · Score: 1

      Why do you value attitude so highly? Because you believe it's unteachable? You know what has the best attitude of all? A robot. Never gets tired, doesn't need a vacation, no whining or complaining, no family emergencies, or loyalty or pay issues. You are pretty dismissive of tech skills, the way you claim anyone can learn them. And intelligence? You talk as if brains are commodities. At least you think education is worth mentioning.

      The sort of programming most businesses do is "widget assembly", which is not much of a real challenge. Just string together a bunch of libraries and function calls. At most, grind out some actual logic to reformat and repackage data to accommodate the different requirements of the various bits of code that do the heavy lifting. Takes time, sure, but not inspiration. Maybe you think the way you do because that's the sort of business you do. If your bright-eyed attitude star actually had to solve a hard problem, I'm sure he'd be real cheery the whole time he was stuck in the mud. I know what that's like because I've worked with someone like that. The upbeat attitude and work ethic were admirable, and he was a competent enough programmer, but he wasn't up to solving some fundamental problems we faced. Not imaginative or perceptive enough for that, though he did try. The man was a great foot soldier, but the business needed good guidance, not cheerleading and servility.

      Many bosses like it that way. Surround themselves with pleasant people, and more critically, people who aren't quite as smart as they are. Amazing how many managers can't stand working over people smarter than they are, out of fear that their leadership might be questioned, perhaps.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    283. Re:the way to go by Call+Me+Black+Cloud · · Score: 1

      Wow, where did you get all that from? Did I say I wanted cheery people? Didn't I say I was rigorous in screening and interviewing? I don't need what I call "factory programmers"...the widget assemblers as you put it. I've got roadies; I need rock stars. I want people smarter than me. I never dismissed tech skills - but I don't want only tech skills. The smartest candidate isn't necessarily the best candidate.

      Yesterday I conducted 2 interviews. The first was a factory programmer - there's no way she would succeed on the project I'm hiring for. I think we spent 30 minutes with her (me and two other senior developers). The programmers on our team (of which I'm one) solve problems, probably learning new skills along the way, and ship code. Ever read A Message to Garcia? I need Rowans. Rowans succeed on this project.

      The second interview got to almost the 2 hour point when the project manager came in to say we've gone long enough. We covered everything his resume claimed he knew, had him rough out a design on the whiteboard, and went over the other things (i.e. attitude-related) we look for: success at and away from work, ability to collaborate, flexibility, self-motivation, drive for results, decision making. He was a Rowan. Hopefully HR can put together a decent enough package to seal the deal.

      Smart candidates respect the rigor of our process. Very few companies ask for code and writing samples prior to the review...our team does. There are plenty of places a factory programmer can go...companies where a manager does the interview so it's easy to look smart. The large company I work for is one of those places...but the project I'm on isn't like that.

      Nice misread of my post.

  2. They forgot what tests are for by eparker05 · · Score: 4, Insightful

    Tests can be a good measurement of quality when the test is material that can be studied for. In school you have a test at the end of a class. For certifications, tests are meant to measure knowledge gained during training. In graduate school, qualifying exams are done to second year students who have time to prepare and hone their skills.

    Testing somebody from a cold start, on subjects they have no practical way to prepare for seems like a good way to hire a trivia expert, but the productivity of an employee should be evaluated by his resume and portfolio.

    1. Re:They forgot what tests are for by frosty_tsm · · Score: 5, Insightful

      Or their objective isn't specifically verifying the individual in front of them.

      Picture this: a hiring manager at some medium company reads an article about the brain teasers asked by Microsoft and Google interviewers. He wants his application process to seem more like theirs so they can say they are doing MS / Google style interviews (which sounds good to other managers and executives and theoretically impresses applicants).

    2. Re:They forgot what tests are for by Tawnos · · Score: 4, Insightful

      Which is bogus, because at least here at Microsoft, those brain teaser questions haven't been used in many years, after it was determined they were ineffective and dumb.

    3. Re:They forgot what tests are for by Macman408 · · Score: 0

      Testing somebody on something they should have learned is a better way to hire a trivia expert, if you ask me. When employers give this sort of a test, they don't really care if you already know why manhole covers are round, or how many dump trucks it would take to move a mountain - they want to see how you tackle a problem you've never seen before. The whole point is that there's no way to prepare for this sort of thing - either you can handle a new problem, know when to ask questions, and break it down into solvable pieces; or you look at the problem as an unsolvable whole, and give up without even really trying. After hiring somebody, I'm not going to be asking them to write down a data structure they learned from a book in college; I'm going to give them a problem to solve, and as a part of it, they need to recognize a need for a data structure, and make an intelligent decision about which one is the best fit for the job.

      Does this approach flunk good coders? Absolutely. Does it pass bad coders? Certainly. But, used as one tool among several in the interview process, it has a place. Those who do well with puzzles like this are more likely to be good at coding than those who fail these puzzles, so it's a good way to filter out candidates. If your company doesn't have enough applicants, then maybe you can't afford to lose a single good coder - but these high-profile employers often attract hundreds or thousands of resumes for each open position. They can afford to be picky, and to filter out some good candidates as a cost of filtering out many bad candidates.

      In a similar vein, my employer has a strict 3.5 minimum GPA for new college hires (I assume this doesn't apply to experienced professionals, but I don't know). Are there good candidates that got a 3.4? Definitely. There are probably a couple that just don't do well in school, and get a 2-point-something, but would be fantastic coders. But filtering by GPA is a good way to eliminate most of the bottom 50% of candidates when you have 100 resumes per position, even if it takes out a few of the top 50% along the way.

    4. Re:They forgot what tests are for by Em+Adespoton · · Score: 1

      Tests can be a good measurement of quality when the test is material that can be studied for. In school you have a test at the end of a class. For certifications, tests are meant to measure knowledge gained during training. In graduate school, qualifying exams are done to second year students who have time to prepare and hone their skills.

      Testing somebody from a cold start, on subjects they have no practical way to prepare for seems like a good way to hire a trivia expert, but the productivity of an employee should be evaluated by his resume and portfolio.

      With your response, you assume the tests are of the memorization and regurgitation type. Most "cold start" tests (including the ones I did in school) are problem-solving tests, where you are generally provided with all the tools needed to solve the problem except for industry-standard knowledge and your own problem solving skills.

      My favorite one was presented to me way back in highschool, where if you read through the exam before answering the questions, the material provided in the questions for the exam gave you everything you needed to answer the other questions. My second favorite was a timed test that, at the beginning said to read through the entire test before answering any questions, and at the end stated that any answer not left blank would be marked incorrect. The questions were too hard and too numerous for anyone to get to the end by working through from the beginning.

    5. Re:They forgot what tests are for by superwiz · · Score: 0

      Testing somebody from a cold start, on subjects they have no practical way to prepare for seems like a good way to hire a trivia expert, but the productivity of an employee should be evaluated by his resume and portfolio.

      Only if you want them to do the things they have already done. If you want to hire people who can adapt to problems as they arise, you test people's ability to solve problems they have not encountered before.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    6. Re:They forgot what tests are for by lgw · · Score: 0

      Well, some brain teasers are actually good, but only because they directly map to interesting programming techniques, without being presented in any particular programming language. But, yeah, mostly it's a crap technique.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    7. Re:They forgot what tests are for by swalve · · Score: 1

      The only tests that are worth a damn are the ones you can't prepare for.

    8. Re:They forgot what tests are for by Anonymous Coward · · Score: 1

      Which is bogus, because at least here at Microsoft, those brain teaser questions haven't been used in many years, after it was determined they were ineffective and dumb.

      FYI: I had 2 interviews recently with Microsoft and they both used them.

    9. Re:They forgot what tests are for by Anonymous Coward · · Score: 0

      GPA is an exact measure of how much time you spent pestering your professors. Hiring people by GPA is a good way to hire a bunch of people who are mostly going to hang on your door trying to get you to solve their problems, and you'll have to spend first six months training them not to do so.

      Though, sadly, also with the GPA inflation that the colleges are doing these days, I'd agree that hiring people with something below 3.5 is a total waste of time, unless you had them for a coop or internship so you know what they can actually do, and there is some good reason for it to be lower (had this case twice, both turned out to be fantastic employees).

    10. Re:They forgot what tests are for by Anonymous Coward · · Score: 0

      Exactly! I don't spend the whole day doing brain teasers or programming sorting algorithms damn it! I'm doing work and making money for my employer.

      I once left a job interview which I knew I was perfect for the position being offered, because of a stupid paper & pencil test... at least give me a computer you moron!

    11. Re:They forgot what tests are for by AdamJS · · Score: 1

      Microsoft sort of pushed the trend forward massively; a whole slew of companies adopted it in kind.
      To MS' credit, they realized it was stupid. Most other business' did not.

    12. Re:They forgot what tests are for by Anonymous Coward · · Score: 0

      Ditto at Google. My interview training 3.5 years ago explicitly stated those questions were useless.

    13. Re:They forgot what tests are for by Chapter80 · · Score: 1

      So does anyone have the answers to the puzzles posted on here?

      You are shrunk to the height of a nickel and your mass is proportionally reduced so as to maintain your original density. You are then thrown into an empty glass blender. The blades will start moving in 60 seconds. What do you do?

              Every man in a village of 100 married couples has cheated on his wife. Every wife in the village instantly knows when a man other than her husband has cheated, but does not know when her own husband has. The village has a law that does not allow for adultery. Any wife who can prove that her husband is unfaithful must kill him that very day. The women of the village would never disobey this law. One day, the queen of the village visits and announces that at least one husband has been unfaithful. What happens?

              You have five pirates, ranked from 5 to 1 in descending order. The top pirate has the right to propose how 100 gold coins should be divided among them. But the others get to vote on his plan, and if fewer than half agree with him, he gets killed. How should he allocate the gold in order to maximize his share but live to enjoy it? (Hint: One pirate ends up with 98 percent of the gold.)

              Distance is defined like this : If a[i], b[j] and c[k] are three elements then distance=max(abs(a[i]-b[j]),abs(a[i]-c[k]),abs(b[j]-c[k]))” Please give a solution in O(n) time complexity

      SPOILER ALERT

      For Problem #2, I would say that all 100 men get killed. I am basing it on the Khan Academy explanation of the Blue Forehead problem

      For Problem #3, It seems like the optimal answer is for Pirate #5 to give himself 98 coins, Pirate #4 one coin, and Pirate #2 one coin. (Pirate #1 knows that he can get all the coins if it ever gets down to two pirates. So he'll vote down every proposal. And Pirate #3 knows that he can get 100 coins, if it ever gets down to three pirates (because at that point, pirate #2 will vote for pretty much anything, lest he die!) And Pirate #4 knows that if it ever gets down to four pirates left, he will need to satisfy two out of three, and there's no way he'll be able to do that (since #1 and #3 won't vote his way no matter what). So he'll take whatever he can get. So no sense in giving any to pirates 1 or 3, because you'll never get their vote.

      So by giving pirates 2 and 4 one coin each, you are buying their votes.

    14. Re:They forgot what tests are for by Thiez · · Score: 1

      > You are shrunk to the height of a nickel and your mass is proportionally reduced so as to maintain your original density. You are then thrown into an empty glass blender. The blades will start moving in 60 seconds. What do you do?

      I think the answer to this one is 'jump out'.

      Assume you are 190cm. The diameter of a nickel is about 19mm, so you are now 0.01 your original height. Since you shrink in all dimensions, this means your volume is reduced to 0.01 * 0.01 * 0.01 = 1 millionth of what it was. That is, relative to your height you now weight has decreased by a factor of 10000 to what it was before. :)

    15. Re:They forgot what tests are for by Tawnos · · Score: 1

      "Gotcha" questions are not effective at determining problem solving ability. Questions that have more than one means of approach are much more effective. If a question is superficially easy if you know the trick, but impossibly hard without it, then it doesn't offer any benefit to assessing how a person might resolve specification ambiguity, approach the problem's possible pitfalls, and ultimately resolve the issue. Examples of these types of questions include the "detect a loop in a linked list" (tortoise and hare algorithm), "swap two variables without using a third" (XOR or use pointer math), "three light bulbs in a room, three switches outside, you can only enter once" (two on, wait, one off, feel the off bulbs for the warm one).

  3. Never had a problem with these... by mandelbr0t · · Score: 0

    ...and I'm a darned good programmer. Sounds like they work to me.

    --
    "Please describe the scientific nature of the 'whammy'" - Agent Scully
    1. Re:Never had a problem with these... by Asic+Eng · · Score: 3, Insightful

      Looks like you just flunked the "sample size" test. Don't worry about it, brain teasers aren't for everyone.

    2. Re:Never had a problem with these... by Anonymous Coward · · Score: 1

      No, your probably only a good programmer in your own magical dreams.

      Any half decent programmer never goes around saying how good he is making himself look like an idiot.

    3. Re:Never had a problem with these... by mandelbr0t · · Score: 1

      Too bad you're an AC and probably won't read this, but anyway... Egoless programming is a stupid idea. Do you want the job done, or do you want to have group hugs when shit breaks constantly? I've carried countless groups through school and work, without complaining, because I live to code. Binary is a second language to me and everything else just builds on that. I've put out a ton of fires, because I am as good as I think I am. In the words of Sir Arthur Conan Doyle (Sherlock Holmes) "it is just as much a fallacy to underestimate your intelligence as overestimate it." As you'll note, I don't claim to be the best. But I am a hell of a lot better than pretty much any "developer" I've had the misfortune to work with.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    4. Re:Never had a problem with these... by mandelbr0t · · Score: 1

      Wow! What an amazing comeback. I'm going to cry for days now.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    5. Re:Never had a problem with these... by narcc · · Score: 1

      Judging from your response, you seem to be the type to cry for days over a snarky forum post.

    6. Re:Never had a problem with these... by sapgau · · Score: 1

      Do you have a preference on a particular programming language?
      Sometimes issues are not just a programming error but misconfiguration of the environment.

      Just wondering...

    7. Re:Never had a problem with these... by mandelbr0t · · Score: 1

      I use Java these days. It's a little slower than C/C++, but you can interact with C++ modules via CORBA/IIOP. There are many good Java app servers, and many great IDEs. Still, sometimes a quick-and-dirty script with Perl is the way to go. C and C++ are more prone to the odd human error, which means that it takes longer to write something in C++.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    8. Re:Never had a problem with these... by Surt · · Score: 1

      Must have been a disappointment not to see the fires coming and avoid them entirely rather than put them out. ;-)

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    9. Re:Never had a problem with these... by mandelbr0t · · Score: 1

      I was hired well after the fires started burning. Why keep a programmer on staff when you can hire them for a few months at a time after your development team has completely fucked up?

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    10. Re:Never had a problem with these... by Anonymous Coward · · Score: 0

      C and C++ are more prone to the odd human error, which means that it takes longer to write something in C++.

      And, we now find out that leet speak mandelbr0t isn't as hot as s/he thinks. Great programers are not human and are not prone to "odd human error". Please turn in your uberprogrammer card in on the way out.

    11. Re:Never had a problem with these... by Anonymous Coward · · Score: 0

      Binary is a second language

      Congratulations on being able to count to 1. You must be a fucking genius.

    12. Re:Never had a problem with these... by mandelbr0t · · Score: 1

      You've never forgotten a single const or free in your code? I'm seriously impressed, and tip my hat to you. I'm not yet ready for the borg implants.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    13. Re:Never had a problem with these... by mandelbr0t · · Score: 1

      Indeed. Binary, of course, is written in strings of more than 1 bit.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    14. Re:Never had a problem with these... by Anonymous Coward · · Score: 0

      It is better to remain silent and appear a fool, than to open one's mouth and remove all doubt.

    15. Re:Never had a problem with these... by Weezul · · Score: 1

      I've always thought the syntax questions were the dumbest. You just know you'll end up working with idiots when they start asking syntax questions. lol

      --
      The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
    16. Re:Never had a problem with these... by jeff4747 · · Score: 1

      but you can interact with C++ modules via CORBA/IIOP.

      You aren't nearly as good as you think you are.

    17. Re:Never had a problem with these... by tqk · · Score: 1

      Wow! What an amazing comeback. I'm going to cry for days now.

      Judging from your response, you seem to be the type to cry for days over a snarky forum post.

      Whereas, you appear unable to detect sarcasm when you see it. I'd say you two are even.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    18. Re:Never had a problem with these... by Rakarra · · Score: 1

      I was hired well after the fires started burning. Why keep a programmer on staff when you can hire them for a few months at a time after your development team has completely fucked up?

      That sounds like a nightmare job -- cleaning up after someone else's poorly-designed projects.

      Then again, although I wouldn't consider myself a programmer, I thought I was a lot better at finding out what section of the code was causing some bug and fixing it than I was designing and implementing a project from scratch.

  4. The only winning move by Anonymous Coward · · Score: 0

    Is not to play.

    1. Re:The only winning move by kesuki · · Score: 1

      and yet wargames 2 had massive gaming far beyond the original.

  5. Whatever happened by ignavus · · Score: 3, Informative

    Whatever happened to tests like drinking the interview panel under the table?

    Now that is a skill needed on the job.

    --
    I am anarch of all I survey.
    1. Re:Whatever happened by frosty_tsm · · Score: 1

      Whatever happened to tests like drinking the interview panel under the table?

      Now that is a skill needed on the job.

      Recreate late-night thinking by preceding the test with 3-4 shots?

    2. Re:Whatever happened by Anonymous Coward · · Score: 1

      Job interviews made my butthole hurt.

    3. Re:Whatever happened by echostorm · · Score: 1

      This has happened to me, no kidding. When I was around 22 I took a job pouring concrete walls as a temp. There was 1 opening available with the company, but they needed extra guys to do this particular project. ( a row of basements) It was grueling, dirty, evil work. About a week in, there were 3 of us left out of the 9 or 10 guys who initially showed up. Friday rolled around and the owner of the company asked everyone out for some drinks (he was buying!)
      We all had a great time and I ended up drinking a little too much, had to call a cab.
      The next day the owner calls me to tell me that he was going to buy out my temp contract and start me full time on Monday because I was the only one 'who could drink like a real man'.
      Alot of great times were had with those guys.

    4. Re:Whatever happened by Anonymous Coward · · Score: 0

      Or test the candidate's Ballmer Peak.

    5. Re:Whatever happened by Anonymous Coward · · Score: 0

      All those hard drinking guys are now working at Facebook, if the movie is to be believed...

    6. Re:Whatever happened by Anonymous Coward · · Score: 0

      The 70's are over, sadly.

    7. Re:Whatever happened by perpenso · · Score: 1

      Whatever happened to tests like drinking the interview panel under the table?

      Regrettably that's for marketing not software development. Maybe for project leads that have to interface with other departments.

    8. Re:Whatever happened by Thiez · · Score: 1

      3-4 shots sounds more like after-lunch thinking.

    9. Re:Whatever happened by CraftyJack · · Score: 1

      Don Draper, is that you?

    10. Re:Whatever happened by datavirtue · · Score: 1

      Reminds me of my early days working at a very busy tire shop in the nice part of town. At the end of my first day I was busy diligently working on someone's car and everyone had disappeared. They were in the back stock room; my supervisor yelled my name, asking me to come over there. I got back to the stock room and everyone had a twelve pack busted open in front of them. The "smokers" had scurried up to the top of the tire racks and were smoking a J by the exhaust fan. The funny thing is, we still had a couple of hours to go! This was a normal every day thing, several of the guys couldn't function unless they were baked out of their gourds. Our boss would take us out in a limo to go bar hopping all around Cincinnati every once in a while (all paid at every stop). I would get so hammered I would literally disconnect and be completely out of control--all I could remember the next day were faint glimpses of Cincinnati police officers, various streets and intersections, the inside of the limo and certain bars or clubs. I later learned that all of this was paid for by selling used tires (wholesale) to some guys that came up from Kentucky. On top of these outings the used tires were also financing the store manager's retirement plan. Great times. To this day I will not let anyone work on my cars though.

      --
      I object to power without constructive purpose. --Spock
  6. Mix it up by Tablizer · · Score: 4, Insightful

    Teams with diverse thinkers are often the most effective. The one who is not good at math puzzles may instead be good at understanding the customer's needs or the intuitiveness of user interface designs in the eyes of non-techies, and vice verse. They each can focus on their specialty, or at least help each other out in their weak spots.

    1. Re:Mix it up by Anonymous Coward · · Score: 0

      Amen! I'm really good at breaking a problem down into atomic parts and solving the parts, but I can't read people worth shit. If I had to sell something or provide support my company would be bankrupt.

    2. Re:Mix it up by Anonymous Coward · · Score: 0

      If you are a rational person, all you say is absolutely correct.
      But not if you are Google.
      Google is not looking for someone who can fill in the gaps to make a perfect team.
      Google is just looking for someone 'who walks like us and talks like us' and the technical level of Google engineers is greatly exaggerated.
      Google is not interested in what experiences you have, just as long as you can make them believe that you will be just like them and no threat to the existing hierarchy in terms of technical skills or criticism, you will probably be hired.
      Ever wonder why the all-mighty Google machine is failing on so many issues lately?
      It's because the idiotic Google Quiz Hiring Process does not show the real potential of candidates but just selects only those who fit best in the Google mono culture.

      After getting several invitations for a developer position, I just went to see if the rumors were really true because I couldn't believe it would be that bad.
      The only thing they threw at me were the same basic questions one solves in university assignments.
      Not a single question about things that one can only learn through years of experience.
      I politely turned down any further interviews because it seemed all like a waste of time.

      Google in Japan is a big joke compared to other countries,
      clearly having no idea how to make Google a success in that market.
      Competitors must be p*ssing their pants laughing at what Google is doing in Japan.

    3. Re:Mix it up by leetrout · · Score: 1

      I'M A PEOPLE PERSON

  7. No surprises there. by Anonymous Coward · · Score: 0

    If you get hundreds or thousands of applications for a single position, how else do you narrow them all down to one candidate?

    1. Re:No surprises there. by stanlyb · · Score: 1

      Short answer: Lottary. Long answer: trow a dice.

    2. Re:No surprises there. by Anonymous Coward · · Score: 0

      Obviously you listen to outsiders tell you how you ought to shape hiring policy.

    3. Re:No surprises there. by NoNonAlphaCharsHere · · Score: 3, Funny

      Lucky thing it's not a spelling test.

    4. Re:No surprises there. by stanlyb · · Score: 1

      This h is always trying to become silent. Not my fault.

    5. Re:No surprises there. by ChrisMaple · · Score: 1

      Misspelling lottery is. Not knowing that dice is plural, the singular of which is die, is.

      --
      Contribute to civilization: ari.aynrand.org/donate
  8. who wants to work for google? by stanlyb · · Score: 1, Insightful

    Tell me wrong, but if google is full with EXCEPTIONAL developers, why there is not even a single product made entirely by them? Please, even one is enough (and don't say: Google) Anyway, my point is that these mehods are good enough for finding anything, but good developers, which is maybe their aim in the first place.

    1. Re:who wants to work for google? by mandelbr0t · · Score: 1

      And why not say Google? It is their primary product, after all, and it's been around for a long time. And frankly, I don't hold a candle to the guys who originally wrote the search engine.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    2. Re:who wants to work for google? by JonySuede · · Score: 3, Insightful

      google is not full with EXCEPTIONAL developers, it is filled with EXCEPTIONALLY clever people; you get what you select for. As D&D should have taught you, INT is not equals to WIS !

      --
      Jehovah be praised, Oracle was not selected
    3. Re:who wants to work for google? by stanlyb · · Score: 2

      They did not invent the search engine, but the way how to best evaluate the site's hit count,interest,etc... Everything else is one big farm, very very big farm.

    4. Re:who wants to work for google? by mandelbr0t · · Score: 1

      No, they didn't write the search engine. But they outlasted Altavista, Hotbot and Lycos, probably because it indexed more sites and had more accurate search results.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    5. Re:who wants to work for google? by stanlyb · · Score: 1

      Actually, they got a exceptionally good at passing funny tests "developers". Literally.

    6. Re:who wants to work for google? by jo42 · · Score: 1

      filled with EXCEPTIONALLY clever people

      AKA highly educated idiots...

    7. Re:who wants to work for google? by Anonymous Coward · · Score: 0

      Not likely, given their slow and disorganized interviewing process.

      If you're exceptionally clever and apply to several jobs simultaneously, by the time Google contacts you for an interview, you'll most likely have accepted an offer elsewhere.

    8. Re:who wants to work for google? by Anonymous Coward · · Score: 0

      why there is not even a single product made entirely by them? Please, even one is enough (and don't say: Google)

      Gmail.

    9. Re:who wants to work for google? by Anonymous Coward · · Score: 0

      I started asking that question not too long after their IPO lockup period. The whole point of banging your head at a startup is to have a low employee number and a boatload of options. You hope to do that before the IPO. So there was Google, putting people through one of the most grueling interview mills, in exchange for much less upside. I bet FaceBook wasn't torturing their applicants anywhere near that much, and they're real close to the payout now. If you had offers from Google and FaceBook in 2007, and took the Google offer you're probably kicking yourself now.

    10. Re:who wants to work for google? by icebraining · · Score: 1

      Google Reader? Google+? App Engine? Google Goggles? Go? Google Talk?

    11. Re:who wants to work for google? by ogl_codemonkey · · Score: 1

      INT is knowing that a tomato is a fruit. WIS is knowing not to put it in a fruit salad.

    12. Re:who wants to work for google? by Luyseyal · · Score: 1

      Got URL? What are you talking about? The founders of Google wrote the search engine. Is this some sort of weird alternate universe you are proposing?

      -l

      --
      Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
    13. Re:who wants to work for google? by Luyseyal · · Score: 1

      In retrospect, perhaps you meant "did not invent the concept of a search engine" as in the GP.

      -l

      --
      Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
    14. Re:who wants to work for google? by Surt · · Score: 1

      Maybe exceptional developers are smart enough to leverage the work of others?

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    15. Re:who wants to work for google? by Anonymous Coward · · Score: 0

      Do you know the origin of that expression? My google-fu told me that it seems to have appeared on the internet somewhere between 2000 and 2001, but I thought this was older than that ... something like 1999, but my memory of 90's is full of cannabis smoke's therefore if you know anything about the origin of that specialized meme I would really like to know.

    16. Re:who wants to work for google? by Anonymous Coward · · Score: 0

      google is not full with EXCEPTIONAL developers, it is filled with EXCEPTIONALLY clever people; you get what you select for. As D&D should have taught you, INT is not equals to WIS !

      Mod up for D&D Int vs Wis reference

    17. Re:who wants to work for google? by Centurix · · Score: 1

      There's an element of truth to this statement, a friend of mine went through the interview process with Google in Sydney and around the third interview the word somehow got around that Google were maybe interested in her. Ninemsn rang her, gave two rushed interviews and hired.

      --
      Task Mangler
    18. Re:who wants to work for google? by mandelbr0t · · Score: 1

      Yes, that was what I meant. A bad mistake on my part.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    19. Re:who wants to work for google? by lgw · · Score: 1

      Do any of those make any actual money for Google though? I hear Gmail does, but only because the ad-serving infrastructure is already paid for, and would lose money as a stand-along product.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    20. Re:who wants to work for google? by kesuki · · Score: 1

      http://www.searchenginehistory.com/#early-engines In June 1993...
      Google's predecessor was 1996.

    21. Re:who wants to work for google? by tqk · · Score: 1

      There's an element of truth to this statement, a friend of mine went through the interview process with Google in Sydney and around the third interview the word somehow got around that Google were maybe interested in her. Ninemsn rang her, gave two rushed interviews and hired.

      "Ninemsn"? Whatever.

      So, if I "share an update" on my LinkedIn page that Google may be interested in me, gullible potential employers will be flocking to my door offering interviews? Cool! What's Google gonna do, deny it? They'll never even hear about it.

      I'll name this phenomenon "The Ninemsn Effect." This could revolutionize recruiting/headhunting.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    22. Re:who wants to work for google? by tqk · · Score: 1

      filled with EXCEPTIONALLY clever people

      AKA highly educated idiots...

      Usually stated as, "OK, so you're a Ph.D. Just don't touch anything."

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    23. Re:who wants to work for google? by Centurix · · Score: 1

      Ninemsn is a company formed in Australia between Microsoft's MSN and Channel 9, a free to air Australian TV station.

      And yes, it happens like that. Not by LinkedIn, but certainly by other sources of information with which the employers can rely on. It would be naive to think the employers are gullible.

      --
      Task Mangler
    24. Re:who wants to work for google? by Anonymous Coward · · Score: 0

      Ninemsn is a company formed in Australia between Microsoft's MSN and Channel 9, a free to air Australian TV station.

      Ah, so it's not pronounced "ninnaym'zn", then?

      (That apostrophe should be an upside down e, by the way, but slashcode can barely support an upright one)

    25. Re:who wants to work for google? by tqk · · Score: 1

      It would be naive to think the employers are gullible.

      I beg to differ. Once you've been around the block a few times, you begin to notice that even "vicious multi-nationals" think about as deeply as kindergartners. Cf. "spear-phishing."

      I wish it weren't so, but that gets me nowhere special.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    26. Re:who wants to work for google? by zeroshade · · Score: 1

      What is your point? Google is an advertising company that makes products which are then vehicles for advertising. They aren't good developers because the product they created doesn't make money for them directly? That's a completely ridiculous way of looking at it.

    27. Re:who wants to work for google? by TheRaven64 · · Score: 1

      I visit Google periodically, and every time I find myself less impressed with the people I meet. I don't know whether this means that I've become immune to the Google mystique, if my standards have gone up, or if they've been lowering their recruiting standards. I do know that the friends of mine who went to work there a few years ago and told me how great a place it was to work and how they were surrounded by smart people and doing interesting and creative stuff are now telling me about bullshit processes, idiot managers, and the places they're thinking of moving to when they quit Google.

      --
      I am TheRaven on Soylent News
    28. Re:who wants to work for google? by JonySuede · · Score: 1

      The peoples I used know that went to work for Google have, for all intents and purposes, disappeared...

      --
      Jehovah be praised, Oracle was not selected
    29. Re:who wants to work for google? by Rakarra · · Score: 1

      Tell me wrong, but if google is full with EXCEPTIONAL developers, why there is not even a single product made entirely by them? Please, even one is enough (and don't say: Google)
      Anyway, my point is that these mehods are good enough for finding anything, but good developers, which is maybe their aim in the first place.

      A good developer doesn't have so much of an ego that he falls victim to the "not invented here" syndrome.
      The great aim of software development was code reuse -- why rewrite a library that works fine and is available? Just to be able to say that you came up with it?

  9. FizzBuzz test by Anonymous Coward · · Score: 0

    Jeff Atwood recommends the FizzBuzz test.

    I agree.

    1. Re:FizzBuzz test by 91degrees · · Score: 1

      I don't agree.

      It's too well known (lots of companies use this so you should probably google it before the interview), has a single answer and doesn't allow for creativity. If you just want to check people can write code then it's fine, but really my current job required me to learn two APIs, get them talking to each other, and come up with a complete structured OO design for a system.

      I also need to understand the maths required for 3D geometry, and have an understanding of OpenGL. The basics of OpenGL can be learned on the job. The maths require a certain level of experience.

      Fizzbuzz will in no way indicate whether a candidate can do all this. However, I do expect a developer with a few years experience to be able to do most of it.

      Specialised skills (hardcore 3D, databases, networks, security etc.) are a lot harder to screen for.

  10. Well... by MrEricSir · · Score: 1

    While a programming test can be a valuable part of the interview process, it would be a mistake not to do some in person "tests" as well.

    Why? Because the entire point of those tests isn't to see if they get the right answer, it's to see if the candidate can work with the people in your office.

    --
    There's no -1 for "I don't get it."
    1. Re:Well... by lgw · · Score: 1

      This is quite important. My standard inerview question is really a 45-minute collaborative design excercise. Partly I'm measuring how smart the guy is, but also I'm seeing how he is to work with when solving a problem. Can he remain polite when frustrated? Can he admit that his first approach to a problem was wrong? Can he work collaboratively at all, or does he have to solve problems entirely by himself.

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

      I went through one of these (it was part of their standard interview cycle they seemed proud of) and it was pretty ridiculous.

      I think they had picked a real world desired feature from actual backlog. The three developers from the company knew all the details (or thought they did) of what was needed. I, of course, didn't have a clue about their propriety system (it was a startup that hadn't even released their first beta, let alone published anything). However, I knew a lot more about the domain of the feature they were adding (having worked almost exclusively for other vendors solving problems in that domain for 20 years) than any of them did.

      The result was that I kept asking for use cases and/or requirements (Is this just a "checkbox" feature? Do we want to be a market leader in performance with this feature? In case of node failure, is it acceptable to just automatically rerun the entire "command"?). The three developers from the company either argued among themselves about each of these or expressed no meaningful opinions (mostly because, I think, they were not sufficiently exposed to real world development to even be able to begin to make such tradeoffs).

      In the end, they failed the interview. I really wouldn't want to work for a company where the other developers hadn't dealt with real world problems and actually had to live with the results.

      So, if your company does this, be careful with the design topics you pick and the developers you pick to participate -- it may not quite have the outcome you expected.

    3. Re:Well... by Anonymous+Brave+Guy · · Score: 2

      Because the entire point of those tests isn't to see if they get the right answer, it's to see if the candidate can work with the people in your office.

      The trouble with brain-teaser puzzles and trick questions it that the entire point is usually to make the interviewer feel that they are smarter than the candidate.

      If they make hiring decisions based on that kind of test, this is probably not the case. :-)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:Well... by lgw · · Score: 1

      Sure, that's why I use an easily-explained problem (it was somewhat real world a few jobs back, but not "free consulting" on a current problem).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    5. Re:Well... by nabsltd · · Score: 2

      Can he remain polite when frustrated? Can he admit that his first approach to a problem was wrong?

      Why do you assume this will happen? Is it because you don't give them all the real requirements until after he takes a stab at the answer? That's a common trick that interviewers use to make themselves feel smarter than the candidate. What do you do when someone asks you to give them a real, written requirements list before they start, as they would get if this was a real work situation?

      Can he work collaboratively at all, or does he have to solve problems entirely by himself.

      If your "test" is simple enough to do on a whiteboard, many good programmers won't need any help after reading the written requirements.

    6. Re:Well... by JasterBobaMereel · · Score: 1

      In the real world - The written requirements will have at least one requirement missing, will be vague, will change during the process.... so not giving them all the requirements is a good test ...

      --
      Puteulanus fenestra mortis
    7. Re:Well... by Aladrin · · Score: 1

      It's quite possible that his company doesn't give 'real, written requirements' before working on a problem. Lord knows I've done enough work to know that many requests will come verbally and you're expected to figure out the rest, or ask the right questions. And you WILL get it wrong and have to revise.

      Even when the requirements are written down, they're going to change or need revision. Someone handed me a design the other day and I've already reworked whole sections of it to make it actually useful to the end user. (Working with the people who requested it, of course.)

      So it's possible his test is an accurate simulation of the company's environment, and if they do poorly on it, then it really does mean something.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    8. Re:Well... by isorox · · Score: 1

      What do you do when someone asks you to give them a real, written requirements list before they start, as they would get if this was a real work situation?

      Not in my company. Requirements change on a very frequent basis and are never specced out up front.

    9. Re:Well... by V-similitude · · Score: 1

      What do you do when someone asks you to give them a real, written requirements list before they start, as they would get if this was a real work situation?

      Ha. What "real work" environment do you work in where every project has an unchanging set of clearly-written requirements listed from day 1?

    10. Re:Well... by zeroshade · · Score: 1

      Can he remain polite when frustrated? Can he admit that his first approach to a problem was wrong?

      Why do you assume this will happen? Is it because you don't give them all the real requirements until after he takes a stab at the answer? That's a common trick that interviewers use to make themselves feel smarter than the candidate. What do you do when someone asks you to give them a real, written requirements list before they start, as they would get if this was a real work situation?

      The frustrated part is not something I assume will happen, neither do I assume that the first approach to the problem will be wrong. However, when giving an interview problem, if they get the answer to the problem there are two ways to continue the interview. You can ask a different problem, or you can continue with the current problem and take it further. Usually, the most common solution to a few design problems that I ask during an interview falls apart if you extrapolate and add new requirements. Not only that, but frequently (very frequently unfortunately) a candidate will start working on a solution that just will not work. You don't correct them immediately, you see whether they recognize that their solution won't work and admit they are wrong and change their approach.

      While I don't assume that this will happen, I do try to purposely cause this to happen. If they come up with a solution that works, I will purposely say "ok, now what if you need to do this...." which will be something that I know will require them to change their current design to accommodate. The point is not to "make myself feel smarter than the candidate" the point is to see whether the candidate is able and willing to modify their current design to changing requirements. This is an important skill, and one that I've seen many candidates lack.

      Can he work collaboratively at all, or does he have to solve problems entirely by himself.

      If your "test" is simple enough to do on a whiteboard, many good programmers won't need any help after reading the written requirements.

      "Many" good programmers is not "all" good programmers. Not only that, but "needing help" is not the same as "working collaboratively". If they can't work collaboratively, that's a bad sign.

    11. Re:Well... by nabsltd · · Score: 1

      Unchanging, no. Clearly written...generally not at first.

      But, before we start anything, we have something written down and signed off by the client, so both sides know what is expected. If the client wants changes, they follow the same process, and then we get to change things like cost and due date (if necessary).

      My point was that a "whiteboard test" where requirements are changing every minute isn't related to the real world in any way. And, if an interviewer said my solution wasn't acceptable because they forgot to mention "important requirement 27", then my response would be "you'll have to live with this code for right now, until we can talk about how that new requirement is going to impact the cost and delivery time".

    12. Re:Well... by lgw · · Score: 1

      The design problem I use is intricate, and it's quite rare for a candidate to get the best answer for every step along the way, nor would I expect him to. So there's usually a point at which I can say "OK, that works, but I think there's a better way, have you thought about X". Some people will say immediately "oh, yeah, X is faster, I should do that". Some people, even in the context where they should assume I have all the answers will tenaciously defend their sub-optimal solution, inventing BS reasons to stick with it. Of course, occasionally, someone has a better idea than I've ever seen before, but that's so rare given how frequently I use this question.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    13. Re:Well... by nabsltd · · Score: 1

      Not only that, but frequently (very frequently unfortunately) a candidate will start working on a solution that just will not work.

      And you know their solution won't work because...oh, yeah, you're smarter than they are. I suspect the real issue is that you have not communicated all the requirements correctly, but since you are very familiar with the problem, you know more than you have told them, and that biases your view on their solution.

      If they come up with a solution that works, I will purposely say "ok, now what if you need to do this...." which will be something that I know will require them to change their current design to accommodate.

      And, unless the problem is still trivial, the only correct answer is "how about we meet tomorrow at 2pm, which will give me time to see if it can be done at all, and give you time to think about the change you requested and better define it so that we don't make the same mistake of not having all the requirements up front". Seriously, if you change your mind a few minutes after seeing something that meets all your requirements, you really do need to sit back and think about what the requirements really are before asking someone to waste money (somebody's...you, pretending to be the client, the company, etc.).

      Not only that, but "needing help" is not the same as "working collaboratively". If they can't work collaboratively, that's a bad sign.

      In this sort of a test, either they need more input from you, or they don't. You are simulating the client, and "collaboration" is the wrong word to use for getting requirements from the client, implementing them, repeat and rinse as necessary. The company I work for is small enough that programmers are likely heavily involved in requirements gathering, but for larger companies, that might be something only system analysts do. Depending on the job opening, your test might seem completely out of left field to a programmer who has never done formal analysis tasks.

      To test "collaboration", you need to assign a current employee to be the candidates "team" and let them solve the problem jointly. Either that, or you can be the collaborator, but then don't get to be the client, too, which would mean no "surprises" to spring on them. Unless, of course, you want to simulate being a bad manager who doesn't pass on client requests right away and then blames the programmer for when deadlines aren't met.

    14. Re:Well... by zeroshade · · Score: 1

      And you know their solution won't work because...oh, yeah, you're smarter than they are. I suspect the real issue is that you have not communicated all the requirements correctly, but since you are very familiar with the problem, you know more than you have told them, and that biases your view on their solution.

      You assume that every candidate will be able to solve every problem you give them. You don't think it's possible for a candidate to come up with a solution that is incorrect despite being given correct requirements? Also, if I tell them their solution wouldn't work and they disagree and show me I'm wrong and their solution does work, then I'd be impressed that they were able to come up with a solution I hadn't thought of. It has nothing to do with me being smarter than them or not, just being more familiar with the problem. You shouldn't be asking a question to a problem that you aren't familiar with, simply by being very familiar with the problem I would be able to tell with pretty good accuracy if a particular solution would work or not. Obviously you know more than you have told them, you at least know 1 or more valid solutions. It would be pointless to give them the solution :).

      And, unless the problem is still trivial, the only correct answer is "how about we meet tomorrow at 2pm, which will give me time to see if it can be done at all, and give you time to think about the change you requested and better define it so that we don't make the same mistake of not having all the requirements up front". Seriously, if you change your mind a few minutes after seeing something that meets all your requirements, you really do need to sit back and think about what the requirements really are before asking someone to waste money (somebody's...you, pretending to be the client, the company, etc.).

      You have never come up with a solution to a problem and then found an edge case that meets the requirements, but the current design would not be sufficient to fix? In such a case the only solution is to modify the design to accommodate the new case. You also assume that clients are always capable of describing all the requirements they need the first time and never make mistakes or forget something, all of which is very common. Not to mention that this is a hypothetical situation that is fabricated specifically to see how the candidate would respond in a similar real-world situation. Thus you seem to be taking this way too seriously.

      The company I work for is small enough that programmers are likely heavily involved in requirements gathering, but for larger companies, that might be something only system analysts do. Depending on the job opening, your test might seem completely out of left field to a programmer who has never done formal analysis tasks.

      I can understand this to a point, but we aren't talking about a formal analysis. We're talking about "you need to design something that achieves this specific goal." Something that every programmer who is capable of working on their own should be able to do. If you have to design everything for the programmer and they can only implement someone else's design, then they aren't an extremely useful programmer.

      To test "collaboration", you need to assign a current employee to be the candidates "team" and let them solve the problem jointly. Either that, or you can be the collaborator, but then don't get to be the client, too, which would mean no "surprises" to spring on them

      "Surprises" could simply be edge cases the candidate hadn't thought of. The point is to get a dialogue going and see how they think, how they approach the problem, how they react if things don't go smoothly, etc. Collaboration would evolve normally from this type of discussion where you aren't sitting and waiting for responses from the candidate but actually discussing the problem with them.

    15. Re:Well... by V-similitude · · Score: 1

      My point was that a "whiteboard test" where requirements are changing every minute isn't related to the real world in any way.

      Perhaps in your line of work. In mine, this is not atypical. Though yes, in general, interviews should mirror the expected working condition as much as practical.

  11. Amateur night by Anonymous Coward · · Score: 0

    The interviewers, et al may be professional programmers, but they know less than jack about testing, evaluating skills, etc.
    When confronted with this I ask "Who publishes and standardizes this test?"
    The answer so far has always been "Well, it's just a bunch of questions we cooked up/"
    Which, considering my views on hazing and one-upmanship, prompt me to rise and not so politely depart.
    It sets a tone for the relationship like asking someone on a date and having them cover the check

  12. The industry has been trashed by offshoring. by Anonymous Coward · · Score: 4, Insightful

    The offshoring of software development over the past 15 years hasn't just trashed the quality of the software that many American businesses use, it has also trashed the ability of software developers to become managers.

    The best software development managers were formerly software developers themselves. They know that experience is what counts. They know that bullshit HR tests don't work. But these kind of managers are now retiring or getting promoted to executive positions outside of software development. There's nothing but a huge void following them, since there have been very, very few software developers in America over the past 15 years.

    The people we have following them often have no software development experience. Many of them are MBAs who don't even know of any programming languages beyond JavaScript, and they only know of JavaScript because they read about it once in some article that was hyping it. The worst are the "professional project managers" who don't even have any relevant college-level training in any useful field (yes, that's right, sociology majors don't know how to be software development managers).

    We don't find good managers in the places where the software development was offshored to, either. Skilled management was never a factor there to begin with, and thus the void has always been present over there.

    Offshoring software development has been one of the biggest economic mistakes that any civilized nation has ever made.

    1. Re:The industry has been trashed by offshoring. by JoeMerchant · · Score: 3, Insightful

      Offshoring software development has been one of the biggest economic mistakes that any civilized nation has ever made.

      I disagree. It wasn't a mistake. It was a deliberate act by short-sighted executive management who profited obscenely from the "bold, visionary paradigm shift." The people who were responsible for the decision have all moved on with their millions in bonuses, stock options, etc. Their boards of directors are mostly made up of people who expect to be dead within 15 years or less.

      It was no mistake.

    2. Re:The industry has been trashed by offshoring. by heironymous · · Score: 1

      The best software development managers were formerly software developers themselves.

      Citation needed.

      But seriously, these are completely different skills.

    3. Re:The industry has been trashed by offshoring. by PimpDawg · · Score: 0

      Did you catch today's lead story on the wall street journal? Apparently countries like China and India are commiting "economic espionage" and stealing our technology and ideas! I've never laughed so hard. It isn't stealing if you had them the keys!

    4. Re:The industry has been trashed by offshoring. by pete6677 · · Score: 1

      Quality in general has never been a factor in offshore outsourcing. Only price. And usually no thought is given to the cost of buggy software until the problem blows up in someone's face.

    5. Re:The industry has been trashed by offshoring. by coredog64 · · Score: 1

      How dare those Indians! If they actually wanted to eat they should have had the good sense to be born in America just like me.

    6. Re:The industry has been trashed by offshoring. by alexo · · Score: 1

      The best software development managers were formerly software developers themselves.

      I respectfully disagree.
      Juggling bits and juggling people are completely different skills.

    7. Re:The industry has been trashed by offshoring. by DamnStupidElf · · Score: 1

      Juggling bits and juggling people are completely different skills.

      The solution is just to turn people into bits with a chainsaw before juggling them.

    8. Re:The industry has been trashed by offshoring. by jafac · · Score: 1

      The industry was not "trashed by offshoring" Offshoring is just practice - which can be benign or malignant in implementation. (usually malignant) - - but it's the intent BEHIND the offshoring which is what trashed the industry. The intent was: cut costs, and improve (perceived) shareholder value. In pretty much all cases, offshoring will give you a short-term lower cost. Long term though, you cut your own throat as you lose out in innovation, independence, and agility. Some companies actually just plain can't compete - paying US labor costs, playing "the game" on honest terms. But as soon as finance comes into play, and having to appease shareholders. . . you're playing a game that has very little to do with technology and more to do with business and accounting. And that is what destroyed the industry. The industry was built on innovation and brains. The financiers came in, and we got our free cokes - then they pumped-and-dumped it all. Every last bit. SGI, DEC, Sun, pretty soon, HP, Xerox. . . one by one. The MBA's took over. That's what trashed the industry.

      This is what happens when you let a businessman run a technology company.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    9. Re:The industry has been trashed by offshoring. by misnohmer · · Score: 1

      Software is a business. If offshore development produces "good enough" results and costs less, that is what a good business is obligated to do. No different than any other industry (hence you buy cheap T-shirts made in China and are not willing to spend 10x the money on one made locally).

      Similar argument to off-sourcing is using open free software. Businesses often use free software because it's "good enough" killing jobs for people who would like to make a better product they can charge money for (but also need a paycheck for it).

      If you say open source free software benefits the software industry, why would cheap software (developed off-shore) not do the same?

    10. Re:The industry has been trashed by offshoring. by JoeMerchant · · Score: 1

      If you say open source free software benefits the software industry, why would cheap software (developed off-shore) not do the same?

      Start by viewing the movie "Outsourced," about call centers instead of software, yes, but not so different - tell me how "Toad" ends that movie and tell me who profited from the entire venture>

      Ben and Jerry built a damn good ice cream business based on the naive, children's version of "the Golden rule" they became an international force to be reckoned with while keeping to their promise to maintain a maximum ratio of 7x between the lowest and highest paid employees in their company. Eventually, the grown up version: "He who has the gold, makes the rules." overpowered their ideals, and now they're just another big company in the global landscape. Google is currently undergoing a similar transition from "don't be evil," to "try not to be too evil." God help us if they ever turn around and try to extract every penny they can from their current position of power in the world's information flow. But, shouldn't they? Aren't they obligated to their shareholders to maximize profits? Shouldn't they dump all these high priced child prodigies and outsource their software business to some guys in India who are "good enough" to keep the ad revenue flowing in?

  13. Too many candidates to choose from by acidradio · · Score: 5, Insightful

    It seems like every job posting now has around 50-100 people who apply. To weed out this many people en masse they will make you do just about anything - tests that have little application to the job that you are applying for, bark like a dog, sing the interviewer's favorite Barbra Streisand song, paint a painting of a nice wilderness scene, tune the carburetor on the interviewer's old Triumph motorcycle... Many of the people are well-qualified and even over-qualified! To weed them out on that alone would go nowhere.

    If I had to tell you how many times I've been asked something stupid and cliche like "Tell me about a time when you experienced change" or "Tell me about a time when you faced challenge" I might go postal. It's almost like HR people invent these questions to pad their interviews because they don't really understand what or who they are interviewing for. I long for the days when a hiring manager or, god forbid, the company owner/proprietor calls and asks you "So, tell me what you are about and tell me why you think I should hire you."

    They can treat applicants like total bastards and get away with it. With this kind of market what is really to stop them?

    1. Re:Too many candidates to choose from by Phoobarnvaz · · Score: 2

      It seems like every job posting now has around 50-100 people who apply. To weed out this many people en masse they will make you do just about anything - tests that have little application to the job that you are applying for, bark like a dog, sing the interviewer's favorite Barbra Streisand song, paint a painting of a nice wilderness scene, tune the carburetor on the interviewer's old Triumph motorcycle... Many of the people are well-qualified and even over-qualified! To weed them out on that alone would go nowhere.

      Another trend we never used to see are the online tests for minimum wage/low paying jobs. Had a buddy of mine who can pass these with no problem tell me you have to lie and don't list your education/training anywhere on the application/resume. Never thought in my life I would see a test battery being used to be able to clean bathrooms or flip burgers. WTF has this country become when slavery to a corporate master is becoming the way of life in the US.

      We want a job to be able to have a place to stay and have some semblance of a life without sponging off friends and families. Because we won't blindly follow directions to clean the bathroom with our tongues or a toothbrush...die at the counter or my desk in 35 years or can make suggestions on doing something better from previous experience doesn't mean we will not make a bad employee. With the economy the way it is...it's not like there's another job waiting out there which will give better benefits/pay.

      --
      Don't worry about the world coming to an end today. It's already tomorrow in Australia. - Charles M. Schulz
    2. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0
    3. Re:Too many candidates to choose from by owlstead · · Score: 2

      Go to NL, we've got a (rising) shortage of IT personel. Of course, your pay level and housing cost may be affected. We are a friendly people that like to drink real beer, talk English and use US keyboards :)

    4. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      hey. are you a really great php or c coder ? we don't see 50-100 people applying, feel free to help with that :)

      http://www.zabbix.com/jobs.php

    5. Re:Too many candidates to choose from by cashman73 · · Score: 1

      But, I am a people person! I am good at dealing with people! What in the hell is wrong with you people?!?!

    6. Re:Too many candidates to choose from by eulernet · · Score: 1

      There is another problem: programmers tend to focus only on programming, and forget to take an interest in the domain where they code.

      For example, UI are often coded by junior programmers because experienced developers hate coding that, even though it's the most important part for users !
      It's very obvious in some games, where the first menus, not being part of the game, are much slower than the game itself.

      Using IQ tests and similar things will just make sure that you find people only interested into solving problems, instead on focusing on user needs.

      What worries me is Google's obsession on the technical focus, and disdain of user (did you try the last GMail interface ?).
      I call that "Wow effect".
      But most of the users don't need any Wow. They need fast, stable and intuitive interfaces.
      I don't want to be forced to change my way of working whenever their GMail's interface changes.

    7. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      Some years back (10) a number of colleagues of mine - British, Canadian, and American - were unceremoniously booted from your country due the then-wave of anti-foreigner attitude. By 'booted' I mean that at a number of different companies, all in medical software and hardware fields, they were prejudiciously forced out, laid off, fired, etc. These were all first-rate people, not 'deadwood'. They easily found work again, just not in the Netherlands.
      I don't know if it's still like that there, as most of my contacts working there are gone, for some reason.
      That's not to say that any number of other countries have not also had their periods of collective stupidity.

    8. Re:Too many candidates to choose from by sjames · · Score: 1

      And yet there are still claims that we need more H1B and the poor poor companies just can't find a qualified candidate.

    9. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      If you have several candidates that are you know are qualified, there's no point in giving them tests. If you know they have the technical skills, weed them out by having them hang out with the rest of the team and perhaps throw in a few questions like you'd ask a potential roommate -- e.g., "What sorts of conflicts with coworkers have you had and how did you resolve them?".
       
      I see these sorts of brain teaser tests as a sign that the people doing the hiring are either untalented at hiring, too insecure in their abilities to hire, or too attached to having standardized processes to realize when they're a waste of everyone's time. I've never applied to several companies, including Google, because their hiring process is so poorly thought out that I can't imagine we'd be a good fit for each other. If you look around, you can find stories of people who've had eight or a dozen interviews at Google -- requiring cross-country flights -- and not gotten the job. That's a just plain shitty hiring process.

    10. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      you make a PHP website. get over yourselves.

    11. Re:Too many candidates to choose from by acidradio · · Score: 1

      These ridiculous tests are probably how they pad their claim that they need overseas H1B labor!

    12. Re:Too many candidates to choose from by Anonymous Coward · · Score: 1

      If I had to tell you how many times I've been asked something stupid and cliche like "Tell me about a time when you experienced change" or "Tell me about a time when you faced challenge" I might go postal.

      those "tell me about a time..." questions are part of behavior-based interviewing. It's relatively new and a lot of people hate it. I actually like it and I use it often. When we do interviews, other people on the team focus on technical questions ("what's the difference between truncate table, delete from table and drop from table?" or whatever) and I do lots of behavior-based questions. These questions allow the interviewee to talk about his work experience. By listening to his responses, the interviewer can learn a lot about him. We can learn how he approaches problems and/or people or whether he actually knows how to do the things his resume claims. In my experience, the people that can't tell any good stories about work they've done haven't done anything worth mentioning. This translates to him being less impressive than a person who has a good story to tell about some good work that he did.

      What I'm saying is: You may want to try to get a better understanding of what your responses to those behavioral questions say about you before you dismiss them.

    13. Re:Too many candidates to choose from by pz · · Score: 1

      tell me why you think I should hire you

      This is arguably the best interview question of all time.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    14. Re:Too many candidates to choose from by Darinbob · · Score: 1

      I wish we were getting the cream of the crop to interview. Over time I've been dumbing down my questions. I think this may partly be due to the recruiters. Ie, getting EE people instead of CS for junior positions and their programming knowledge is a bit sparse. I used to ask about inserting an element at position N in a linked list, but this ended up taking all the time allotted so now I just ask for code to delete instead. And I'm honestly surprised about how many can't clear a bit from a word or who confuse ^ with &. If the resume says C and embedded then I sort of expect some minimal knowledge of how to program in C. Even if your favorite language is Ruby or Java you should still be able to program something that simple in C if C is on the resume. The job won't be 100% programming but programming will be the primary tool you will use so you should know it.

      I'm really surprised. It's a down economy, the company is growing, the industry is interesting, it's pre-IPO, so I would expect seeing lots more qualified junior candidates.

    15. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      I hear you. My latest strategy is to purposefully fail all these stupid quizzes, personality profiles etc. Then, take the list of applications down to the unemployment office, get on food stamps, etc. Fuck 'em. If they don't want me to work, I won't work.

    16. Re:Too many candidates to choose from by nabsltd · · Score: 2

      There is another problem: programmers tend to focus only on programming, and forget to take an interest in the domain where they code.

      My data structures prof wanted to show the worst case when using a binary tree to store input so he used the Unix "words" file as input for one of the test cases.

      Knowing that "English words" was the domain for input data, I reversed every input string before storing it.

    17. Re:Too many candidates to choose from by jeff4747 · · Score: 1
      They can't*.

      .

      .

      .

      .

      .

      * at the below-market rate they want to pay.

    18. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      Frankly, I'm posting this reply to simply give you a cue. Nobody needs to ask "tell me what you are about and why you think I should hire you" because that's written on the one page (hopefully) resume that you've already sent earlier to the company and in an average place 10-20 people looked at it by the time you get the first call.

      The questions may sound typical, but the problem of hiring is a very, very typical one, and so are the questions. For technical jobs, some dose of technical questions is good, but a) the technical skills will immediately come out on a simplest test or programming task, b) if you have 3+ years of experience in the profession you're applying for, unless you're an absolute moron, you'll answer all basic technical questions flawlessly (if you don't, that's a huge, huge red flag).

      That leaves out to sort out what your communication style is like, what your attitude is like, and what your problem solving skills are like, so the recruiter/manager can decide how well you'll fit in the company culture/team. That can be perfectly solved with run-of-the-mill questions, and since you can 100% expect those, you should be prepared for them. Most of the time, the job interview is a fairly predictable experience, and if you cannot handle it properly, then you do not qualify for the job.

    19. Re:Too many candidates to choose from by acidradio · · Score: 1

      Well I left the IT business. But I'd LOVE to try out anywhere that they drink beer and use US keyboards!

    20. Re:Too many candidates to choose from by acidradio · · Score: 1

      Sadly the "good" employees that you want to hire are staying put at the jobs that they already have. This is especially the case when you have people who are nearing retirement age - they all lost a ton of retirement investment money so they aren't going anywhere until that is recouped. With today's economy, "If it pays the bills why rock the boat?"

    21. Re:Too many candidates to choose from by wmbetts · · Score: 1

      Zabbix is pretty darn cool. If I needed a job I'd apply :).

      --
      "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    22. Re:Too many candidates to choose from by wmbetts · · Score: 1

      There is only 1 mandelbr0t so of course we need more H1B.

      --
      "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    23. Re:Too many candidates to choose from by tqk · · Score: 1

      I don't want to be forced to change my way of working whenever their GMail's interface changes.

      There's a fairly simple and blindingly obvious solution to that conundrum.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    24. Re:Too many candidates to choose from by wmbetts · · Score: 1

      There's only 1 mandelbr0t so of course we'll need more H1B candidates.

      --
      "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    25. Re:Too many candidates to choose from by tqk · · Score: 1

      In my experience, the people that can't tell any good stories about work they've done haven't done anything worth mentioning. This translates to him being less impressive than a person who has a good story to tell about some good work that he did.

      That doesn't sound very objective. Perhaps they're simply inarticulate. Geeks are known (stereotypically) for their lack of social skills. Pontificating on their brilliant high points may not be what they're best at. When you've gone through life watching people's eyes roll up into their head when you're talking to them, you may learn to feel some reticence to tell any more stories.

      Perhaps you're not really looking for technical brilliance. You (perhaps) prize social skills above technical skills. Which is alright, but be honest with yourself (and us :-).

      R. P. Feynman rubbed a lot of his peers the wrong way at Los Alamos. Lots of people let personality get in the way of better judgment.

      Me, I prefer to cut eccentrics a lot of slack. Just imagine for yourself dealing with what's inside his head.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    26. Re:Too many candidates to choose from by tqk · · Score: 1

      tell me why you think I should hire you

      This is arguably the best interview question of all time.

      Agreed! Double plus points if he follows up with, "Why would you not want to work for me?"

      That's an employer who cares about you as a person, AND wants to improve.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    27. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      Kind of OT, but my addiction to GMail suddenly disappeared when I got myself the authenticator. Somehow, one more step in login process, and it turns out I really can live without it just fine (as opposed to having to fish out my phone, unlock it, launch the authenticator, and copy the silly 6-digit code everytime I need to login to that darned thing).

    28. Re:Too many candidates to choose from by tqk · · Score: 1

      If the resume says C and embedded then I sort of expect some minimal knowledge of how to program in C.

      I once went into an interview where I was the twentieth interviewee (sp?). They sat me down at a computer and pointed at a filename, asking what I'd do with it. It was a tarball. Twenty people prior to me with "Unix Development experience" on their resume failed that question.

      Resumes lie all the time. One might even say habitually.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    29. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      I jumped ship a couple of years later, when it started getting really bad. After being born and raised there (and living there for over a quarter of a century), I'll be turning in my Dutch passport within a few weeks (I still need it for ID until my new ID card and passport are ready.) Even though the Dutch mentality and attitude (in general) were only two of many reasons for leaving (the major reason being a good job offer close to my then-girlfriend), in hindsight I'm glad I'm now a tourist there...

    30. Re:Too many candidates to choose from by Dan+Dankleton · · Score: 1

      Is that .nl or .nl.ca?

    31. Re:Too many candidates to choose from by mcvos · · Score: 1

      I suspect the reason that we have a shortage of programmers is that in Netherland they're not paid quite as much as some other highly educated professions.

      Not that my pay is bad by any means, but I get the impression that management, financial, farmaceutical etc jobs pay a lot more. But yes, there doesn't seem to be a shortage of jobs here.

    32. Re:Too many candidates to choose from by Anonymous Coward · · Score: 0

      man, your products going to kill my ex-employer.

    33. Re:Too many candidates to choose from by akeeneye · · Score: 1

      Go to NL, just like that? When will my work visa be ready for me? Let me know and I'll get my plans together. Really, my brief research into the idea of working in the EU resulted in the conclusion that the odds were not good. Even for the UK pretty much all the job listings I saw indicated that I had to already be legally entitled to work there before they'd consider my application.

      --
      The man who dies rich dies disgraced. -- Andrew Carnegie
  14. Amen by bradgoodman · · Score: 3, Insightful
    I've sat through interviews before where I got hit with some of these "puzzle" questions. The thing that really struck me was that the questions were the kind you'd need to be a Nobel Laureate to solve (not really), but were completely obvious if you *knew* the answer. So, as these were "novel" or "neat" "brain-teasers" - they really assessed only if you were some mathematical savant - and had nothing to do with your coding, or even problem-solving abilities. I'm 100% sure that the interviewer wouldn't have been able to figure out the answers, if he hadn't already known them.

    (In the end I admittedly had absolutely no idea how how to solve the problems, and didn't even attempt to. I got the job anyway.)

    When I interview people - I feel it is my job to "extract" the best out of the candidates, and to find out what "their best" actually is. If I come away from an interview and don't have a strong feeling for a candidates abilities - good and bad - I feel as though I didn't do my job as an interviewer. I've seen too many people "freeze up", or just be shy in interviews. These people maybe were VERY qualified - I feel it is always my job to understand that. My creedo is this: Get the people talking. Get them talking about what they do, and what they love. If you can do this - they'll go into the depths and bowels of their technical knowledge, working style, experience, etc.

    1. Re:Amen by zegota · · Score: 1

      Commonly referred to as Jewish math problems. Problems that have trivial, or exceedingly simple, solutions, that are impossible to find on their own. The Soviets used them to weed out Jews from the universities while pretending they weren't. They gave the normal problems to most of the kids, and the Jewish problems to the Jews. If anyone questioned them, they could say "Hey, look. It's an easy solution. It's not my fault they didn't get it." http://io9.com/5848752/how-to-solve-jewish-math-problems

    2. Re:Amen by cpm99352 · · Score: 1

      Agreed. Back in the day, that was how I interviewed as well. My preference is to ask very open-ended questions (so, tell me about your latest (or most fun) project), and then drill down on their answers, getting more technical as we go.

      So many people freeze during the interviews (I certainly used to) that, much of the time, the BS artists are the ones who pass through traditional interviews.

    3. Re:Amen by bradgoodman · · Score: 1
      Yes. The BS artists, or the people who are outgoing, or egotistical enough to thrive in that kind of an environment. Not that that's a BAD thing, it's just that when someone is nervous, they are MUCH more susceptible to messing up even very SIMPLE tasks - even ones that they know well, or have done a million times.

      Personally, when peoples "eyes are on me" - I even hate answering specific "white board coding" questions. If you put me at a computer and have me CODE - no problem. If you ask me about a project and get me talking - I'll go all day, and into specific detail.

      Put me in front of a white board and tell me to write a linked-list insertion function (something I've written a billion times, have been asked a million times in interviews, and KNOW I'll be asked in future interviews) - It's a complete mental choke!!

    4. Re:Amen by ohnocitizen · · Score: 1

      I've seen the other side of things, where I've gotten "pop quizzes" about useless trivia about a specific language, or been asked to spend upwards of 6 hours - for free - working on a problem to see if the company would like me. I've also had interviews where I've been asked simple questions "with no right answer" to see how I went about solving a problem. I was encouraged to think out loud. I LOVE this kind of question, and when I've been on the other side of the table, I've employed it with great success. Ask anything, and throw in random obstacles. Do they ask for help? How do they handle the obstacles? This can tell you far more about an employee than whether they know which file does what in an obscure web framework.

    5. Re:Amen by retchdog · · Score: 1

      not if they give the same problems to all applicants.

      --
      "They were pure niggers." – Noam Chomsky
    6. Re:Amen by rsborg · · Score: 1

      Because it's nothing more than a minor inconvenience for a small number of users? Great, your battery drains before the day's over. So what? Charge your phone more frequently for a couple of weeks while Apple looks into the issue. Come back and make your RIM comparison when half the iPhones in the world stop working for three days straight.

      The reality is that the the "good" candidates already have insiders feeding them as much knowledge as possible... this is actually a good way to select candidates because they a) know someone (and won't be isolated) in your organization and b) know how to get at answers the social route.

      Where this falls down is when the insiders feed the actual answers to the candidates (I've seen this happen)... especially if there is a hiring bonus to be had. As a hiring manager, it's good to ensure who the candidate knows inside and why, and also to change-up your questions... of course, anyone doing this already is likely not using trick/puzzle questions anyway.

      --
      Make sure everyone's vote counts: Verified Voting
    7. Re:Amen by sjames · · Score: 1

      They struck me as the kind of questions that don't provide enough information to yield a single correct answer.

    8. Re:Amen by lgw · · Score: 1

      I specifically cater to this. I start with a very easy problem and ask for a verbal description of a solution, then as the candidate gets comfortable and gets his geek on, I'll pile on tough requirements and ask for code on the whiteboard. I've tuned it now so that no one chokes. It really is a concern, and one the interviewer needs to work to overcome.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    9. Re:Amen by pz · · Score: 1

      So, as these were "novel" or "neat" "brain-teasers" - they really assessed only if you were some mathematical savant - and had nothing to do with your coding, or even problem-solving abilities.

      The real reason to ask questions like that is not to assess the knowledge level of the candidate, but their ability to reason with limited knowledge. You, the potential employer, want to see how they think. For a programmer, that's going to be more important than anything else.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    10. Re:Amen by Darinbob · · Score: 1

      That's one thing I'd like to see from more candidates, and that's to be confident. If you don't know the answer just say you don't know and don't drag it all out with "ums". If you worked 4 years on a product at your last job then be able to discuss that product (the non-secret parts anyway) instead of just drawing a vague cloud on the board. If you do know then express it confidently. Even if you're a shy person in real life at least pretend to be confident during the interview. Simple stuff really but maybe it's not obvious: make some eye contact, don't mumble, smile, express interest in the company and products.

      If you feel uncertain during the interview then the interviewer is going to be uncertain about you!

    11. Re:Amen by Darinbob · · Score: 1

      I had one person recently that seemed to be freezing up badly. Interview started well but when down to practical questions the nerves seemed to come out. It seems some people expect to give the "right" answer and won't just say "I don't know" so we can move on. Not knowing an answer is fine with me, I'm just feeling out your background. Then when coding simple stuff on the board she seemed to almost have a melt down, hands shaking, face sweating, constantly erasing and rewriting the same stuff. I have never seen anything that bad before.

      So the simple one liner got finished, then I headed to "linked-list insertion function" and it didn't go any better. Honestly, it's a simple thing to do. Mental chokes are one thing but if you can code you should be able to know some basics. I'm not grading on perfection, so what if you miss some things?

      We have to ask some stuff here because there are just too many cases of people being able to BS through the "tell me about your past jobs" part of the interview. Plus there are tons of people who cram up on the language and textbooks the day before and will be able to answer all the questions. So now we need to verify that you are what you say you are and not just bluffing.

      Problem is we can't just easily sit you in front of a computer and have you code instead of using the whiteboard. If we stick in the room you may have the mental block anyway, and we can't just leave you alone with the computer. Then how do we know you'll be able to use the tools, know how to use the editor we provided, the compiler, etc? Then how much time do we give you? I think it'd be a nice way to interview someone but the logistics of it aren't so simple.

      What I'd like to do something is just get a bunch of examples of code and have the person identify problems with it (bugs, design, style, I don't care). But I showed one potential example to coworkers asking if it would be worth asking this in an interview and they were all stumped and confused by the bug so I gave up on that one. A more real-world example is just come in panicked and say "manufacturing is backed up and we have to ship by 5pm, help me debug this!" :-)

    12. Re:Amen by Rexdude · · Score: 1

      Precisely. There's no value in such puzzle questions that are binary - you either know the answer from having heard it before, or you don't. Joel Spolsky says as much in his guerilla guide to interviewing.

      --
      "..One hosts to look them up, one DNS to find them, and in the darkness BIND them."
    13. Re:Amen by Anonymous Coward · · Score: 0

      Are you hiring? ;-)

      I have to agree with this - I've sat through various tests, that for the life of me I couldn't work out what they were going to tell the interviewer. I'm a sysadmin, and got asked to do a Javascript test once. I figure it was because one of the guys interviewing me was a webdev, and it was all he knew to ask, but it was really just a waste of time - I could have told him up front that I was going to get less than half of it right.

      For what it's worth, I've personally done the same as you - I tend to 'chat' with candidates and just try to gauge what sort of person they are. I guess the difference between me and my industry colleagues is that I rely on my intuition rather than statistics. Like someone above said, it's usually better to figure out "how" someone is, rather than "what" someone is. If they're a learner and they want to learn what you're peddling, then they'll do fine.

    14. Re:Amen by Anonymous Coward · · Score: 0

      and core values

  15. Trades like / apprenticeships / schools are TECH by Joe_Dragon · · Score: 0

    Trades like / apprenticeships / schools are needed for the TECH field.

    To many tests / certs are based on cramming for the test. Certs also have questions based stuff that you just about never see in the real work place or have software setups that seem to be a world where software is free.

    The beast way to assess an applicant's skill is to have some kind of a apprenticeship or temp to hire.

    Other good ways are hands on tests, go over past cases / stuff that happen in the office and asking what would you do?

    Some bad ways are off base questions, basing on GPA, degrees and what school you went to.

    GPA are bad due to filler class being part of them as well classes that are all about the test (good people at doing a job may be bad at tests and there are people who are good at taking tests but are bad at applying stuff that the covered aka the paper mcse)

  16. Definitely true for MS by spiffmastercow · · Score: 1

    I interviewed over the phone a couple times there.. They try to "ease" the difficulty by providing hints and asking you to "talk through" your process, etc. The problem is that these questions are often poorly defined (and I suspect made up on the fly), and one interviewer's "hints" were very distracting. In both cases I figured out the answers 5 minutes after hanging up, when I could finally be alone with my thoughts.

    1. Re:Definitely true for MS by JonySuede · · Score: 1

      I had a similar experience in the interview process for my current job I but was very blunt about it. I told the interviewer:

      I can give you a good answer to your problem but I have to stay silent about 5 minutes while I solve it and only after that I can explain my solution. However, if you really wish so, I can do a bad job while talking about it but be warned that you will eventually hear me talk about how I think when I think about "talking through" my process while I crapply solve you trick problem. I value quality and correctness, but as I said, if you really wish so, I can botch it for you. The choice is up to you.

      The interviewer evidently selected quality (who would choose crap?) and about 3 minutes later, I had an elegant solution based on graphs theory.

      --
      Jehovah be praised, Oracle was not selected
    2. Re:Definitely true for MS by shutdown+-p+now · · Score: 1

      I've had such a thing during my phone "pre-screening" interview at Microsoft as well. I gave the answer immediately, simply because I've seen that trick question before - and told the guy as much. Not sure what it was supposed to measure. Then again, other questions were about obvious stuff like explaining how virtual functions work. *shrug*

      On the bright side, there was none of that stuff on the actual interview - only coding/algorithm tasks, with code written on the whiteboard. Probably because that part is done by people (developers and managers) from MS itself, not hired recruiters. And most people who actually do that kind of work understand how useless those riddles actually are in determining whether the candidate is any good.

      For example, Eric Lippert - a senior developer in C# language team, and the guy who posts a lot of interesting stuff about C# language design on his blog, once wrote a hilarious tongue-in-cheek blog post about how Richard Feynman would approach such a riddle. Ironically, he used the very same riddle that was given to me in a phone interview...

    3. Re:Definitely true for MS by MHolmesIV · · Score: 1

      You had a bad interviewer then. This is not how we're trained to interview, even for the introductory phone interviews, which are generally not very technical.

      Also, puzzle questions are no longer condoned. We ask questions that are appropriate for the position. They can still be tough algorithmic questions, but not ones that require some "trick" to get right. In general the questions I ask are hard, but solveable, and I don't expect candidates to get them "right". What I want to see is how they approach the problem, if they generate test cases based on the specs and then test their algorithm with them, and what they do when they discover that the algorithm might not cover all the cases.

    4. Re:Definitely true for MS by spiffmastercow · · Score: 1

      These were algorithm questions, but they were they wanted me to a.) talk it out (I can't think when I'm talking), b.) recite the code to them over the phone (fairly large code blocks, and I did not write the code out to a computer first), and c.) deal with them giving me "hints" that were counterproductive and were leading away from the correct implementation. I think it's a ridiculous metric anyway, as a good coder should distill the problem down to its parts, research the problem (i.e. see what Knuth has to say about it), weigh the options, and apply it to the task at hand. As an aside, I've heard MS frowns on candidates that have gmail accounts. Is that true?

    5. Re:Definitely true for MS by MHolmesIV · · Score: 1

      Not that I know of. I've certainly never marked a candidate down for their email address, and I've never heard of anyone who has.

      The problems we ask are not ones that need a lot of research, mostly they've already been researched to death. What we're trying to measure are problem solving ability, knowledge of algorithmics and data structure design (which is basically how much classical CS you've done), and ability to function and interact well in the MS workplace. None of these things by themselves will disqualify a candidate, we've hired people with no formal CS background, and we've hired from all personality types and work styles.
      Talking things out, however, is quite a common occurrence. Pretty much every day someone comes into my office and starts drawing things on the whiteboard, or I will go draw things on someone else's whiteboards, even if they don't actually have much input, it's useful to talk through a problem with someone else, it lets you spot issues you wouldn't normally.

      I still think you didn't get a great phone interviewer. Coding over the phone is generally a dumb idea, especially since all we want to know is "Do you have enough ability that we are willing to pay a couple grand to have you come out and do a full interview loop". Mostly phone interviews should be historical and general. (Tell me about your last project. What was the most interesting problem you solved on it? How? Did you consider other solutions? ... etc")
      If you dig properly and ask for details, you can generally tell if someone is talking bull.

    6. Re:Definitely true for MS by spiffmastercow · · Score: 1

      Yeah, I get that talking things out is a good thing, and I'm quite good at it.. But it's hard to describe an algorithm over the phone with no visual aid. Sounds like you're a lot more reasonable than the people I interviewed with. Too bad I didn't interview with someone like you instead.

  17. Google Example by dupup · · Score: 2

    Google invited me to interview for a Java programming job. They started the interview by informing me that I would be "the oldest person in the group" (I was 39 at the time). Then, I was invited to code a linked list in C on the white board while they watched. I can do this, I suppose, having done it 20 years ago while getting my computer science degree. And never done it since. I questioned the relevance of the problem pointing out that this was surely not required for programming in Java. It kinda went downhill from there...

    1. Re:Google Example by mandelbr0t · · Score: 1, Troll

      I haven't coded a linked list in C in 10 years either, but I could still do it in my sleep. Sounds like you know less than you think you do.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    2. Re:Google Example by joggle · · Score: 1

      At least they didn't ask to code a linked list in Java. In C it's trivial with pointers. In Java, I would be stuck at "Why?" since there's already a LinkedList container. I'm only partially kidding.

      It's not really that unfair of a question because the answer is so simple and fundamental. It basically shows that you understand the concept of pointers and memory allocation, which even in Java is relevant due to the similarity to references.

    3. Re:Google Example by Anonymous Coward · · Score: 1

      Nasty, and lacking in reading comprehension.

      He didn't say he couldn't write the code, he said that he made the dumbass move of questioning the relevance of an interview question and blew the interview.

    4. Re:Google Example by TheSync · · Score: 1

      "They started the interview by informing me that I would be "the oldest person in the group" (I was 39 at the time)."

      Too bad you weren't over 40, you could have then said: "Of course I'm sure that won't be held against me due to the Age Discrimination in Employment Act..."

      When you are hiring, you never should mention anything regarding age, marriage status, race, veteran status, etc.

       

    5. Re:Google Example by Anonymous Coward · · Score: 0

      This is exactly the problem I've had. Getting asked daft questions about things like structs when I haven't used one of those in a very long time

    6. Re:Google Example by Anonymous Coward · · Score: 0

      Must be frustrating for you to work with so many "incompetent" people

    7. Re:Google Example by joggle · · Score: 1

      If the interviewer has any brains, I'm sure they'd grant some amount of syntax mistakes so long as you show the basic understanding of pointers. If you wrote:

      struct abcd {
          abcd* next;
          int value;
      }

      rather than:

      struct abcd {
          struct abcd* next;
          int value;
      };

      I don't think they would hold it against you. Even if you forget the name of C's memory allocation function malloc() and just wrote memory_allocator() I think that would be fine since anyone can quickly look up function names in a normal working environment.

      If you are used to using references in Java and forget C's * syntax for pointers, they'd probably just ask you more questions about that to make sure you understand how linked lists are supposed to work.

      On the other hand, if they simply took the code you wrote and gave you a pass/fail on whether it compiled and worked then that would be ridiculous.

    8. Re:Google Example by shutdown+-p+now · · Score: 1

      Perhaps they knew that you'd had to use them if you were to work on their code?

    9. Re:Google Example by shutdown+-p+now · · Score: 1

      Microsoft has invited me to interview for a job that was supposed to be almost entirely about writing C# code. I ended up in a different team, writing 90% in C++, because I can actually do it well (and it came out in the interview) - and finding people who can write well in C# is easier than doing the same for C++.

      Which is to say, perhaps Google wanted to find out what other skills you know other than Java?

      Alternatively, it may be that "Java" in this case includes JNI, and you'd be expected to write something on the native side as well, not just use it form Java. Or maybe they wanted to know if you understand low-level representations of things, such as pointers, enough that you can make a competent assessment of how a higher-level language implemented in terms of those more fundamental things - like Java - will perform for a given task.

    10. Re:Google Example by Anonymous Coward · · Score: 0

      agreed.

    11. Re:Google Example by DeadCatX2 · · Score: 2

      I haven't coded a linked list in about 8 years. And I shouldn't have to. There are standard libraries for that, and if you're writing your own linked list, then you're a failure of a programmer in the first place. We learned how to make linked lists in college only so that we knew their strengths and weaknesses [ O(n) traversal, O(1) adding/removing element, etc ], not so we could go on to find jobs writing linked lists.

      --
      :(){ :|:& };:
    12. Re:Google Example by Anonymous Coward · · Score: 0

      you are a dick

    13. Re:Google Example by mandelbr0t · · Score: 1

      It is. And that's entirely the point of this story: "from the lowering-the-bar dept.". Because most CS/Software Engineering grads are mediocre, we should accept mediocre programmers? /shrug. It's their money and their loss. There was an age when the "caveman" programmer was accepted, because he did the job. Now companies worry about "team players" and "personality" fits. Intelligent people are excellent problem solvers, but often have personality flaws similar to mine. What can I say? People whining that they can't make the grade don't get a lot of sympathy from me.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    14. Re:Google Example by mandelbr0t · · Score: 0

      Yes I am. So what?

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    15. Re:Google Example by mandelbr0t · · Score: 2

      Which, of course, is why I haven't written my own in over 10 years. The fact that you have forgotten shows that you didn't find it that important in the first place. C is an excellent language for understanding how a computer works. Managed languages are great because they remove elements that are likely to lead to human error. The tradeoff is that your program isn't as fast. These days, there are ways (CORBA, for example) to communicate performance-intensive code with the easier-to-maintain managed code.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    16. Re:Google Example by TheGratefulNet · · Score: 1

      The fact that you have forgotten shows that you didn't find it that important in the first place.

      I can't tell you how wrong and ignorant you come off as, saying that.

      I was in college in the early 80's. my linked list experience was pascal and I thought it was cool as hell. later in school, we had a 'C lab' (C was not big enough to have its own course; it was lab-only grade then). I found it similar enough that it was no big deal making the switch over.

      my first few years out of school, I loved elementary algorithms! cool stuff, was new and refreshing and, really, most of computing was new and refreshing.

      cut to quarter of a century later and about 10 jobs at various boston and bay area companies. I've done my share of tables, lists, trees, databases and so on. it lost its luster; its not fun or fancy or cool. its just a tool and I'll pick a tool based on what's needed. but its not "cool" anymore. it happens over time.

      the things that matter to me are now fresh in my memory. the things that are building blocks are just that; blocks that I assemble when needed. for such boring things, I don't commit them to memory. in fact, I flush out useless cruft to make room for more new useful things.

      this is the concept of pointers. I have refs I can consult for how the mechanics (that's the word I was looking for) of a routine from classical compsci should work. when its time, I replicate it. if needed, I debug it. but I don't dream of it, I don't store its steps locally and I don't demand everyone carry around such steps in memory just because YOU seem to think so.

      you judge people on silly things. I hope you consider this for some personal insight. maybe the next guy who interviews under you might get a more fair break.

      --

      --
      "It is now safe to switch off your computer."
    17. Re:Google Example by TheGratefulNet · · Score: 1

      agree with all you wrote.

      its funny that you often can't even get to the relevant parts of the interview if you don't appease the ones asking the 'can you remember this' questions.

      my field is network management and relevant questions would be about remote data modeling, retrieval, schemes for efficient i/o, problems encountered and usual approaches toward solutions, what standards might be relevant, when its ok to deviate, etc. that's where I have my base of expertise and what companies *used to* pay for.

      but I get 'delete this tree node in C++' questions. I don't get SNMP questions or tcp/ip questions or MIB design questions or router/bridge questions. it would almost be funny if it wasn't kind of sad. my resume is 25+ yrs of SNMP and remote mgmt protocols; yet they want to test if I can walk a linked list??

      and they really think that because I don't snap it back from memory, that I can't do the actual job at hand?

      time will catch up with all of you, though, so you are only on borrowed time, yourself. 10, 20, 30 years from now, you'll find yourself on the other end and recalling this very thread and knowing, first hand, what it was all about.

      --

      --
      "It is now safe to switch off your computer."
    18. Re:Google Example by mandelbr0t · · Score: 1

      What can I say? I don't forget things. And old, arcane knowledge will have applications in the present day. I don't need to push out "cruft" like how pointers really work, and how memory is really managed to remain current. This is precisely the sort of thing that separates the men from the boys. I don't doubt that you're a good programmer, but the more you remember, the more you can apply that old knowledge to new problems. Memory is as much a part of intelligence as anything else.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    19. Re:Google Example by JoeMerchant · · Score: 1

      I'm 44, Google doesn't answer any of my applications at all.

    20. Re:Google Example by jeff4747 · · Score: 1

      Don't worry about it. The guy you're replying to thinks CORBA is the best way to call native code from Java.

    21. Re:Google Example by gweihir · · Score: 1

      Asking for coding on the whiteboard is really a fail. (I interviewed with Google, and they failed, although in a different way and did not make me an offer. They did not blow me off either. I have rejected their repeated yearly advances since then, as I found I nice job somewhere else and from what I can see and hear from people inside the loss is mostly on their side.) For example, I have a large library of neat code-snippets in different languages I wrote and commented myself. These serve as memory extensions, as my memory is not that good. I am also very fast when using documentation (offline, local, net). I have worked in so many different languages by now they sort-of bleed together.

      All this is a huge asset in solving problems in a real world situations and a huge problem in the whiteboard situation. My guess is that Google hires a lot of good candidates, but actively filters out great candidates with significant experience. It sort-of shows in the quite large number of failed projects they have accumulated to date.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    22. Re:Google Example by gweihir · · Score: 1

      I'm 44, Google doesn't answer any of my applications at all.

      Hey, nice, in two years I can stop explaining to Google recruiters that they have already interviewed me and should either make me a competitive offer or sod off. Or maybe I should ask them to pay me for a day of consulting at $1500 if they want to re-interview me...

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    23. Re:Google Example by DeadCatX2 · · Score: 1

      The fact that you have forgotten

      Wow, that's quite presumptuous of you. I didn't say I forgot how to do it, I said I shouldn't have to do it. And I don't know where this managed language thing came from, I never even told you what languages I've used. But if you really want to get into some kinda pissing match, then I shall whip out the credentials.

      For the record, most of my actual programming is done in C, usually with an embedded compiler. It's the kind of programming that requires you to have a spare monitor just for datasheets, so that you can see what CPU register bits you need to fiddle with.

      I also do some programming in VHDL using FPGAs, using finite state machines and datapaths. In fact, I memory mapped a whole suite of peripherals into the embedded microcontroller's memory space (ADC, DAC, Stereo output, stereo input, SRAM, PWM, etc). I've even built a pipelined MIPS CPU in VHDL before, from scratch.

      Oh yeah, sometimes I also do some host-side programming. I've written a non-plug-and-play kernel mode driver, the kind you can't install with an inf file or "add new hardware". I've written C++ libraries that use known standards like NTP. I've written C# apps that interface with USB microcontrollers.

      I even design circuit boards. So I have to know how to interface electrical signals with each other. I know how individual transistors behave together to form logic.

      I'm not the best programmer, but trust me, I know how a computer works. I know my way from the transistor up through the managed high level language. I'm one of two developers on a custom remote debugger for reverse engineering and hacking Wii games, so my experience is generalized beyond just x86. I can look through PowerPC assembly and see the game iterating over an array of enemies, evaluating whether they have any damage pending, stuff like that.

      --
      :(){ :|:& };:
    24. Re:Google Example by nabsltd · · Score: 1

      I haven't coded a linked list in C in 10 years either, but I could still do it in my sleep.

      I'm sure I could still program most of the algorithms and data structures I learned 20 years ago, but I (and many other people here) have learned we aren't as good as the people who do nothing but code that stuff for libraries.

      Sounds like you know less than you think you do.

      Sounds like you don't know why it's not important to be able to do things that other people already done for you, and far better than you ever could. I can't tell you how many programs I've seen that perform poorly because somebody decided to write their own version of a library routine. The only important thing to know about a linked list is how it performs compared to other data structures, and how to use that information to determine the best data structure to use for a particular application.

    25. Re:Google Example by mandelbr0t · · Score: 1

      No, the guy you're replying to thinks that it is not necessary to write your entire program in C++. I'm aware of JNI as well. In a distributed environment, however, it's more likely that RPC of some type to communicate with other parts of the application will be used, since it is more portable.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    26. Re:Google Example by Mr+Z · · Score: 1

      It all depends on your domain. When working in the embedded space, you often have to write fragments of assembly code, or write a truly bare bones linked list if you need to control where the cycles and/or memory are going.

      Or sometimes you just have unique needs: For example, there's some code I've written for a DSP that needs to run both on the real thing, and a software simulation of the design (at the RTL level). The latter runs slooooow, on the order of 10s to 100s of cycles a second. So, blowing a million cycles on global constructors before reaching main might not phase me in the least on the real silicon, passing in under a millisecond. But in simulation, that expands to hours and hours and hours. (Had that happen to me once, declaring a global array of what I *thought* was a POD type, but it had a non-trivial constructor.) Sometimes, you just need the control offered by explicitly-written code.

      In more general programming, though, you're right--let the libraries and such handle it. In C++, use STL's list<>, vector<> and map<> for goodness sake!

    27. Re:Google Example by tqk · · Score: 1

      I haven't coded a linked list in C in 10 years either, but I could still do it in my sleep. Sounds like you know less than you think you do.

      Nasty, and lacking in reading comprehension.

      He didn't say he couldn't write the code, he said that he made the dumbass move of questioning the relevance of an interview question and blew the interview.

      Didn't some one up --^ there just definitively prove mandelbr0t's an ass and a poser? He sure reads like he's just full of himself.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    28. Re:Google Example by tqk · · Score: 1

      you are a dick

      Yes I am. So what?

      So stop being a dick? Grow, be more than you are, add value, ...

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    29. Re:Google Example by mandelbr0t · · Score: 1

      Thank you Mr. Motivation. My life is forever changed by your comment and your sig. Being nice doesn't make people any less idiotic, and being a dick makes suffering idiots a lot more enjoyable.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    30. Re:Google Example by Nivag064 · · Score: 1

      I agree.

      When I was 25 I went on a course to learn assembly language programming on an ICL mainframe, it is similar to IBM360 code. I read through the first 6 chapters of the text before I started.

      Okay, key points of relevance,
      (1) that was about 37 years ago (May 10th 1973)
      (2) I still remember the addressing is base displacement: each address of an instruction took 2 bytes, that is 16 bits. There were 4 bits to specify the register, and 12 bits for the displacement. This allowed one register to access anything in a 4096 byte (4 kilobytes) block - hence the prevalence of of 4k blocks in Linux file systems.
      (3) The first time I used linked lists in anger was in a university project when I had 4 doubly linked lists that I had to move items between. Took me the best part of the day to figure it out in C. Now I could probably do it in an hour or so, in either C or Java. I had never been formally taught linked lists.

      So if you are technically good, you should still remember the basics for almost forever, or at least the rest of your working life - I feel.

    31. Re:Google Example by hotfireball · · Score: 1

      I has been interviewed by Google two times and found once again: you judge people by their questions, not by answers.

      Would I like to work to somebody, who is just purely technical jerk, happy he knows a lot? No. Not at all. Why? Because "knowing a lot" does not mean "know everything", but usually the more somebody demonstrates his knowledge, the less he actually knows. I drew a conclusion that at Google they are not getting things other than just pure technically. Sort of soul-less company with a soul-less products. Would I like for such company? Uhmm... No.

      Latest rants about Google by their prominent employees and my experience developing for their Android actually only proves it.

    32. Re:Google Example by Carewolf · · Score: 1

      If you can not write your own data-structures you have no business coding C or C++, the only relevance first-class pointers and pointer arithmetics has is the ability to write your own data-structures. A linked list is the simplest data-structure, if you can not write that, you can not write C.

    33. Re:Google Example by Anonymous Coward · · Score: 0

      I suppose living in Florida doesn't help my profile much.

    34. Re:Google Example by Anonymous Coward · · Score: 0

      I could code a linking list, while holding a beer in one hand and a naked woman on the other. Just not in Java, which I only played around a bit with at uni as an undergrad. The GP probably has a similar problem with C. Then again, maybe he is retarded, like all the other toy language programmers. Hur hur hur.

    35. Re:Google Example by BenoitRen · · Score: 1

      I'm one of two developers on a custom remote debugger for reverse engineering and hacking Wii games, so my experience is generalized beyond just x86. I can look through PowerPC assembly and see the game iterating over an array of enemies, evaluating whether they have any damage pending, stuff like that.

      Sounds awesome. This gives me hope for an eventual hack of Mega Man 9 and Mega Man 10 that adds progressive scan support to them. (Damn you, Capcom!)

    36. Re:Google Example by radtea · · Score: 1

      What can I say? I don't forget things

      Often people who have a profound lack of self-awareness believe things like this because they aren't aware of--or even able to wrap their head around--the idea that they don't remember what they forget.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    37. Re:Google Example by ImprovOmega · · Score: 1

      No, but as with many things in computer science the distilled academic version of things has critical implications in real world coding environments.

      You learn to do linked lists in your sleep so that you forever understand how pointers work and the equivalence of certain fundamental data structures (array=queue=stack=linked list, in terms of capability)
      You learn how to compute the Fibonacci sequence recursively so that you understand when and how to properly use recursion and how to translate it into an iterative solution when that makes sense.
      You learn how to parallelize the Sieve of Eratosthenes so that you know how to approach work sharing among multiple processors and what can and cannot be split.

      A lot of these things are trivial/simple/academic but if you were never exposed to them I would question your ability to properly implement real-world applications. They should be so ingrained in you that knocking one out from memory should be obvious. Not because you've memorized how to do a linked-list, but because you know the fundamentals behind it like the back of your hand, so the trivial academic implementation of those ideas is second nature.

    38. Re:Google Example by eriqk · · Score: 1

      your rant sounds familiar.

    39. Re:Google Example by Anonymous Coward · · Score: 0
      I work for Google and do interviews. I suspect this poster is lying for several reasons:
      1. Google doesn't decide exactly what team you would be working with before hiring you. I'd think just about every group in the company large enough to have its own pool has people older than 39 or at least is too large to know otherwise off the top of someone's head, so an interviewer knowing that this poster would be "the oldest person in the group" doesn't smell right.
      2. Google interviewers receive training in things not to mention during an interview or use when evaluating a candidate, and age is high on the list. Maybe the interviewer ignored the training (and common sense), but it doesn't seem likely.
      3. Google's in-person interviews are always a block of interviews, each with a different interviewer, unless you spectacularly fail the first by physically threatening the interviewer or something. Your interview basically starts over four times. Saying that that an interview "went downhill from there" without mentioning this is odd.
      4. Google doesn't do group interviews, so I'm suspicious of the word "they" when I'd expect there to be one person in the room. (Though in fairness, maybe this is just a way of not revealing the interviewer's gender, and there's one exception: as part of interview training, one new person will "shadow" one seasoned interviewer. This might happen in one interview per block and is usually explained.)

      One thing sounds right though: when interviewing Google, claiming knowledge you don't actually have goes badly, even if it isn't obviously needed for the position of interest. If I interviewed you and you had C on your resume, I would have considered that a fair question, especially if (as sometimes happens) the recruiter gave you a scale to rate yourself on and you'd given yourself a decent score for C. I like to interview people based on the skills I expect they know now, even if they're not necessarily the skills they'll need to acquire to do well at the position of interest, and besides, there's enough call for multilanguage stuff at Google that the C might be more relevant than you realize.

    40. Re:Google Example by mjwalshe · · Score: 1

      well if the first thing they say is ""the oldest person in the group" Id be inclined to comment well maybe for my 20% time I could mentor your hr director in you know actually doing his job :-) (oh and name drop Vint who back in my Dialcom days was I suppose the top technical boss in the company oh and our UK written system beat their POS hands down)

    41. Re:Google Example by benthurston27 · · Score: 1

      Yeah, but not knowing how to make a linked list in C++ because you spend all your time doing all this other stuff is like an engineer saying he spends all his time using a plotter and autocad so he can't remember how to use a screwdriver.

    42. Re:Google Example by DeadCatX2 · · Score: 1

      I doubt that it's possible to add progressive scan to a game using normal hacks. But you're welcome to join the wiird forums and create a request in the support area.

      --
      :(){ :|:& };:
  18. Less False Positives by Tsarnon · · Score: 4, Interesting

    Sure this technique has tons of false negatives, but I think it has fewer false positives than many other interview techniques. False positives are a much bigger problem then false negatives when hiring.

    1. Re:Less False Positives by superwiz · · Score: 1

      To a degree. There is a tipping point, however. A short look will show that there is more recruiters on Dice than there are actual employers. Which means that everyone and their cousin is now acting as a gate keeper to a programming job. EVERY recruiter is in the business of staking out territory (once they submit your resume to a particular job, no other recruiter can submit your resume to the same job or both submissions get ignored). Which means that once the headhunting industry got saturated enough with people whose only skill is putting on a tie, it actually became an impediment to matching talent with prospective employees. Let me try to quantify this. Both false negative and false positive do some damage. Let's assign weights to both. Once that is done, there is a brake even point at which enough false negatives outweigh 1 false positive. If the gatekeepers are incompetent and heavily biased towards a negative, then the ratio of false negatives to false positives increases. And since recruiting requires no actual skills, the number of incompetent gatekeepers is growing. I have never heard of a qualifications test for recruiters. Have you?

      --
      Any guest worker system is indistinguishable from indentured servitude.
    2. Re:Less False Positives by gweihir · · Score: 1

      I do not agree. This approach filters out anybody with an alternate approach, in particular people that can do the engineering but have a much broader horizon. These are the truly valuable people.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Less False Positives by JASegler · · Score: 1

      You hit the nail on the head. The primary reason for that is once you have someone hired it is exceedingly hard to get rid of them. You only have to be burned badly once before you only want excellent candidates instead of good enough candidates.

    4. Re:Less False Positives by pete6677 · · Score: 1

      Recruiters are commission-only salespeople. Which means that basically anyone who wants the job is hired and only those who can do it successfully will end up earning enough to feed themselves. The bad ones find other lines of work before they starve. At least that's how it usually works.

    5. Re:Less False Positives by Anonymous Coward · · Score: 0

      Not really. Someone who is good at brain teasers, or who happens to have heard of the particular puzzle being asked, may do very well at that sort of interview. That doesn't mean they have any real ability to solve real problems or write real code.

    6. Re:Less False Positives by superwiz · · Score: 1

      It's a zero-skill job. Since the barrier of entry is so low, their numbers are growing faster than the number of available positions. Placing 1 programmer will pay as much as 2-3 months of any post-college entry level job. So the job attracts too many desperate kids who still think they are immortal and who don't realize that their lack of scruples is building them a lifetime reputation.

      --
      Any guest worker system is indistinguishable from indentured servitude.
  19. Problem solving ablilty tops his entire list. by bongey · · Score: 1

    Problem solving ability is what they are really trying to test. If you cannot figure out what to do, and lack basic problem solving ablilties you are one of these guys http://professionalsuperhero.com/ .
    "Talk is cheap. Show me the code."

    1. Re:Problem solving ablilty tops his entire list. by mjwalshe · · Score: 1

      well you need to solve real world problems not rote learned CS simple problems

    2. Re:Problem solving ablilty tops his entire list. by bongey · · Score: 1
      Well they are trying to test problem solving ability .
      How in the help can they test your ability to problem solve

      real world problems

      in an interview that last few hours?

  20. Here we go again... by SlashdotIsRetarded · · Score: 1
    You don't have to get the answers to all of Google's interview questions right. You have to show them that you know how to approach a problem and work towards a solution. They give you plenty of time and will often nudge you in the right direction if you're struggling. Most of the questions aren't particularly hard either if you have a decent understanding of data structures and algorithms.

    a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development.

    Bullshit. The vast majority of the questions are about using an appropriate data structure and applying it to a relatively trivial algorithm. If you don't want to learn these things, and for some reason are determined to be a developer, I suggest picking up Ruby on Rails. After a week or two you might even be able to make significant improvements to MRI.

  21. Changing the Rules by Nom+du+Keyboard · · Score: 2

    Considering that these questions can be asked once, maximum 3 times, before someone posts it to the Internet, now that I've memorized all of the right answers there they go changing the rules. I'll never get that job now.

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    1. Re:Changing the Rules by Diagoras+of+Melos · · Score: 1

      Answer to sig:

      How do Liberals define Evil? Sociopathy.

      --
      -- "The only thing that is ever new in the world is the history you do not know." -- Harry Truman
    2. Re:Changing the Rules by sorak · · Score: 1

      Google may say Don't Be Evil, but how do such unrepentant Liberals define Evil to start with?

      Let me guess: creationist?

  22. Liberal Arts vs problem solving by Anonymous Coward · · Score: 0

    The two biggest issues in programming are proper usage of programming language grammar and effective problem solving.

    Great problem solvers with poor grammar skills write buggy software fairly quickly. Great "grammarists" with poor problem solving skills write good code but the code takes a long time to get done because the problem solving is difficult.

    I remember working with a psychologist on an IQ interview (IQ tests are crap, proper IQ evaluation is done through interviewing with a trained clinical psychologist) and I pointed out that the solution given to a problem would not actually work and how my solution would. I had to work with her on beam deflection, but, she understood the issues. The point is that really creative problem solvers might come up with answers that don't fit within the test parameters which is exactly what you want with a programmer, innovative problem solving.

    1. Re:Liberal Arts vs problem solving by bickerdyke · · Score: 1

      IQ tests aren't crap. The idea, that the whole range of cognitive abilities can be expressed in a number is crap. And the idea that this number could is a usefull metric for anything is right out stupid.

      The best definition of intelligence I ever heard is: Intelligence is what you can measure with intelligence tests.

      So if you slap together a test that tries to measure intelligence by testing language. concentration, logic and 3D-thinking, you'll get an accurate test that measures exactly that.

      --
      bickerdyke
    2. Re:Liberal Arts vs problem solving by lgw · · Score: 1

      IQ tests are quite sensible and useful for the domain for which they were invented: measuring the cognitive ability of a mentally retarded person who can read and natively speak the language the test was written in. They're a pretty good scientific metric in that domain (they give the same results independent of who gives the test, they correlate well with other observable cognitive abilities, etc).

      --
      Socialism: a lie told by totalitarians and believed by fools.
  23. Pit of Death? by kermyt · · Score: 1

    Has anyone considered pitting them against each other in mortal human combat? That would surely make the cream rise to the top!

    1. Re:Pit of Death? by Anonymous Coward · · Score: 0

      Better idea than you might think... Core War comes to mind.
      http://en.wikipedia.org/wiki/Core_War

      Thus, satisfying your "survival of the fittest programmer" criterion, and acting as a basic test of skill and adaptability.

  24. I had this in my last interview by bartron · · Score: 1

    There were two parts to it. One was a set of about 20 questions that I maybe had an inkling of the answer. It was a warm day, I was wearing a suit and stuffed into a room by myself to see how many I could answer. Are they testing my abilities or my tolerance to being in an uncomfortable environment? Most of the questions were ones that only someone with OCD would be able to answer off the top of their head. Information like what protocol goes with what port is stuff that I don't use on a daily basis, but I know perfectly well where to look for it when I do need to find out. That's what reference material is for.

    the second part was "here's a problem, how would you code the solution". In this case the language could be anything, so I wrote in pseudo code and even went back over one of them because I though of a more efficient solution.

    Things that can be looked up in a reference manual or on the internet should be left out of interviews (unless the question is along the lines of "How would you determine XYZ?"). Keep it to methods used to solve a problem and you'll get a good understanding of how a particular person works and how they will work for you.

    1. Re:I had this in my last interview by gnasher719 · · Score: 1

      Things that can be looked up in a reference manual or on the internet should be left out of interviews (unless the question is along the lines of "How would you determine XYZ?"). Keep it to methods used to solve a problem and you'll get a good understanding of how a particular person works and how they will work for you.

      I think you should pose at least one question where the answer can found on the internet, give them a browser, and see what happens.

    2. Re:I had this in my last interview by Anonymous Coward · · Score: 0

      We did this. We posted test questions (relevant to the job) with the job posting. Folks had as long as they wanted (5-10 minutes was all that was required, if you knew your stuff) and whatever resources they wanted to use at their disposal. Some didn't even bother putting down anything, and one even wrote "google" as the answer to each question. We didn't waste our time on any of these folks-- cut the stack down by about 30%. Lazy and arrogant need not apply.

    3. Re:I had this in my last interview by ThorGod · · Score: 1

      Things that can be looked up in a reference manual or on the internet should be left out of interviews

      Yeah, I agree. Unless it's a job that requires instant recall, don't test people on what amounts to memorizing log tables.

      Test people with what they're going to be doing. If the guy's got to work a shovel, give him a shovel. (Trivial example.) If it calls for analysis, give him something requiring thought and time. I think that's the real problem with tests. They're mixing the types of test. Analytical work is rarely done on the same time frame as digging a hole.

      --
      PS: I don't reply to ACs.
    4. Re:I had this in my last interview by hawguy · · Score: 1

      There were two parts to it. One was a set of about 20 questions that I maybe had an inkling of the answer. It was a warm day, I was wearing a suit and stuffed into a room by myself to see how many I could answer. Are they testing my abilities or my tolerance to being in an uncomfortable environment? Most of the questions were ones that only someone with OCD would be able to answer off the top of their head. Information like what protocol goes with what port is stuff that I don't use on a daily basis, but I know perfectly well where to look for it when I do need to find out. That's what reference material is for.

      I'd accept "I know right where to find it" as an answer if someone showed me how they'd find it... something like this:

      port=ftp/data
      echo "The $port port is `grep $port /etc/services | awk '{print $2}'`"

      Some things that are found in manuals are so key to the field that it still makes sense to ask. For example, another poster complained that Google asked him how many bytes were in a MAC address. Well, if I'm hiring a senior network admin, I'd expect him to know the basics of common layer 2 transports (which might be just ethernet for a LAN engineer, but would encompass much more for a WAN engineer). I'd expect him to be able to describe an ethernet frame. Maybe not down to the last bit, but he should at least know the major parts and I'd certainly expect him to know how big a MAC address is

    5. Re:I had this in my last interview by bartron · · Score: 1

      I'd accept "I know right where to find it" as an answer if someone showed me how they'd find it... something like this:

      port=ftp/data echo "The $port port is `grep $port /etc/services | awk '{print $2}'`"

      Some things that are found in manuals are so key to the field that it still makes sense to ask. For example, another poster complained that Google asked him how many bytes were in a MAC address. Well, if I'm hiring a senior network admin, I'd expect him to know the basics of common layer 2 transports (which might be just ethernet for a LAN engineer, but would encompass much more for a WAN engineer). I'd expect him to be able to describe an ethernet frame. Maybe not down to the last bit, but he should at least know the major parts and I'd certainly expect him to know how big a MAC address is

      Oh I fully agree. For stuff that is day to day then yeah, knowing your key functions off the bat is going to be handy. Most of the time I write code that includes functions that I have no idea about unless I look them up. I know 'where' to find the info if I need it but just don't ask me to do it without referencing something. It's funny when I look back at my own code and realise just how complex it can be. It's easy to look at that and think "this guy knows his stuff" but what you can't see is the stumbles, hurdles, google searches etc that went into it. That's what they need to be able to test. Anyone can get the desired result given enough time. How you go about it though is the key.

    6. Re:I had this in my last interview by sandytaru · · Score: 1

      My manager has "Applicants must apply in person between 8AM and 12PM to be considered" tucked away in the job description. Any person who applies via email is instantly ignored for inability to follow instructions. The last person he hired (as his assistant) actually said as her first sentence, "I saw this job listing last night and was about to email you, when I reread it just to be sure you would take emails and then I saw it said come in during morning hours. I'm glad I read it again more closely."

      --
      Occasionally living proof of the Ballmer peak.
    7. Re:I had this in my last interview by ChrisMaple · · Score: 1

      Questions that seem too rote and specific can have value. If you know the answers, it shows you can hit the ground running. If you demonstrate that you understand the questions, you may be qualified. If you don't understand the questions or try to BS answers, most likely you should be eliminated without any other consideration.

      --
      Contribute to civilization: ari.aynrand.org/donate
    8. Re:I had this in my last interview by Anonymous Coward · · Score: 0

      well damnit the one who wrote google as the answer was definitely a corrupted hive.
      and the catchphrase is 'google it'

    9. Re:I had this in my last interview by Jaxoreth · · Score: 1

      Unless it's a job that requires instant recall, don't test people on what amounts to memorizing log tables.

      Funny you mention that. My very first Google interview question was "What's two to the twelfth power?". Then again, if you claim over a decade of experience with C then you probably should have the first sixteen powers of two memorized.

      --
      In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide
    10. Re:I had this in my last interview by ThorGod · · Score: 1

      if you claim over a decade of experience with C then you probably should have the first sixteen powers of two memorized.

      I wouldn't know the relation, but of course there's always short cuts. The trouble with short cuts is they can be wrong. In particular, human memory is contextual. Maybe you can't remember what 2^10 is if you're mountain biking a thousand miles from home, on vacation. It'd be silly to ask an 'out of context' question and make a serious judgement on your recall in that case. It's a little easier to believe an interviewer shouldn't be too tied to context, but tests are definitely out of usual context.

      --
      PS: I don't reply to ACs.
    11. Re:I had this in my last interview by nabsltd · · Score: 1

      port=ftp/data
      echo "The $port port is `grep $port /etc/services | awk '{print $2}'`"

      That would lose lots of points for me, what with the "port" being the wrong name (ftp-data, although that's just a minor issue), the assumption that the place to find the info is a file in /etc (which it doesn't have to be, and this is more important, especially in larger companies), and not knowing that "getent entry databasename" has already done all the heavy lifting that deals with queries like this (e.g., following the settings in /etc/nsswitch.conf).

      You'd really call it OK with that many mistakes in two lines?

    12. Re:I had this in my last interview by Jaxoreth · · Score: 1

      if you claim over a decade of experience with C then you probably should have the first sixteen powers of two memorized.

      I wouldn't know the relation, but of course there's always short cuts. The trouble with short cuts is they can be wrong. In particular, human memory is contextual. Maybe you can't remember what 2^10 is if you're mountain biking a thousand miles from home, on vacation. It'd be silly to ask an 'out of context' question and make a serious judgement on your recall in that case. It's a little easier to believe an interviewer shouldn't be too tied to context, but tests are definitely out of usual context.

      I saw it as possibly a measure of culture fit. Obviously, knowing it's 1024 right off the top of your head isn't a required skill, since you can always punch it into your favorite command-line-based calculator (e.g. `perl -le 'print 2**10'`), but maybe they're looking for the sort of programmer who likes to have these things memorized, or is hands-dirty enough to need to.

      In any case, the interview process ended when I couldn't invent on the spot a linear algorithm for detecting a corrupted (i.e. cyclical) linked list.

      --
      In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide
    13. Re:I had this in my last interview by laptop006 · · Score: 1

      I actually *am* a network engineer, working daily on Google's backbone.

      Actually the knowledge tested for in interview's isn't that great (certainly not enough to be productive on day one), but as with others it's the proven ability to learn that counts.

      --
      /* FUCK - The F-word is here so that you can grep for it */
    14. Re:I had this in my last interview by Anonymous Coward · · Score: 0

      Seems like you are the arrogant one. You obviously already know the answer to all the questions, and are interested primarily in how they solve the problem. If the answer can be found within half a minute on google (for example, the 'which port' question OP mentioned) then 'google' is obviously the right answer. You demand people to do (unpaid) work that demonstrates no skill or ability except the skill to mindlessly obey orders, and then call them arrogant when they refuse? Perhaps if your questions actually required relevant skill and ability to solve, people would be more prepared to invest their time.

  25. proxy IQ tests by turing_m · · Score: 1

    I've sat through interviews before where I got hit with some of these "puzzle" questions. The thing that really struck me was that the questions were the kind you'd need to be a Nobel Laureate to solve (not really), but were completely obvious if you *knew* the answer. So, as these were "novel" or "neat" "brain-teasers" - they really assessed only if you were some mathematical savant - and had nothing to do with your coding, or even problem-solving abilities. I'm 100% sure that the interviewer wouldn't have been able to figure out the answers, if he hadn't already known them.

    These are really just a proxy IQ test with questions that only someone on the far right end of the bell curve can answer. The reason they do this is because requiring an actual IQ test to be taken is illegal, so they've found a loophole. If the company that was hiring you was not actually requiring that the questions be solved, then my guess is that they had a lower IQ bar than Google but didn't understand the reason behind what Google/Microsoft et al does enough to find some questions that were hard but still easier than Google's questions. Basically a cargo cult approach to hiring.

    --
    If I have seen further it is by stealing the Intellectual Property of giants.
    1. Re:proxy IQ tests by SpazmodeusG · · Score: 1

      I don't even consider them to be IQ tests. Some of the questions I've seen rely on algorithms that have taken decades of computer science research to create. If you're able to write down an implementation it's not going to be because you worked it out. It's going to be because you rote learnt it.

      Which is crazy really, because you don't want programmers who rote learn implementations of algorithms. That goes against the principles of not recreating the wheel (and all the bugs). You'd be much better off with programmers who can Google and research various libraries and solutions for the task at hand than one who memorizes implementations of algorithms.

    2. Re:proxy IQ tests by mattack2 · · Score: 1

      The reason they do this is because requiring an actual IQ test to be taken is illegal

      It is? [Citation needed]

      There are only a few protected classes:
      http://en.wikipedia.org/wiki/Employment_discrimination_law_in_the_United_States

    3. Re:proxy IQ tests by retchdog · · Score: 1

      i've heard that part of the assessment lies in how you handle not knowing the answer. if true, i find some merit in this.

      --
      "They were pure niggers." – Noam Chomsky
    4. Re:proxy IQ tests by Surt · · Score: 1
      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    5. Re:proxy IQ tests by demonlapin · · Score: 1

      Disparate impact on those classes may create a presumption of discrimination.

    6. Re:proxy IQ tests by Anonymous Coward · · Score: 0

      Citation Needed, indeed.

      When I interviewed with IBM in 2003, I had to do a computerized IQ test while submitting my resume to the online database. I can't imagine that employment law has changed so much since then.

    7. Re:proxy IQ tests by TheRaven64 · · Score: 1

      Race is a protected class, and IQ test results show a correlation with race. This makes them count as a racially discriminating test.

      --
      I am TheRaven on Soylent News
  26. Apply for fun by Culture20 · · Score: 1

    I almost want to apply for a job just to play the puzzles.

    1. Re:Apply for fun by Anonymous Coward · · Score: 0

      Thought it was just me

  27. This is so true by HangingChad · · Score: 1

    ...but it's also possible to take the whole interview-testing concept too far.

    No kidding. I was a software engineer for almost a decade and got some bizarre interview questions with no connection to any relevant problem I had to solve in nearly 10 years of writing apps. What was bizarre is, most of the time, the problems had no connection to anything the company did, either. Nothing about logistics, data import, connecting to a web service, or setting up batch jobs, none of the skills you need every day.

    The worst offenders are the third party testing companies which seem to specialize in obscurity.

    I switched to freelance writing. It pays better, it's age proof, there's no commuting, no dipshit third party testing companies to slog through, and I don't work for idiots.

    --
    That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
    1. Re:This is so true by Anonymous Coward · · Score: 0

      Often these questions are designed to weed out the people who don't see the connection with relevant problems...

    2. Re:This is so true by Anonymous Coward · · Score: 0

      I switched to freelance writing.... I don't work for idiots.

      Who reads the stuff you're writing?

    3. Re:This is so true by gweihir · · Score: 1

      I switched to freelance writing. It pays better, it's age proof, there's no commuting, no dipshit third party testing companies to slog through, and I don't work for idiots.

      Are you sure that there are not idiots among your readers? Still, the between you and them is probably a lot better ;-)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  28. I'm about to leave the software (corp) field by TheGratefulNet · · Score: 2

    partly - perhaps even mostly - due to this new strict 'screening' bullshit that everyone in the silicon valley seems to be doing, now. I've been out of work for more than a year now and the interviews I have been on have been markedly different than they were 20 years ago when I first came to the bay area. lately, the interviews are confrontational. they are assuming you are a liar, incompetant and many other bad things - and its up to you to disprove that. they do not seem to want you, they are there because their bosses told them to interview some new people.

    this is quite different from the case where they really are looking to hire and are excited to have found a match (at least on paper) and just want to verify that you are who you say you are. even as little as 5 years ago, the interviews were not so negative. it was more of a verification that you met your paperwork. now, they don't bother to read your resume; or they assume its all lies and you have to start from ground-0 and prove an entire background to them. *over and over*, too; with each new guy that steps in for his 45min slot. show me linked lists; show me trees. show me O(n) stuff.

    the problem for me is that I am starting to not care anymore about this level of detail. I'm 50 and have been doing C since I was mid 20's. I have done my time, to be sure; but I just don't really get into having to prove it over and over again, like my resume is all a pack of lies. it gets tiring and its making me question whether I really want to re-enter this field with these kinds of people 'running things'.

    I do think that people like me are worth retaining in the software development field. true that I'm getting tired of the lower level details and things that are reference (like precise steps in deleting a linked list node) are of no interest to me when I can quickly get the correct sequence in a few minutes of search. there is too much to keep track of and older things do age out, its true. but older folks do have a lot of other things to offer. its a shame that we get passed over due to how the 'tests' are structured these days. I once was able to jump thru some hoops, but now, I'm just not so motivated to play their bullshit 'test me' games anymore. its a shame since I'm not alone in this and losing experienced guys like me is a real loss to the industry.

    --

    --
    "It is now safe to switch off your computer."
    1. Re:I'm about to leave the software (corp) field by BLToday · · Score: 1

      Lately? I've experienced that in the Valley for at least 10 years now. Interviewers always assume they know more than you based on the fact you're the one looking for the job. The unfortunate thing is that it's spreading to other geographical areas. Down in SoCal my cousin went to interview for a job and had the interviewer ask him to explain what "GPS" was. So he explained it very thoroughly since he's been working in that field for 10+ years and contributed to a patent or two. Didn't get the job because the interviewer didn't understand his answers. Turned out OK for him since that company is now effectively dead.

    2. Re:I'm about to leave the software (corp) field by nahpets77 · · Score: 1

      Your post resonates with my own thoughts on the subject of software interviewing. I've talked about this subject at length with a few colleagues several times over the last few months. I know a senior guy who holds several patents that didn't get an offer because he "failed" an interview because he couldn't answer some obscure question about embedded programming. When I got out of school with a graduate degree and a strong background in software, I still had to answer bullshit questions like "what will the output of this function be" etc. I basically didn't get an offer because I couldn't figure out what a format string in a printf statement would do. Normally, I would figure it out via "man printf". These days, I'm the one doing the interviewing and I'd much rather ask conceptual questions and talk about what a candidate has done in the past than to ask questions that are easily solvable using Google. I use Google, Wikipedia and StackOverflow all the time to find answers to questions about C++, Perl and Python. Is it fair to expect a candidate to have all that information at their fingertips?

    3. Re:I'm about to leave the software (corp) field by Anonymous Coward · · Score: 0

      It's stories like these which made me go to law school at 28. I'm back in the valley programming, but now I have an out. The law is one of the only fields left where age is valued, sometimes even in the absence of experience ;)

      It's a good fit. Law school is so expensive now, with an over abundance of lawyers in the market place, that the only people who can truly afford it are those who can return to an engineer's salary immediately after graduating.

      And a J.D. is technically a doctorate, which means you can become a professor and achieve tenure without having to waste time writing a long ass thesis (instead you're forced to write incredibly dense and logical arguments, which is more tolerable for an engineer). There are professors who teach history, economics, and social sciences which just law degrees. I'd like to think I could teach comp.sci at a state school with just a J.D. and a couple of decades of programming under my belt.

    4. Re:I'm about to leave the software (corp) field by Anonymous Coward · · Score: 0

      Umm... I call bullshit.

    5. Re:I'm about to leave the software (corp) field by jlowery · · Score: 1

      Yeah, I'd have to say I'm with you on this one. I once failed an interview because the interviewer wanted me to say that java Strings are immutable, and it's been maybe 10 years since I consciously thought about it. Hell, the times it really made sense to use a StringBuffer or a StringBuilder instead of using simple String concatenation have been few and far between.

      The types of performance issues I see are attributable to architecture and design, such as 1) code so complex it retrieves the same large dataset 39 times during initialization of the app; 2) Deep data fetches to populate 25 backing views for a list of items being displayed, because someone decided it was more 'performant' to populate large data structures and UI objects for when that when the user selected something from the list, the associated detail view would pop up immediately. Never mind how long it took the list to display. 3) designing a data model to optimize the production of XML transport data, rather than modeling entities of the business domain and treating serialization of that data as a byproduct, rather than the product itself.

      Stupid, stupid things kids worry about. And if you don't think I know anything about writing Java code, you can download and run this.

      --
      If you post it, they will read.
    6. Re:I'm about to leave the software (corp) field by Anonymous Coward · · Score: 0

      You are aware that there are programmers out there who don't know what O(n) means, right? When I'm interviewing somebody, I have to come up with a somewhat objective measure of their technical competence. It's not me against them - if they don't understand the notation, I dig in and see if they understand the concepts instead.

      And a suggestion: if you're tired of dealing with the details in interviews, you probably don't want to deal with them in your job. So maybe what this is telling you is that you're interviewing for the wrong positions, and that the interviews are designed well enough to discover that. Consider software architecture or management, maybe. Because a programmer is somebody who has to sweat the details.

    7. Re:I'm about to leave the software (corp) field by TheGratefulNet · · Score: 1

      there is a line in details that is reasonable to draw.

      in my 30+ yrs doing coding (at various levels) I just have not had to code 'live' in front a person, a linked list delete or tree node delete (or name your favorite 'by memory recall' question).

      these are api calls that already exist. if they do not, you pick one from a library (thank god for open source; this makes life so much simpler for all of us) and adapt it. I can do that. test me if I can do that very thing and I'll pass.

      most of us adapt things. do you derive all things down to the lowest levels? do you WANT to? is it fair to judge you because you want to spend you time more above the api calls than below them? not everyone has to be at all levels.

      being down at the low levels also limits how much time (and visibility) you have at higher levels. to me, the app is the more important thing than the linked-list code. I get excited at what the program is supposed to do; but I care less and less as you go down in layers. this does not mean I cant work at lower layers; but that those are just boring to me after all these years. no need to memorize what can be looked up. those are not things to ask during an interview, to be honest. complete time wasters for anyone who has been out of school more than a few years.

      if you want to see me apply those, fine. I've asked for a tty, emacs, bash and network connectivity. task me with fixing code in that condition and I'll do it. afterall, its what you do day in and day out.

      btw, when I ask to bring a laptop with me (emacs, really, as I'm bad at board writing) I'm always told no. yet its what I would end up using during the job! doh.

      --

      --
      "It is now safe to switch off your computer."
    8. Re:I'm about to leave the software (corp) field by JoeMerchant · · Score: 1

      I hired on at a startup as a Director of Software Development in 2006. I got them into Qt, I (39 at the time), the old dog, took it as an opportunity to learn a new trick. It's a great library and I have applied it to 4 different companies' problems since then.

      When the whipper snappers start Java, Perl, Ruby, Python-ing me to death, I smack 'em down with good old fashioned C++ and Qt. The "modern" stuff is o.k. for little problems, but the Qt solution almost always looks better when it grows into anything significant.

    9. Re:I'm about to leave the software (corp) field by Ritchie70 · · Score: 1

      I've been more on the interviewer side of the desk lately, and you should try to understand what it's like.

      A lot of the applicants are, in fact, liars. Hideous liars. HR can't tell, so we get stuck talking to them.

      Some of them claim years of experience. For some of them it is an outright lie. For others, it is multiple iterations of one year of experience.

      Supposedly experienced C programmers don't understand the "static" keyword or what an asterisk does except for multiplication.

      But I don't mess about with silly puzzles. I just apologize for having to ask them what should be simple questions, and then I ask maybe a half dozen to a dozen simple C-language questions. (Those were two of them.)

      If they laugh and get the first three or four without even thinking then I stop. If it's a phone interview and it sounds like they're reading something to me that they don't understand, I look for more explanation.

      Personally I suck at brain-teasers. I can program circles around most people, but I can't figure out those damn logical "Fred knows George and George hates Bob and Bob likes pizza. Does Fred like pizza?" questions. So I don't do it to others.

      --
      The preferred solution is to not have a problem.
    10. Re:I'm about to leave the software (corp) field by gweihir · · Score: 1

      I've been more on the interviewer side of the desk lately, and you should try to understand what it's like.

      A lot of the applicants are, in fact, liars. Hideous liars. HR can't tell, so we get stuck talking to them.

      Urgh. This must make it really hard to get into a mindset that allows you to recognize those that do not lie and are the ones you actually
      want to hire. Bad situation.

      Some of them claim years of experience. For some of them it is an outright lie. For others, it is multiple iterations of one year of experience.

      Supposedly experienced C programmers don't understand the "static" keyword or what an asterisk does except for multiplication.

      But I don't mess about with silly puzzles. I just apologize for having to ask them what should be simple questions, and then I ask maybe a half dozen to a dozen simple C-language questions. (Those were two of them.)

      If they laugh and get the first three or four without even thinking then I stop. If it's a phone interview and it sounds like they're reading something to me that they don't understand, I look for more explanation.

      Personally I suck at brain-teasers. I can program circles around most people, but I can't figure out those damn logical "Fred knows George and George hates Bob and Bob likes pizza. Does Fred like pizza?" questions. So I don't do it to others.

      I like you approach. Although I do not think the "static" question is easy, as it really does two different things depending on whether applied to a variable or a function. Or rather is does something in addition to variables. Or if you think in terms of linking, it does hide functions from the linker and does show local variables to the linker to be placed in the data-segment, kind of the other way round than normal. This is a design error in C IMO, they should have used two keywords. If you are satisfied with the answer on variables, the question is perfectly fine though.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    11. Re:I'm about to leave the software (corp) field by Anonymous Coward · · Score: 0

      "no need to memorize what can be looked up."

      They are not testing your ability to memorize, they are testing whether you understand pointers and data structures. The linked list is used because it is the simplest possible data structure that involves pointers. Your attitude is a total no-hire.

      "not everyone has to be at all levels."

      But they do. Very, very few jobs can be done entirely with API calls. If you cannot assemble a linked list, then you are not competent to take data from one API and reassemble it in a different format for another API.

      "those are just boring to me after all these years"

      This is the sort of explanatory story people tell when they get Alzheimer's disease. What you're saying sounds like a person who says "I just enjoy staying home in the evenings as I have gotten older" when the truth is they are terrified to drive at night because everything has become a jumble.

      Get yourself checked out by a doctor, or see a counselor to work through the mental block that has kept you from boning up on the fundamentals after a year of blowing interviews.

  29. At least get the language right by John+Bresnahan · · Score: 1

    My last interview was for a "C" programming position (Point-of-Sale system for a large retailer) which was a very good fit for my experience and skills (30 years C programming, almost a decade on another large P.O.S. system).

    Unfortunately, the only technical interviewer who talked to me was a Java programmer. He thought he was also a C/C++ programmer, but he was wrong. After 45 minutes of questions about details of Java class usage, it was clear that he couldn't tell a good C programmer from a bad one.

    I didn't get the job, and I suspect that whichever Java programmer they ended up with is thoroughly miserable programming in C.

  30. Interviews by Prien715 · · Score: 1

    I recently got a new job and have definitely seen a lot of this. It ranges from the esoterically retarded ("Can you call a destructor in C++ directly?" (The answer is yes, but it's a terrible idea -- so is there any difference in practice between never doing something and thinking you can't? Why not quiz me on goto syntax -- that's at least useful sometimes)) to one company I really liked that sat me down for 3 hours with a Linux box and said "Solve these 3 problems as efficiently as you can" -- all of which were fair and managed to solve all of them quickly, correctly, and I thought the resulting code was beautiful in its simplicity, efficiency, and readability. I also had fun doing it (hey, some people write entire kernels for this reason;)). I've also failed one of these so-called online tests for reasons of the above. Their loss. But why would I want to work for anyone who thinks some incredibly stupid test means anything?

    The job I ended up taking? I sat down with their lead dev and we talked shop for an hour. He wanted to know what I did and how I went about doing it and we talked about how they're using CUDA to develop higher level APIs to make it easier to use the GPU for computationally expensive operations. And then we ate really good Indian food with the rest of the team.

    So if you're in charge of hiring, remember, that good programmers are a scarce resource, and we usually have more than one offer on the table. Don't waste our time and we won't waste yours.

    --
    -- Political fascism requires a Fuhrer.
    1. Re:Interviews by shutdown+-p+now · · Score: 1

      "Can you call a destructor in C++ directly?" (The answer is yes, but it's a terrible idea)

      It can be a perfectly reasonable thing to do, depending on the circumstances. Most notably, you have to do it if you use placement new, and there are legitimate performance reasons to be using placement new (e.g. you must conditionally initialize the object, but cannot have any extra heap allocations at this point).

      For a simple example, consider what std::vector has to do when you do v.resize(1); v.resize(0). For a more complicated one, consider how std::make_shared<T>() works.

      Granted, this only pertains to very narrow use cases, and it's probably not something that I'd expect an average C++ programmer to know - even if the code base they'll be working on requires them to deal with such things eventually, it's not hard to learn if they are any good with more common stuff.

    2. Re:Interviews by Anonymous Coward · · Score: 0

      Most notably, you have to do it if you use placement new

      Correct. Granted there are many experienced C++ programmers who probably don't know that, so I don't think it should be disqualifying, but OP shouldn't bitch if they got a reasonable question wrong. What this is really testing is whether the interviewee has ever written code where some variables have to be allocated from specific locations instead of from the heap or stack - and thus whether this person has done much in the way of system programming.

    3. Re:Interviews by JoeMerchant · · Score: 1

      "Can you call a destructor in C++ directly?" (The answer is yes, but it's a terrible idea)

      It can be a perfectly reasonable thing to do, depending on the circumstances.

      Says the guy who, no doubt, does it all the time.

      That's the only possible utility I can see in these hyper-obscure programming trivia contests - if a company has a closet full of code written by 15 different guys working independently, who all walked out last week, and now they want to hire you to do maintenance updates on the existing code base.

      Like so many others have said in the thread: "If that's the gig, I'm glad I failed the audition."

    4. Re:Interviews by shutdown+-p+now · · Score: 1

      Says the guy who, no doubt, does it all the time.

      I did it once, back when I wrote my own implementation of Boost.optional. But I happen to work in a company that makes a C++ implementation, and I know guys who work on it - so, yeah, I know people who do it all the time, because they need to efficiently implement things like std::vector.

      But, like I said, I still don't see point of bringing it up in an interview question.

  31. Morgan Stanley by Anonymous Coward · · Score: 0

    Screening interview for a Morgan Stanley quant job consisted of being asked (somewhat tricksy) maths questions over the phone by someone from HR who declared at the beginning that she did not know much about maths; wasn't interested in me telling her how I was thinking about the problem and didn't expect me to look up any references.

    The Morgan Stanley quant group is missing out on a lot of good mathematicians.

  32. Slashdot flunks English test by Anonymous Coward · · Score: 0

    Good Programming Job Candidates Flunk Tough Tests

    Is it too much to ask?

  33. Ask ahead by l0ungeb0y · · Score: 1

    I've made it a point to ask ahead to confirm that there will be no "brain teasers" and if there may be, to kindly ask them to rescind the interview so that they may focus on more qualified candidates who share their core values (being a self-congratulating asshole who gets a boner doing brain teasers)

    Frankly, the very fact they ask brain teasers tells me a lot more about them than my answer will ever tell them about me. The fact that I put it bluntly, but kindly to opt out in such an event should show my "free-thinking out of the boxness", though lower my score as a team-player (read: leader not follower). But the fact they put such a priority on stupid pissing-contests shows they lack creativity, have no clue how to actually assess someone based on their merits and skill and place little value on individual contributions as much as maintaining their "culture". All in all, they show they don't care as much about the individual's technological aptitude as much as "fitting in" - so if getting lost in a cube farm is your goal, study up on these brain teasers. But, if you're looking to develop hot software, go with a smaller organization where your contribution will be greatly felt and who don't have time to waste playing games with candidates.

    1. Re:Ask ahead by NJRoadfan · · Score: 1

      You sound like an INTJ (Myers-Briggs personality type). Management in most large companies don't always want people who think outside the box and do things their own way (and often do it alone). Yet, these people can be the most productive at their job.

    2. Re:Ask ahead by lgw · · Score: 1

      Some "brain teasers" are actually decent coding questions in disguise - I encounteredthese in my most recent interview. Most aren't of course, but there's a category that are "reduce to the simplest case, solve that, then solve the incremental problem", which are good design questions since they won't rathole on programming language details. I wouldn't reject them categorically.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    3. Re:Ask ahead by Anonymous Coward · · Score: 0

      Yet, these people can be the most productive at their job.

      Sure, if it's a one man job. Any software of significance requires a team to build and the inability of some INTJs to function as part of a team is more of a liability than almost any abilities they may bring to the table.

    4. Re:Ask ahead by ledow · · Score: 1

      Sorry, but the fact you just reduced the OP's entire personality to a four-letter acronym has just shown you up, more than the OP.

      Hell, I'd be reluctant to work with you just on the basis that your first thought was "You sound like an INTJ". Do you do that when you interview people as well?

  34. don't forget luck by Anonymous Coward · · Score: 0

    A hiring manager asks his secretary for the resumes for an open position, and she hands him a stack of papers. He splits the stack in two and throws half of them away without reading them. She asks him why those people were rejected. "They're unlucky," he said. "We don't hire unlucky people"

  35. They Also Weed Out Very Bad Candidates by Greyfox · · Score: 1
    Having had co-workers who were apparently pretty good at bluffing in the interview, and having had to clean up for several others, I can appreciate the desire to do whatever it takes to not have those people working in your company.

    A lot of companies are also just very bad at interviewing. A lot of times they'll just have a couple folks from the team you'll be working on talk to you for a while and you get in or not based pretty much on how much they like you more than any technical skills you may or may not have. You can skew this process more in your favor by working your social network, though for that to work you have to have not completely sucked at your last few positions.

    If you implement it badly, you're not getting any higher or lower quality employees with the brain teasers than with any other method. And if you implement your interviewing method well, you're getting pretty much equally good employees no matter how you choose to do it. For most companies most of the time it's really just a matter of luck if they get good people.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:They Also Weed Out Very Bad Candidates by Anonymous Coward · · Score: 0

      Actually, the puzzles may not even weed out very bad candidates... since there are forums and books devoted to these things and some people are just good at memorizing/test taking. It doesn't mean they are good programmers. The only way to know if they are good is to give them coding assignments and see how they do it. Trivia questions prove almost nothing.

    2. Re:They Also Weed Out Very Bad Candidates by JoeMerchant · · Score: 1

      I interviewed for an EE position once years ago. They said over the phone that there would be a test. When I got there, there was only a test, handed through the window by a secretary. There were 5 other candidates in the lobby taking the test. They had all brought duffel bags filled with their textbooks, most of them looked to be in their 30s and 40s - apparently they had failed this interview process before.

      I took the test with no books, fairly confident I got at least 90% correct and proud that I accomplished it without a reference library. Unfortunately, I don't think the secretary noticed or cared - there was no interview. Walking out the door into a bad neighborhood, through the parking lot filled with junk cars that hadn't been washed in forever, I got the feeling that there were better places to work - and there were.

  36. Two words by Anonymous Coward · · Score: 0

    Sour grapes. Puzzles test your practical problem solving skills, and if you don't think that's a part of programming then you may be more suited to some executive position where you decide whether things should be blue or not.

  37. I've always thought this approach was silly by bfwebster · · Score: 1

    Having built a software development team from scratch for a venture-funded startup, and having done tech vetting for years on consultants, I fully understand the difficulty in determining who's actually talented and who isn't. But I just don't buy that the 'puzzle' approach translates into 'great software engineer'. You may well get a bunch of bright and clever people who are good at puzzles, and it's good to have some folks like that around, but I suspect if everyone is that way, you'll end up with a bunch of engineers trying to out-clever each other -- and that doesn't translate into well-designed and readily-maintained software. IMHO. ..bruce..

    (What do I think is necessary? See here and here.)

    --
    Bruce F. Webster (brucefwebster.com)
    1. Re:I've always thought this approach was silly by gweihir · · Score: 1

      I completely agree. These people tend to lack insights into aspects like maintenance, security, documentation and others. Puzzles are nice, but they do not reflect most of the real-world issues with software creation.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  38. Once had a mechanical skills test by pinguwin · · Score: 1

    I was interviewing with a company that did a lot of mechanical engineering but lacked the software expertise. They basically offered me the job at the interview and I said, "Sure." Only one "formality" remained: a mechanical skills test. Now I was being hired strictly for software and would never, ever have to turn a wrench. The test consisted of a hand-cranked machine that moved a block of plastic around a table surface, flipped it over, around the corners, and returned whence it started. Lots of cams, gears, pulleys,etc. Four parts, 15 mins. per part. They "break" the machine and I have to find what they changed. The first part I got, a cam was out of phase. Second part I got half of it but couldn't find the 2cd part. Third part I was stumped and then the tester said, "We're done." I asked about part 4 and he said he had what he needed. A few weeks later, nothing. I call the hiring manager and ask what is happening and he tells me I failed the test and there was nothing he could do about it. I said I didn't take all four parts and he was angered about that but HR dug in their heels. He put a request that mechanical engineers take C++ test but no dice. I asked him if there was something else he couldn't talk about at work and asked him to call me after work and discuss this. He said, "It's the test, nothing more." For real. My friends in ME said that they would have had problems with such a test yet a software engineer is expected to pass. In the subsequent years, I saw positions I was very qualified to fill at the company, but I couldn't be bothered with them

  39. What is the number of bytes in an ethernet address by Anonymous Coward · · Score: 0

    A few months ago I was interviewed by a Google recruiter. One of the questions was "What is the number of bytes in an ethernet address?". My real answer to that question would be "Who cares", instead I gave the wrong answer. I deal with ethernet addresses daily, but I never bothered myself to count the bytes in them. And I don't think it is valid to claim that "if you are experienced in the Ethernet protocol, you should know the number of bytes in an ethernet address." The other questions were similar too. One cannot learn anything about my engineering experience or skill set by looking at my answers to those questions. (And Google couldn't.)

    Briefly speaking, viable or not, I believe the only way to assess the work experience and skills of a software engineer would be to look at his/her projects, source code, documentation, and the processes used, and to question each. But I suspect there may be very few such recruiters in the world.

    PS: I am sure there are many applicants to Google, hence there must be multiple stages in the screening process, but this does not warrant such stupid questions to reduce the number of candidates. Because they will certainly eliminate many suitable candidates in the process.

  40. It doesn't even test what is relevant. by mckinnsb · · Score: 1

    The essential elements of a good developer lay in your personality.

    • Are you willing to admit you are wrong or don't know something? If so, how readily?
    • Are you willing to learn a completely new technology; i.e, if you are a Javascript developer, are you willing to learn C#?
    • Are you emotionally attached to the technologies you use? If so, are you willing to use different ones if they perform the job more effectively, or are you going to use a hammer in every situation?
    • Do you understand when something needs to be "good enough", and when something needs to be flawless, and are you willing to be flexible with either (i.e., will you accept that some things must be perfect and some things must be imperfect)?
    • Are you willing to put yourself in someone else's shoes and describe technical problems in a "human" way to the business, without sounding ingratiating or condescending?

    All of these things, good developers make and none of them are found in a math test. You might even say that these math quizzes do more to screen these people out than let them in. You don't need to screen programmers for math skills; if they were so bad at mathematics that simple algorithms confused them, they wouldn't even try picking up the trade, and advanced algorithms can't be divined on the spot anyway. There's a reason most of them have names.

    1. Re:It doesn't even test what is relevant. by Anonymous Coward · · Score: 0

      Yes... every bit.
      But I'm 55, therefore nearly unemployable. Never mind I still outcode most of the new kids, have managed large and small teams, patented algorithms (blech).
      Fortunately I'm an expert in a niche field and can get some-old same-old work...

    2. Re:It doesn't even test what is relevant. by gizmonic · · Score: 1

      Are you willing to admit you are wrong or don't know something? If so, how readily?

      This is one of the single biggest things I look for when interviewing. I don't expect everyone to know everything, no one can. But someone who will fake knowing something and try to bullshit you will only lead to disaster later. If I am liking a candidate, and things are going well, I'll eventually toss in a question or two that I don't expect them to be able to answer. If you tell me you don't know, we're good. Tell me you dont know and ask me what the answer is, we're better. Bullshit me and I'll give you a chance to back out of it. Keep bullshitting me after the lifeline, and it's pretty much over right there. You'd be amazed how many people will bullshit. Last round of interviews, one candidate was doing awesome, and was becoming my favorite for the job until we hit this point. After the initial failure, I told him, it was okay, I know it wasn't on his resume and I didn't expect him to know it, and it wasn't critical to the job, I was just seeing if he had any experience in it. He then continued to make stuff up for several minutes until I finally cut him off. I don't care how good you are, if you haven't mastered "I don't know," you're pretty much worthless to me. I've seen the damage that crap can do, and I don't need it.

      --
      WWJD?
      JWRTFM!
  41. human response by superwiz · · Score: 1

    Normal human response to uncertainty (noise behind a big rock): a spontaneous decision between fight or flight. If the interview is testing your human response to being faced with solving unknown problems, then the puzzles work. If the interview is testing your experience with any particular technology, then they obviously don't. Of course, if all they want is your expertise, then it's not a place that will let you grow in your skills. It's a place that's looking to squeeze you until your skills are obsolete and then replace you. Because technology changes fairly rapidly, you should be looking to solve unknown problems as new technology emerges. If you are not, then your shelf life is too short for a company to make a long term investment in you.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  42. Works well if done right by SoftwareArtist · · Score: 2

    I've interviewed lots of people using puzzles of this sort, and I find they work really really well for picking out the better programmers. You need to understand how to do it correctly, though. You're not looking for whether they "get the right answer". You're looking to see how they approach the problem and what sorts of solutions they try (even if they end up not working). When you interview a bunch of people this way, you find they split into a few groups, and the differences between groups are really obvious. For example, some people will just have no idea how to even approach the problem. Others will struggle to figure out an O(n^2) solution. And others will instantly take it for granted that of course there's a trivial O(n^2) solution, but you're obviously looking for something better than that. The differences aren't subtle.

    --
    "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
    1. Re:Works well if done right by Anonymous Coward · · Score: 0

      "Software Artist".....

      Wow you really think you're slick don't you?

    2. Re:Works well if done right by Anonymous Coward · · Score: 0

      This is exactly right, and I would add that you can also differentiate candidates by how they incorporate hints. I conduct a lot of these interviews and I never just ask the question and then sit there silently while the candidate struggles. If the candidate is struggling I give them hints or ask leading questions to get an idea of how they're thinking about the problem. Sometimes the candidate is stuck because they interpreted the question in an unusual way and made it much harder than it was meant to be. Other candidates can't get on the right track no matter how much you try to point the way. In any event my goal isn't to see if they know the answer, or even to see if they can magic up the answer on the spot. My goal is to get an idea of what it would be like to work with the candidate in real life. The only reason I don't sit them down with a computer and work on a *real* bug is that it would take too long to get them up to speed on the real code base.

    3. Re:Works well if done right by swillden · · Score: 4, Interesting

      I've interviewed lots of people using puzzles of this sort, and I find they work really really well for picking out the better programmers. You need to understand how to do it correctly, though. You're not looking for whether they "get the right answer". You're looking to see how they approach the problem and what sorts of solutions they try (even if they end up not working).

      Mod parent up.

      I work for Google, and interview engineering candidates at Google (which doesn't make me special -- all Google engineers are expected to participate in interviewing), and the above describes what these puzzle questions are really intended to do.

      Evaluating candidates is a really, really hard thing to do. Honestly, it's darned near impossible to do accurately unless you can bring someone in for a few weeks, put them to work on real problems and see how they really perform. Even then you're just scratching the surface. Trying to get a realistic read on someone's capabilities in just a single day? Yeah, right. But hiring decisions must be made, and Google gets hundreds of thousands of applicants per year.

      So, the question becomes not how to truly, accurately evaluate each candidate, but how to fill the positions and ensure that no egregiously bad hires are made. It's sad to reject someone who is really good... but it causes tremendous grief to hire someone who just can't do the job, because firing people is really painful for everyone involved, and quite expensive to the employer.

      With that in mind, here are my perspectives on the article's points, based not only on what Google does, but also on the dozens (hundreds?) of job interviews I did at previous employers.

      1. Recognize that tests are artificial scenarios

      This is inarguably true. The interview is a completely artificial environment which bears no relationship to the actual job. But there's no way to avoid that, so the question become what is the best way to extract as much useful information about a candidate's abilities and characteristics as possible in the brief time allowed. And the time has to be very brief, because getting any kind of an accurate reading depends on getting multiple points of view, and fitting four or five interviews into a day without killing the candidate means that each interviewer really only has about 45-50 minutes.

      The article comments that the problems are hypothetical, without context, etc., but that's because there's no way to present real-world problems in the timeframe given. And, actually, underspecifying problems is deliberate, because it's a good way to see how the candidate reacts to inadequate requirements specifications, which is perhaps the one part of the interview which accurately models the real world at every place I've worked in 20+ years.

      So, the goal is to construct an artificial environment which tests the things that can be realistically tested. Google is perhaps a little different than most companies in that Google doesn't really care what the candidate knows. The infrastructure is so different from everywhere else that it's really not important; there will be so much to learn anyway. Well, basic CS knowledge is crucial, but specific tools and techniques? Nah. What really matters is how quickly the candidate can understand problems, how effectively they can reason their way through the solution space, how well they can communicate their solutions -- verbally and in code -- and how well they can analyze their solutions and explore alternatives. It's all about problem solving and the only way to understand someone's problem solving abilities is to watch them solve a problem they haven't seen before.

      The "they haven't seen before" is crucial... and it's also pretty easy to verify. Here's a word of advice: If you go into an interview and are presented with a problem you already know the solution to, tell the interviewer up front that you've seen it before. Odds are the interviewer will figure that

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    4. Re:Works well if done right by gweihir · · Score: 2

      Well, but you seem to be investing real effort into this and the interpretation of the results. Most of these tests are just used in form of a standardized, cheap-to-administer form and that does not work at all.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:Works well if done right by aralin · · Score: 1

      That is why you talk to the candidate about his past accomplishments, you get references, you can even talk about solving a hypotetical or real problem to see him in action. But brain teasers are just that. They are aimed at that one "Gotcha" moment you either get or you dont. Don't take me wrong, I loved those since I was a kid they are fun and if I get a new one, I usually cannot stop until I figure it out. But if I were asked a brain teaser at an interview, I'd get deeply offended. Mainly because interviews like that disregard most of who I am, what I have accomplished and how I could fit in to solve problems at the new position.

      I would flat out refuse to answer any such question, even if I knew the answer beforehand and if the interviewer insisted, I'd walk out of there.

       

      --
      If programs would be read like poetry, most programmers would be Vogons.
    6. Re:Works well if done right by Anonymous Coward · · Score: 0

      Evaluating candidates is a really, really hard thing to do. Honestly, it's darned near impossible to do accurately unless you can bring someone in for a few weeks, put them to work on real problems and see how they really perform. Even then you're just scratching the surface. Trying to get a realistic read on someone's capabilities in just a single day? Yeah, right. But hiring decisions must be made, and Google gets hundreds of thousands of applicants per year.

      If you don't trust candidates at their word, or are too stupid to figure out whether or not they are good enough from their
      resume you should not be in the business of trying to make a hiring decision. Contract-to-perm, or GTFO.

      and quite expensive to the employer.

      Lies. You are just towing the company line.

      This is inarguably true. The interview is a completely artificial environment which bears no relationship to the actual job. But there's no way to avoid that,

      Of course there is. Have them review code...theirs, yours, and see how they think.

      so the question become what is the best way to extract as much useful information about a candidate's abilities and characteristics as possible in the brief time allowed. And the time has to be very brief, because getting any kind of an accurate reading depends on getting multiple points of view, and fitting four or five interviews into a day without killing the candidate means that each interviewer really only has about 45-50 minutes.

      And this is the reason why most interviews feel like sequential gangbang, you people are too stupid to figure out how to evaluate someone quickly.

      because there's no way to present real-world problems in the timeframe given. And, actually, underspecifying problems is deliberate, because it's a good way to see how the candidate reacts to inadequate requirements specifications,

      Bullshit. Send them a doc before the interview and tell them to prepare to discuss/critique it, and don't try to pull any of these lame ass brainteasers or obscure language tricks (and tell them to not waste their time studying for that either)

      Add brainteasers to the job description, and add it to the title while you are at it too. You can take Mount Fuji and move it up your ass.

      One exception: If your company has a crazy "work ethic" (i.e. constant death marches), do ask candidates how they feel about working insane hours. This helps everyone.

      Yeah, totally lie about it....Teh Company Is My Life. No social life. Must Death March.

      IMO, you should try to spread the load, but accept it as a cost of doing business.

      6. Employment is a two-way street

      Very true. This is why every one-hour interview at Google allots only 45 minutes to quizzing the candidate -- to leave 10 minutes for the candidate's questions and five minutes for bathroom breaks, etc. between interviews. Google also includes a "lunch interview" which isn't an interview at all. It's just an opportunity for the candidate to have lunch with a Google engineer and chat about whatever.

      Has Google started handing out lube at the interviews yet? You know how they leave you sore when you bend over and take it.

      Another thing I think is important here which the article doesn't mention is that thorough technical interviews are grueling for the candidate. That's the nature of the beast, but that doesn't mean you shouldn't do everything possible to make it a pleasant experience. If the candidate is getting flustered with the hard questions, go easier so they can have some success -- especially if it's clear the candidate isn't going to make the cut. In that case some people think they should just cut the interview short to avoid wasting their time, but IMO that shows a lack of sensitivity toward the c

    7. Re:Works well if done right by w_dragon · · Score: 1

      Here's the problem with quiz-style programming questions like Google's. My ability to solve them varies greatly on how close they are to the work I happen to be doing at work during the past couple months. As an example, I had an interview with Google a few months ago. One of the questions was to write a UTF-verifier. The interviewer gave a quick description of what valid UTF looks like, and I had to write a function that verified if a given byte array was valid UTF. I hadn't done that kind of low-level bit-fiddling in a few years, and so getting the low-level stuff right (how do you check if the first bit is 1 again?) slowed me down significantly and really threw me off the larger view of the problem. During the past couple of weeks I've been doing a lot of that level of stuff at work (in PHP no less, bit-fiddling in a language that will replace your nice int with a float when you overflow to what would be a negative integer is an interesting experience) so the stuff that threw me off would now be second nature. But in a year I would have to really think about it again and once again the little details would distract me from the larger problem.

      On a related note, everyone I know who has gone to Google after working somewhere else (not as a new grad) has told me that they tried for 2-3 years, and eventually they just hit on a series of questions they could handle. Had they been asked the questions in year 1 that they were in year 3 they would have probably gotten the job then.

    8. Re:Works well if done right by Anonymous Coward · · Score: 0

      Everything you just described there is the complete opposite to my experiences with interviewing at Google for three different positions over the course of 5 years.

      Mindless trivia, contrived programming examples and interviewers that are more interested in telling you what they know than evaluating what you do.

    9. Re:Works well if done right by Anonymous Coward · · Score: 0

      I work for Google

      Unfortunately, all those technical interviews didn't get Google the best people at all. Just see what happened to Buzz, Wave, Labs, Lively, Dodgeball, Orkut, Code Search, Knol, Catalogs, Answers, Video and many, many more. It doesn't matter whether they failed through poor engineering or poor management, the point is some people messed up badly. Not to mention the latest Gmail app for iOS.

      In addition, Google products which are successful like Youtube, Android, Earth en Maps have been bought from other companies and can't be credited to Google engineers. And making a lot of money through selling ads doesn't make you a good software company. This self proclaimed 'genius engineer' image at Google is not backed up by reality. I don't even think Google has the right to be asking any technical or puzzling questions to people applying for software jobs when its own strengths lie in selling ads and clearly not in software development.

    10. Re:Works well if done right by Anonymous Coward · · Score: 0

      With Google's method you have a tendency to hire people who might be clever at solving esoteric problems, but in my opinion you don't need many of those types. In my experience at smart companies there are a lot of primadonna programmers and not enough to do the so-called grunt work to get products out the door. This might explain why Google is always in beta and Microsoft can't produce working finished products either.

    11. Re:Works well if done right by IamTheRealMike · · Score: 1

      I also am an interviewer at Google. I did my 177th interview today. I think swillden covered most of the points. He isn't trying to claim that Google interviewers are perfect. Exactly the opposite - he's explaining (a) the process and (b) why interviews/interviewers might seem to suck at times.

      Interviewing is hard, it's a skill that is difficult to learn and therefore many people don't have it. You really have to do a lot of interviews to get any good at it, and most companies don't hire a whole lot, so that's one reason why many interviewers at many firms are bad at it. Google has a different problem - it hires a whole lot, all the time, so the only way to scale that is to have lots of interviewers. The result is that some are very experienced and others are, frankly, not. Interview training also isn't as rigorous as I think it could be - I feel I mostly learned just by doing it, with the obvious negative implications for how candidates perceive Google.

      I'm not going to try and defend colleagues who ask stupid questions like "why are manhole covers round?". These sorts of things aren't useful and these days, we strongly encourage people to not ask them. I've seen all kinds of interview questions be asked over the years here and it's rare, in my experience, to see questions like that. Especially in phone interviews, these days we try and select more experienced interviewers and also require actual code to be written. It is an actual requirement of the interview to write code, and it's quite hard to write any kind of interesting program in only 30-40 minutes, so I usually spend the whole interview on that.

      There are a few comments above from people saying things like, well I'm a Java guy and I was asked to write a linked list in C, or I was a PHP guy and asked to do bit masking, so what's up with that? It used to be the case, and to some extent still is, that Google engineers are expected to be a jack of all trades. That is we try and avoid having "java guys" and "c++ guys". I work in a mix of languages and environments as part of my job and probably always will. I say "to some extent" because over time I think we have hired quite a few people who are mad elite JavaScript/Java jockeys, but aren't really comfortable with questions about how to tightly optimize an RPC stack - that's OK but interviewers at Google are typically given a lot of leeway to decide who they want to work with, and I usually expect people to have some kind of understanding of what happens inside a computer. I often give good scores to people who do not know C++ or are somewhat rusty, but I do expect somebody who is only familiar with Java (or C# which is close enough) to have a really deep understanding of things like the JVM, how it works, the costs of garbage collection and other standard constructs, etc. Even if you think you're only going to design nice AJAXy frontends because that's what you did for the last few years, it's very likely you will want a long career at Google and that means having the flexibility to work on "big iron" type systems as well as other things. Also, if you don't have some kind of knowledge about that, you'll probably write code that is several times more expensive to run than necessary (seen this quite a few times).

      Because interviewers are given such a free reign in what they ask and how they score, other interviewers may well take a different approach or value different things. In particular if you're quite young (in terms of experience which usually means a new grad) we tend to accept intelligence, analytical ability and remembering CS theory in place of extensive programming experience.

    12. Re:Works well if done right by radtea · · Score: 1

      Evaluating candidates is a really, really hard thing to do.

      I find this a frankly incredible statement, and one that is often repeated. I see no evidence for it. I've been interviewed (and hired) by any number of top-end software shops (I've done a lot of contracting and consulting.) I've also run my own company and worked for other companies managing software developers. It's been my universal experience that FINDING good people is really, really hard, but IDENTIFYING them is really, really easy.

      If I sit down with a peer (the kind of person I'm looking for in most cases) it's easy to establish rapport. Can I talk about C++ standards, new language features, pros and cons and trade-offs? Can I bring up a tricky design problem and hash it over with them? And so on.

      People who find candidate evaluation hard are probably suffering from either poor management skills (I've interviewed at places like this and thankfully never worked for one) or (more likely) are suffering from far too many marginal-to-crap candidates and are desperately trying to find the one or two who might be a diamond in the rough. At that point the job really is very hard, and I'm sure people at Google face it a lot.

      But identifying the locus of the problem is critical to improving the solution, and this belief that its hard to identify good technical people is a myth that needs to be put behind us.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    13. Re:Works well if done right by Hognoxious · · Score: 1

      If you don't trust candidates at their word, or are too stupid to figure out whether or not they are good enough from their
      resume you should not be in the business of trying to make a hiring decision.

      Ah, but candidates have come up with this little tricks called exaggerating and lying.

      Contract-to-perm, or GTFO.

      Nice, but it requires you to take on more people than you'll eventually need (expensive) and it's still not very pleasant for the ones who get cut.

      and quite expensive to the employer.

      Lies. You are just towing the company line.

      No, the liar is you. Even if there's no severance pay involved, the amount of time it takes to replace someone, finders fees, advertising etc all add up.

      One other thing: I certainly wouldn't employ anyone who doesn't know that the correct expression is "to toe the line".

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re:Works well if done right by Anonymous Coward · · Score: 0

      Wish I had Mod points.

      Had a similar experience dealing with an interview for them 10 years ago.

      Bluntly, in retrospect I'm not sure I would interview with Google, even if they asked me.

      Working for a company should be a good/fun experience. Everything I've heard/experienced about their hiring process seems more like Hazing, and less like Hiring.

      I passed on Rushing at College, not sure why I would start now.

    15. Re:Works well if done right by Anonymous Coward · · Score: 0

      You probably do a lot to British semen too.

    16. Re:Works well if done right by swillden · · Score: 1

      As an example, I had an interview with Google a few months ago. One of the questions was to write a UTF-verifier. The interviewer gave a quick description of what valid UTF looks like, and I had to write a function that verified if a given byte array was valid UTF. I hadn't done that kind of low-level bit-fiddling in a few years, and so getting the low-level stuff right (how do you check if the first bit is 1 again?) slowed me down significantly and really threw me off the larger view of the problem.

      Part of the solution to this problem -- and it is a problem -- is the fact that you're not evaluated based on a single interview. The hope is that if you flub one interview, for whatever reason, there are three others.

      But the real solution is to not try to remember stuff. The interviewer really isn't trying to evaluate your knowledge so much as your problem-solving ability, which includes how you react to needing information that you don't have. If you're getting hung up on some trivial side-issue, just tell the interviewer what you don't remember and ask if he'd like you to focus on solving that problem or if he'd rather give you a hint. Perhaps you could have just written the prototype for a function is_msb_one() and written the rest, then come back to that.

      The truth is that this is one aspect of the interview process that I think really does apply very directly to the actual job. See, engineers at Google don't have a lot of supervision. It's really easy for someone, especially someone new, to end up wasting huge amounts of time trying to figure out something that they should either look up or ask someone about. So it's really important to find people who won't let themselves get wrapped around the axle. I'd say it's likely that in your case your interviewer dinged you for getting thrown off the larger view of the problem, rather than because you didn't remember some bit-twiddling tricks.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    17. Re:Works well if done right by swillden · · Score: 1

      That is why you talk to the candidate about his past accomplishments

      Except that doesn't work. It's way too easy for candidates to slant or exaggerate their accomplishments, take credit for the work of others, etc. Sometimes you can figure that out by digging and finding holes in their knowledge of the accomplishments they're claiming -- but that can give you false negatives because people forget.

      It also doesn't help much when evaluating people who are fresh out of school -- and Google hires a lot of those.

      you get references

      References don't work either. Many corporations have a no-references policy to protect themselves against lawsuits by former employees. For example, before coming to Google I spent 14 years at IBM. If Google had relied on references, the majority of my career would have given them nothing more than "Yes, Mr. Willden was employed by IBM from 1997 to 2011". Period. Any of my managers or peers who gave a more in-depth reference could have faced punitive action.

      Actually, though, Google does check references. And I gave them the names of several of my former IBM colleagues who kindly violated company policy and provided detailed information.

      But good references are no guarantee... lousy candidates can often find a few friends who will give glowing reviews. It's also far from unheard-of for a manager with a problem employee to willingly give an outstanding positive review to a potential employer. And bad references, or confirmation-of-employment references don't tell you much either. There's just too much potential for extraneous bias.

      you can even talk about solving a hypotetical or real problem to see him in action.

      Yes, this is the right approach, and it's the one Google interviewers are supposed to use.

      But brain teasers are just that. They are aimed at that one "Gotcha" moment you either get or you dont.

      Agreed, those are really bad interview questions. In the Google interviewing guidelines, and in the internal repository of interview questions, those sorts of questions are specifically disallowed. A question that depends on some flash of insight that may or may not come is useless, because even the smartest candidate may not get the flash, or may not get it right now.

      Good interview problems have depth and breadth, with lots of opportunities for modifying them in small ways that change the character of the problem and appropriate solutions, and with lots of potential approaches for optimization. For example, I like to have them solve the same problem with limited resources, maybe a single embedded CPU with kilobytes of RAM, and with huge resources, maybe a 40,000-CPU compute cluster with terabytes of RAM, and then discuss the reasons for the differences in approach.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    18. Re:Works well if done right by swillden · · Score: 1

      If I sit down with a peer (the kind of person I'm looking for in most cases) it's easy to establish rapport. Can I talk about C++ standards, new language features, pros and cons and trade-offs? Can I bring up a tricky design problem and hash it over with them? And so on.

      This is the approach I used for years... and I thought it worked pretty well, too. But I made a couple of bad hires using it (not at Google) because I ran into some guys who could talk the talk, but couldn't really do the job. The approach also presumes a level of experience that may not be present. You said you're looking for a peer in most cases, but what if you are evaluating a new grad? What if the new grad has never used C++?

      My eyes were opened years ago when I started augmenting the sort of interview you describe with some simple coding problems -- just easy stuff like "write a function to insert an element into a sorted singly-linked list". What I found was that lots of people who'd been around the industry for a few years could talk about stuff quite well... but struggled to write code that worked, or generated the most inelegant, confusing muck imaginable.

      IMO, the approach you're talking about is much easier to game and much more limited in applicability than the "solve a problem for me" approach used by Google and other big tech companies. It does have the advantage that it's less prone to false negatives (rejecting good people), but for most companies I think it's more important to avoid the false positives (accepting bad people).

      The proof is in the pudding, and from what I see Google's approach works well at ensuring that only good people are hired. The people I worked with at IBM were highly competent, by and large, and the same is true of most of the smaller companies I worked for (with a notable exception). But at every other place I've been I ran into the occasional plodder, or just outright incompetent. So far, in my 8 months with Google, and in interactions with dozens of people in all sorts of job roles, I've yet to find a single person who isn't bright and competent. I'm sure Google rejects plenty of good people, too, but it appears to make very few bad hires.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    19. Re:Works well if done right by w_dragon · · Score: 1

      Problem being that a real work environment and an interview are very different situations. Most of us have stress levels during interviews that wouldn't exactly be healthy over long periods of time. An interview like this is the opposite of no supervision. Unless your idea of 'no supervision' is having someone constantly looking at your code over your shoulder as you write it. The issue isn't that I got wrapped up in it, the issue is that screwing up something that you know is straight-forward towards the beginning of an interview will throw you off, because it's only an hour and you don't have opportunity to recover. Never mind that Google's interview methods are poor from the start, with no attempt to get the candidate excited about the job, or even less nervous, or ensure that they aren't trying to code in a cheap MS Word clone.

      Also, as I said, most Google employees I talked to either joined right out of university, or required multiple tries at the interview process. From what I've been told Google knows that their process has a very high level of false negatives, and they're ok with that. Which is fine, but I disliked the process enough that when they start spamming me to interview again next year I'll be politely turning them down rather than rolling the dice again.

    20. Re:Works well if done right by Yunzil · · Score: 1

      I find they work really really well for picking out the better programmers.

      No they don't. They work really well for picking out the people who have seen the puzzle before.

    21. Re:Works well if done right by Anonymous Coward · · Score: 0

      These quizzes and problems are the biggest bunch of crap ever. I agree with one poster who said that they are nothing but nerd ego crap.

      What ever happened to using the resume in front of you to help formulate probing questions that delve into the candidate's experience as described on that piece of paper. If they are BSing about what is on the resume, you'll find out in a hurry. I've done a ton of tech interviews over the years and never once I have I ever given a candidate a quiz, a theoretical problem, or asked programming language specific questions, but yet I've still managed to help hire good people.

      Over the last few years, I myself have been subjected to these tech quizzes and I find it offensive that I've been in the the tech field for over 18 years but I'm still getting grilled with this nonsense. IT HAS NOTHING TO DO WITH THE JOB. In no other field do they do this. Do you think companies hire accountants or finance people by having them do financial problems as part of the interview?

    22. Re:Works well if done right by Anonymous Coward · · Score: 0

      "IMO, the approach you're talking about is much easier to game and much more limited in applicability than the "solve a problem for me" approach used by Google and other big tech companies. It does have the advantage that it's less prone to false negatives (rejecting good people), but for most companies I think it's more important to avoid the false positives (accepting bad people). sorted singly-linked list". What I found was that lots of people who'd been around the industry for a few years could talk about stuff quite well... but struggled to write code that worked, or generated the most inelegant, confusing muck imaginable. "

      I've worked with people that were absolutely brilliant programmers but were terrible to work with - horrible with communication, had to hand-hold to get them from one task to the next, and would never adhere to company best practices, among other things. These quizzes and problems don't do anything to ferret this kind of stuff out so how is your "big" company less prone to false negatives? I'd rather have a person that had so-so programming skills but was willing to take on tasks with minimal supervision, willing to learn and improve, and most of - functions well as a member of a project team..

    23. Re:Works well if done right by Anonymous Coward · · Score: 0

      I went through a google interview. There were many glaring problems with the interview process.

      1) The technical interviewer was from India with a very thick accent and I had trouble understanding him

      2) Difference in terminology ended up making me get answers wrong

      3) Deep level linux kernel programming questions
          Which either means I was interviewing for a job that I was not right for me, or they sold it to me wrong (I'm going with the latter).

      I have interviewed people and its never really about having the right answer its admitting that you dont know, if you dont and where you would go to find the answer. If the scenario was programming it would be search engine or a colleague for advice.

      I interviewed one guy who could not answer the question and sat there trying to figure it out. In a production environment you dont want someone who locks up like that. Same goes for engineers and managers. The worst thing a person can do in an interview or on the job is be stuck on something and not do anything.

    24. Re:Works well if done right by swillden · · Score: 1

      I've worked with people that were absolutely brilliant programmers but were terrible to work with - horrible with communication, had to hand-hold to get them from one task to the next, and would never adhere to company best practices, among other things. These quizzes and problems don't do anything to ferret this kind of stuff out so how is your "big" company less prone to false negatives?

      Clearly presenting the solution to a problem does a lot to demonstrate communication skills, so I think that does come out. And Google interviewers typically leave the problems underspecified, to see how the candidates will work out or ask about the pieces they need to clarify, which partly addresses your second point. As for adherence to best practices... no, the interview can't get at that, and I don't see how any interview really could.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    25. Re:Works well if done right by swillden · · Score: 1

      The issue isn't that I got wrapped up in it, the issue is that screwing up something that you know is straight-forward towards the beginning of an interview will throw you off, because it's only an hour and you don't have opportunity to recover.

      Was this a phone screen? Normal Google interviews are 5 hours; four one-hour technical interviews and a one-hour lunch.

      All I can say is that I think you had a worse-than-average interviewer if you felt like nothing was done to help you feel less nervous. Sorry.

      Also, as I said, most Google employees I talked to either joined right out of university, or required multiple tries at the interview process.

      That's not my perception. Most of the 30+ people on my team were professional hires, most with 10-20 years of experience. Only one of them had more than one interview. I only had one.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  43. too complicated by PopeRatzo · · Score: 1

    Fatal Exception's Neil McAllister discusses the use of quizzes and brain-teasers in evaluating potential software development hires,

    That's too much work. If it's a female applicant, you should just ask her to take her top off and if she does, hire her.

    If it's good enough for Herman Cain, it's good enough for me.

    --
    You are welcome on my lawn.
    1. Re:too complicated by lgw · · Score: 1

      Do we have any actual details on the Cain thing yet? Much as I enjoy Godfather's pizza, I'm somehow not seeing this guy's qualifications ... be nice to see him clear the field soon.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    2. Re:too complicated by PopeRatzo · · Score: 1

      Do we have any actual details on the Cain thing yet?

      The main detail that has emerged is that Cain has told three different conflicting stories within a 24 hour period.

      Much as I enjoy Godfather's pizza

      If your political judgment is no better than your judgment of good pizza, I'm not sure you should be allowed to vote.

      --
      You are welcome on my lawn.
    3. Re:too complicated by lgw · · Score: 1

      When I sill ate pizza regularyl, Godfather's was the only chain that didn't drench their crust in oil. Plus they made their own bread daily.

      And, yeah, Cain sucks pretty bad at handling political problems, and should proably go the way of Bachman as a result. Right now the "anyone but Romney" crowd on the right is stampeding from candidate to candidate - they all seem to be moving to Newt now, amusingly enough, but that won't last.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    4. Re:too complicated by Ritchie70 · · Score: 1

      I have to admit to a soft spot for Newt. I don't think he'd be a particularly good president, but he seems like he might be an interesting person to spend the day with.

      Right now, I'm liking Gary Johnson, primarily because he is that rare thing in politics - an honest man. He tells you what he thinks, and he won't lie about it to get your vote.

      I happen to agree with what he thinks, but even if I didn't, I still might support him.

      --
      The preferred solution is to not have a problem.
    5. Re:too complicated by ChrisMaple · · Score: 1

      What if she takes her top off like Bender, by unscrewing her head?

      --
      Contribute to civilization: ari.aynrand.org/donate
    6. Re:too complicated by JoeMerchant · · Score: 1

      Fatal Exception's Neil McAllister discusses the use of quizzes and brain-teasers in evaluating potential software development hires,

      That's too much work. If it's a female applicant, you should just ask her to take her top off and if she does, hire her.

      If it's good enough for Herman Cain, it's good enough for me.

      Hey, I had one of those, she interviewed for the programmer spot, unfortunately, we actually needed someone who could program.

    7. Re:too complicated by PopeRatzo · · Score: 1

      Right now, I'm liking Gary Johnson, primarily because he is that rare thing in politics - an honest man.

      In other words, he has no chance of becoming the Republican candidate.

      --
      You are welcome on my lawn.
    8. Re:too complicated by Ritchie70 · · Score: 1

      Probably.

      But if you'd like to give him a chance, please harass CNBC about including him in their upcoming debate.

      --
      The preferred solution is to not have a problem.
  44. Forget Interviews by jmactacular · · Score: 1

    I hate interviews, so I started up my own company. Half the time you work for someone else you're thinking you could do their job much better anyhow if only you were in charge. Great thing about having your own company, you get to be in charge, and you get to do whatever the eff you want to do, exactly how you believe it should be done.

    1. Re:Forget Interviews by Colonel+Korn · · Score: 1

      I hate interviews, so I started up my own company. Half the time you work for someone else you're thinking you could do their job much better anyhow if only you were in charge. Great thing about having your own company, you get to be in charge, and you get to do whatever the eff you want to do, exactly how you believe it should be done.

      And presumably you now have to interview a bunch of people, so interviews are more important to you than ever.

      --
      "I zero-index my hamsters" - Willtor (147206)
  45. ageist agenda by epine · · Score: 1

    Every wife in the village instantly knows when a man other than her husband has cheated, but does not know when her own husband has.

    It's not a common knowledge problem until you state that every woman knows that every other woman knows this. If the women have philosophy degrees, nothing much happens. If they don't, they will charge ahead on the assumption that "every other woman is just like me" as all logicians sans philosophy will do. In that case: on the third full moon, all the men depart on a very long hunting trip after several months of heightened debauchery. Assuming they know whether their women have philosophy degrees and what they assume about whether the women also know this. Or perhaps there's a hasty shotgun marriage before this all plays out with suitable supervision to constrain what A knows about what B doesn't know.

    At my ripe age, I personally find it more entertaining to conduct a code review on the statement of problem than to actually solve it.

    The pirate problem contains a misleading plural of unreliable plurality:

    But the others get to vote on his plan, and if fewer than half agree with him, he gets killed.

    How does the lowest ranked pirate reliably defeat his immediate superior in a knife fight while folding his ballot slip? I think you need a set of complex interlocking manacles to implement the problem as stated. Interesting. At first it doesn't look like a crypto problem.

    This whole hiring thing devolves into a common judgement problem. Good judgement is the way to hire good people. But how do you know the person doing the hiring has good judgement? Because you hired him or her in the first place, supposing you implemented this policy on day one. But no, you're saying you don't trust long inference chains after all, and you'd rather I just completed the problem set?

    Perhaps the real point of the Blood Queen of Bath problem is to prove you know enough about what logic implies to never assume it holds sway in the real world.

  46. Win Some Lose Some by florescent_beige · · Score: 1

    One time I went on an out-of-town training class for a particular FEM pre/post processing program that's popular in our industry. Funny story actually, I show up at their regional office and a couple of the sales reps who I knew looked at me blankly and said "Oh. That session was cancelled. Nobody signed up." That was pretty funny. So anyway, seeing as how I was working for a big customer of theirs at the time they decided to let me self-learn with their class materials and a machine. So I did that and after 1 day I find out about their macro programming tool and after 3 days I've written some pcl modules hooked in to GUI thingies. I know, not heroic but remember I'm not a software guy I'm a gearhead.

    So the one fellow in charge of the office invited me along to dinner on the last night of my self-course and at the beginning of the meal suggested that I should apply for a job opening they have coming up for some kind of application engineer. Great I thought, flattering. I might have to take them up on that. Then I proceeded to tear into the lobster we were having with bare-handed gusto. I mean, fragments of lobster were flying all over. I may have had bits of it in my hair.

    Still waiting to hear back on that job thing...it's only been 18 years...and they got bought...ahhh what the heck, between you and me it's a crappy program anyway.

    --
    Equine Mammals Are Considerably Smaller
    1. Re:Win Some Lose Some by JoeMerchant · · Score: 1

      Free lobster, sounds like a win to me.

  47. Passion, people skills & experience by mattpalmer1086 · · Score: 1

    I've sifted through hundreds of CVs and interviewed over 50 people. It's hard finding good developers. I don't think puzzles or other forms of intelligence test by proxy are a good way of finding them.

    I try to get candidates to talk about the work they've done and communicate what was interesting about it. That one filters out those who don't really care. I also ask about situations where a commonly held way of doing something should NOT be applied. That filters out the ones who've got all the "right" answers by book learning, but haven't actually thought about it themselves. I also ask some ambiguous questions to see how they deal with them.

    I've offered jobs to people who got many, many details wrong, but clearly demonstrated they were into writing good software and were easy to work with.

    1. Re:Passion, people skills & experience by gweihir · · Score: 1

      Good approach. And details are easy to do right once you have the right approach to a problem. The other way round kills projects.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  48. comments from an old fart by Anonymous Coward · · Score: 0

    I've dealt with several of these brain teaser interviews. Given the quality of software from the companies in question, they don't do a good job of choosing qualified engineers. There are two ways to flunk: one is not to figure out the answer, the other is to know it at once!

    My current employer did something quite different. They showed me a C expression, and asked me what the result is. I took a look at it, and said at once "you can't do that. It's ambiguous and undefined in the C specification." They all looked at each other, and then let me in on the secret: a programmer that had quit had written that line, and it was the cause of a bug in their product that took the rest of them MONTHS to find. The decision to hire me was made then and there.

    Testing on school problems tests how well the candidate solves school problems. My employer's test was something that actually happened for real. And since I started there, I've found and fixed innumerable bugs. That isn't even my job responsibility; I do design and development. But every so often, I go on a extracurricular bug hunt just to have fun. They haven't minded. :)

    School problem tests discriminate in favor of clever youngsters, and against the knowledgeable experienced. It should be no surprise that companies that only hire clever youngsters end up with software full of blunders that a knowledgeable experienced developer would never make.

    1. Re:comments from an old fart by Anonymous Coward · · Score: 0

      What was the expression if you don't mind sharing?

  49. Failing Test != Failing Interview by szyzyg · · Score: 1

    I have a reputation for being hard on candidates, and I do like to push them way out of their comfort zone, I like to use red ink on their resumes when I think a skill they claim is unjustified.

    But, I'm more interested in how they attempt to do things rather than whether they really solve the problem. Some people crank out code instantly which has bugs, others just freeze up and I have to go elsewhere, but it's all part of judging the person.

    1. Re:Failing Test != Failing Interview by smellotron · · Score: 1

      I like to use red ink on their resumes when I think a skill they claim is unjustified.

      Hah, I have a similar approach. I'll point to the "grep list" on their resume and ask them, "Which of these tools are you really good with? I don't want to waste either of our time on the other stuff." Candidates are typically very quick to point out their own (perceived) weaknesses if they don't feel that they will be penalized for doing so, and it lets me know what they thought was worth bullshitting but not worth actually discussing.

  50. Interview technique du jure by ISoldat53 · · Score: 1

    I guarantee somebody just wrote a book on how to interview. It makes the rounds in MBA schools then gets into "HR Today" magazine and simply everybody's got to use it. Same crap goes around every few years only to be replaced by the crap the year before.

  51. Good tests take months by Colonel+Korn · · Score: 1

    I have the luxury of mostly interviewing PhDs who have already passed a couple rounds of initial screening. Abstract puzzles have always seemed to me to be weighted random number generators. Problem solving is one of the most important skills of a researcher in my field, but solving a problem without any preparation in 5 minutes doesn't correlate well with solving a problem through research over a few months.

    My colleagues and I ask about multi-month or multi-year problems solved by the candidate in the recent past. We evaluate the work, his or her ability to describe that work, and then start probing a lot of the technical and logical details to make the candidate prove that he or she isn't just reciting what collaborators or an advisor did.

    When I'm interviewing non-PhDs who don't have much experience to explore, I will ask some puzzle questions, but they're always taken directly from the work in our labs and are the kind of thing that someone in the field should be able to at least intelligently troubleshoot in a few minutes - that is, they're the kind of problems we expect our employees to actually encounter on the job.

    As another poster pointed out, a lot of the common abstract puzzle questions aren't even well defined. Half the time it's easy to come up with two or three reasonable answers that are equally valid. In my experience they measure experience with this particular brand of puzzles more than anything else. As someone who's always done very well on that section of interviews, I suggest all interviewers who use them should instead look for ways to evaluate performance in real problems from their field.

    --
    "I zero-index my hamsters" - Willtor (147206)
    1. Re:Good tests take months by JoeMerchant · · Score: 1

      I ran a shop with 3 PhDs and 3 BS students or recent grads.

      The PhDs had a real difficulty following simple directions (fill out your timesheet, put your name on it.)

      Two of the PhDs were impossible to retask, once they got into a problem area, forget about asking for anything else for at least a month.

      The other PhD couldn't program his way out of a paper bag.

      No such problems with the BS level people.

  52. Re:What is the number of bytes in an ethernet addr by Anonymous Coward · · Score: 0

    "A few months ago I was interviewed by a Google recruiter. One of the questions was "What is the number of bytes in an ethernet address?". My real answer to that question would be "Who cares", instead I gave the wrong answer. I deal with ethernet addresses daily, but I never bothered myself to count the bytes in them. "

    I was in the same situation, about the same date, so maybe they re-build their "fast question" from time to time as if they were passwords.

    I deal with ethernet addresses from time to time too, and as you can expect, I never bothered myself to count the bytes in them, just like yourself.

    The difference is that I *do* deal with that stuff from time to time, is not that I just *say* it, so it was a matter to recall "hey! there are six groups of two HEX in a MAC, so one byte per group for a grand total of six bytes".

    So in the end, it's a matter of a Dunningâ"Kruger effect: you are not as good as you think you are.

    "Because they will certainly eliminate many suitable candidates in the process."

    Again showing you are not as smart as you think you are.

    What do you think that worries Google (or other well-known compaines) the most? rejecting 100 good candidates or hiring a bad one?

  53. Why would you test someone skills during at all? by makubesu · · Score: 1

    You've got their resume, you've got the word of their past employers, they've given you some sort of portfolio, isn't that real measure of whether or not they can get the job done? You've got years of work you could go over, but instead you're thinking that in thirty minutes you'll be able to judge a man's skill?

    It seems like an interview should be more about getting to understand someone's personality. Are they a good fit for your department? Maybe you could also spend some time clarifying things in their portfolio, trying to understand the work they really did. Giving them a paper test sounds like a waste of time to me.

  54. Worthless by Anonymous Coward · · Score: 0

    I just took a multiple choice c# test for a potential position -- they used java terms and keywords all over the place in the questions and answers. I made it through the screening and removed my name from consideration for the position.

    The moral is, sometimes you can tell just as much about the company as they can about you.

  55. Government jobs by Anonymous Coward · · Score: 0

    I had this aptitude test one time where the interviewers put us into this room with these uncomfortable chairs and they provided no writing surfaces. While we were proctored the test I dragged the only table in the room over to my chair so that I would have something to write on. Turns out, that sort of ingenuity was what they were looking for - it was all a trick question.

    1. Re:Government jobs by Jaxoreth · · Score: 1

      I had this aptitude test one time where the interviewers put us into this room with these uncomfortable chairs and they provided no writing surfaces. While we were proctored the test I dragged the only table in the room over to my chair so that I would have something to write on. Turns out, that sort of ingenuity was what they were looking for - it was all a trick question.

      I hope you didn't also shoot the girl with the quantum physics textbook.

      --
      In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide
  56. Easy tests flunk most programmers by drew_eckhardt · · Score: 1

    I do systems software.

    My last encounter with trees, threads, priority queues, condition variables, and mutexes was this afternoon and any one I hired could be doing the same thing on their first day of work.

    I don't risk giving guys their first job, although I include free software and interesting project classes the equivalent.

    I ask every candidate regardless of seniority (you can get surprisingly far in industry without much skill beyond high-level hand waving)

    1) A simple programming question with a couple of edge conditions. It can be solved in one loop although I'm very happy with candidates who use an obviously correct solution with a pair of inner loops which totals 17 lines including braces where not technically needed added in the K&R style. I don't mind pointing out an edge condition that's been missed, just that they address it in the end (in the real world a test would find it).

    2) A simple data structure question. I give an API with three functions, ask what data structures the candidate would use, and what the operational complexity on the three functions would be. I don't want an optimal answer, just something workable, and don't mind answers like "some sort of" that would lead to a book or web lookup. I'd be happy enough with an STL container answer; although pretty much everyone without the basics doesn't do well at that abstraction level either.

    Candidates worth hiring in my opinion and the majority who've passed hours of less hands-on interviews take about five minutes for each (maybe ten minutes for the first problem if they've been withering away as a project manager which is fine) after which I ask a five minute thread question and spend the remainder of the time talking about what they've done and assessing whether they have attitudes about software test and process commensurate with time in industry.

    Ones not worth hiring can spend an hour on the first problem and still fail to get it when I explain how it would work in English with diagrams.

  57. Sounds Like Google - See Post by Anonymous Coward · · Score: 0

    Google's been doing this for a while... look what it's gotten them: http://www.one37.net/blog/2011/11/3/googles-missed-opportunity.html?utm_source=loopinsight.com&utm_medium=referral&utm_campaign=Feed%3A+loopinsight%2FKqJb+%28The+Loop%29

    Google reminds me of the time I went to work in France as a young American self-taught programmer. I found that the French programmers were extremely well educated and they always wanted to do things the "right" way... unfortunately, that led to rarely getting anything done on time and when it was done, it was an over-engineered mess (sound like Google).

    1. Re:Sounds Like Google - See Post by Shompol · · Score: 1

      I had to maintain a system written by "self-taught programmers" for many years. Things were not split in files or even procedures, it looked like a gigantic heap of "if-else" statements. It would break daily. No one knew how it worked and it was a nightmare to reverse-engineer.

      I mean sure, they wrote that code very quickly and got all promoted to management, leaving the steaming wreck behind for others to maintain. Subsequently, a group of 60 was hired to maintain a code base that normally would be managed by a team of 5 -- and all 60 had their hands full keeping this real-time trading platform breathing.

      For some weird reason Software Development is the only "skilled" profession where they hire total strangers. Everyone can write "Hello World", right? Where are the self-taught mathematicians, physicists, accountants? Interesting times.

      Also, about doing things the "right" way -- development of software is only a small fraction of future maintenance cost. By shaving a few days off development today you are setting your company for many years of hemorrhoid, until your "masterpiece" is finally scrapped and rewritten at no small expense but to everyone's great relief.

  58. I've been through these - agree with post by iONiUM · · Score: 1

    As someone who has been through these for Microsoft and some other big name companies, I completely agree with the post. Although I was successful (I was offered a position), it just doesn't make sense. When you program, you don't do it in a pressure filled environment. You take your time, you gather requirements, you design and implement within the time available and you do the best job.

    My perception of these tests has always been some smart-ass programmer who wants to show that he's better than anyone else making young programmers try and solve stupid puzzles as fast as possible. It's pretty ridiculous.

    The company I work for now has the best idea IMO - when you submit your resume, you must also submit a working program that solves a business case outlined. You can of course take as long as you want, do it at home, and use internet resources. But the program isn't judged on just code alone, it's judged on many other elements. This course of action has allowed us to hire very intelligent and well rounded developers, and weeded out all those who were just "carpet bombing" resumes (as they wouldn't even read that they had to submit an application as well, or were too lazy to do it). In addition, we can immediately see the quality of code, style (assuming they didn't copy), and just as important how they think the UX/UI should be, etc.

    Why more companies, like Google, don't do it this way is beyond me. I feel like they just want to be assholes and try to intimidate new recruits, or "show off."

    1. Re:I've been through these - agree with post by gweihir · · Score: 1

      Well, quite frankly I would expect to be paid for a few days of development time for this. Otherwise it is just unbalanced. Are you sure you not only get desperate average engineers this way?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:I've been through these - agree with post by akeeneye · · Score: 1
      Where are my mod points when I need them?

      "When you program, you don't do it in a pressure filled environment. You take your time, you gather requirements, you design and implement within the time available and you do the best job."

      Precisely. As an interviewee, you're in a very high-pressure, stressful situation, and many people, myself included, do not perform well on technical tasks in those circumstances. I have never *once* in my long development/mgmt career had to produce architectures or designs or code under anything remotely resembling interview-stress conditions. Dev jobs entail stress, surely, but it's an entirely different variety from that endured in an interview. The result: the sorts of interviews described here weed out, among other things, capable, perhaps excellent people who will excel under real-world conditions.

      I like the approach of having candidates submit solutions to small but fun problems along with an application/CV. As a candidate, I'll enjoy wrangling with the problem and creating a solution that I think will impress you, the interviewer(s). In an interview, if there is one, we can discuss my approach and how it led to my solution, we can address any weaknesses you find, we can compare my solution with other possible solutions. We can then change the requirements (I've heard this happens in dev environments ...) and talk about how the solution might also change.

      This approach puts the candidate in something resembling a "real world" problem-solving environment and allows them to display both the hard and soft skills needed for success in most tech companies. I've been an interviewer many times (100% very small or start-up companies), have hired smart, successful development people, and have never wasted my, or my interviewees' time, with puzzles and on-the-spot coding challenges. There are a number of prominent characteristics of successful, if not great, developers. In almost all circumstances, the ability to code up a sorting algorithm in language X, from memory, in 15 minutes while I stare at them neither is, nor contributes to, having any of those characteristics.

      --
      The man who dies rich dies disgraced. -- Andrew Carnegie
    3. Re:I've been through these - agree with post by iONiUM · · Score: 1

      Eh? It's not really that hard, you could create the program in less than 1 hour if you just did it quickly. The point is that you can take your time, fine tune it, etc. All the developers we have got through this method have been very good, so far.

    4. Re:I've been through these - agree with post by iONiUM · · Score: 1

      I'm glad you agree. And I'm also glad you agree that having candidates who can just memorize APIs, sorting algorithms, and such are often not the kind of people who possess the qualities that make good developers.

      It makes me sad that this fact is lost on so many people, including the "smart" companies like Google and Facebook.

  59. Logic problems for interviews by sandytaru · · Score: 1

    A few times now I've gone through "logic tests" during interviews. When they give me that 4 page sheet and say I have 45 minutes to complete it, I go "Oh boy oh boy!" and usually finish the whole thing with five minutes to spare. I did those sorts of problems as a hobby as a teenager. I love them! Then they give me the personality test, at which point I am screwed.

    The last job interview I had involved no testing or quizzing at all, just proof I didn't lie on my resume. As a result, I was hired by the end of the interview and I've been with the company for a bit over a year now.

    --
    Occasionally living proof of the Ballmer peak.
    1. Re:Logic problems for interviews by Anonymous Coward · · Score: 0

      I had a "managerial psych screening" once - quite the experience. I scored average for our company in most of the testing (meaning, better than many people higher than me in the management chain), kind of blew the Kobayashi Maru peer negotiation exercise (I gave up on her, if I had been thinking critically I would have realized that there's no way that's the right answer in a testing scenario, although, in real life, I think it was still the right answer), and on the logic / critical thinking test the exit interviewer's comment was "you did very well, let's see, hmmm... top 5% of your company, top 5% of all companies, actually, I don't think I've ever seen a score this high..."

      Translation: you're far too valuable in a technical role (and far too intimidating if on an advancement track underneath somebody insecure), no management track for you. Don't worry, we've got a "parallel technical track" just as upwardly mobile as the management track. Yeah, right, 60 people above me on the management track, making anywhere from 1.2x to 50x my annual compensation. Maybe 2 people above me on the technical track, topping out at about 1.5x my current compensation, and that only because they signed on with a better option strike price. New options for the techies came around every 3-4 years, at random. New options for management seemed to come around every few months.

  60. It's organized Cheating!!! by John+Sokol · · Score: 1

    Yep, I said it.
    I have been to several University nerd parties where a Google employee coaches his friends and prospective candidates as to how to answer some of the questions.
    What I have notice is some of the questions require giving a wrong answer, and any answer other then the "one they want" will be a mark against you, no matter how correct it is.

    So basically you need to get the answers or at least enough clues online to be able to pass the interview. You must study for it like the SAT's. I have even seen Google Interview Study parties. I consider this cheating, which is in my humble option complete bullshit.

    I have been programming C since 1982 and C++ since it's inception in 85 or something like that. I have plenty of code in the Open Source and worked on so much code I can't even add it up at this point.

    I am always the one who can fix the hardest bugs, Kernel panics/oops, pour through core dumps, clean up drivers, JAG the hardware, and do the board bring ups.
    I have worked on code in over 100 languages counting all the flavors of assembly language and scripting language.
    I have developed some of the cleanest architectures and have code a number products that are on the market today and in the BSD and Linux Kernels.

    I deliberately keep to a subset of C and C++ and avoid many things that make machine parsing and code analysis in sed/awk/grep/find difficult.
    Occasionally I needed to look up things when I see someone do weird obfuscation crap in their code.

    http://churchofbsd.blogspot.com/2011/11/weird-obfuscation-crap-in-their-code.html

    Some one that passed one of those interview tests probably thought he was being clever.

    In professional code we don't want clever. Clever is BAD because clever makes the next guys job hell.

    At this point my fingers know the language, my eye's just know what looks correct. I think what I want and it just pours out of me, but don't ask me to explain because I am not sure, I'd have to stop and think.
    Much the same way I was with phone numbers (Back when we had to dial them) where I needed to actually dial the number to see where my fingers go to be able to tell you what the number was.

    I find I code best when I am not thinking, I literally don't look too closely at the screen. I just keep myself distracted and only stop to consciously think about the larger design and architecture.

    So I can't code on a blackboard. Just can't do it. I never was able to, and I am not about to try now after 30 years of VI on CLI.

    As a result I can't get through most of the interviews like that. Fortunately I already make more money then most of those places would pay anyhow.

    I don't need such abuse, I am not one of those sad old guys that can't find work doing Cobol any more.

    --
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    1. Re:It's organized Cheating!!! by russotto · · Score: 1

      I have been to several University nerd parties where a Google employee coaches his friends and prospective candidates as to how to answer some of the questions.
      What I have notice is some of the questions require giving a wrong answer, and any answer other then the "one they want" will be a mark against you, no matter how correct it is.

      So basically you need to get the answers or at least enough clues online to be able to pass the interview. You must study for it like the SAT's. I have even seen Google Interview Study parties. I consider this cheating, which is in my humble option complete bullshit.

      Do unqualified people who attend these events actually succeed in getting jobs at Google? Do really good people who do not attend these events and interview with Google fail as a result? I'm genuinely curious; I work at Google and having seen the interview process, I find it hard to believe that such "cheating" is effective.

    2. Re:It's organized Cheating!!! by JoeMerchant · · Score: 1

      You must study for it like the SAT's. I have even seen Google Interview Study parties.

      See, there's my problem, I never studied for the SATs or GRE. Hell, when I took the GRE, I was in a strange city (Manhattan), and my prep for the test was to find out which train to take in the morning, I think I only got about 6 hours sleep the night before.

      I got 790 math, 800 logic, and something in the high 600s verbal, first (and only) try.

      Born in 1967, Google won't give me the time of day, unless I ask for it in the search query box.

    3. Re:It's organized Cheating!!! by gweihir · · Score: 1

      Well, we recently had to fire an engineer that was fired by Google before (after a few months) so their screening does fail. Problem was she was bright, but so full of herself that she could not even follow a style-guide or implement an algorithm designed by somebody else.

      I also have gone through a Google interview myself and was not offered a position while at the same time I know they should have. (Inside information suggests they were urgently looking for somebody just like me. A fiend asked me to apply for that reason. The have by now contacted me two additional times but I am just not interested anymore. You basically get one chance to hire somebody.) I would say the questions were far too basic, far to detail-oriented, and on quite a few points I had the impression the interviewers were struggling to understand my arguments due to limited understanding of the problem on their side. (Example: I was asked about hash functions. Now I happen to know that all the things in textbooks are BS and even things like the hash function from the STL C++ library do not work too well for large sets of low-entropy keys. I had collision chains up to 120 elements in length with the STL hash at one time, with 100 Million IP addresses as keys. So I referenced the hash functions by Bob Jenkins and said that if you do it on disk, you have enough time to use a real crypto-hash. I am pretty sure this answer was actually noted down as a fail on my part, i.e. confusing normal hashes and crypto-hashes, but instead shows that I do not only have small dataset experience with my data-structures.)

      I also tend to always look at the bigger picture, which I think was quite at odds with the process. So, yes, somebody bright but inexperienced could benefit tremendously from such training as these interviews stay far too much on the surface. I also have the impression that the large number of failed Google projects point to a fundamental problem with the hiring process.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:It's organized Cheating!!! by John+Sokol · · Score: 1

      >Do unqualified people who attend these events actually succeed in getting jobs at Google?
      No, most likely not.

      >Do really good people who do not attend these events and interview with Google fail as a result?
      I think many do.

      > I work at Google and having seen the interview process, I find it hard to believe that such "cheating" is effective.
      I am not saying "cheating" is effective, but required! If you don't at least Google for a Google Interview and study, then you fail.

      Worst yet it is not even considered cheating in the new culture I see forming. Yet, by my standards the ones of my Generation, learning the questions and studying them before a test is cheating.

      I don't mean to imply it's systematic or deliberate, but it's just the nature of it. Maybe it's a culture that evolve to be that way.

      I'd also like to say I love Google. So much so at my Yahoo Interview I said it by accident. I am sure that didn't help.
      Without Google search It would be like getting a lobotomy. I'd be so lost without it. I'd sooner die then use Bing. And yahoo, please.

      So, back to my story, these student, almost all, were easily Mensa and more then qualified but green as limes. Just super smart CS students, doing cool things and hanging out with other cool guys that can have a heated debate on parallel sort algorithms and get really worked up over it after a few beers. Which is why I end up these sort of things.

      On one occasion someone from Google is present, going back to school for their Ph.D.
      Of course working at Google you'd think there was a Big superman logo on his chest and everyone was a awe. Inevitably the conversation turns to how did you get a job there, and soon the group is being stumped by interview questions. A party game really.

      On two separate occasion, with totally different groups in different parts of California I have seen this take place, and I am told it's not uncommon.

      Having been though some of these Interviews first, I found it quite interesting. I also found most questions are explained quite well on the Internet, although it took some efforts to track down the answers.

      So basically here is my take on it. If you have been at one of these gathering where it turns in to a discussion of Google Interview questions, then you Google for answers and learn them. Your odds of getting hired will increase immensely.

      As for me, and many of the really Senior Kernel hackers I also hang out with, who are the best and smartest programmers I know. Well, we laugh about Google Interviews or similar companies, Yahoo Included and the general consensus usually come out to what asses, they think they know it all. Why even bother.
      The very fact that this main article even made it is evidence of that.

      Most of us Senior guys would never hang out with the kids on campus, and so we wouldn't gain this inside "tribal" knowledge, "tips and tricks". We don't study before an Interview because we live eat and sleep in C. Our credentials and track record generally speak for themselves, we are a small community.

      So there is a little cultishness to it whole thing, not that Microsoft, Apple or Facebook don't also have their flavors of it. Overall the process tends to filters out many talented experienced and capable people who just happen to not be in the right social circles.

      I think few people, even with IQ's of 150+ can properly answer these questions on the spot without foreknowledge.

      I guess it sort of makes sense that Google want's to hire good Googlers. I have been told repeatedly is that many students study and prepare for years before their Google Interview and it like trying to get in to MIT or Harvard. They talk to friends at Google, get the questions that will be asked and study up on the answers, in once case I even heard about a group of students that gather once a week to collectively study for their Google Interviews in the hopes they'd all get hired in.
      I will not make reference to there nationality.

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    5. Re:It's organized Cheating!!! by John+Sokol · · Score: 1

      That's what I am talking about!

      Hey your my age.

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    6. Re:It's organized Cheating!!! by Anonymous Coward · · Score: 0

      the form of cheating you describe is actually a pretty strong signal of the applicant's motivation - big difference if he is willing to cram a few hours to get a shot at the job or if he is mailing applications to all potential employees without preference.

    7. Re:It's organized Cheating!!! by John+Sokol · · Score: 1

      That's great for junior positions, for green kids.

      But do people randomly fire resumes at Google?

      > is actually a pretty strong signal of the applicant's motivation
      So if your really motivated you'll cheat. Is that what I am hearing?

      It's like trying to read over the K&R book before an Interview, if you haven't learned it by now, skimming the book one last time isn't going to help.

      Do you really want someone who will cram? Or needs to cram?
      If you can learn something in 1 DAY that will increase your odds of getting hired at Google, well I say that's a major defect in the hiring process.
      I mean getting computer skills and programming takes years, I mean most people don't get good at till they've been at it 5 - 10 years or more in my opinion.
      This isn't a test where you pass then forget all you learned.

      This isn't a sprint, it's a marathon. Day in Day out coding, maintaining code, debugging code. It's about long term performance of the developer, about long term performance of the code they create. It's about the code lifecycle, the product lifecycle.

      I keep seeing disposable code in major products. I have even heard not to long ago "don't focus on making it perfect, just get it working so we can ship"
      It's cost more resources to maintain code like that then doing it cleanly and right the first time.

      Of course by the time someone makes a statement like that it's almost too late. It results from a long term history of abused code that is poorly architected.

      "If I had more time, I would have written a shorter letter." - Mark Twain

      "I have made this letter longer than usual, because I lack the time to make it short" (Je n'ai fait celle-ci plus longue parceque je n'ai pas eu le loisir de la faire plus courte) - Blaise Pascal, Lettres Provinciales (1656-1657), no. 16.

      "Anyone can make something complex, but it takes a genius to make it simple" - Albert Einstein

      Read: http://churchofbsd.blogspot.com/2010/12/bsd-philosophy.html

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    8. Re:It's organized Cheating!!! by russotto · · Score: 1

      I am not saying "cheating" is effective, but required! If you don't at least Google for a Google Interview and study, then you fail.

      Ah. I know that one's not true, by personal experience. Since I didn't study and did get hired. (I'm long out of college, BTW)

    9. Re:It's organized Cheating!!! by John+Sokol · · Score: 1

      Humm. Ok, strike "required" and replace with "increases ones probability". Maybe even put strongly in there.

      From my friend Terry Lambert's statement it also sounds like it's "expected". Yea, maybe that's what it is, expected.

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    10. Re:It's organized Cheating!!! by John+Sokol · · Score: 1

      You can look at it as Google is, by it's very nature the ultimate cheating engine. The answer to every test and homework assignment right at the tips of your fingers.

      Or you could also think of it as Augmented Intelligence, which would also be true. It's an amazingly powerful tool which feels like it's part of my brain at this point. Only limited by bandwidth which is typing speed + modem. Seriously, why do I need to know it if I can just Google it. It's almost as good as knowing it. So I can then focus my mental energy and learning on things I can't look up. This is paraphrasing something Einstein once said.

      So it just depends on your definition of cheating.

      Where is that line? Is bringing a calculator to the math test cheating or required. I really depends on the class and the teacher rules.

      I guess I am of the assumption that if I am going to ask someone a question I want their answer and not the one they looked up a few hours ago. At least if my goal is to assess them.

      Otherwise, let them Google for the answers right there in the Interview. That would be kinda cool actually.

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    11. Re:It's organized Cheating!!! by russotto · · Score: 1

      See, there's my problem, I never studied for the SATs or GRE. Hell, when I took the GRE, I was in a strange city (Manhattan), and my prep for the test was to find out which train to take in the morning, I think I only got about 6 hours sleep the night before.

      Oddly enough, that was my prep for my Google interview. And I took the train the wrong way at first (got confused due to construction).

  61. No thanks asshole by Fujisawa+Sensei · · Score: 5, Informative

    Sounds like you're trying to weed the good artists. I have hired graphic artists as well. And it was a done deal pretty much before I even talked to him. There was one thing I looked at and that was portfolio, the interview was just a matter of finding out if they were an idiot or not. It doesn't matter what application a good artist uses to produce the artwork, as long as they produce good artwork. You can train on a piece of technology, as long as the person isn't stupid. But if you think you can actually train a good graphic artist, you're the fucking stupid one. Becoming a good graphic artist takes years of training and practice.

    But I can see why you no longer do interviews, you actually fucking suck at them.

    For instance if I say I know C# and you want me to bang out some code in Python, we're done. Because whether or not you realize it, I'm also interviewing you. And I have stopped the interview process in the middle because the interviewers didn't have their shit together. Seriously if you're going to fuck with me during the interview process you probably don't you have your shit together as much as you think you do. So things are really going to be fucked up once I get started, and I have start looking again. No thanks; find somebody else more gullible.

    --
    If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    1. Re:No thanks asshole by Amouth · · Score: 1

      first of all i'm not training "graphic artists" but rather trying to find people who know what they need to do.. trust me their portfolio matters a lot on that side.. and the tasks are very very very simple ones. some peoples portfolios look great but you have zero idea how long they spent on a given work. While you can't train someone to be an inspirational artist.. if i say i tell them exactly what i need and they can't produce anything then it is useless.

      as for the debugging code - i don't sin them down in front of a computer.. i give it to them printed out.. if you are a C# programmer but can't tell that a loop in python doesn't have a means to exit, then i'm sorry.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    2. Re:No thanks asshole by Anonymous Coward · · Score: 0

      Actually those assholes were begging me to come back.

    3. Re:No thanks asshole by Anonymous Coward · · Score: 0

      ...asshole... idiot... stupid... fucking stupid... fucking suck... shit... fuck... shit... fucked... gullible... asshole...

      Don't think I'd want someone that abusive working for me!

  62. Interview Games by virtualthinker · · Score: 1

    These tests are too easy for all of these companies to use in eliminating people which they consider undesirable: too old, too young, too long out of work, wrong gender, wrong skin, whatever. It is not just the big companies, a lot of places are using online tests to screen candidates. Some of the tests I have seen serve no purpose other than to make the candidate feel completely worthless - so they can drive the rate down. Language tests "drill down" beyond the level of language trivia, where the answers they demand are likely wrong anyway. As a consultant for many years I did lots of technical interviews. The absolute best method is putting someone who actually has knowledge of the technical area, in the room with the candidate and let them talk. If you want to know how well they know PL/1 give them a PL/1 listing and let them tell you about it. Don't send in the Guru your hired last time, because he is only out to prove he is a better programmer than the candidate. That will never end well. On the other hand too often a project manager is hired who knows little or nothing about the implementation technology. For example PL/1. The project manager will eventually find the Hughes Book, which he will peruse for highlights. The Hughes Book uses a collection of words to describe PL/1 storage types which those of us who have done PL/1 extensively simply do not use. So the PM asks the candidate over the phone to name those types: The candidate replies automatic, based, controlled, and static. The candidate is disqualified because the list does not match the terms used in the Hughes Book. Another candidate who had a PL/1 class in college and read the Hughes Book the night before will get the job because he is working from the same script as the PM. This is the main reason knowledge professionals (including programmers) need to organize.

  63. Tough tests might flunk candidates, but .. by Anonymous Coward · · Score: 0

    .. simple practical tests can rid you of the unsuitable candidates very quickly.

    I went through an interview process a few years back for a company writing software which required life-and-death accuracy, so their interview technique was carefully designed. First test was with a recruiter .. basic C++ programming skills. Simple questions that are obvious to people who know the language .. like "Create a pointer to an array of 12 characters and populate the letters A through L into the array" or "Create a class with a member structure to store a street address". I was told that this test weeded out 90% of candidates .. 90% of people applying for the job were lying on their CV.

    Next, I met up with the team I'd be working with. We just yacked for about an hour, before they sat me down in front of a terminal with a simple practical task.

    Finally there was a formal interview with the Manager and HR person from the company.

    I didn't get the job, but I did get the point.. and at the time, I wasn't right for the job. The point was to find the right person for the role because bringing in the wrong person could be deadly. It was a direct, simple, effective and (most importantly) cost effective way to interview hundreds of people. The testing process needs to fit the role. When the testing process is appropriate, the end result is good. If the testing process is some abstract HR tests then you can expect the results to answer the question and end up hiring a workforce consisting entirely of people with a single skill set.

  64. Re:Trades like / apprenticeships / schools are TEC by Anonymous Coward · · Score: 0

    have you noticed -- a lot of software is free this node is entirely based on free open source software. freshmeat, source forge, OSDN...

  65. I was interviewed by MS in 2003 by Anonymous Coward · · Score: 0

    The position was for crash dump debug analysis teams. Let me tell you all 1 thing:

    The questions weren't "stupid brain teasers", they were strictly comp. sci. related, see here, as I did a post on here it a few years ago -> http://developers.slashdot.org/comments.pl?sid=155172&cid=13007974

    (That post of my experience was "modded up" as +3 interesting iirc, & others had the SAME test too, was nice to see!)

    However, the FUNNIEST & MOST INTERESTING PARTS were the SHEER AMOUNT of replies afterwards, attempting diff. ways to do the questions answers (some failed because their methods only worked on specific data types, but interesting nonetheless - very "geek speak", lol!).

    Anyhow/anyways - Things may have changed, but, in any event? Well... from the point-of-view I have, actual experience (& making it to the 3rd round of tests YEARS ago? That was my experience with MS - a humbling one actually, but I suppose one I needed... I know FAR more now, but it took time!)

    APK

    P.S.=> Personally, I thought the questions & tests were perfectly "inline" for the position... I apparently though wasn't "good enough" to make "their grade" back in 2003, but now? Who knows, but I didn't get "worse" in the intervening 8++ yrs. now (only stronger & better, & that interview humbled me some, but made me learn that I HAD TO LEARN MORE IS ALL... when life gives you lemons, make lemonade!)

    ... apk

    1. Re:I was interviewed by MS in 2003 by ledow · · Score: 1

      The simplest fool can ask a question that the greatest minds cannot answer. That, alone, makes it a poor hiring technique.

      Those questions are not only petty, useless (because any idiot can "know" the answer without knowing a single other thing about programming, and yet someone who's programmed for 20+ years and is otherwise expert may still slip up and give a slightly "imperfect" answer that they would never actually write in a piece of production code if they were unsure) and out-of-date (seriously? XOR-swaps? Sort of thing people needed to do in the 70's when they ran out of registers but today? Just add another damn variable and make it easy to have your code read/ported by others, ffs. I had the answer, incidentally, but if I were replying to that question, 90% of my answer would be what a terrible, pointless question that was and show the million-and-one potential problems with the expected answer - non-portability for a start - when you could just add another variable at virtually zero-cost) but they provide absolutely no data to the interviewer at all.

      An interview is there to weed out the wheat from the chaff. You can do it with tricksy questions, lateral thinking and riddles if you really want to but what you'll end up with are people who are good at answering tricksy questions, not seeing the obvious answer and who enjoy spending time solving riddles when they could take an easier, more sensible, path. It won't actually give you a good coder, necessarily, unless those attributes happen to collide in a single individual.

      Personally, the guy who replies to those emails with "Sorry, but I don't see the point" (or doesn't reply at all) is more likely to have been a good coder than the guy who provides the pristine laterally-thought-out answer. That's never a good thing when it comes to job interviews because you're pushing away more good candidates than you're attracting. Can you seriously imagine a 40-year-experienced top-of-the-line mainframe coder stooping to answer silly questions like that as if they're the Holy Grail of interview technique? Would you make Dennis Ritchie or Linus Torvalds or Alan Cox or anyone of a million famous programmers go through that crap? *COULD* they even get past the first few rounds without just throwing it back in your face and working for your competitor instead? Does any decent cross-platform C source actually ever have to swap two variable's contents and if it does would anyone with a brain use a XOR-swap rather than an explicit one?

      I think the principle of that interview technique is to look for the guy who provides the answers that nobody thought of but that's not necessarily what you want in a coder - it's much more of an executive exercise, as well as making MS/Google seem somehow elite ("Have you seen how cool/impossible/weird their hiring process is?" etc.).

      It's like interviewing someone to be a meteorologist by giving them a pop-quiz on where the draughts are in your home and when Hurricane Albert hit in 1856 (or whatever). There might be someone who knows, but it doesn't make them good at their job.

      British A-Level Computer Science papers included the question "Distinguish between batch and real-time processing" when I did it 15+ years ago. The answer? Batch is having all your records updated at a later date -for example, overnight (e.g. a bank's payment system for the day's transaction), real-time is doing the processing as the data arrives. Genuine CS-related question. Perfect CS-related answer that would get you top-marks on the paper at the time. Absolutely stone-cold useless when it comes to hiring 50 years ago, let alone today. Those interview questions are no different.

      Now there is a difference between people who have studied / worked in a subject and those who KNOW the subject inside-out, but silly tangential quizzes are not the way to hire people unless you want silly tangential answers all the time. If I were managing Windows code, especially debug-testing code, and you put that XOR-trick in

  66. If Microsoft does it.... by Fujisawa+Sensei · · Score: 1

    If Microsoft does it, there's a good reason to not do it.

    If Facebook does it, there's yet another good reason to not do it.

    --
    If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    1. Re:If Microsoft does it.... by Nivag064 · · Score: 1

      You think every country drives on the right side of the road?

      Ever been to England, New Zealand, Japan... ?

  67. Assign homework and make it open book by Pvt_Waldo · · Score: 1

    The last job interview I had gave me homework to do. They pointed me to a public dataset, and had me write a web-app that could read and display it. Language, tools, platform, etc. didn't matter. Even getting it all done didn't matter. But I had to explain why I chose what I did, and how I would have implemented the parts I didn't finish.

    This is pretty much like the real world is - where it's an open book kind of world. Where you can Google, grab open source libs, etc. A job where you couldn't look things up would be a kind of odd one.

  68. Tests I've had interviewee's fail.. by Ritchie70 · · Score: 1

    C/Unix development/support role. I have had multiple supposedly experienced people fail to answer these questions.

    1. What does static do when applied to a variable within function scope?
    2. What does static do when applied to a variable not within a function?
    3. Aside from multiplication, what does "*" do?
    4. How do you list the files in a directory?
    5. Tell me a few kinds of inter-process communication.

    --
    The preferred solution is to not have a problem.
    1. Re:Tests I've had interviewee's fail.. by JoeMerchant · · Score: 1

      I have been programming in C professionally for 20 years - my colleagues tell me I'm good, I feel confident and I deliver good code on-time.

      I don't know the answer to #2 (though, 30 seconds on Google and I could find out.)

      C/Unix development/support role. I have had multiple supposedly experienced people fail to answer these questions.

      1. What does static do when applied to a variable within function scope?
      2. What does static do when applied to a variable not within a function?
      3. Aside from multiplication, what does "*" do?
      4. How do you list the files in a directory?
      5. Tell me a few kinds of inter-process communication.

    2. Re:Tests I've had interviewee's fail.. by Ritchie70 · · Score: 1

      It makes the scope of the "global" variable local to the file.

      I thought everyone knew that. But then, our code is full of freaking global variables. (It was originally written for 286 Xenix.)

      --
      The preferred solution is to not have a problem.
    3. Re:Tests I've had interviewee's fail.. by JoeMerchant · · Score: 1

      That's an example of "tricky" syntax that I just stay away from whenever possible. My personal solution to that problem is to prefix variables in a given file with a unique two or three letter code so that the namespace stays non-interfering. They are still accessible outside if desired (without having to go make changes where they were declared), and they don't cause problems. Plus, the code is a clue where they came from.

    4. Re:Tests I've had interviewee's fail.. by bipbop · · Score: 1

      Oh. Just a heads up: you should probably learn that!

    5. Re:Tests I've had interviewee's fail.. by JoeMerchant · · Score: 1

      30 seconds on Google and I can look up just about anything C, C++, stdlib, Qt (especially Qt) that I need to know. I knew and forgot what static meant on a global variable over 10 years ago... I didn't know it when I read the post because it's not something I or my colleagues have used in years.

      More important than knowing a bunch of trivia and obscure coding tricks is knowing what gets the job done with a minimum of hassle up front, and ease of maintenance when you have to look back at it after months or years. static declaration on a global variable is something I could live without forever and never miss, but if I ever encounter it in somebody else's code, Google is just one click away.

    6. Re:Tests I've had interviewee's fail.. by Ritchie70 · · Score: 1

      You can stay away from it if you like, but the positions I'm involved with interviewing for are development/maintenance/support of a code base of some 2.5 million lines of code that has been under fairly continuous development since the mid-1980's.

      Trust me, you need to understand what the static keyword means to work on our code base.

      --
      The preferred solution is to not have a problem.
  69. Well once upon a time... by evilgraham · · Score: 1

    ,,, I got my first break in the biz via the old IBM test (not with IBM). God only knows what it was intended to prove, but apparently it somehow was able to pick out potential programmers. Not so, in my experience, being good at programming was an endevour which required shitloads of learning how stuff actually worked, no matter how good you were at the test. So IMHO, just a case of jumping through a hoop to get elsewhere. That said, learn z/Arch assembly language. As far as I can tell, no-one can do that shit these days, and you can make real bucks at it. Especially because everyone else who tries is totally crap at it.

  70. This is old news by kc8jhs · · Score: 2

    Alex at The Daily WTF wrote about this problem back in 2007: http://thedailywtf.com/Articles/Riddle-Me-An-Interview.aspx

    1. Re:This is old news by Kaz+Kylheku · · Score: 1

      What it also does is that it "weeds in" the puzzle solvers.

      Essentially, the interview does a disservice to the good puzzle solvers too by creating a false expectation that the job consist of puzzle solving, rather than of Getting Shit Done (tm).

      If you staff yourself with puzzle solvers, nobody will want to actually do any real work. Puzzle solvers won't want to do mundane stuff like taking some crufty old code and refactoring it for better error handling. They want to be hacking on their pet functional language, or adding paragraphs to their growing paper on holes in some type system.

      Most software development is not puzzle solving, and even where there is puzzle solving, it's often not done by YOU. You just have to know how to do the research to borrow other people's puzzle solutions and adapt them.

      Inventing the Fast Fourier Transform was a brilliant puzzle solve. Your job may be to understand it, and adapt someone's library to your needs. Less likely, you may be asked to implement it.

      This is not to say that you don't want any puzzle solvers. Far from it. You need a couple, maybe in some architectural role. Puzzle solvers may be able to see more deeply into the implications of some architectural decision, and come up with good ideas.

  71. 50% by Anonymous Coward · · Score: 0

    50% of the people you meet, work with, marry, catch stuff from, support with your taxes, ect. are by definition below average. Think about it!

    1. Re:50% by ADRA · · Score: 1

      Below the average based on the people you interact with maybe, but you cannot be guaranteed that of 100% of the world population (50% of which being less intelligent) that you're likely to meet an even distribution (or rounded average of the total distribution) throughout your lifetime.

      If you live in a small University town in the middle of nowhere, you could meet a WAY higher average intelligence people than say a town which supports an oil refinery or a coal mine where people's ability to live and work effectively are much less dependent on their raw intelligence.

      --
      Bye!
  72. How is why by Anonymous Coward · · Score: 0

    I was asked to solve a network traffic issue and knew the answer immediately based on my experience. After all, that's why they were interviewing me. They weren't so much interested in the answer (a specific worm on a specific executive laptop), they were interested to see what changes I would introduce into the network to handle such problems in the future. Why I would introduce them, what the cost of each would be (approximately), and what other advantages I could expect from the changes I proposed. That was Google.

    I've interviewed candidates at about a dozen different companies for every position in the org chart. I tend to that sort of approach. I'm not so much interested in the "do you know this" as much as how, why, where, and when you would apply it.

    As for "can you code this in a specific language", who cares? I want to know *why* you'd code it. Coding is not engineering. It's a craft. I hire engineers.

  73. Re:Why would you test someone skills during at all by JoeMerchant · · Score: 1

    Past employers lie (I've watched several of my current employers "puff up" someone recently laid off just to get them away from our unemployment benefits...)

    Resume? You've got to be kidding.

    You can't judge how somebody will do on a 6 month problem in 60 minutes, but you can at least see if they can handle what should be a 15 minute problem. People who can't pull that off within an hour or so tend to be "needy" all the time, and generally much less productive.

  74. A good employee is rarely about the skills by SuperCharlie · · Score: 1

    Sure, there is a baseline for skills which is somewhere around anyone can do this with 1/2 an interest and some time... skills can be taught.. A good employee is just about always how they get along in the company and with co-workers. A genius slacker would pass the tests and manage to suck your company dry while finding ways to enable his slacking.. An honest focused, caring employee will be there after hours and make a deadline. If you are looking for the genius dedicated employee.. well.. thats a sort of an oxymoron.

  75. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  76. Simple and effective by Anonymous Coward · · Score: 0

    I've been running a mid sized outsourcing shop for decades now and I've come to skip tests and interviews, it's not helping anything.

    What I want to see is:

    1. The scope and success of your personal projects. This will tell me if you're capable and productive on your own.
    2. So you're capable and productive on your own, now you're in for a test period. You're assigned team-work. If team is more productive, then you're not only capable on your own but also in a team. Congratulations, you're hired.

    Simple and effective.

  77. We need more 'Programming only' companies. by Qbertino · · Score: 1

    It's 4oclock in the morning and I can't sleep - so I'll post this. :-)

    Software Development is still very young, very dynamic and very complex.

    I've been programming since 1986 and been in professional web software development since 2000. I've done a solid share of projects of all kinds and right now, once again, on the lookout for jobs and projects. Twice a week I get called up by recruiters asking me if I 'know XML' or can drive down to Munich for free to make a job interview for a project that smells of out-of-time, over budget and clueless gouvernance ten miles against the wind. 10 years ago money was free an nobody cared about wether a project was going to succeed or not. Nowadays money is more scarce, but the people in the pipeline haven't learned a single bit.

    It occured to me the other week that our profession is very simular to that of doctors. Everybody knows there are complete hacks in the field that can ruin your health for good and seasoned professionals with the patients best interest in mind and a solid experience and will to do good, but only the pros in the field themselves have the capability to judge wether a given MD is from those 30% that are total screwups or it he belongs to the 30% that can make a difference.

    In the last few weeks I've been dismissing companies left right and center just by reading their outlandish fantasy job requirements or just asking a set of questions simular to these and noticing what a crappy shop I'm speaking to.

    I get simular stories from my cousin who's passed through 3 jobs in the last 18 months - and he's a *real* engineer - y'know, building Airplanes and shit (Airbus 380 and such).

    The truth is, after being in the field for so long, I know for a fact that only a 5th or all software teams out there barely fit the most basic standards of working conditions I can even be productive in. 2 out of 3 of those fall flat in some other basic requirement. I think it's a crying shame, because I'd love to do some good and meaningful work in this field, but it's just so darn difficult to find a proper pipeline and the surroundings to make use of it.

    ... I could go on and on, but you all get the picture. However, I would like to close with one concrete question to all of you who are reading this:

    Are there any seasoned programmers here who think it should be possible to build an international company that has everything online (vhost servers for versioning, building and staging, online project and task management, etc. ...) and delivers along the lines of a company like this one? I personally do, speak fluent English and German, have solid experience in Organisation (as a scrum master), have technical account management skills alongside my programming stuff and do believe it should be possible to a) deliver good software b) on time c) without crunching d) having fun while doing so and finally e) making a good living at that.

    Reply to this post and let us hear your thoughts. I'll leave a mailadress somewhere further down as an reply tomorrow .... errr ... later and we can get together online somewhere. I'd rather work with some slashdotter from the other side of the planet I have never seen than with some disponent from the other town who can't tell Java from JavaScript and earns 3x my rates by renting me out to others.

    Let's see if we can improve the industry just a little bit and make a dent in the universe.

    My 2 cents.

    --
    We suffer more in our imagination than in reality. - Seneca
  78. Was hoping for more rigor by k8to · · Score: 1

    I came looking for study results, but all I got were assertions and recommendations based on those assertions.

    So disappointed.

    I definitely agree with the assertions, but I wanted to find out if I was right.

    --
    -josh
  79. Actually what the IQ phenomenon means by mbkennel · · Score: 1

    "IQ tests aren't crap. The idea, that the whole range of cognitive abilities can be expressed in a number is crap. And the idea that this number could is a usefull metric for anything is right out stupid."

    So sure you are, young padawan?

    "The best definition of intelligence I ever heard is: Intelligence is what you can measure with intelligence tests.

    So if you slap together a test that tries to measure intelligence by testing language. concentration, logic and 3D-thinking, you'll get an accurate test that measures exactly that."

    Just because you're smart doesn't mean that you know everything.

    Now I'm not a researcher in the field, but there is indeed something more to IQ than the commonly believed and superficial dismissal.

    Suppose you do just this: "slap together a test that tries to measure intelligence by testing language. concentration, logic and 3D-thinking"

    and you look at the results. Say normalize the subscores within each category with the usual z transform (x-mean(x))/std(x).

    Do this for thousands of people and do a principal components analysis. What do you find? The distribution is not a spherically symmetric Gaussian---there is one clear and statistically robust principal axis which explains a large fraction of the variance. This means that people who are good at some categories in the IQ test, also tend to be good at others. This is the meaning of 'generalized intelligence' and it is a non-trivial, empirical fact of humans.

    It didn't have to be this way: outside of clear disease or disfunction, the performance on various apparently different test categories could have been uncorrelated on average.

    The very categories in the IQ test are of course the ones which exhibit this phenomenon the most clearly---if other tasks were something like "sing on tune" or "catch a baseball" were included they would have a much lower correlation. There are unusual psychological tests involving immediate 'stimulus-response' of pressing the right button when the right or wrong words/figures appear on the screen, and results on some of them (e.g. counting milliseconds) can be in fact quite well correlated with IQ measured using traditional cognitive problems.

    In sum, people's typical snarky dismissal of IQ measurement is ignorant. This is a frequent occurrence, especially on slashdot (snarky, but wrong) when otherwise smart people think their 15 seconds of "Blink" or nice social prejudice or their talk show host knows more than people who have done professional research in the field for decades.

    1. Re:Actually what the IQ phenomenon means by bickerdyke · · Score: 1

      Well, you exactly didn't do what I dismissed as crap. you didn't reduce a single individual profile to a number and expect that number to tell you the professional fortune of that guy.

      I basically said, IQ tests only measure what they're designed to measure. And to most jobs, there's much more that that.

      --
      bickerdyke
    2. Re:Actually what the IQ phenomenon means by Anonymous Coward · · Score: 0

      "I basically said, IQ tests only measure what they're designed to measure. And to most jobs, there's much more that that."

      No one (sensible) is claiming that a high IQ alone is sufficient for intellectual accomplishment, but it turns out to be necessary. The principal components analysis mentioned by the GP can be extended to include educational degrees, cumulative personal income, going to prison, and so forth. Low IQ is strongly correlated with low accomplishment and general low outcomes in life, while high IQ is strongly correlated with high accomplishment in all domains.

      That makes IQ a good weed-out test for people who are unlikely to create software well because they cannot reason symbolically. Of course, you have to do other tests to weed out other potential problems like anger, narcissism, psychosis, obnoxiousness, hygiene, and so forth.

    3. Re:Actually what the IQ phenomenon means by russotto · · Score: 1

      This means that people who are good at some categories in the IQ test, also tend to be good at others. This is the meaning of 'generalized intelligence' and it is a non-trivial, empirical fact of humans.

      This is true, but the claim of many IQ test detractors isn't that these aren't correlated, but that there are plenty of other forms of intelligence which are neither included nor correlated. Personally I haven't seen any studies showing this, but I haven't looked either. And some of the "intelligence" categories strike me as desperate, like Gardener's "bodily-kinesthetic" category; yeah, being able to dance well (or "catch a baseball") is impressive, but calling it "intelligence" is an abuse of the word.

  80. When I interview candidates by GWBasic · · Score: 1

    When I interview candidates, I try to take them through all the different practical skills that are needed for the kinds of products I work on. I start with a little theory, then I move to database basics because "that's where the data lives," and then I get to programming. I try to gauge if the developed programmer experience matches the stated experience; if there's potential to learn, and if the developer has a good / bad attitude.

    I start with a general quiz on the basics: What's the difference between a class and an object? What's the difference between the stack and the heap? I'm not looking for correctness; but a general comfort level with general programming topics and vocabulary. In general, I want a candidate that answers these questions from experience, as opposed to wrote memorization.

    Then I ask the candidate to design some simple tables and queries based on our business. Nothing too complicated; but if the candidate doesn't get SQL or a relational database; it comes right out. I've spent too much time cleaning up messes from people who don't get programming with a relational database that this kind of filter very quickly separates the men from the boys.

    Depending on what kind of time I have, I may ask the candidate how to convert data from the database into objects. The goal is to ensure that the candidate isn't going to blindly rely on an ORM and write code that runs 1,000,000,000 times more slowly then it needs to do.

    Finally, I ask the candidate a very simple programming question that requires wrapping a basic collection. I don't care if they come up with the most optimal way right away; what I'm trying to judge at this point is how much of a "programmer's instinct" the candidate has established.

  81. Brain teasers are stupid by MrEricSir · · Score: 1

    There's a difference between a "brain teaser" and an analytical problem.

    I've certainly been in interviews filled with "gotcha" problems that only has one right answer, and yeah those are a waste of time.

    What you want is a general, yet realistic problem with a variety of solutions. That way you can find candidates who can solve problems and discuss things.

    --
    There's no -1 for "I don't get it."
    1. Re:Brain teasers are stupid by Anonymous+Brave+Guy · · Score: 1

      Yes, I agree: open-ended problems are useful for getting a discussion going, but they need to be at least reasonably relevant to the role the candidate is interviewing for or they aren't going to help much with assessing suitability.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  82. If its a crappy test tell them, I did ... by perpenso · · Score: 2

    The interview is often a very good indicator of what the job is like. It's just as much of a way for the interviewee to evaluate their prospective employer as it is for the employer evaluating the employee.

    Amen.

    I once interviewed for a programming position at a very young and small company. Most of the interview was done by the owner, a business/marketing guy with some technical knowledge of the industry they develop applications for but with no real knowledge of software development (other than it takes longer than expected). For the programming test I was handed over to his lead developer. The test was crap but I probably did well on it. When I was back with the owner he asked how the test went. I decided to do my side of the evaluation. I told him I probably did well but that the test wasn't very good. I explained why. The test seemed like a sampling of multiple choice questions from quizzes and tests from a bunch of different CS classes. Given that a CS type degree was required the applicant presumably passed all these classes so nothing new was really learned. At least it was easy to grade, however like many things you get out what you put in. If a test is to be given it should test for something a degree does not necessarily demonstrate, the ability to actually develop code that solves the problem or task at hand. That is what you are going to pay people for. The preceding was not some kind of soliloquy, the owner seemed interested and asked questions of his own and the above gives an overview of what was discussed. The interview ran long due to this conversation. I was offered the position a few days later. The owners lack of software experience was a concern but I got a good vibe from our chat about the test and from his responses to some of my general questions. I took the job. It worked out well, he trusted us and took our opinions quite seriously when he needed to make decisions. Oh, my first task was to write a new programming test.

    Today when I interview people and get to the part where I will answer any questions they have, and they say they don't have any, I point out that an interview works both ways. That this is their chance to find out if this company is a good fit for them. Usually there is surprise and a few seconds of confusion but most are able to come up with some questions at that point.

  83. I interviewed someone today by crucini · · Score: 1

    I asked to him to write a certain program on the laptop, using the language of his choice. He chose C++.

    He looked up APIs on google and an in man pages.

    I'm pretty happy with the program. It's correct, no slower than necessary, reasonably readable. A few minor improvements can be made, and he started to find these before we ran out of time.

    Unfortunately he did badly with other interviewers in classic whiteboard situations, so I don't think he'll be hired.

    This is the second time I've interviewed this way. I learned that a small task takes much longer to code than I think. Also, that this measures something quite different from whiteboard questions.

  84. Puzzle questions by crucini · · Score: 1

    A lot of those puzzles fall into a small number of categories:

    • Fermi estimation - how many piano tuners in L.A?
    • Church problem - gardeners who may have dirt on their forehead, pirates dividing coins - generally, recursive reasoning about other rational actors
    • Discrete Measuring - dividing water or gold or whatever given inconveniently sized measuring devices.

    Once you master the solution to one category, all the variations in that category are trivial.

    "Freezing up" is precisely the problem; you can solve a lot of these puzzles by following your chain of logic to its end instead of abandoning it when it looks difficult or sketchy.

    Whether these puzzles are good for hiring is another matter.

  85. Re:What is the number of bytes in an ethernet addr by Anonymous Coward · · Score: 0

    Why would you count the number of groups in the ethernet address? You learn how to divide 12 by 2 hence obtain 6 at elementary school. I think I am smart enough to do that, I just don't bother my brain with such bs.

  86. Seems to me like most companies don't this anymore by Anonymous Coward · · Score: 0

    When I prepared for an interview at Google (London) I looked up all the information they gave me to prepare for the interview - and they mentioned explicitly that they're not going to give you any strange brain teasers or really twisted questions...
    They do give you a lot of problems that you have to solve, that show the way you approach solving a problem.
    And usually you do it "with" the interview in some kind of fashion.
    They stressed a lot on the interviews being a conversation where you have to explain and talk to the interviewer to show how you're thinking and how you're going to solve a problem.

  87. Analytical thinking is a good start by SpaghettiPattern · · Score: 1

    Analytical thinking is a good start. You know you will hire a lad that will cope with 1% of the work to be done.

    Alas developing software requires a few more qualities. Simple things like being structural in proceedings, abide to coding standards and being a nice guy to work with. But sometimes also the capability to foresee the road map of an API and to avoid interfaces you will regret later on. But most of all probably, a developer should have the patience and ability to analyse and solve a problem structurally.

    I wish Google no harm, but the way they hire people guarantees a bunch of bright lads that produce brilliant products but potentially cause unmaintainable software to be created. I wouldn't be surprised if systems are rewritten over and over again. I probably wouldn't be a happy camper over there as IMHO there is more to developing software than being on the edge all of the time in order to secure yourself a small but decent and others humongous ones.

    Having said that, my view of development at Google is through hearsay and I hope to be proven very wrong in my assumptions.

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
  88. Make them write code .. by ananthap · · Score: 1

    While you should make the programmers write code and analyse code snippets, it is also necessary to ask them a few tough questions - riddles and procedures - based on standard curriculum. These would test their understanding of concepts, preparation and presence of mind. Also, while you may marginally improve your performance using brain dumps posted on the net, you cannot significantly improve your standing in an interview by just rote learning. OK

  89. And what does this proof? by SmallFurryCreature · · Score: 1

    In a few hours? So they write a single stand alone program? How about their bug finding skills? Fixing bugs is easy, finding the bug is the tricky thing. How do you test that? Given them a single sheet of code and telling them to find the bug in it is to easy, you told them the bug is in that part of the code.

    And how many is a few hours? When I look for a job I sometimes got to squeeze two or three interviews into a day as the company I am employed at suddenly remembers just how valuable I am and tries to milk every last bit of knowledge out of me... if your interviewee has half a day to spare on an interview... wonder WHY he has so much spare time.

    Also, if the candidate is doing say a dozen interviews, that means he is spending a LOT of time doing silly tests. And if the test is very silly indeed, you just advertised that you are a silly employer.

    And what if the candidate is far far better then the interviewer and writes code the interviewer can't comprehend? What if the interviewer is lousy at setting requirements? I have looked at tests that were clearly wrong, known to be wrong since they were copied from some website and the website mentioned the old version of the test was wrong...

    Finding the right candidate is very difficult. It requires first of all that the company asks itself, who do we REALLY need. As the article says, does the position really warrant a PhD? For changing the logo on a wordpress site? "We want the best" sounds nice but can you afford to hire them? And keep them?

    Even if you are thinking of writing the next google from scratch, if that is going to happen maybe sometime in the future, you can hire the best and brightest right now but they will leave before you are ever ready and take your budget with them.

    I work in the lowest of the low of development, web development, LAMP. *Que cries of ridicule* and that means most of my work just isn't all that cutting edge. I am not writing the next 3D engine or get involved with any math higher then primary school level. Cosine? What for? What website needs that? Even square root I never had a use for.

    The most important skill for a webdeveloper? His google skills. There is ALWAYS someone brighter out there who has already solved your problem, wrote code for it, debugged it and tested it for years with full doco. Write your own? WHY!?! I swear you can put together a killed website with the most basic coding skills but awesome copy and paste skills. And you get PAID for it!

    You know what I want to hear when I pose you a complex question? "Wait, let me google that". THAT is correct and efficient use of your time as a developer. Know how to phrase your problem in a question you can google and then see if someone has already done it.

    But noooo. Companies test for web developers who can implement a bubble search... WHY? If you are in web dev and you did your own bubble search you wasted your time. Far far smarter people have already done it for you.

    And if you are that smart, why are you a web monkey?

    Leave the rocket science to the rocket scientists and hire people that have the skill YOU need in your company.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  90. I've just done one of these (!) by Anonymous Coward · · Score: 0

    I was sent a technical test for a company I was applying to. At the bottom of the test it said, "this should take around 1 - 2 hours". In fact it took me around 5 hours to do, after thinking about it for two days. I've yet to receive the "blow-out" from the agency but I'm surely expecting it, as I was totally honest with them about how long I spent on it. The trouble here is I seem to be more of a sculptor of code and an engineer of it. I chipped away at my implementation until I was happy with it, constantly improving it as time went on and I came up with new ideas, rather than knowing beforehand everything I was going to do and only spending time typing it out.

    I'm not against such tests in general, especially for candidates without experience, but I have 10 years experience and a portfolio of finished products. Even so, being confronted with the technical test kind-of reduced me to feeling like a moron (if others can do this in 1 - 2 hours, why has it taken me 5?).

  91. Make sure tests are relevant by Alomex · · Score: 1

    I'll use an analogy to protect the guilty, but at a certain company, I was interviewing for, shall we say, a test pilot position and they asked me how would I go about having people board the plane.

    This was so mind bogglingly unrelated that I checked out of the interview process right then and there.

    Puzzles work both ways. A good relevant one can help filter an unsuitable candidate. An irrelevant puzzle helps filter unsuitable companies. The division I was supposed to join went on to be disbanded about a year after that.

    TFA mentions this: "Broad, conceptual questions are fine, but if you get specific, make sure that what you're asking actually applies to the position on offer."

    "For example, if you're mostly a Java shop [...] don't give candidates a problem in Lisp just to throw them a curveball. [...] If the questions focus on trivia rather than your actual work environment, your test will have as much real-world value as a pub quiz, and you'll end up excluding candidates essentially for no reason."

  92. It's amazing how dumb some programmers are by Anonymous Coward · · Score: 0

    *sigh* Our exam starts with the question "write a class definition for a circle in the language of your choice". An astonishingly few of our candidates are able to do that.

    We also ask such questions as "what does 'refactor' mean" and get more blank stares than answers.

  93. They can be useful ... by tgd · · Score: 1

    I use various programming puzzle tests like that when I'm doing interviews.

    They generally have two goals:

    1) When its a particularly stupid and irrelavent puzzle, its useful to see at what point someone will call out that its a stupid and irrelavent puzzle. The real world is full of people making stupid requests, and its good to feel out how someone reacts to them.
    2) Its good to get a sense of how someone tries to solve a problem.

    Generally I don't particularly care if someone actually gets the answer. Its how they think about the problem that matters.

    And some quizzes are good to just eliminate people who lie about their skills.

  94. Hi John! by tlambert · · Score: 1

    Hi John;

    Long time, no see. Tell Jesus M. "Hi" if you still talk to him... I have to come clean and tell you I work at Google now; I was hired in there after quitting Apple.

    This whole thread has been pretty bogus.

    The first this that's wrong about it is that Google doesn't use brain teasers in interviews. You have to write down what you talked to the candidate about briefly so that follow-on interviewers can switch tack and not ask the same question, and then you go back to your desk and often spend as much time writing up your interview as you did actually interviewing. If you asked something stupid like "why are man hole covers round?" or some other trick question, or a riddle, you'd be scrubbed from the interview rotation until you had gone through training again.

    The primary reason for a formal education is not that you have learned anything that you couldn't have learned on your own, it's so that you share a common language with your coworkers and can talk about complex topics using the same terminology, and you and they can understand each other.

    The reason for giving coding problems or similar problem solving questions is to gauge how you think about solving a problem. In general, it's to tell whether or not you have critical thinking skills. The ability to engage in critical thinking is frequently a skill most people don't acquire without a logic class and/or some hard science classes in something like physics. Testing and evaluation generally require some ability in statistics, also something most people do not learn until they've had a college course in the subject.

    The reason for things like linked list problems is that many people who do the minimal effort curve to graduate with a CS degree never learn anything about memory layout or how pointers work, and without understanding that, you have no hope of understanding what it is your compiler is doing to your source code, or what it's like to try to handle 200,000 transactions instead of 120,000 in the same interval, without throwing additional hardware at the problem. Yeah, you can look up how a linked list works, if you needed one, or just #include and use the macros, but if you can't write one from scratch, not only is it likely you don't know how things aren't laid out in memory, you've just spoiled the interviewers follow-on questions where you get asked to modify the algorithm to get different behaviours out of it.

    The candidate qualification problem is something that was inevitable when the accreditation standards change from "Programming in C" to "Database concepts using C (please learn C on your own)", and the dearth of systems where you had to care about such things because you were working without a net. I have another younger friend who is of the calibre of our generation, Michael Steil, who is an absolute C64 fanatic. He learned what we learned, but it was because he grew up in Germany with old computers with limited memory and no memory protection to save him from himself. Just like we did.

    It's an unfortunate fact in our industry that we went through a period of time often referred to as "the dot com bubble", when thousands of CS students were hired before they could really learn any of the above, just to get a warm body to fill a cubicle so that the VCs would part with the next round of funding between step 2 and ??? before "profit!" was going to happen. A lot of these people are regretting it now, or they are heading back to school to get the paper credentials that will act as their latter day union card.

    So a good resume or even the right sheepskin is not as good as a demonstration of actual problem solving skills, or an ability to communicate with other people who have those skills, and with whom you are going to need to be able to collaborate effectively. There are plenty of people left over from "the dot bomb" with glowing resumes based on being cubicle warmers, and neither you nor I would hire them.

    I would say it's incredibly hard to cram for an interview, any i

    1. Re:Hi John! by John+Sokol · · Score: 1

      Hey Terry,

      Great to hear from you. I have tried reaching you several times over the years with no response.

      Come join my band of Pirates sailing the seven seas, we plan to pwn the matrix and all the booty that come with it.

      Seriously I am just around the block in Alviso, we should do lunch, you can bring some other l33t c0d3rs down too.
      We are going to make to exobucks maybe even a googol but you'd have to leave Google.

      Shoot me an E-mail john sokol at gmail dot com.

      Say it ain't so, the Googletologists got you too.
      Novel, Apple and now Google, you've always been part of that group think. (Jesse says Hi, he pointed that out)

      > This whole thread has been pretty bogus.
      Not at all. It's just a matter of perspective, you just can't see if from inside the Googlesphere.

      > Google doesn't use brain teasers in interviews
      I have had it and a number of commenters have also, there are numerous articles on the listing these "brain teasers" from Google Interview. So your own search engine will testify to the non bogarity of this thread. Maybe it's not company wide, or has stopped in the past few years.

      > tell whether or not you have critical thinking skills.
      Critical thinking is overrated. ;)

      > learn anything about memory layout or how pointers work, and without understanding that, you have no hope of understanding what it is your compiler is doing to your source code,
      Very true, but it's nearly impossible for me to be sociable at an interview and be the introverted super hacker at the same time, it's take some mental preparation for me to change hats. Meditation, etc. When I am in full tilt programming mode, I am unable to communicate with people with little more then gestures and guttural sounds. I am sure it freaks people out. Which is why I am best left to a dark cave or more recently a desolate beach while I am VooDoo'ing like that.

      > just to get a warm body to fill a cubicle
      Yup 100 watts each, they should use them for powering the servers, like in the Matrix movies.

      > are heading back to school to get the paper
      And it that papers is going to make then better programmers?

      You and I know, either your brain is wired for it or not. Then it's just a matter of the having the data stored in ones biological neural network to be able orient ones self in the problem space. If you can do that you don't need logic, it's more like looking under the sink and seeing "Oh there is your leaky pipe" It's just obvious how how to solve it. Logic has got to be hardwired in to your brain or your hopelessly lost.

      > a demonstration of actual problem solving skills
      > any good technical interview
      Again it's hard to demonstrate the full Monty on demand.
      For one I am very used to working in a specific way, on screen and CLI, I am antisocial when in that mindspace.
      As soon as an Interviewer makes me nervous it's over for me. Blood sugar goes to hell and room starts spinning. It's one of the reason's we are computer people. Because we suck at human interaction.

      You want a fair test of skill then send someone a puzzle to work on over a few days via E-mail. Or have then write up some explanations.
      After all in the real situation your testing them for it's long hours alone in a Cubical staring at a screen, E-mail tech docs, and code.

      So why test them under an academic classroom setting, with someone breathing down on them and in front of a white board?

      Would you test the performance of a server in completely unrealistic scenarios and think that test data provides a good indication of how it will perform in production? Ok, Bad question as we have seen that all too often too.

      Let me phrase, if you were interviewing a chef, would you have him write on a whiteboard about technical details pan temperatures and baking tempe

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
  95. People whining aren't coders... by Anonymous Coward · · Score: 0

    The false positive / false negative comment is spot on: you know that the people who pass are probably what you're looking for.

    People, mostly programmers, all think they're "great", all think they're "the best" because they can crank some PHP website or some toyish Android app in Java.

    But that is not how it works. If you think you're great I suggest you go competing in algorithmic competition like TopCoder and get a reality check. There you'll see you're really not as good as you think you are. I used to be a high-ranked yellow coder there: there's no way I could make it to "red". Priceless humbling experience.

    The quality of a programmer is not measured by success / money. It's measured by its ability to solve problems, first and foremost.

    And that's what such puzzlers do test.

    Sadly we're in a business where a lot of very mediocre programmers are very vocal: all the ones posting at the dailywtf are particularly bad. They're the frustrated ones. So of course you'll find there people whining that this isn't "real coding".

    It's about finding out how applicants approach problems, not about solving a real-world problem.

  96. Clever is good ... by Rambo+Tribble · · Score: 1

    ... but a firm grip on real-world processes is even more important. Tricky questions based in fantastic scenarios test the former, while leaving an assessment of the latter untouched.

  97. my experience with google on this by Anonymous Coward · · Score: 0

    I applied around 2005-2006 for an european location, just after getting my degree in Computer Science.
    I was enthusiastic about google, I thought they really were the people I wanted to work with.
    At the time I was involved with many FOSS projects, and thought of them as a natural next step.

    The impact with the bureaucracy, and most importantly their hiring process was pretty bad:
    I was passed from one hiring manager to the next, had multiple interviews on the phone, they also called exactly during the times of the day I asked them to avoid. I had an interview with a mountain view engineer, who posed multiple problems. I solved most of them, although I admit I was kinda slow, I was disturbed by having to keep a phone in one hand listening/talking to the guy, while trying to concentrate on the non-trivial questions, and keeping the emotions associated with interviews in check.
    To note the fact that this guy never heard the term "external memory algorithm", so when I mentioned that I was given a "what the hell is that?" answer. This really surprised me and at the time I did not have the confidence to challenge my interviewer.

    In the end, after this long and painful process, they gave me one of their default answers; they determined I was not good enough for them.

    Now years have passed, I have worked for other companies in other domains, and earned the appreciation of colleagues and management alike for my problem-solving skills, and my rigorous software engineering work.
    I recently switched companies, but have never given any thought about applying for google again.
    I would now probably be able to "prepare" for their interview process better, and would be much less influenced by emotions, especially since I am much more confident. But why would I go through that kind of unpleasant interview-marathon? Why would I accept that kind of degrading experience?

    The last company that hired me interviewed me over the phone a couple times first (ca 40 mins each IIRC), then invited me over for an "interview-day" (they paid the expenses), in which I was interviewed for the whole afternoon, but I was interviewed well. I could take breaks, drink coffee, and I felt I was being treated well in general. This is the kind of company I want to work for, and am working for.

  98. Pointed out the diff. in the questions by Anonymous Coward · · Score: 0

    LOL, as far as "star struck" ala the film "Sunset Boulevard" -> http://www.youtube.com/watch?v=dkDLI43iiTs & Gloria Swanson's character? Heh, that's not my "state-of-mind" here @ all... I just wanted to point out that MS' questions in that timeframe (early 2003) weren't anything like this article's statements (things MAY have changed though in the intervening period is all).

    APK

    P.S.=> Funniest part was I didn't go to they, they came to myself (was shocking) - Never had that happen before: Usually I "pound the pavement" just like anyone else (or in the case of geeks, email quite a bit)... apk

  99. Interviewers Don't Looks at Code by rabun_bike · · Score: 1

    Over the course of my 17+ year career as a engineering professional in the technology I have interviewed by 150+ people and conducted 150+ interviews. In all of that interviewing (I was an independent for 7 years so that accounts for the large number of interviews) I had only a single interview where I was asked ahead of time to work on a problem and bring in a design and present that design. I found that very refreshing and engaging. Only one other interviewer asked me ahead of time to think about a particular subject and then use that subject in the interview process as a launching point into other topics. The other 148+ interviews were your basic run-of-mill question answer hand-off sorts of things with a battery of questions and then long winded speeches.

    As an interviewee, only one person took the time to look through my open source projects to see actually how I code. As a coder I find this quite bizarre because coding styles and skills vary as widely as text writing skills. I always give links to my open source projects so I can present an example of my work. You should be able to see if I am off my rocker within about 5 minutes of clicking through my open source code on a website. I have published articles and presented then to interviewers but rarely are they viewed and much less read. It seems incredible to me that you would hire someone to do a job without evaluating how they actually communicate on paper or how they actually design systems and write code. Would a publisher hire a writer without reading any of the writers work and just do a quick question answer session? The only exception to this is if you show up with a book you have authored and that book was widely read. Then in that case you either are thrown into the category of "he can write a book but it sucks and he can't code" or you walk into interview with "God mode" enabled.

    It is interesting to note that the single company that asked me to submit work prior to the interview was a small, creative graphics firm that does a lot of creative game and graphics development. For small companies a few bad hires can potentially damage the revenue stream beyond repair so they can't afford to be "lazy" or as robotic in the process as larger firms. But, this doesn't not always hold true in the real world.

  100. How many people have *made* these tests/questions? by phorm · · Score: 2

    I find that the HR-built questions tend to drive me crazy at times, mainly because some of little to no bearing on the position being interviewed, and others may not *have* an answer.

    Being asked how you resolved a conflict with a co-worker when you've never had one (can't say that now, but during an interview 5-10 years ago I could as I had only worked in smaller shops full of some pretty nice people) is frustrating as heck.

    But back to the technical questions. I've found that making them is fun. Rather that trying to come up with obtuse technical questions, some basics mixed with real situations the company has faced works well (what would you check in situation X). Questions that try and get you to fill in entries that would be more easily available from a man-page are lame.

    In my own experience, the best part of coming up with the questions is getting back answers that I'd never thought of. Sure they don't match the solution/issue given in my own experience, but finding cool new ideas that never crossed my mind is part of what makes tech fun.

  101. I have more than one project... by Tanuki64 · · Score: 1

    ..on sourceforge and one on gitorious and a proven track record of successfully finished projects. I don't do "brain teasers". If someone wants to hire me, I am a freelancer, he might check whether or not I fit into the team. But I don't jump through hoops to prove my technical skills.
     

  102. It Isn't The Hard Tests... by DrEnter · · Score: 1

    We've had a terrible time finding "programmers" that could even pass simple coding tests. We'd be happy with someone who understood general coding principals that we could send to training for a few weeks, but finding even that has been a serious problem.

  103. Brain Teasers show how they handle not knowing by jddimarco · · Score: 2

    While I don't really ask many brain teasers when interviewing people, one key benefit that brain teasers offer is to see how candidates do when facing an unexpected, off-the-wall problem. Do they freeze? Panic? Make stuff up? Give up? Or do they start thinking it through? This is really important when the job entails facing unexpected off-the-wall problems regularly, as it does in my shop (a top-ten computer science department where weird computing is not unusual). A similarly useful technique in interviews is to hand a candidate a stack of paper, each sheet of which has a snippet of code, the output of a command, or the contents of a standard system file (some of them should be obscure, some common), and ask them to simply identify the programming or scripting language, the command, or the system file, if they know what it is. It's a really quick way to see a candidate's breadth of knowledge and experience, and also (for obscure sheets) how they react to being faced with something they've never seen before. And yes, it does sometimes lead to surreal situations, such as candidates who claim to be e.g. Java programmers but can't recognize Java when they see it.

  104. when I applied at google... by Anonymous Coward · · Score: 0

    ... a while ago, we spent so much time discussing stupid programming brain teasers, that I began to wonder how the company earns money with everyone focused on such playground stuff. I decided there and then that it's not the place for me to work.

  105. Brain teasers are a thing of a past at Google by yk4ever · · Score: 1

    I happen to work at Google and also happen to know that "brain teasers" aren't used in the interview process for the engineers now.

    Go on, apply and come. Don't be scared, interviews are quite pleasant and not confusing at all.

    (Obviously, this is just me saying and not an official company statement, blah-blah-blah).

  106. This weeds out the wise AND the clever by kiehlster · · Score: 2

    Like some of my PhD friends have told me, putting a technical quiz in front of well educated and experienced job candidate is a great way to insult them, and is deserving of a good punch in the face.

    What you get from a quiz is a candidate who is intelligent enough to write a program that is plain to the interviewer. That is, it is neither a wise answer nor a clever one. It is simply an explainable one, and it is usually the explainable ones that show up in "For Dummies" books and have no practical value. You could be interviewing Einstein who would give you an answer that breaks ground in uncharted territory, but you wouldn't hire him because your mind couldn't comprehend his explanations. You could be interviewing Jesus, but his wise answers would be so over your head that you'd not hire him because you couldn't grasp how many risks were calculated in giving you those answers.

    1. Re:This weeds out the wise AND the clever by n7ytd · · Score: 1

      Like some of my PhD friends have told me, putting a technical quiz in front of well educated and experienced job candidate is a great way to insult them, and is deserving of a good punch in the face.

      There's a very fine line here. I dislike the "tricky" questions which seem to fall into two camps: 1. The Egg of Columbus type problems where the candidate will either know the answer immediately because they have seen it before or will fail miserably. 2. The Let's See if the Candidate Can Solve the Problem Just Like I Did kind of problem, which is really just a control and ego booster for the interviewer.

      On the other hand, it's so easy to pad a resume to get past the HR drone that you cannot take the candidates' claims of proficiency at face value. Following up on references is useless; if I'm interviewing for a job, why would I give you the phone number of anyone who might speak badly of me?

      As the interviewer, I have no chance in our 90 minute chat for me to gauge your potential to the company over the next 5 years, but there are ways for me to disqualify you as inept and see through your false resume.

      When I first read about the FizzBuzz test on Jeff Atwood's blog (http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html) I was incredulous about the number of "qualified" programmers who it claimed could not program their way out of a wet paper sack. But over the last two months, on a lark, I've been using it during interviews. Out of 10 applicants, around 6 have been unable to prove to me that they could properly use a for loop, a modulo operator, and an if statement to solve this problem.

      I understand how quizzes may come across as insulting to a highly experienced candidate, but a trivial task like FizzBuzz should take maybe 10 minutes of their valuable time. If their egos don't allow them to condescend to the humiliation of proving they can perform the most basic of tasks, it's probably a good idea for both of us that we don't work together.

    2. Re:This weeds out the wise AND the clever by slamb · · Score: 1

      Like some of my PhD friends have told me, putting a technical quiz in front of well educated and experienced job candidate is a great way to insult them, and is deserving of a good punch in the face.

      I don't ask the multiple-choice, one-right-answer, no-need-to-show-work questions you seem to be referring to, but you've reinforced my belief that it's good to start with dead-simple technical problems.

      * I already do so because I've met enough supposedly well-educated and experienced job candidates who have completely failed simple technical problems that I know it's absolutely necessary to start from scratch in an interview, no matter how impressive their resume may be. (And I mean failed. Getting some syntax wrong or even initially writing buggy code is not a deal-breaker, but being unable to debug their own buggy code when I simulate the execution environment for them surely is.) And candidates who don't know these idiots are floating around are either inexperienced (forgivable...if this fact matches their resume and expected seniority at my company) or don't realize they are the idiots (don't hire).

      * You've reminded me of another reason: I don't want to work with people who are easily insulted and potentially violent. Apparently these questions sometimes reveal such people. Good interview question then. I wouldn't hire your friends.

    3. Re:This weeds out the wise AND the clever by kiehlster · · Score: 1

      In most cases, and I'm sure there's exceptions, when a PhD refers to a "punch in the face", it's usually meant metaphorically. You know, returning an insult such as, "So what you're saying is, you don't trust educational systems at technical universities like MIT or RPI, or certification boards like CompTIA capable of weeding out good minds from poor ones."

    4. Re:This weeds out the wise AND the clever by slamb · · Score: 1
      I'd guessed as much, but that's still quite bad enough.

      You know, returning an insult such as, "So what you're saying is, you don't trust educational systems at technical universities like MIT or RPI, or certification boards like CompTIA capable of weeding out good minds from poor ones."

      "Trust but verify." Someone who is really good can answer my dead-simple question in a couple minutes, leaving plenty of time to go on to something more interesting. But unable or unwilling, the result is the same: "don't hire".

      Keep in mind that interviewers aren't just trying to establish if someone is smart; they're also trying to establish "culture fit". Successful candidates have to work as part of a team of smart people, some more junior, some more senior. They have to be prepared to learn and to teach. They have to contribute to a pleasant environment where people want to stay. They have to accept that they're not going to be calling all the shots; in fact that for every patch they write they'll have to get a code reviewer to sign off on their change. They have to be that code reviewer many times as well. They have to give and receive yearly peer performance reviews in which strengths and weaknesses are communicated in a respectful way. They have to interview candidates themselves. None of this is a major focus of my interviews, but occasionally people make it obvious to me that they can't do it, and those people never get hired. If I were you, I'd gently suggest to your friends that they adjust their attitudes before they get rejected from many positions for this reason.

  107. pirate problem, wrong answer by anyaristow · · Score: 1

    The correct geek solution is almost certainly the wrong real-world solution. Take the pirate problem, for example. There's a "correct" game theory solution, but pirates probably don't know game theory. All four will be unhappy with the "correct" solution. So, given that pirates don't know game theory and acknowledging that neither do I, there are at least three better solutions...

    The greedy bastard will keep 32 and give 34 each to two of the others (because 100 can't be divided evenly, and you don't want one of the voters you hope to please getting more than the other, and you don't want to keep more than the voters). The two who don't get any don't matter since they can't vote down the plan.

    The peace-making plan is to divide it evenly. 20 each.

    The plan with heart, and the greatest chance of survival, even long after the voting, is to divide it evenly between the other four and keep nothing. Maybe you could even count on increased loyalty.

    Of course know-it-all geeks who got this from some source without having to solve it themselves are going to be unhappy with my answer, but I'm okay with that. I don't want to work with them, anyway. Hopefully the interviewer is instead interested in workable solutions.

  108. Referance Material by DarthVain · · Score: 1

    I have done a number of these "tests" as a practical portion of an interview. I have found in most cases it is retarded. "Here is X problem, solve it using Y language, you have 30min and a sheet of paper and a pencil, good luck".

    I never code that way. It would be different if they asked me what my solution would be, or to write it in pseudocode, or how I would go about it. I just think asking someone to write perfect code, with no references, is stupid. It most cases I end up piecing together my code from various other projects I have worked on, from other sources, books, etc.... But it is all just syntax. The solution for the most part (unless for whatever reason isn't easily supported by the required language) doesn't change. Anyway I am not a "programmer", and haven't applied for a "programming" job, but most would require some ability.

    Anyway most tests I have seen are silly and are really not a good test of how good a programmer you are, but more of how familiar you are with one particular language syntax, which most of you will probably agree isn't everything. I think part of the problem is this stuff is put together by HR and Management staff, who don't know any better other than one of the requirements of the job is Y.

  109. Myers-Briggs good or bad by Tekfactory · · Score: 1

    In defense of the GP some people believe quite strongly in the Myers-Briggs test. I was at an HR training where they encouraged us to go to HR and take the test. Other people in the room indicated they had their personality type in their email signatures to help other people to interact with them better.

    So like anything it's a tool that some people find useful in helping them deal better with other people.

    If you're a serious "I am not a number" or "don't categorize me" person then you probably won't like it, but you may be missing out on insights about yourself or the way you deal with others.

    And no, I haven't taken the test yet, I've been kind of busy and had mostly forgotten about it until now.

  110. I was interviewing SDE in MSFT by sam0737 · · Score: 1

    Yes we do brain-teasers, especially asking questions which are sometimes quite ambiguous, deliberately.

    The point is not to get to the super optimal O(1) solution in a few seconds - in fact, I would question if anyone could do that withing breaking a sweat that he might have encountered the question before...but to watch how he responses, process the information, communication skill to get the requirement and question clear, explaining the train of thought on the way, all those little interactions. If writing code is needed, I would just tell them not to care too much how to make a API call because I would lookup Google^wMSDN for that too.

    Getting the answer correctly is a bonus, of course you can't fail too much...but we are more focus to hire someone who can make sense, able to learn on the job, passionate about the job...hardcore skills are really not that important for entry level, I don't really care if you can or cannot prove P=NP, we are not in the research department.

  111. Hiring NOT based on foolish tests... by Anonymous Coward · · Score: 0

    As someone who has lead a software engineering division, I have a procedure - give me the guys that the others don't want. So I get another interview where I talk to the people and find out what they know, rather than what they are tested for. My division has the highest retention rate, as well as highest customer satisfaction. Why? Because I get to know the people who come in to interview and find out what they have done and marry that to what we need, and the customer. So I've become the strongest detractor from the "give them a test" crowd. The "test-them" group seems to be made made up of people that don't want to take the time to get to know the candidate.

    That is my 2 cents worth. I think testing people is worthless since it causes you to miss the really good guys. But it's hard to have some non-skilled weenie in HR give a useful interview - that is whey I do the interviewing for my division. It takes a lot of time, but the results are worth it. The ONLY reason I suspect places like Google do it, is to cut down on people to actually interview and it doesn't lead to better candidates, just the ones that are more willing to jump through your hoops to work for you.

  112. Rings true to me... by Just+Brew+It! · · Score: 1

    The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development.

    Been there, done that, flunked the quiz!

  113. Stupid tests for stupid intervierers... by lpq · · Score: 1

    Sorry, Put me in front of a computer with vi (with no auto complete builtin though some configure it to generate such, but I've found it usually slows down my coding more than speeds it up given the length of perl words), with a set of perl man manpages I can invoke in a separate window,and I can spin up some random demo perl prog in no time at all...of course please be there when I ask you about all the assumptions you left unstated.

    Put me in front of a whiteboard...and try to get anything legible out of me -- let alone with keywords correct.

    I'd even go on to say (this would be harder to allow) to let me have my own dir of self-written sample scripts I use all the time time -- because I'll often forget the basics of how to do a relatively simple algorithm if I known it is well encapsulated in one of my scripts and I can copy it on command whenever I need it as a starting point.

    I even have a template of header code that has my most commonly used 'good programming practices' debug features/settings. Start a new file, I can save myself 5 minutes up front just by copying the template and commenting out/deleting portions I don't need.

    Alot of my script progs (sometimes written explicitly as libs), are similar....Algorithms and shortcuts I find useful in my development -- without which I might spend hours recreating a bug free alternative.

    So -- sure strip someone of their 'tools, and their collected knowledge' (which any good CS person would store on a computer, and not try to memory -- as it constantly needs updating and After 500-600 manuals, the memory access time really drops -- not to mention, for most people, the fidelity.

    Might as well ask a race car driver to demonstrate how well they drive on a chalkboard....

  114. So, why ARE manhole covers round. by russotto · · Score: 1

    In case anyone is still wondering manhole covers are round because Reuleaux triangle-shaped manholes and covers are too expensive to fabricate.

  115. Another interesting article. by John+Sokol · · Score: 1
    --
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso