Slashdot Mirror


How Should You Interview a Programmer?

phamlen asks: "Having hired several programmers who haven't worked out, I'm wondering if other people have better success with interviewing techniques. Usually we have a two 'technical interviews' and a final interview. The technical interviews tend to be a combination of specific technical questions ('Is friendship inherited? How would you find out?') and algorithmic ('Given the numbers from 1-10 missing one number, how do you find the missing number?'). In addition, we essentially try to interview for: intelligence/performance. technical skills (algorithmic, etc.), and team compatibility. Unfortunately, we've been burned a couple of times by people whose performance didn't measure up to what we expected from the interviews. So I'm wondering if other people wanted to share their interviewing tricks - how do you find out if someone is a good programmer?" Surprisingly enough, we've done a series of these, so if you are interested in similar questions for sysadmins, network engineers, or the one who will follow in your footsteps, then we've got it covered. We've also covered core IT questions as well. What special ways do you have of evaluating potential coders? How well have they worked out?

976 comments

  1. Good question by mr_zorg · · Score: 4, Insightful

    Unfortunately, I don't have the answer... I tend to look for someone with general problem solving skills, intelligence, and a genuine passion for that they do.

    1. Re:Good question by unicron · · Score: 5, Funny

      How were you able to be so poetic yet completely vague all in one sentence like that?

      --
      Finally, math books without any of that base 6 crap in them.
    2. Re:Good question by laserjet · · Score: 5, Funny

      He just got promoted to management.

      --
      Moon Macrosystems. Sun's biggest competitor.
    3. Re:Good question by N3WBI3 · · Score: 2, Insightful
      as a PFY myself, I was hired because I knew how to solve a problem (my previous job and education) was in Engineering.

      You should look for that, not only do they know the man command, but that they know how to in a systemmatic way disect a problem. Finding the answer is easy if you know what the problem is.

      --
    4. Re:Good question by oakbox · · Score: 5, Insightful

      The right questions baby. Give them a problem from your production environment and see what questions they ask. Are they looking at how the product will be used by end-users (identifying the audience), can they reliably identify what other technologies will impact the project (defining the environment), can they break down the project into component parts that can be tackled in a sane way (modularizing the problem).
      These are the biggies, IMHO. This is what being a good programmer is all about.
      And poetry.
      -oakbox

      --
      Not just answers, the correct questions.
    5. Re:Good question by Anonymous Coward · · Score: 0

      i'd say ask them when they'd prefer to work. if it's from 5pm to well into the early hours of the next morning. hire them. also, if they tend to not shower or care about what they look like, look like richard stallman or alan cook, then you got yourself a new employee.

    6. Re:Good question by blinov2000 · · Score: 0

      Poetic? Are you laughing? http://www.rokf.ru

    7. Re:Good question by notsoanonymouscoward · · Score: 4, Insightful

      Give them a question they don't know the answer to (this may take a few tries). If they try to feed you some BS they're probably not a good candidate. Its always good to know you've got people willing to give the honest answer, "I don't know".

      --
      I ate my sig.
    8. Re:Good question by Matthew+Weigel · · Score: 2

      Poetry is vague.

      Ever tried explaining why the sky is really blue poetically?

      --
      --Matthew
    9. Re:Good question by Codifex+Maximus · · Score: 3, Interesting

      > Give them a question they don't know the answer to
      > (this may take a few tries). If they try to feed
      > you some BS they're probably not a good candidate.
      > Its always good to know you've got people willing
      > to give the honest answer, "I don't know".

      Heh. I went to an interview once for an administrative/support position. From the questions the interviewer asked, I got the opinion that he had an overestimation of his own abilities.

      Anyway, he asked me a question but first gave some background. He said that he had a SCSI problem with a server that had taken himself and 5 other engineers over 6 hours to diagnose. He then asked me the question. I asked him a question about the system and instantly knew I was on the right track by his reaction. He said to me that it was ok if I didn't answer it correctly in the the next few minutes. I then asked him the second question about the system (zeroing in on the solution) whereupon he began looking uncomfortable. I asked the third question and hit the nail on the head. He said he'd get back to me and that I had figured it out.

      I never heard from him again. To this day, I guess I intimidated him or he thought I was a smart@ss.

      I'm not trying to brag or anything... it's just that I like to know my stuff. I like solving problems and fixing things.

      I guess the moral to this story is that sometimes you have to feign stupidity? Don't look better than the boss... I dunno. I just get the feeling that they are looking for YES men who make them look good rather than people who know what the fsck they are doing. Heh whatever.

      --
      Codifex Maximus ~ In search of... a shorter sig.
    10. Re:Good question by Anonymous Coward · · Score: 0

      Me too konw, you to find out. How do I betray slashdot users, or if this was a police site, how will i best use it as a crook?

    11. Re:Good question by Anonymous Coward · · Score: 0

      The Sunlight shines through,
      refracted light showing blue
      due to refractive index

    12. Re:Good question by dukerobillard · · Score: 1
      Yeah, that's the ticket. We've been interviewing a lot lately, and what I've been doing is trying to get the candidate to help me solve the problem I was working on right before the interview. I don't really expect to get a solution (although if I do, bonus), but you get to see how the person works.

      There's a downside here, in that you have to explain enough of the situation for them to get sufficient background. That can be time consuming...but if you come across a problem that works well for this, you can save it and re-use it later. That's not as good as a real, live problem, though, because you're not actually working with the candidate to solve it.

    13. Re:Good question by Anonymous Coward · · Score: 0

      A couple of things that I haven't seen mention, but have been important in both my interviews and interviewing over the years...

      Let the interviewee talk! I've been in way too many interviews where the interviewer spent most of the time talking about themself or their company.

      Also, for most of the engineers that I've hired, it's been quite important that they work as part of a team, and not be a cowboy. I make sure that the interview includes lunch, and try getting them to relax and figure out what they are really like.

      Does it work? Not always, but better than 50:50.

    14. Re:Good question by tedgyz · · Score: 1

      Absolutely!

      I think highly focused, technical questions are unfair and a waste of time. Syntax, symantics, and API questions are for lam3rs who have every language and libary reference manual memorized.

      I prefer to have a simple "chat". I want to see how an engineer thinks when they are comfortable, not when they are sweating the details of my stupid C++ multiple inheritance question.

      If I DO ask technical questions, I explicitly state that pseudo-code is acceptable.

      --
      "No matter where you go, there you are." -- Buckaroo Banzai
  2. A good quesation to ask by Anonymous Coward · · Score: 1, Interesting

    Ask them what they consider a productive day.

    1. Re:A good quesation to ask by Anonymous Coward · · Score: 0

      I wake up around 10:30, drink 32 ounces of Mountain Dew and masturbate to hentai anime. Then I go have a cigarette, brew some coffee, and eat two bowls of shredded wheat. Head to the toilet and pinch a loaf. Have another cigarette while preparing coffee.
      Drink coffee. Read slashdot submissions, randomly put some old ones on the front page. Piss. Masturbate some more. ssh into one of the work machines so the guys think I'm busy. Go get mail. Deposit fat check that I got from Microsoft for "stealth" advertising. Come home. Masturbate some more.

    2. Re:A good quesation to ask by Anonymous Coward · · Score: 0

      Taco, is that you?

    3. Re:A good quesation to ask by Anonymous Coward · · Score: 0

      My favorite question:

      "What's the ASCII code for the break character?"

    4. Re:A good quesation to ask by Anonymous Coward · · Score: 0
      "What's the ASCII code for the break character?"

      To which the reply would be, "Hey, dumbass - there is no break character."

      Of course, this is an unfair question because asking a question in such a way that the implication is that there is a correct answer when there isn't is just damn stupid.

      If they answer, "I don't know", how have you discerned whether they do know an obscure part of serial comms on a line level or whether they just didn't answer because they were wondering whether you were talking about something else?

    5. Re:A good quesation to ask by kiscica · · Score: 2

      The question isn't phrased very well. A serial-line BREAK signal isn't a "character" -- it's sent by switching from mark to space level for longer than a character's length. By asking for the break "character" you are implying that you do in fact want an ASCII value. Seems to me that almost any value could be justified on some system or another -- certainly 0x03, 0x00, 0x19, 0x1A, 0x1B and so on come to mind.

      Of course maybe that's the point -- the variety of values you get might give you an idea of the platforms your candidate has used before...

    6. Re:A good quesation to ask by orangesquid · · Score: 2

      On Multics machines, it's the @-character. (0100 octal)

      --
      --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    7. Re:A good quesation to ask by Anonymous Coward · · Score: 0

      Oh stop. You're making my panties moist.

  3. just out of curiosity by AssFace · · Score: 4, Insightful

    if you are asking them actual questions that have definite single answers - what is to stop them from studying for it?
    wouldn't you rather have someone that can think on their feet rather than those that heard from a friend what your interview was like and studied to do well for that interview?

    --

    There are some odd things afoot now, in the Villa Straylight.
    1. Re:just out of curiosity by morgajel · · Score: 1

      how many technical people do you know that are good at thinking on their feet?

      I don't know about you but even the thought of someone doing that to me in an interview freaks me out.

      --
      Looking for Book Reviews? Check out Literary Escapism.
    2. Re:just out of curiosity by ivan256 · · Score: 1

      how many technical people do you know that are good at thinking on their feet?

      All the good ones....

    3. Re:just out of curiosity by AssFace · · Score: 1

      LMAO - that was a joke right?

      I come from a consulting background, so maybe I have a different view on it.

      --

      There are some odd things afoot now, in the Villa Straylight.
    4. Re:just out of curiosity by Anonymous Coward · · Score: 0

      how many technical people do you know that are good at thinking on their feet?

      The ones that should be in that line of work.

    5. Re:just out of curiosity by Ooblek · · Score: 5, Insightful
      People who are technical because they took school coursework that says they are technical usually can't think on their feet. This is the problem with a lot of students - they expect knowledge and a career handed to them on a plate with no additional work.

      People who have the certification and went to school plus have work experience (usually during school), reseach experience, personal projects, and possibly a track record of past successes can usually think well on their feet.

      Personally, the ones that can't think on their feet are usually the ones that can't remember how to fix a customer's tech support problem even though they've been told how to fix it at least 3-10 times already. These are usually the ones that piss the customer's off the most and end up getting me involved in a pointless conference call with the customer due to some perceived "catastrophic bug."

      The ones that think on their feet are the ones that use their own credit card to renew their company's $70 domain reg before millions of users of their free web-email service get locked out due to no resolvable DNS record. The same ones are those that pull a screw driver and make a tweak to your broadcast equipment 10 seconds after your first color TV broadcast goes live and everyone realizes all the color TVs everyone bought have a problem receiving 30 frames per second. (Now US TV gets 29.997 frames per second due to this same technical person.) Too bad there aren't more of these types of people out there.

    6. Re:just out of curiosity by Merlin42 · · Score: 2

      How often does a programmer actually stand up? I do most of my thinking either sitting in a meeting or sitting in front of a terminal. ;)

    7. Re:just out of curiosity by Anonymous Coward · · Score: 1, Funny
      You can sum it all up in one thought: UNIVERSITY EDUCATION IS A *CULT*.


      When you start to view it like that, it either becomes more obnoxious than it already is, or just plain funnier to see all those kids with wide eyes and wet behind the ears get all bent out of shape for their careers...

    8. Re:just out of curiosity by morgajel · · Score: 1

      ok, since you're the third person who's said basically the same thing, let me clarify.

      I don't think fast when I'm nervous.
      Interviews make me nervous.
      of course, I've only had 2 jobs in the field, both internships, so my view might be skewed.

      Thinking fast when something breask is totally a different ballgame than thinking fast when having people staring at you laying judgement on you.

      I never felt comfortable thinking that someone is going to base their entire view of me on a simple 2 hour interview.

      of course, I've never been turned down for a job, either.

      --
      Looking for Book Reviews? Check out Literary Escapism.
    9. Re:just out of curiosity by Manitcor · · Score: 5, Insightful

      Interview skill like any other skill will get better over time. As you take more jobs and interview more it will get easier.

      Being a contractor for the past 7 years I have been to 100's of interviews and to be honest there comes a point when you realize that its normally the person doing the hiring that is kind of nervous or off thier game (they don't do interviews everyday normally).

      I also don't tend to think about wheather im going to get the job or not, instead I think of them as a paying client already and I try to get them into discussions about thier current enviornment, issues, future plans etc. Then I provide advice and suggestions on these things. sometime if I steer it right I can go through the interview without ever having a formal tech-out or question anwser session becasue you show your skills right away.

      --
      "Don't mess with him, he taunts the happy fun ball."
    10. Re:just out of curiosity by Amazing+Quantum+Man · · Score: 5, Insightful


      How about someone who answers a technical question, "I don't know off the top of my head, but that's what man pages are for."

      I'd tend to hire someone who's willing to say "I don't know" over someone who tries to BS an answer.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    11. Re:just out of curiosity by vladkrupin · · Score: 1

      People who have the certification and went to school plus ...

      is to be taken with a grain of salt since 90% of certifications are either useless (obsolete/low level/unrelated to anything practical) or just plain bogus. It's kinda like taking school coursework but with less knowledge retained. Ok, not all certificates, but at least software ones (MSCE, A+ - you pick it). As an added "benefit" they usually feel they are worth more since they have a certificate which they view as some sort of a tangible asset. Few people are more mistaken. That's what I observed while working as a TA at a university. Most of the students I had to work with were 'continuing education' were certified in everything you can think of and had extraordinary self-worth perception. That seemed to accurately resemble what they were actually able to do... NOT. In fact, quite the opposite was true.

      I don't have anything against certifications. If you feel like getting one - go right ahead. But don't hold on to it for dear life. It's not a replacement for your brains, or experience. It's just a piece of paper. In fact, it's even worth MUCH less than a school diploma. :(

      --

      Jobs? Which jobs?
    12. Re:just out of curiosity by ClosedSource · · Score: 1

      Don't let the other posters harass you. The fact is that people want to believe that skills that they possess are important so they often overemphasize them.

      A classic case is Bill Gates in the book Programmers at Work where he states that great programmers remember all the code they have ever written. Guess who has a photographic memory? He didn't say anything about design, documentation or maintainability.

      The fact is there is a broad range of skills useful to programmers and being able to answer questions in an interview without breaking a sweat is far, far down on the list.

    13. Re:just out of curiosity by Eccles · · Score: 2, Funny

      how many technical people do you know that are good at thinking on their feet?

      How else do you count past ten?

      --
      Ooh, a sarcasm detector. Oh, that's a real useful invention.
    14. Re:just out of curiosity by tkny · · Score: 1

      you're stating the obvious here and it's a general fact that people who have more practical experiences will perform well in the field than those who don't. but i disagree with you when you say that recent graduate students who have no practical experience "can't think on their feet". it depends on the person, and how apt they are in grasping the material. you also state that the ones who "can think on their feet" are the ones who go out of their way to tinker with a problem and make it their responsibility. i really don't see how you can relate "thinking on one's feet" to being a proactive problem solver.

      Personally, the ones that can't think on their feet are usually the ones that can't remember how to fix a customer's tech support problem even though they've been told how to fix it at least 3-10 times already. These are usually the ones that piss the customer's off the most and end up getting me involved in a pointless conference call with the customer due to some perceived "catastrophic bug."

      again, stating the obvious. if you need to hire people who need to be told 3-10 on how to solve a problem, you're obviously not doing a good job hiring these people. just hire people who have alot of experience and with a great memory.

    15. Re:just out of curiosity by Ooblek · · Score: 1
      I don't think I labeled all graduating students. I said some students, which, as far as I know, doesn't mean all of them. There are always some good and some bad students in any class. I just have to give the personal observation that there seems to be more of the bad ones than the good ones.

      How do I relate "thinking on ones feet" to being a proactive problem solver? Isn't that the definition of a proactive problem solver? When a problem comes up and needs to be solved quickly, someone has to adapt to the situation quickly ("thinking on their feet"). Generally, this would imply that they don't take the time to look it up in the manual or get the manager's ok for what they are about to do. This would be because they not only know how it works, but also why it works. They also know that it is important enough to solve quickly, and that this type of proactive initiative will be easy to justify later if need be.

      And you're right about not doing a good job at hiring the people that need 3-10 explanations. I wasn't doing the hiring, and I don't work for that company any longer. ;)

    16. Re:just out of curiosity by ivan_13013 · · Score: 4, Insightful

      The primary ideas/assumptions I use when preparing interview questions and actually interviewing (for programmers usually, or any other position) are as follows:

      * Past behavior is the best indicator of future behavior
      * Most people can not lie well (and won't anyhow) when being questioned directly to arbitrary levels of detail
      * Technical ability is best determined by specific and relevant tests
      * "IQ testing" can be fun and enhance the interview experience, but it's not of primary importance.

      But let's take a step back. To get ideas for questions, I start by making two lists: "hard" skills, like particular technologies and experience levels, and "soft" skills, like ethics, interpersonal skills, and general fit with company culture.

      From the "hard" skills list, I try to think of a few technical questions that I can ask informally, like academic questions about programming languages, or other specific knowledge. If possible, I'll also use a short programming problem that can be completed in 30-60 minutes. The rapid-dev code sample is always informative! If this isn't an option, asking them to send in their answer later still tells a lot, but less about how well they code under pressure.

      Then comes the fun part. From both "hard" AND "soft" skills, I think of behaviors or circumstances that come up where they would need to be exercised. Then I ask the person questions like "Think of the last time you [were asked to complete a project without enough time] or [had a dispute with a coworker] or [had to design a schema]. What did you do?"

      Sometimes, the person will answer saying "Well, I always.." or something like this. If that happens, I tell the candidate that I would really like them to think about a specific single occurance, so we can talk about it.

      When they tell about what was going on, and what they did about it, you can learn a lot about their personality, real-life communication skills, self-image and more. But don't stop there! Ask for more detail. Ask about the algorithms, or the outcome of a dispute, or what they learned from it.

      It's important also to manage your own perceptions throughout the interview. If you start to get the idea that this candidate is *really good* or *really bad* in a particular area, you should challenge that thought right away in the interview, by asking a question that gives them a chance to talk about their strengths (if you think they are weak) or how they have been challenged (if you think they are strong) in that particular area.

      Through this kind of questioning, you get to know the interview candidate a lot better. A textbook response or whatever their friend told them to say just won't be helpful here. A lie will get complex very quickly when you tack on follow up questions. And you let them choose the best ways to explain themselves, while learning what you need to know about their behavior.

    17. Re:just out of curiosity by ivan_13013 · · Score: 1

      Ack, sorry to switch from "I" to "you" partway through. How disconcerting! *bad Ivan!*

      -=Ivan

    18. Re:just out of curiosity by ClosedSource · · Score: 1

      "How do I relate "thinking on ones feet" to being a proactive problem solver? Isn't that the definition of a proactive problem solver?"

      No. Being proactive has nothing to do with speed. It's about taking responsiblity.

    19. Re:just out of curiosity by pseudonymouse · · Score: 2

      "...fix a customer's tech support problems...", "...renew their customer's ... domain reg ...", "...tweak your broadcast equipment..."?

      These are technical support jobs of various kinds, not programmer jobs. The ability to smoothly handle these tasks and the ability to design and implement good code are not strongly correlated.

      For technical support jobs, seconds matter, and you want someone who can be counted on to do something reasonable immediately. For software engineering, decisions can have repercussions for years, and you want someone who does something intelligent and carefully reasoned after due consideration.

      --
      In a free society you are who you say you are. -- Mumford
    20. Re:just out of curiosity by Anonymous Coward · · Score: 1, Funny

      How else do you count past ten?

      Count in binary. With 10 digits you can count to 1023 without resorting to toes.

    21. Re:just out of curiosity by Johnny5000 · · Score: 1

      remembering the details about the code you wrote helps a lot when a co-worker asks you questions about why the hell you wrote that crappy, inefficient code.

      Unfortunately, if you get fired, you wont be there to answer their questions, so fat lot of good your memorization of your code will do you.

      --
      The libertarian solution to the failures of capitalism is to apply more capitalism til the failures are fixed.
    22. Re:just out of curiosity by ClosedSource · · Score: 1

      I'll assume you mean that my code was appropriate but the co-worker doesn't understand why. If I write code that requires some special explanation, I include detailed comments or I document it in some other way.

    23. Re:just out of curiosity by Anonymous Coward · · Score: 0

      and tests are unfair because you don't do well under pressure, irght?

      The point is that we want to hire people who are willing and able to step up when they're presented with an uncomfortable or unfamiliar situation.

    24. Re:just out of curiosity by Anonymous Coward · · Score: 0

      i can keep really complex lies straight and even maintain different, no-conflicting lies with different people who may interact. If you want my resume, let me know.

    25. Re:just out of curiosity by sketerpot · · Score: 1
      You could interpret the question of figuring out what number between 1 and 10 in an array is missing in more than one way. You could go with the simple and obvious plan--just go through the array linearly--or you could use a binary search type thing. Whichever the prospective employee answers, you then ask for a justification of the answer. You could justify the simpler approach by saying that the speed gains from using the latter approach are negligible on such a small array, or you could justify the latter approach by saying that it leaves room for expansion.

      I like the idea of questions like that--they're hard to study for, and they let the interviewer get an idea of what sort of programmer they're interviewing.

    26. Re:just out of curiosity by MaxVlast · · Score: 1

      And then get hired first. What a gas that must be to the people without the diploma/secret diploma decoder ring.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    27. Re:just out of curiosity by Anonymous Coward · · Score: 0
      A classic case is Bill Gates in the book Programmers at Work where he states that great programmers remember all the code they have ever written. Guess who has a photographic memory?

      It's not hard to remember all the code you wrote when the sum total fits into 4 kilobytes.

    28. Re:just out of curiosity by Anonymous Coward · · Score: 0

      I surely hope that you are not in a management position. If your employee is using his/her own credit card to renew your company's domain registration at the last minute, then it seems fair to assume that you and your company are not organized or detail oriented enough to manage your web presence. Yes it is too bad for you that there aren't more people around to save your butt and make you look good. By the way, can you post your domain and company name, so we won't waste our time applying for a job with your organization or using any of your services? You don't have to be intelligent to be a good bullshi+ artist. On the contrary, good bullshi++ers are the most unintelligent.

    29. Re:just out of curiosity by Anonymous Coward · · Score: 0

      and laid off first.... hmmm....

    30. Re:just out of curiosity by Orthanc_duo · · Score: 1

      University education is useful. However it must be combined with actuall experience. That is why most Engineering degrees have a work experience requirement.

      Orthanc

    31. Re:just out of curiosity by Anonymous Coward · · Score: 0

      > I'd tend to hire someone who's willing to say "I don't know" over someone who tries to BS an answer.

      At one period when I was interviewing I used to have a policy of pushing a line of questioning until I got a "I don't know" answer to try and evaluate whether someone (usually for a support desk role) would BS or be honest.

      The all interviewers were forced by HR to take a course on interviewing and that was just one of the many things that was "wrong". The course taught us lots of things about what not to do and absolutely _nothing_ about how to select the best candidate.

    32. Re:just out of curiosity by freddled · · Score: 1

      Most people cannot lie well ? This is true, but its the one person who does lie well who will cost you the recruitment fee, destabilise your team, wreck your deadlines and force you to fire them with all of the mess that goes with that. Always cross check verifiable facts: honest people really don't mind, only liars make a fuss.

    33. Re:just out of curiosity by CoderByBirth · · Score: 1

      "The ones that think on their feet are the ones that use their own credit card to renew their company's $70 domain reg before millions of users of their free web-email service get locked out due to no resolvable DNS record."

      I would never pay my companys $70 domain reg out of my own pocket. Is this because I'm an unloyal good-for-nothing-punk?
      Partly, yes, but mostly because I don't see my company paying my phonebill when it's about to get overdue.
      Loyalty goes both ways.

    34. Re:just out of curiosity by Frobnicator · · Score: 2
      Most people cannot lie well
      Not on technical subjects. On an area that I have experience, if you don't have experience I and ask you enough questions to make you very uncomfortable, or until I can either force you to say "I don't know" or state some obvious lies.

      As an example (graphics is my area) I could start with basic operations

      • Ask: How can you tell if a poly is forward-facing or backward-facing? (Simple, use the normal, based on the cross-product) If they get it, but it sounds a little flakey...
      • Ask: Given these three points on the screen, tell me if this is a back face or front face? (Easy enough for experienced people, tricky for recent college grads with no experience, tough for pretenders.)
      • Ask: Where would you need to consider if a poly is forward- or backward-facing? (I would expect several answers, the foremost being culling.)
      Just with those questions I could learn a lot about the person's skills in 3D. If they get the first question totally wrong ('There is no such thing as a front or back face, a polygon is a polygon') then you could tell them the right answer, and suggest that the job is not right for them at that time. If they just said it was based on the cross product, but couldn't compute a cross-product by hand, I would need to assess their math skills. I'd ask them where they would look it up, and if they felt is was something they would need to know for that job. Asking the open-ended question of where they would use it would totally blow away someone who is lying, as they wouldn't know what to say. A college grad who has heard the terms but can't remember could give examples, and an experienced person would rattle off culling, inside/outside detection (after bounding shape tests), collision detection, two-sided texture mapping (which side gets each texture), some skinning algorithms, and so on.

      Of course, on any of those getting an "I don't know" will let you probe around that specific area to find out where the limits of their knowledge are.

      frob.

      --
      //TODO: Think of witty sig statement
    35. Re:just out of curiosity by Anonymous Coward · · Score: 0

      In real life, programmers do all sorts of crap, ranging from fixing an incompetent's server, to locking down and doing admin on the dev servers, so this same incompetent won't rm -rf the dev server, thinking he is in a different box.

      I personally do all of these things. Once your admins delete your source, and screw up the backups, so many times, and the boss just won't fire them, you need to take control of your life and you do what has to be done, so the ship keeps running.

      "Not my job" attitude is certainly something you want to sniff out in a candidate. Hopefully your resume won't be floating across my desk.

      A word of advice:
      Get a contractor. If they suck call the company and get another, and another until you find one you like. Then hire them. Try before you buy.

  4. Riddles... by Cryptnotic · · Score: 2, Insightful

    Ask them a few riddles. For example,

    the ones discussed here

    --
    My other first post is car post.
    1. Re:Riddles... by Anonymous Coward · · Score: 0

      Ask them a few riddles.

      This happened to me once. I went into an interview where they started to ask riddles. I promptly told them "I am truly sorry. I thought I was being interviewed for a programming job, not a guest spot on Romper Room. I do not appreciate having my time wasted in this manner." After which I stood up and walked out.

      All this cutesy bullshit like, "Riddle Me This", "Tell Me a Story" are just inexperienced interviewing techniques of weak minded people who have no real idea what they need.

    2. Re:Riddles... by Anonymous Coward · · Score: 0

      You must have next to 0 social skills, as these riddle type questions are partly asked to find out how articulate and graceful you are in working in a team. Obviously you failed the test miserably.

    3. Re:Riddles... by Latent+IT · · Score: 1, Flamebait

      Wow. If I was interviewing you, I wouldn't be able to express how happy I was that you revealed yourself to be a complete clod during the interview, rather than bothering to 'appear professional' in front of your prospective employer.

    4. Re:Riddles... by Fjord · · Score: 2

      Some of thoe ones are pretty good, for example the ones on the CS page are good for this. However, the ones on the other pages are mostly pretty stupid.

      I understand what other people in this thread are saying w.r.t. "these questions are supposed to test your grace unde rfire, yadda yadda" but if an interviewer asked me "If you could remove any of the 50 states, which state would it be and why?" I would have a hard time taking the company seriously. I probably wouldn't wake out then and there, but I would think about that when deciding between two positions.

      --
      -no broken link
    5. Re:Riddles... by Anonymous Coward · · Score: 0

      You'll have to explain to me what "is professional" about asking riddles at a job interview. And they ceased to be a "prospective employer" the minute they started asking riddles.

    6. Re:Riddles... by Anonymous Coward · · Score: 0

      Answering riddles has nothing to do with social skills, and even less then nothing to do with team skills. If you ask me a riddle, you are not asking that I collaborate with others in order to achieve a solution. You are asking me to work by myself to achieve a solution. I don't know who fed you that line of bullshit, but they sure have you snowed over. Christ, you can't even think for yourself.

    7. Re:Riddles... by Latent+IT · · Score: 2

      You'll have to explain to me what "is professional" about asking riddles at a job interview.

      Oh, will I? Well, so long as I have to.

      You, as a professional, should be able to deal with anything in a reasonable manner. Making snide remarks and walking out doesn't qualify. What happens if a customer ends up talking to you? Or someone from marketing? Perhaps they'll ask a question you feel is 'beneath you' and you can snap at them too. It is well within the responsability of the interviewer to ask you all sorts of things to see how you react to different situations. A riddle is hardly asking too much of you.

      Unless you don't have a clue, lack any social skill or grace, and feel like an idiot. Then I guess you get mad and walk out. Not the interviewers loss, I assure you.

    8. Re:Riddles... by DJPsychoChild · · Score: 1
      While you are seriously considering the two positions, consider this: working 40 hours a week in a cubicle, doing a boring job where today is the same as yesterday (think Office Space) because you didn't want to remove a state from the Union.

      I hate to be mean here, but think seriously for a minute: Micro$oft, Norton, Bell Labs, etc. have all said that they use questions like this. Not because they want to see your team effort (as earlier suggested) but because they want to see your LOGIC skills (and isn't that what this is all about?)

      --
      CODITO, ERGO SUM: I Code, therefore I am.
    9. Re:Riddles... by Anonymous Coward · · Score: 0

      ..yes ask some riddles. Then you will surely test their ability to have previously heard these riddles before and still remember the answer.

    10. Re:Riddles... by Latent+IT · · Score: 1, Offtopic

      Is it remove a state from the union? Or like, remove a state, sink California? ;p

      I think my answer is Wyoming, either way, since it has the least number of people. Am I completely missing the point?

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

      Maybe he didn't want to work for the cutesy-trendy company that would ask such a question. Real Men don't answer riddles, you know. DND geeks do.

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

      Was that supposed to make sense?

    13. Re:Riddles... by jmccay · · Score: 3, Insightful

      Riddles won't help. It only shows you have a good ability to solve a riddle. Debuging and programming can't be interviewed the way most companies do it now. It seems to me that the problem in this persons case is they have too many interviews. They are over-analyising the person. A good programmer may tend to think more in abstract terms than the technical rules. Rules can be looked up as needed, but being able to abstract the idea and write the solution in a varying choice of languages is completely different.
      Algorythms come and go, looking for a programmer based on what algorythms they know is stupid and useless--all it proves is ythe person has book learning and nothing more.
      What's missing from the applicants skills can always be trained. Phamlen seems to be doing what most companies have been doning they look for book learning type skills. They want someone whose skills exactly match what they are looking for in a programmer, and that WON'T always work.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
    14. Re:Riddles... by GutBomb · · Score: 1, Offtopic

      i would have to say [insert whatever name of the state i am currently in here] because then i would not have to deal with the IRS anymore.

    15. Re:Riddles... by DJPsychoChild · · Score: 1

      Not that it was originally my point, but I'd say Hawaii, as long as we kept it as a territory for military operations. Just don't like the thought that we can't drive to them...

      Anyway, back on topic, the state example was just that, an example. Another one I remember hearing was "You've been hired to redecorate Bill Gates' Bathroom. Of course, money is no object, but you can't talk to Bill himself. How would you decorate it?" Of course, the best/correct answer being "Ask his wife"

      --
      CODITO, ERGO SUM: I Code, therefore I am.
    16. Re:Riddles... by CommieOverlord · · Score: 1

      Solving riddles is form of problem solving. Software design is a form of problem solving. If you can't see how they're related I feel sorry for your.

      By the way, riddles are fun to do. I wish more interviewers would ask me riddle.

    17. Re:Riddles... by Anonymous Coward · · Score: 0

      I liked the gold bar and the three lightbulb riddles because I got them write. There was another one but I didn't get it so I don't remember it. I quit Microsoft 4 months later.

    18. Re:Riddles... by Capsaicin · · Score: 2
      you revealed yourself to be a complete clod

      Nope, he revealed himself to be a complete professional, who wasn't going to put up with that kind of BS. I would have done, nearly the same thing. Remember, a job interview is a two-way process. The employer is checking you our as a potential employee, but you are also checking them out as a potential employer. The guy very quickly decided they weren't up to his standards and terminated the interview. What's the problem with that?

      --
      Better to be despised for too anxious apprehensions, than ruined by too confident a security. --Edmund Burke
    19. Re:Riddles... by Grab · · Score: 2

      If you're the interviewer, I won't be working at your company. Ever. Nor anyone else I know. Riddles demonstrate nothing beyond the fact that the interviewer wants to look like a smartass - they tell you nothing about the interviewee.

      Grab.

    20. Re:Riddles... by Fjord · · Score: 2

      You didn't sound mean at all. I will say that of course I will take all things into account when applying at a position, but this is one of them. The fact that MicroSoft, Norton, Bell Labs, etc say they all use these questions isn't a bonus. I've worked for Bell Northern Research and I know what it is like there: you are lost in a sea of people, with 40 hours a week in a cubicle, doing a boring job where today is pretty much always the same as yesterday (way worse than Office Space, more like Dibert). That's great that their corporate culture feels these questions say something about their candiates, but that doesn't mean their asking doesn't reflect on their culture. And if a small company asks one attempting to emulate that culture, that says something too. It also depends on who's asking and the vibe I get off of them during the question-answer period.

      Like I said I would answer it in the interview, but I would take it into consideration when weighing two jobs together. The most recent time I looked for a job (almost 2 years ago), I had an offer and a few interviews. I went to the interviews to figure out where was best for me, and as a result I love the place I work at.

      --
      -no broken link
  5. One simple little function... by bloggins02 · · Score: 3, Interesting

    ... the swap function. It may be simple and about three lines long, but you'd be surprised how many people it weeds out who simply don't understand pointers.

    And understanding pointers (even if you use non-pointer languages) seems to be a common trait of most "Good Programmers".

    1. Re:One simple little function... by Anonymous Coward · · Score: 0

      I can do it on one line of inline asm. Simple load the address of the variables/objects in the registers and use xchg to swap them.

    2. Re:One simple little function... by Anonymous Coward · · Score: 0

      Oh come on, that's kind of ridiculous. I'd maybe ask that in a Data Structures class but not in an interview. The interview questions would have to far superecede that question in complexity.

    3. Re:One simple little function... by smileyy · · Score: 1

      The only thing pointers are useful for is implementing whatever programming language i'll actually be using.

      --
      pooptruck
    4. Re:One simple little function... by YetAnotherAnonymousC · · Score: 1

      Another one that I find similarly illuminating:
      reverse a singly linked list in place
      sooooo many people don't even know where to start, or don't understand pointers
      many do it recursively, which is fine, but not as efficient as the iterative method.
      let's you see how they think on a relatively simple problem, and weeds out the people who are incompetent.
      of course, this is only the base of an interview. next step is to determine things like people skills, work ethic, etc. I could write a book on that

    5. Re:One simple little function... by cnvogel · · Score: 2

      ...but can you do it without using a third, temporary variable? ;-)

    6. Re:One simple little function... by bloggins02 · · Score: 1

      Do you think it's the actual sort function that matters? No, it's the fact that you have to understand what a pointer is and how to use one to write it well.

      Trust me, it's served my company quite well over the years.

    7. Re:One simple little function... by mekkab · · Score: 2

      A = A XOR B
      B = A XOR B
      A = A XOR B

      My data structures professor showed us that on the first day of class. That got my respect.

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    8. Re:One simple little function... by bmwm3nut · · Score: 1
      you bet: to swap a and b (i know this works for integers, but i can't imagine why it wouldn't work for any type)
      a=a xor b
      b=a xor b
      a=a xor b
    9. Re:One simple little function... by PrestoChango · · Score: 1

      That's always been one of my favorites. Here's another good one:

      I was once asked to write a bunch of linked list code (testing my ability at manipulating datastructures). He asked me what the fastest possible way of removing an element from a linked list was given a pointer to the element. I replied, "If you don't care about side effects and its not the last element, it can be done in constant time."

      How'd I do it? :-)

    10. Re:One simple little function... by EllisDees · · Score: 2

      If we are just talking about numbers:

      y = x + y
      x = y - x
      y = y - x :)

      --
      -- Give me ambiguity or give me something else!
    11. Re:One simple little function... by Dthoma · · Score: 2
      Brief: Swap 2 variables (a and b) without using a 3rd variable.
      1. b = b XOR a
      2. a = a XOR b
      3. b = b XOR a


      Ta da!

      ;-)

      --

      Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

    12. Re:One simple little function... by mekkab · · Score: 2

      doubly link your list. My last's next gets my next, and my next's last gets my last.

      Or is double linking not an option?

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    13. Re:One simple little function... by Corvus · · Score: 1

      #!/usr/local/bin/python

      a, b = b, a

    14. Re:One simple little function... by gorilla · · Score: 2

      This fails if you have overflow.

    15. Re:One simple little function... by Anonymous Coward · · Score: 0

      you failed, good bye. If the X and Y equal a number bigger then what can be held in the Y then your going to have a very odd bug one your hands. Plus there are much better ways to do this, That work on all data types

    16. Re:One simple little function... by gooser23 · · Score: 0

      um..... no.

      what happens if x + y overflows? how are you going to handle that?

      This solution is most certainly wrong, whereas the XOR solution (ie, replace all your +'s and -'s with ^'s -- or whaterver your XOR operator happens to be) is most certailny the correct solution.

      --
      "Dying tickles!" -- Ralph Wiggum
    17. Re:One simple little function... by Viking+Coder · · Score: 2

      void swap(int&A,int&B){A^=B^=A^=B;}

      Short and sweet.

      --
      Education is the silver bullet.
    18. Re:One simple little function... by elmegil · · Score: 1

      Singly linked or doubly linked list?

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    19. Re:One simple little function... by Fjord · · Score: 3, Interesting

      You would be very surprised at how simple questions like this are blow completely by people. Questions on this level are certainly required in an interview, although they aren't enough to answer the poster's question.

      My simple question is this: You have two tables, one called "orders" that has "customer_id", "item_id", "quantity" as fields, the other called "items" with "item_id" and "price" as fields. The second table is foreign keyed by "item_id" in the first". Write a select statement for the total amount in dollars that customer 5 has ordered.

      About 1 in 10 candidates get the join part. 1 in 15 get it all right. Simple questions really are important in an interview to weed people out. They don't tell you how productive they are, though.

      --
      -no broken link
    20. Re:One simple little function... by binaryDigit · · Score: 2

      One way would be to make the deleted element "become" the next element.

      void delitem(item *p)
      {
      item *tmp = p->next;
      memcpy(p,p->next,sizeof(item));
      free(tmp); }

      In this way, the "deleted" elements next points to the it's next next (if that makes any sense at all). This would be highly frowned upon and would have side effects out the wazzoo but it could be effective given the right conditions.

    21. Re:One simple little function... by PrestoChango · · Score: 1

      Singly linked only. That's what makes it hard. :-)

      It can be done. The only hints I'll give is what I've already said:

      1) It has side effects
      2) It won't work if it's the last element.

    22. Re:One simple little function... by Guitarzan · · Score: 1

      Delete the list. :)

    23. Re:One simple little function... by BionicElf · · Score: 1

      And violates the standard. Can't access a variable more than once between sequence points.

    24. Re:One simple little function... by Anonymous Coward · · Score: 0

      Copy the entire contents of this->next to this.

    25. Re:One simple little function... by amuro98 · · Score: 2, Interesting

      Congratulations.

      You now know enough to work for Microsoft.

      I interviewed with them for an intern position, and almost everyone asked me that same stupid question.

      After messing up in the first interview, and the guy showed me a solution, I simply re-used the same solution in later interviews. I even told them I was doing this so we could get to something more interesting - such as what the person interviewing me did. (apparentally Microsoft doesn't think you're supposed to ask questions during an interview...only answer them.)

    26. Re:One simple little function... by Anonymous Coward · · Score: 0

      A few people pointed out the XOR trick
      which works in some cases (where the
      xor op is defined in the expected way)
      but doesn't work in the general case
      (such as swapping two objects, or two
      strings.)

      If anyone gave the xor answer as a serious
      solution to the swap function it is a clear
      indicator NOT to hire them. It shows they
      hold trickery higher than good engineering
      choices.

      Swap should be written in a fashion like
      this (C++)

      template<class t>void swap(t& a, t&b)
      {
      t&temp = a;
      a = b;
      b = temp;
      }

      This is clearer, faster, and type universal
      which are exactly the qualities any smart
      program manager would want in a piece of
      software.

      The failure to know the "trick", or the
      ability to solve riddles (which is generally
      based on already knowing the answer) is a
      terrible way to determine the quality of a
      programmer.

      Have them write some code. Make sure it uses
      pointers if this is a job requirement. Make
      sure there are tricky off by one issues. Make
      it tempting to allocate memory for an easy
      solution, when a non allocating solution is
      possible. Make it tempting to use an N^2
      algorithm when a linear is possible.

      See www.joelonsoftware.com about this kind
      of stuff.

    27. Re:One simple little function... by C+Joe+V · · Score: 1

      Nobody gave the answer yet? Is this it?

      void remove (NODE *trash) {
      trash->data = trash->next->data;
      trash->next = trash->next->next;
      }

      I assume you meant a pointer to the node to be removed, not the element. Pretty cool.

      JV

    28. Re:One simple little function... by njdj · · Score: 1

      The interview questions would have to far superecede that question in complexity.

      I've interviewed a lot of programmers ... lost count of how many over the years, but probably over 100. The one thing you learn from giving technical interviews is, how amazingly bad some "programmers" are at programming. Tell applicants to write a piece of code to solve some simple problem - even something as trivial as this - give them time - it will amaze you how many of them just can't do it. And these are people with reasonable-looking resumes who have held down programming jobs, in some cases for years. Expect to see this even more if "extreme programming" catches on in a big way. One-half the "programmers" will actually be non-programmers, is what I think will happen.

      Of course you're right that if you really want top-notch people, you need to use a more substantial test. But most programming jobs do not require top-notch people, and even a very trivial test is better than no test, which is how hiring is usually done.

    29. Re:One simple little function... by mekkab · · Score: 2

      Oh-kay...

      COPY what my next pointer points to into my spot.

      So if I have a pointer to x7123 and that is to be removed, and my next pointer points at x7999, and its a 10 byte data structure, move the values held in x7999, x799a, x799b, ... x8002 to x7123, x7124, x7125 ... x712c

      Since you already have a datastructs worth allocated at x7123 you shouldn't have a memory access problem, however you are leaking memory (at x7999)

      unless you have a garbage collector...

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    30. Re:One simple little function... by C+Joe+V · · Score: 1
      Nobody gave the answer yet?

      You people are too fast for me.

      Come to think of it, it's a little bit weird to say "if you don't care about side effects," because after all the deletion is itself a [side] effect.

      JV

    31. Re:One simple little function... by cnvogel · · Score: 2

      That's unfair... you are cheating... ;-)

      So the right question would have been to swap two numbers without using a temporary variable and not using...

      - python [a,b=b,a]
      - perl [ ($a,$b)=($b,$a) ]
      - assembler [ exch or whatever it's called ]
      - ...

    32. Re:One simple little function... by elmegil · · Score: 1

      That's easy. You just draw the arrows on the other end of the lines.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    33. Re:One simple little function... by cnvogel · · Score: 2


      It should work with wrap-around, too...

      And there are languages with arbitrary precision arithmetics ;-)

    34. Re:One simple little function... by tylerdave · · Score: 1

      that's on the list of why i love python

    35. Re:One simple little function... by PrestoChango · · Score: 1

      Singly linked.

    36. Re:One simple little function... by EastCoastSurfer · · Score: 2

      About 1 in 10 candidates get the join part. 1 in 15 get it all right.

      If thats the case then I don't think I will ever find a person who knows SQL for a position we are looking to fill.

      The question you ask above seems way to easy for anyone who puts SQL on thier resume. I usually start with something requiring an left/right join to test SQL knowledge. Something along the lines of (using your tables and adding the customer table to the mix) show me all the customers from a table "customers", and a count of their orders(which of course may be zero).

    37. Re:One simple little function... by PrestoChango · · Score: 1

      Good job! Don't forget to delete the old trash->next, though. :-)

    38. Re:One simple little function... by jallen02 · · Score: 1

      It is actually pretty simple if you think about it without trying to over-complicate it. As you iterate over a list you no longer need to worry about the element you were just on. So you take that element and add it to the front of another list. As you go you add each element to the front of the other list. When your done you have the list reversed and you have not created any more elements :)

      Jeremy

    39. Re:One simple little function... by PrestoChango · · Score: 1

      True. The deletion is a side effect, but it is a desired one. The problem is that if anyone else held a pointer to trash->next, they'd be corrupted.

    40. Re:One simple little function... by 0xdeadbeef · · Score: 1

      Copy the next node into the one to which you are pointed, and free the orphaned node instead?

    41. Re:One simple little function... by Anonymous Coward · · Score: 0

      Doesn't the first table have the Foreign Key constraint based on the second? I'm assuming item_id's in the second table are unique.

    42. Re:One simple little function... by Viking+Coder · · Score: 2

      Don't you mean "write"? I can surely "access a variable more than once between sequence points."

      I bet it will work on every modern compiler. It's not like I actually think people should use that function. *shrug*

      --
      Education is the silver bullet.
    43. Re:One simple little function... by Amazing+Quantum+Man · · Score: 2
      Let's rewrite to the standard.
      void swap(int& A, int& B)
      {
      A ^= B;
      B ^= A;
      A &= B;
      }
      Now, let's try to use it.
      void f()
      {
      int a = 3;

      swap(a, a);
      cout << a << endl;
      }
      Doesn't work for all cases, does it?
      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    44. Re:One simple little function... by sphealey · · Score: 2
      That's great. Of course, most programmers will spend 0.5% of their day working on things like that, 19.5% rewriting the same invoice printing routine for the 783rd time since the company purchased their first 1401, and 80% talking to the business analysts/spec writers, meeting with end users to tease out requirements that the users themselves haven't fully formulated, meeting with the CFO to explain why you can't print the price of Berkshire Hathaway stock in Italian lira on the financial statements, etc. Being able to solve tricky puzzles in an interview has very little bearing on being a functional team member.

      sPh

    45. Re:One simple little function... by koreth · · Score: 2
      Yes! I was interviewing candidates for a senior database developer position a few companies back, and it was amazing to me how many people with "10 years SQL experience!" on their resumes couldn't answer simple questions like that.

      One of my favorites, which was a great weeder-out, was, "What's the difference between where and having?" Not something I'd expect someone to know if they'd just done a few small database apps on the side, but it shouldn't be obscure for a hard-core database programmer with experience on large projects. Like the parent poster, I found maybe 1 out of 10 candidates could answer it correctly.

      In C terms, this would be like asking, "What's the difference between void *foo and void (*foo)()?" Not something a junior developer might need to know, but you just have to laugh at someone who bills themselves as an ace C hacker and can't give you at least a ballpark answer.

      Along similar lines, for senior Java programmers, I like "What's the difference between transient and volatile?" Though that one is more of a "bonus points for getting it right" than an "interview's over if you can't answer" for most positions since you can write a huge, well-architected Java app without ever needing either of those keywords. (But if they can answer that and tell me what the strictfp keyword means, I can be pretty sure they know their way around a Java compiler.)

      Of course, as others have said, little quiz questions like those are almost always less important than finding out about someone's work habits, personality, coding style, and so forth. Most often I spend at least 75% of an interview on those softer topics rather than on technical stuff.

    46. Re:One simple little function... by Anonymous Coward · · Score: 0

      You think that's bad? I could build you such a select statement quite easily. But what's worse is I sympathize with you that there is a vast majority of "programmers" who could not accomplish the same feat, and I don't even call myself a programmer! (Yet).

      But it gets worse when you realize I get paid $15,000 less than losers with no social skills, no work ethic, even less programming competence, AND I was retained over THEM when the last round of layoffs occurred, and yet they'll never pay me what I'm worth simply because I don't have "10 years of experience" and a "college degree" (yet) with which to inflate my salary requirements. I tell you, every semi-large company with semi-incompetent management sucks!

      P.S. Figure out where I work. This is our catch-two-letter-company-ID: CF. Wuhahaha!

    47. Re:One simple little function... by Hornsby · · Score: 2

      select SUM((p.price * o.quantity)) from orders o, parts p where o.item_id = p.item_id;

      Can I get a job?

      --
      A musician without the RIAA, is like a fish without a bicycle.
    48. Re:One simple little function... by jallen02 · · Score: 1


      SELECT SUM(quantity * price) AS Total
      FROM Orders O
      INNER JOIN Items I ON I.ItemID = O.ItemID

      What does that tell you about my ability to solve a problem if I happened to solve that one problem? You can see my style of writing queries and aliasing tables. You can tell that I realized I had to use a JOIN in this situation, along with an aggregate function. But that is about it. I like little challenges like that as as an aside to keep someone on their toes.

      I would much rather have a 10 minute discussion with someone on normalization. If I gave somoene 5-10 minutes to solve that problem and they got the answer I can only learn what the problem was designed to tell me about them. If I discuss something with them there are so many contextual things I can learn about someone's knowledge on a subject. I like discussing theory and concepts with someone. It shows that there is something there beyond code-slinging ability

      As a weed-out tactic... I guess questions like that are okay, but I still think they lack to show some characteristics about a person's knowledge.

      Jeremy

    49. Re:One simple little function... by YetAnotherAnonymousC · · Score: 1

      pretty much. you have to be careful about initial and terminating conditions, but it isn't hard at all. and it's amazing how many people either
      A) overengineer it/over-complicate it
      B) just plain screw up the pointers
      C) don't understand "in-place"
      D) do it recursively. this one I'm most forgiving about; I just ask them what the downsides of their solution are and encourage them to consider if there's a general method to do it iteratively as well.

    50. Re:One simple little function... by Anonymous Coward · · Score: 0

      I think double parenthesis are ugly and useless.

      Besides, where is the 'AND o.custumer_id = 5'?

    51. Re:One simple little function... by Gumshoe · · Score: 1

      void swap(int&A,int&B){A^=B^=A^=B;}

      Don't you mean "write"? I can surely "access a variable more than once between sequence points."


      You can, but you can't modify a variable and then read it (not reliably anyway), which is what the statement does.

      I bet it will work on every modern compiler.

      Irrelevent. The standard says it's undefined.

    52. Re:One simple little function... by Morphine007 · · Score: 1

      "What's the difference between void *foo and void (*foo)()?"


      void *foo - a pointer to void (or maybe you meant void *foo(), in which case it's a function call that returns a pointer to void...)

      void (*foo)() - foo is a pointer to a function that returns void and you just called it....

      do I get the job??

    53. Re:One simple little function... by Anonymous Coward · · Score: 0

      So what is the difference between void *foo and void (*foo)()?

    54. Re:One simple little function... by Fulcrum+of+Evil · · Score: 2

      can you do it without using a third, temporary variable?

      I could, but it would be pointless. the third variable will most likely be mapped to a register, and fancy tricks with XOR confuse the compiler when it's optimizing.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    55. Re:One simple little function... by Anonymous Coward · · Score: 0

      Considering that recursion is most often supported
      by a stack you may argue that they in fact build
      another list on the stack. So their solution is not
      really in-place ;-)

    56. Re:One simple little function... by Mr+Z · · Score: 2, Insightful

      Of course, the three-variable version (the one that uses a temp variable) is probably faster on modern machines, as the three-XOR version has a serial dependence that forces it to take 3 cycles. The temp-variable version can go as fast as 2 cycles on a multiple-issue machine, or on an explicitly parallel machine, 1 cycle if the compiler realizes it can optimize one of the moves away in one of the later scheduling passes.

      I'm thinking along the lines of the following sequence being executed on a multi-issue machine. (The '||' indicates instructions issued in parallel.)

      MV A, T
      MV T, B || MV B, A

      And in the case where the compiler can allocate 'T' and 'A' to the same register on an explicitly-scheduled machine, the sequence becomes simply:

      MV A, B || MV B, A

      Can't do that with the three-XOR version.

      --Joe
    57. Re:One simple little function... by BLAG-blast · · Score: 1
      Doesn't work for all cases, does it?
      Cute.


      void swap(int& A, int& B)
      {
      A ^= B;
      B ^= A;
      A &= B;
      }


      Need to stick a "if (A == B) return;" at
      the start of the function.

      --
      M0571y H@rml355.
    58. Re:One simple little function... by Mr+Z · · Score: 1

      Go try it with float or double from C and tell me how well it works. :-)

      No fair cheating and using a union to do it either.

      --Joe
    59. Re:One simple little function... by Anonymous Coward · · Score: 0

      You're REALLY FUCKING SMART!

      LOLOL!!!!

      % more /usr/home/Morphine007/.secretgaypr0n
      I FUCK MEN!!
      %

    60. Re:One simple little function... by Mr+Z · · Score: 1

      Not on modern 2s complement machines with well defined wraparound on overflow. The overflow will be followed by compensating underflow.

      --Joe
    61. Re:One simple little function... by gorilla · · Score: 2

      But not all programming languages/enviroments have wrap around. Some throw an exception or otherwise stop the program.

    62. Re:One simple little function... by Anonymous Coward · · Score: 0

      Would I get the job if I got 2 out of 3 on your questions?

    63. Re:One simple little function... by Anonymous Coward · · Score: 0

      One thing quizzes like this will tell you is whether people pay attention.

      "Write a select statement for the total amount in dollars that customer 5 has ordered."

      "where customer_id = 5" is missing from your query.

    64. Re:One simple little function... by Viking+Coder · · Score: 2

      Well, two points :

      It helps if when you translate it to make it stick to the standard, you do it correctly :

      void swap(int& A, int& B)
      {
      A ^= B;
      B ^= A;
      A ^= B;
      }

      It's an XOR-equals at the end, not an AND-equals.

      Also, yes, if you intentionally pass by reference the same exact integer twice, it's not going to work. It will, however, work if you test it appropriately with :

      void f()
      {
      int a = 3;
      int b = 3;

      swap(a, b);
      cout a " and " b endl;
      }

      The test that the other poster inserted of (A == B) is only necessary if you pass in by reference the same int twice. Passing two ints that happen to have the same value works just fine.

      So, the function will act as advertised - it will exchange the values of two integers, without using any additional memory.

      *shrug* Like anyone cares.

      Thanks for playing.

      --
      Education is the silver bullet.
    65. Re:One simple little function... by ghum · · Score: 1

      >select SUM((p.price * o.quantity)) from orders o, >parts p where o.item_id = p.item_id;

      >Can I get a job?
      no.
      select SUM((p.price * o.quantity)) from orders o join parts p on o.item_id = p.item_id;

      or

      select SUM((p.price * o.quantity)) from orders o natural join parts p ;

    66. Re:One simple little function... by Pig+Hogger · · Score: 3, Insightful
      A = A XOR B
      B = A XOR B
      A = A XOR B
      My data structures professor showed us that on the first day of class. That got my respect.
      No wonder he's a teacher; only a teacher would gloat at a "clever" stupid trick like that; in a production environment, he'd be the first one to be shot, 'cause such kind of "clever" code is exactly why there are so many bugs in software nowadays, 'cause not all programmers will "get it".
    67. Re:One simple little function... by jcast · · Score: 1

      But if you don't understand them, you probably won't get how that language you're using works.

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    68. Re:One simple little function... by Anonymous Coward · · Score: 0

      Actually, I don't think that INNER JOIN is a Transact-SQL statement, though it may work on the database you are using, it's probably not portable. Plus, I think he wanted the customer id of 5. So I would guess

      SELECT SUM(o.quantity * i.price)
      FROM orders o
      JOIN items i ON o.item_id = i.item_id
      WHERE o.customer_id = 5

      Transact-SQL defines 5 types of JOIN statements
      CROSS JOIN
      JOIN
      LEFT JOIN
      RIGHT JOIN
      FULL JOIN

    69. Re:One simple little function... by Anonymous Coward · · Score: 0

      Make a second linked list and copy elements that *AREN'T* the one(s) that you want to remove.

    70. Re:One simple little function... by Anonymous Coward · · Score: 0

      Yeah. Right. Never coded for an OS kernel ? A system driver ? A 3D engine ? A word-processor core ? An embedded system ?

      It's not because you're a script kiddie it means pointer aren't useful.

    71. Re:One simple little function... by bmwm3nut · · Score: 1

      that's just a limitation in the language not supporting xor for non-integral types. but if you take the actual binary representaion for a float or double (like using a union) and do the xors you'll get the swap. you could even do the same thing for any data type you want as long as long as you can get to the bits to xor them (c++ classes will have more problems because of constructors)

    72. Re:One simple little function... by ncarey · · Score: 1

      You should ask difficult questions.

      void *foo defines foo as a pointer to void; void (*foo)() defines foo as a pointer to a function (of unknown arity) returning void.

      These are stupid interview questions. Trying to trip people up with obscurity is silly and accomplishes nothing except to inflate your own ego.

      What does knowing or not knowing the intricacies of a programming languages have to do with programming -- which is largely done by people and in English. It the analysis and problem solving skills that are hard to come by. Not the programming language skills.

      --
      N. --
    73. Re:One simple little function... by Axe · · Score: 3, Insightful
      Well, that may be right thing to do.. but..

      I did not know SQL. Never did. Did not put it on my resume.

      Had a project requiring implementing DB access. I got a book. By the end of the day had it working just fine.. with all fluff and what not.

      Our DB guru was reviewing it a bit later and said it was one of the cleanest made solutions he have seen. Note: it was reviewed.

      My point being: yeah, when you need an exact narrow skill, or just to weed out liars - sure, that approach works fine.

      You will not find people who can learn new stuff, and apply it sucessfully, that way. You will be stuck with jacks of one trade.

      On my book - #1 skill is the ability to learn.

      --
      <^>_<(ô ô)>_<^>
    74. Re:One simple little function... by Axe · · Score: 2
      One-half the "programmers" will actually be non-programmers, is what I think will happen.

      ..and they actually may be the most needed people on the job.

      Spitting out lines of code for standard short problem is not the only skill needed.
      What %% of your time is spent debugging? Writing design docs? Understanding requirements? Communicating to other team members on common issues?

      All of these and more are not tested by a simple snippet of code.

      --
      <^>_<(ô ô)>_<^>
    75. Re:One simple little function... by Mr+Z · · Score: 1

      It works with the binary representations, but on many (most?) contemporary architectures (such as x86 and I &think* PPC, MIPS, Sparc and Alpha), the FP and integer register files are separate. Integer ops won't operate on values held in the FP register file. As a result, you actually have to store/reload the value through memory or issue a special move before you can apply the XOR.

      Once you start issuing moves just to be able to do the XOR, the whole point is lost. :-) Unless, of course, all the values are in memory already anyway, in which case, you can use the moral equivalent of an unsigned * to do your dirty work.

      --Joe
    76. Re:One simple little function... by smallstepforman · · Score: 2

      I'd stay away from candidates who used 'hot shot' tricks. As Martin Fowler (the Refactoring dude) would say "It's easy to make code which a machine can understand - the real skill comes in writing code which another HUMAN can understand." This XOR trick is neat, but has no place in any code which is to be maintained. These days, code is written once, and maintained forever after. God help the poor maintainers who have to sift through this XOR hack.

      --
      Revolution = Evolution
    77. Re:One simple little function... by Tom7 · · Score: 1

      Right on.

    78. Re:One simple little function... by Anonymous Coward · · Score: 0

      meeting with the CFO to explain why you can't print the price of Berkshire Hathaway stock in Italian lira on the financial statements

      Does it have to do with sizeof int?

    79. Re:One simple little function... by Anonymous Coward · · Score: 0

      if you don't care about side effects:

      free (pointer)

    80. Re:One simple little function... by jallen02 · · Score: 2

      Actually INNER joins are in the ANSI 92 SQL specification. And.. Transact-SQL is something used in Sybase and Microsoft RDBMS. And INNER join is a valid query construction element there too.

      <join type> ::=
      INNER
      | [ OUTER ]
      | UNION

      This is directly from the specification and it is always referenced as an inner or outter join within the specification. INNER is also a reserved word in ANSI 92 SQL.. so if it is not portable it is because the target database platform is not ANSI 92 conformant.

      And for a couple of other posts, I left the WHERE clause off intentionally. I was just demonstrating a conceptual understanding of the problem.

      And to make slashdot accept this post: The lameness filter can be really bothersome some of the time[1234567890]

      Jeremy

    81. Re:One simple little function... by tgt · · Score: 1

      I heard a question
      E) What is a linked list ?

      --
      I like my outfit, it's inexpensive, but cool -- April Ryan
    82. Re:One simple little function... by Hornsby · · Score: 2

      doh, that's what I get for replying during the 5 o'clock rush at work... I agree that double parenthesis are ugly as well. oh well.

      --
      A musician without the RIAA, is like a fish without a bicycle.
    83. Re:One simple little function... by Iffy+Bonzoolie · · Score: 1

      The right question is: Do you know the xor swap trick? That's all you are asking.

      -If

      --
      Run a pencil-and-paper RPG campaign with your far-off friends: Gametable!
    84. Re:One simple little function... by jweatherley · · Score: 1

      You lose the bet - it doesn't work on MetroWerks CodeWarrior 6 for Mac.

      --

      --
      Reverse outsourcing: it's the future
    85. Re:One simple little function... by sphealey · · Score: 2
      Berkshire Hathaway stock trades at about $32,000 US per share (Warren Buffet doesn't believe in stock splits!). At the time of the Euro conversion the lira was frozen at about 1000 to the USD. So if a company owned a few hundred shares of B-H stock there would not be enough room on the page to prints its value in lira in the same units as other assets held in USD, euro, etc. (Newspapers have the same problem - they can't print the B-H price in the regular stock listings and have to include a separate box for it.)

      Although I supposed the "creative" solution would be "use a 2pt font!"

      sPh

    86. Re:One simple little function... by Viking+Coder · · Score: 2

      What does or doesn't it do?

      I'm betting there's a lot of code from the obfuscated code contests that doesn't work on that compiler...

      --
      Education is the silver bullet.
    87. Re:One simple little function... by invenustus · · Score: 1

      And the ultra-pragmatic solution would be "use scientific notation!"

      --
      grep -ri 'should work' /usr/src/linux | wc -l
    88. Re:One simple little function... by Anonymous Coward · · Score: 0
      Neither of you get the job because you just charged Customer 5 for every customers order. Details are pretty important.

      Then again, if Customer 5 ends up paying that, you both made a load of money for the company. That's not so bad, either.

    89. Re:One simple little function... by Fjord · · Score: 1

      That's fine, but then you wouldn't put SQL on your resume either. You also wouldn't, in one case, put that you have Oracle Certification and then explain that they only had you do a select from a single table.

      If you don't have SQL on your resume, then that is one in a whole bunch of simple questions. You may not get an A in that section, but it doesn't preclude you from being hired.

      --
      -no broken link
    90. Re:One simple little function... by Fjord · · Score: 1

      Yeah, that's what I said, but I used the passive voice.

      --
      -no broken link
    91. Re:One simple little function... by Fjord · · Score: 2

      I totally agree (I say since your post said exactly what mine said :), these things are an important part of the interview but they aren't the whole of it. I'd rather have a 10 minute discussion about normalization too, but most people can't get past this question, let alone discuss the pros and cons of normalization. Easy questions may seem supid to those of us who can get them, but they are an insurmountable hill to those who have little knowledge. One thing I don't believe in is asking weed out questions that are esoteric (like another posters "where vs having" question that, while I know the answer to, I also know how commonly "having" is used).

      One thing I would add, though, is that I don't give 5-10 minutes to answer this question. It is easy enough that you should be able to answer it immediately, and the candidates that do have the right answer just state it with no problems (or ask a clarification question and then just state it). Even the ones who only get part of the answer give the answer in less than 30 seconds.

      I am going to ask "talk about normalization" to my list of questions. I already have other abstract concepts like "what is polymorphism" and that would fit nicely there.

      --
      -no broken link
    92. Re:One simple little function... by Fjord · · Score: 1

      I don't think I would use your "where vs having" question as a weeder. Even though I know the answer, I do consider "having" to be a bit esoteric. It isn't a bad question to figure out depth of knowledge, but even for a senior position I wouldn't immediately say no to the person for not knowing the answer. Mostly I guess I beleive that deep SQL knowledge is separate from being a senior developer, though.

      But if you claim to know SQL, and have been using SQL at your work, you had at least better be able to answer a simple join (of any format), with an aggregate function and a little more in the where clause. The majority of the expression is done every single day you write data access objects.

      Yeah, finding out work habits is good. I will say that the majority of the interviews I do are technical only, basically figuring out what the guy has done and if he is lying on his resume. It really does weed out a lot and keeps that first interview more mechanical. There are second (and sometimes third) interviews for what you discussed.

      --
      -no broken link
    93. Re:One simple little function... by stonecypher · · Score: 1

      > > A = A XOR B
      > > B = A XOR B
      > > A = A XOR B
      > > My data structures professor showed us that on
      > > the first day of class. That got my respect.
      >
      > No wonder he's a teacher; only a teacher would
      > gloat at a "clever" stupid trick like that; in a
      > production environment, he'd be the first one to
      > be shot, 'cause such kind of "clever" code is
      > exactly why there are so many bugs in software
      > nowadays, 'cause not all programmers will "get
      > it".

      Oh, malarky. The myth that teachers are those who cannot do will be dispelled the next time you try to teach something. It turns out to be quite a bit more difficult to explain a task you can do than to just do it, and you cannot explain something you cannot do.

      However, I feel it important to note two things:

      1) Nobody said that the teacher gloated. In fact, what the poster said was that *he* was impressed.

      2) That's not particularly clever code. It's a neat idea, but the programmer which doesn't understand what that does on sight is not worth their paycheck.

      That really reads like you read the comment from TPOP or a Scott Meyers book (actually, it matches my vague recollection of a Kernighan quote almost verbatim; there's a reason Ad Verecundiam is a fallacy, as it recalls the user's lack of comprehension; see Appendix A, first Koan, as regards Knight and the Lisp Machine.)

      Whereas I am in agreement with the general sentiment that solid code which lacks the 5% performance boost for total obfuscation is a Good Thing, there is no question in my mind that the above is a simple, obvious, useful thing. Logic operations are usually the fastest operations on a chip, and I've yet to see a CPU that would complete three copies any faster than three logic ops; moreover, this saves on temporary variable space, which in turn saves time on allocation, etc.

      The idea that the above is the source of bugs, rather than the failure to properly utilize the defense mechanisms of choice (things like data hiding, interfaces, and so forth), failure to sufficiently plan, test, and isolate code, and so forth is rankling to me. That's an ideal candidate for an inline swap function, and if you can't tell what a swap function with that code inside does, you really just shouldn't be a programmer.

      And if you're not making that an inline function, you probably shouldn't be a C programmer. :)

      --
      StoneCypher is Full of BS
    94. Re:One simple little function... by EllisDees · · Score: 1

      x + y never overflows on my computer... ;)

      --
      -- Give me ambiguity or give me something else!
  6. My experiences by IIRCAFAIKIANAL · · Score: 4, Interesting

    When I applied for my current programming job, they gave me a barrage of tests and compiled an aptitude and personality profile of me.

    It was really freaky how accurately it described me... the main point was to evaluate me with reference to the type of person that excels at my job (Programmer/Analyst with some support duties)

    They also asked for source code I had written and numerous references.

    THe problem with an interview is it's too easy to bullshit. You need to go beyond the interview, as my current employers did.

    --
    Robots are everywhere, and they eat old people's medicine for fuel.
    1. Re:My experiences by Anonymous Coward · · Score: 0

      Of course you may have also got the job because you're the only person who endured their demands. And if other people did endure, think of how much time they wasted . . .

    2. Re:My experiences by IIRCAFAIKIANAL · · Score: 3, Informative

      This was a second step...

      Here is the order:

      1) Introductory interview - they turn on their BS detectors, ask a few standard questions and then call me back later.

      2) I show up again, they give me some written tests to take home and some verbal tests on the spot. I bring sample code.

      3) They call me back one last time, give me the profile (they hire an outside company to do the tests, btw, they don't perform them). They ask some more questions - more in depth with specific technical questions.

      4) They call me and give me the job.

      The fact is, they wanted to hire somebody smart. I did not have all of the qualifications (i'm originally a hardware programmer - now I do business apps) but since I was honest and showed my potential, I received the job.

      --
      Robots are everywhere, and they eat old people's medicine for fuel.
    3. Re:My experiences by Anonymous Coward · · Score: 0

      So they wanted someone smart, but they took you instead? :)

    4. Re:My experiences by jmertic · · Score: 2

      Mine went something like this.... Round 1 - BS interview; get a feel for me and see if my personality fits there, as well as a quick check for skills ( see if I'm trying to pull a fast one ) Round 2 - More intensive interview with several people. Lots of techincal question. On the spot design of simple DB system ( give specs, design DB schema ). And some more BS... Round 3 - Get job The best move they have is the on the spot DB design; it is good to weed out the good relational DB talent from the Access/Filemaker DB folk. So far I've been the only one to get it entirely correct ( not that I find it that hard; just a few simple parent/child table relationships ). Also running candidates by other people in the building (namely managers/VPs) just to see if they can communicate is VERY important. Just as important is letting some of your development/IT staff sit in on interviews, especially if you have a small department. You want someone you can get along with well, or else productivity will go down fast.

    5. Re:My experiences by lobsterGun · · Score: 1

      If its the personality test that I'm thinking of (the Myers-Briggs test). Then it is being used in absolutely the wrong way.

      The test works like this. You answer a series of question and are scored in 4 catigories: Introverted/Extroverted, Sensing/iNtuitive, Thinking/Feeling, Perceiving/Judging.

      The idea is that these categories will help to answer the following questions:
      Where, primarily, do you direct your energy?
      How do you prefer to process information?
      How do you prefer to make decisions?
      How do you prefer to organise your life?

      The test makes ZERO value judgements. To use the test for anything other than such a classification is pure voodoo. The test won't tell if a person is suited for a particular job. It won't tell you if a person is going to come to work on time or if they will work diligently on a problem. It won't tell you if a person if honest or not. It won't say how smart the person is.

      The test is also subject to factors like mood and fatuige. Try taking the test as soon as you get up in the morning. Wait a week and try taking it right after lunch. Try taking it on an empty stomache, and right after working out. Odds are you will receive different a classification at least one of those times.

      Does this sound like the type of test that you want to base an employment decision on?

  7. ask them to pick a number by KirkH · · Score: 4, Funny

    ...if they answer "42", then hire them.

    1. Re:ask them to pick a number by uucp · · Score: 1

      Dammit!! I KNEW I shouldn't have picked 69!

      --
      Sig (appended to the end of comments you post, 120 chars)
    2. Re:ask them to pick a number by Anonymous Coward · · Score: 0

      If they answer 42, ask them whether they carry a towel.

      Mostly Harmless.

    3. Re:ask them to pick a number by kubrick · · Score: 2

      If they answer "23", invite them into your secret conspiracy.

      --
      deus does not exist but if he does
    4. Re:ask them to pick a number by JollyFinn · · Score: 1

      Damn I knew it I shouldn't of picked 65536 they simply didn't understand it hmm.
      Perhaps I should of picked
      4294967296 since they were getting someone for writing 32bit apps.

      WHY they should pick 42? I don't get it?

      --
      Emacs is good operating system, but it has one flaw: Its text editor could be better.
    5. Re:ask them to pick a number by colinleroy · · Score: 1

      Because this is The Answer (see Hitchhiker's Guide to Galaxy) :)

      --
      blah
  8. Hire only people you know by mikki_m · · Score: 2, Insightful

    You cannot go wrong, when you either only hire people you know or hire people, that are recommended by someone you know to be a worthy developer. If you don't get enough people this way, you can always ask the candidate if there is someone who can recommend them.

    1. Re:Hire only people you know by Anonymous Coward · · Score: 0

      Aren't there general ethical guidelines that recommend against this regardless if you know that they are good?

    2. Re:Hire only people you know by strtdusty · · Score: 1

      Hire someone who knows how to use commas.

    3. Re:Hire only people you know by Anonymous Coward · · Score: 0

      Dude, you need a +funny.

  9. Check there referances by oliverthered · · Score: 1


    Have you contributed to any open-source projects?

    If yes, then take a look at there work.

    --
    thank God the internet isn't a human right.
    1. Re:Check there referances by Camulus · · Score: 3, Interesting

      I have to agree whole heartedly. One of the nice things about programmers is that you don't have to guess whether they are good or not. You can look at their code or ask them to interpret some that your team has already created and critic it to see if they code in similar ways etc. Since it sounds like you are employeeing multiple programmers. Have one of them sit in with the guy and talk shop, work on functions, etc. If your guys are good programmers, they should have a pretty good BS detector. Artists have portfolios, why shouldn't programmers (PDA's aside).

    2. Re:Check there referances by Anonymous Coward · · Score: 0

      Apparently spelling and grammar aren't terribly important in your current job.

    3. Re:Check there referances by Anonymous Coward · · Score: 0

      If yes, then take a look at there work.

      Have them write the above line, if they used "there" instead of "their" return them to the minors.

    4. Re:Check there referances by krugdm · · Score: 1

      Chek they're spellun skilz...

    5. Re:Check there referances by Anonymous Coward · · Score: 0

      so apart from the spelling you can find no problems with the argument?

    6. Re:Check there referances by tmarzolf · · Score: 3, Funny

      Check there spelling.

      --

      This Sig has been depreciated.

    7. Re:Check there referances by Anonymous Coward · · Score: 0

      It would appear that you brain can only operate in a N function and can't handle NP abstraction.
      I would guess your a middle class American with an IQ no higher than 120.

      Though the middle class bit may be wrong as most Americans are brought up middle class (truth justice and the American way).

      You probably do quite well in the job you do(your at school at the moment), and manage to blag your was through all sorts of crap leaving a mess for the minions to clean up behind you but that you and your boss probably fail to notice.

      You will be quite content but overall live a boring life, never quite managing to glimpse the reality around you.

      How's your 'English' today...
      Colour
      Centre
      Fortnight
      Fag
      Bumph
      G allon
      Pint
      Ghost

      Did you read that Microsoft Settlement before you sent it of, Jesus!!

      WTF is
      'The most cursory review of my day finds several obvious examples of the price that we all must pay for Microsoft's monopoly'

      And let it be known that on the tenth day the idiot did come, and he was stupid. For now and ever more unto the lord doth the idiot strive, in his plite to write a comprehensable sentance, full of no more shit than you would find in a shit farm.

  10. Find missing number 1-10 by Anonymous Coward · · Score: 0

    Add the numbers an -55. Tada!

    1. Re:Find missing number 1-10 by zaffir · · Score: 1

      You have no idea how stupid i feel having not been able to think of that on my own.

      --
      "Upon attaching the waterblock to my penis, I began to notice that I know nothing about computers." -- JRockway
    2. Re:Find missing number 1-10 by Dthoma · · Score: 2
      You feel stupid? Look at the solution I came up with:

      1. Stick the numbers together and store this 9/10 digit long monstrosity in a string
      2. Run through the string
      3. If there isn't a 0, you're missing out 10; if you're missing out a different digit, that's your missing number

      E.g. 1, 3, 7, 9, 8, 5, 4, 10, 6 becomes 137985410. The missing digit (in the range 0-9) is 6, therefore 6 is the missing no.

      Still, it's not exactly efficient.

      --

      Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

    3. Re:Find missing number 1-10 by NoMercy · · Score: 1

      erm, 2 was your missing number not 6.

      I'm a low level guy, so take each of the numbers take 1 and shift it up by the the value, OR it into your storage register, do the same for all numbers, invert the resulting register mask off unused bits, then shift back the number until it's equal to 1 incrementing another register each time, the result in that register is the missing number.

    4. Re:Find missing number 1-10 by teetam · · Score: 3, Interesting
      1 . Create an array of size 10.
      2 . Scan through the list of numbers and stick them in their respective slot.
      3 . Scan through the array and return the element index that is empty (or invalid value, as the case may be)

      This is simple, straight-forward, easy to debug and only O(n). Why complicate things beyond necessity? With n unsorted elements, you are going to anyway arrive at an O(n) algorithm (atleast).

      Programmers don't write code to fix problems frozen in time. The requirements keep changing and the code must be easily readable and maintainable! These are more desirable features in programmers.

      In real life, in 3 months, the problem statement could be changed as - "atleast 2 elements may be missing and you have to return the highest, unless the lower missing number is 3, in which case you need to return 7".

      Will the complex algorithms proposed handle this change gracefully?

      --
      All your favorite sites in one place!
    5. Re:Find missing number 1-10 by Dthoma · · Score: 1
      erm, 2 was your missing number not 6.


      I always get those six mixed up! Er...wait. ;-)

      --

      Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

    6. Re:Find missing number 1-10 by psychomaniac8 · · Score: 1


      Depends on the application and size of n. If your n is very large, O(n) might not be good enough.

      I guess I just like performance (and bit twiddling) and that is what I tried to acheive with my solution.

      Also, adding comments in your code esp. about the limits of your function/algorithm helps with readablity problems. I would encourage applicants to add comments if they are being interviewed.

      Steve

    7. Re:Find missing number 1-10 by psychomaniac8 · · Score: 1


      Your solution is more flexible, but your O(n) solution is killing O(n) memory at the same time.

      Sorry, I'm bored. Can someone set my karma to bored?

    8. Re:Find missing number 1-10 by Anonymous Coward · · Score: 0

      Add the numbers and subtract from 55.

  11. The ultimate way. by unicron · · Score: 2, Insightful

    Remember, the worse he looks, the smarter he is.

    --
    Finally, math books without any of that base 6 crap in them.
    1. Re:The ultimate way. by eMilkshake · · Score: 1

      Looks? The worse he smells, the better he codes!

    2. Re:The ultimate way. by unicron · · Score: 3, Funny

      Manager: Who's that guy? Man he's rank! Somebody open a window or something.

      Tech: We found him digging around in the trashcans out back, sir.

      Manager: He any good?

      Tech: His revision of the notepad program became self-aware about 45 minutes ago.

      --
      Finally, math books without any of that base 6 crap in them.
    3. Re:The ultimate way. by Anonymous Coward · · Score: 0

      and the bigger his attitude is

      and i said his because if it were "her" then you definitely want "her" to dress and smell good - i dont know about u guys but i want women to look/smell good...

    4. Re:The ultimate way. by unicron · · Score: 2

      A girl that looks good and can code? Besides the girl that designed the Penny-Arcade page, who else do you know of?

      --
      Finally, math books without any of that base 6 crap in them.
    5. Re:The ultimate way. by Anonymous Coward · · Score: 0

      Any girl that looks good can either A) not code, or B) codes, but really sucks ass at it (or, a hidden C, which is writes in spahgetti code-friendly languages like PHP, or a last and final D option where they consider themselves programmers by knowing HTML).

    6. Re:The ultimate way. by Alomex · · Score: 3, Funny

      Remember, the worse he looks, the smarter he is.

      I'm a frikin' genius!!

    7. Re:The ultimate way. by Anonymous Coward · · Score: 0

      The name escapes me, but the former level designer for id software. Used to, or still goes out with John Romero. Used to work for ionstorm. She was one of the best quakers. Hmm.... She's also a former playboy model...

    8. Re:The ultimate way. by unicron · · Score: 2

      You could tell me she's the best FPS player on earth, and I won't automatically call you a liar.

      You could tell me she makes ungodly fun levels in any game and I might believe you.

      Hell, you could even tell me that she can things in assembly that would make NSA programmers cry, and I'd look into it before calling you a liar.

      But that whole thing about a playboy bunny dating Jon Romero..it's just too far fetched.

      --
      Finally, math books without any of that base 6 crap in them.
    9. Re:The ultimate way. by Anonymous Coward · · Score: 0

      a hidden C, which is writes in spahgetti code-friendly languages like PHP

      Obviously trolling

      or a last and final D option where they consider themselves programmers by knowing HTML

      Unvarnished truth.

      Hey, troll status depends on whether I agree with someone or not!

    10. Re:The ultimate way. by flonker · · Score: 2

      Why would anyone dig around in the trashcans of a tech company? It's not like they'd find anything worthwhile.

  12. My Mommy? by Master+Bait · · Score: 4, Funny
    I was interviewed at Adobe Systems a long time ago, and one of the people asked me if I liked my mother.

    --
    "Only in their dreams can men truly be free 'twas always thus, and always thus will be."
    --Tom Schulman
    1. Re:My Mommy? by Anonymous Coward · · Score: 0

      Answer: "she's dead," and start crying - they've got to hire you now :)

    2. Re:My Mommy? by Anonymous Coward · · Score: 0

      My mother and I are best friends! We even went to school together. I was a freshman and she was a senior.

    3. Re:My Mommy? by Anonymous Coward · · Score: 0

      Was she a good fuck while she lasted?

    4. Re:My Mommy? by brer_rabbit · · Score: 4, Funny

      Simple. Pull a out a nice gleaming rock and say, "I like her, don't you?"

    5. Re:My Mommy? by NanoGator · · Score: 2

      "I was interviewed at Adobe Systems a long time ago, and one of the people asked me if I liked my mother."

      I would have said "Yes, but only with Heinz 57."

      --
      "Derp de derp."
    6. Re:My Mommy? by Anonymous Coward · · Score: 0

      Funny - I interviewed there, and they made me walk across a desert, baking in the hot sun. I can't remember which desert. Luckily I found a tortoise, flipped it onto its back and watched it die, then used it for food and water, otherwise I don't know how I would have survived!

      They're tough cookies at Adobe.

    7. Re:My Mommy? by Anonymous Coward · · Score: 0

      And then Decker shot you in the head.
      skinjob

    8. Re:My Mommy? by zoobee · · Score: 1

      My Adobe experience was of a different sort...

      I was interviewd by Adobe once too, actually the second time, for which they had me wait in the lobby for 20 minutes before the interview. However, the funny thing was, that after the interview, the hiring manager told me that since I had arrived late for the interview, they'd consider someone else instead...:) I was completely dumbfounded! While at the same time some other group within Adobe had made me an offer....

      Walking through Adobe hallways, 9th floor, gave me a creepy sort of feeling, the kind of way I felt after having watched Brazil the movie!

      --
      SIG ALERT
    9. Re:My Mommy? by zCyl · · Score: 3, Funny

      I was interviewed at Adobe Systems a long time ago, and one of the people asked me if I liked my mother.

      You could always respond that you liked his better...

    10. Re:My Mommy? by DeadVulcan · · Score: 3, Funny

      I was interviewed at Adobe Systems a long time ago, and one of the people asked me if I liked my mother.

      Did it go like this?

      Interviewer: Describe, in single words, only the good things that come to mind about... your mother.

      You: My mother?

      Interviewer: Uh huh.

      You: Let me tell you about my mother.

      --
      Accountability on the heads of the powerful.
      Power in the hands of the accountable.
    11. Re:My Mommy? by Elwood+P+Dowd · · Score: 2

      Some places ask if you'd ever consider going skydiving. Apparently people that answer "yes" to that question are less likely to steal from their employers.

      --

      There are no trails. There are no trees out here.
    12. Re:My Mommy? by Anonymous Coward · · Score: 0

      Hmmh. This is an IP infringment... finnish army has been using that as standard shrink test question for years. I wonder if they also asked if you've wanted to become florist when you grow up?

    13. Re:My Mommy? by Axe · · Score: 2
      What if I have a skydiving license?

      Actually - I found that adding a list of hobbies to my resume did help me quite a bit.. Takes attention away from stupid trick question, and does not provoke rude behaviour toward me..

      Skydiving, ice climbing, boxing, etc...
      ;-)

      --
      <^>_<(ô ô)>_<^>
    14. Re:My Mommy? by Anonymous Coward · · Score: 0

      I bet Patrick Swayze lied through his teeth for that bank teller job.

  13. performance not measuring up? by Jucius+Maximus · · Score: 3, Funny
    Were they reading slashdot at work when they should have been programming? I think that this could have been a drain on productivity and perhaps justification for you to discipline them because [...] uh, wait a sec a minute ...

    /me closes the browser window

    1. Re:performance not measuring up? by Jucius+Maximus · · Score: 2
      "Unfortunately, we've been burned a couple of times by people whose performance didn't measure up to what we expected from the interviews. So I'm wondering if other people wanted to share their interviewing tricks - how do you find out if someone is a good programmer?"

      By 'performance not measuring up,' do you mean that they simply did not know how to build what you wanted to build? Were they not fast enough? Did they not build stuff according to your specifications?

      Please explain how you determined that they were not 'measuring up to standards' !

  14. Show me the money.... by PGillingwater · · Score: 5, Insightful
    Well, as someone who has programmed since 1972, and who regularly hires programmers, I recommend the following:

    Ask them if they write code as a hobby

    What Open Source projects have they contributed to?

    Ask them to bring some samples of source code they've written, and then do a walk-through

    Ask them to solve a simple exercise with pseudo-code, then explain which language they would choose to implement it and why

    Get them to find a known bug in some code that matches your "house style" (describe the unintended behavior)

    Talk to their previous associates and boss....

    YMMV....

    --
    Paul Gillingwater
    MBA, CISSP, CISM
    1. Re:Show me the money.... by poot_rootbeer · · Score: 5, Insightful

      What Open Source projects have they contributed to?

      Bad. Leading question.

      It is likely that a coder who contributes to Open Source projects will have a true passion for coding, and probably producers better code for it, but it's possible to be an excellent coder and not participate in OSS projects.

      In fact, it's possible to be an excellent coder while being morally opposed to the entire concept of Open Source...

    2. Re:Show me the money.... by dollargonzo · · Score: 3, Insightful

      exactly. in fact, the kind of programmers that are likely to contribute to OSS projects are probably those that CAN'T find a job so they contribute in their spare time. the more satisfied programmers were with their previous jobs, the more likely that they would not have participated in outside (ala OSS) projects

      --
      BSD is for people who love UNIX. Linux is for those who hate Microsoft.
    3. Re:Show me the money.... by Reality+Master+101 · · Score: 2

      What Open Source projects have they contributed to?

      With all due respect, that's really an idiotic question for evaluating someone's competency. I've release a certain amount of code the public domain, but I have two priorities in my life:

      1. My family
      2. Programming for money

      Sure, if my money was taken care of, I might work on an open source project for fun. But to penalize those of us who have a life and/or dedicate ourselves to producing a product for money is really asinine.

      --
      Sometimes it's best to just let stupid people be stupid.
    4. Re:Show me the money.... by Anonymous Coward · · Score: 0

      What Open Source projects have they contributed to?

      How would you respond to, "due to no compete and intellectual property clauses in my previous contratcs I haven't"

    5. Re:Show me the money.... by DaveV1.0 · · Score: 2, Insightful

      If the programmer has contributed to an OSS project, then the interviewers can go look at the code as an example of the quality, etc. of work created.

      If the programmer hasn't contributed, then no big deal.

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    6. Re:Show me the money.... by Vlad_the_Inhaler · · Score: 1

      That is making some assumptions.
      I hired 2 a couple of years ago to work on a mainframe, supporting a package vaguely like Oracle. Only your last suggestion would have been at all feasable since I did not know that package myself.
      For the record, one was useless and the second was his replacement. The replacement was first class.
      From the first one, I learnt to find out how the candidate's general knowledge of the OS was; the second one taught me a lot of my early knowledge of Linux.
      Unintended side-effects :)

      --
      Mielipiteet omiani - Opinions personal, facts suspect.
    7. Re:Show me the money.... by DesignShark · · Score: 1

      Then it is obvious that you would be taking off as soon as the next person waves money in your face. Therefore you were not worth all of the effort anyway.

      If you do not sow back into the community, as well then you probably are too selfish to fit on any team.

      1. God
      2. family
      3. my employer (because If I take care of them, then they take care of me)

    8. Re:Show me the money.... by dschuetz · · Score: 5, Insightful

      This seems about the best answer I've seen so far. But there are still some shortfalls that I think might be problematic.

      Coding as a hobby definitely demonstrates a personal interest in programming, and a willingness to spend the time (my own time, no less) to learn whatever it is I'd need for that hobby (and, hopefully, the ability to use what you learn).

      Samples of source code are sort of good, but the applicant might only be able to bring "hobby code" from home (because the 'good stuff' belongs to his current company), and that probably won't be as well refined as the stuff you do professionally. Though it also might be more cool, elegant, or just innovative, depending on what work's like (you're leaving, remember?)

      Actually going to a whiteboard to solve a problem seems about the best way to gauge an applicant, in my not-so-complete-interviewing-experience. You're getting the most real-world example of the applicant, with peers, discussing and analyzing a problem, then sketching an outline for how to solve it. The details (which language, what modules, should you use pointers here, etc.) seem (to me) to be irrelevant. You're hiring someone to solve problems -- so, solve a problem, with the team, just like you would on a normal work day.

      However, a couple of other suggestions seem like they wouldn't work. Asking about open source involvement just measures someone's interest in the open source community. Plenty of people (including myself) do a lot of programming at home, for fun, on projects that are primarily of interest to no-one but the applicant.

      Finding a bug in sample code might work, if it's a small enough sample (like a simple routine), but there you're treading too close to testing for book knowledge ("Ah! You forget that the squiggle goes on the LEFT of the arrow!"), and book knowledge generally flees an interviewee at warp speed as soon as they set foot in your building. (Plus, that's why we *have* books, and man pages, and CPAN, and....)

      Finally, talking to associates and bosses is tough, especially in a tight job market where someone might be afraid to even *suggest* that they're unhappy, for fear of being laid off and replaced with someone desparate for work off the street.

      I don't know. I hate interviewing people. I hate *being* interviewed even more. I'm just not sure there is a good way.

    9. Re:Show me the money.... by Dthoma · · Score: 2
      • Ask them if they write code as a hobby
      • Ask them to bring some samples of source code they've written, and then do a walk-through
      • Ask them to solve a simple exercise with pseudo-code, then explain which language they would choose to implement it and why
      • Get them to find a known bug in some code that matches your "house style" (describe the unintended behavior)

      ...and if they enjoy doing all of the above, then yes, they're probably a good programmer.

      --

      Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

    10. Re:Show me the money.... by gorilla · · Score: 2

      My dad has been programming since 1966, and is an excellent programmer with a huge knowledge of concepts, algorithms and different programming languages, but he has never written any code for a hobby, nor contributed to open source. He sees programming as something he's paid to do, not a hobby. I really don't think either of these questions are likely to map well to good programmers.

    11. Re:Show me the money.... by Reality+Master+101 · · Score: 2

      Then it is obvious that you would be taking off as soon as the next person waves money in your face. Therefore you were not worth all of the effort anyway.

      So, in other words, you want to find people that you can pay less than market value, and will be so entrenched that they won't leave even if better offers come along?

      Yeah, that sounds like a great place to work.

      How about paying your employees what they're worth and then you don't have to worry about others coming along and waving money? Either that, or make the environment good enough so that money isn't a lure. In other words, if you have to depend on the guilt from "employee loyalty" to keep your employees around, you have bigger problems than what we're talking about.

      Sheesh, to blame the employee for keeping their eyes open for better opportunities is just insane.

      --
      Sometimes it's best to just let stupid people be stupid.
    12. Re:Show me the money.... by elmegil · · Score: 1

      You're kidding yourself. Your employer will only take care of you so long as they can make more money with you than without you. And sometimes the factors that plug into that equation are completely beyond your control. Employer/employee loyalty is good, but don't fool yourself that the corporate machine cares.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    13. Re:Show me the money.... by SirSlud · · Score: 0, Flamebait

      >in fact, the kind of programmers that are likely to contribute to OSS projects are probably those that CAN'T find a job

      And you got an Insightful for this crack-head thought? Can I apply this to sports please? Obviously, the best athletes never engage in anything remotely outside of their chosen sport and league, right? And the best engineers never use their engineering skills outside of work. And doctors never offer their knowledge pro bono to friends and family outside of work.

      God damnit, if I met a programmer who didn't do any programming outside of work, I'd assume he *didn't* like coding, he just liked the salary.

      Also, please provide any collolation between job satisfaction (which depends, usually, on *what* you are building, in what environment, with who) and programming skills (your ability to implement a solution based on specs). Can't think of too many programmers who hated their jobs because they were bad programmers. Ironically, bad programmers tend to be much less aware of their inabilities and thus don't read so much into meeting their own personal goals as it relates to job satisfaction. The programmers we fired tended to be much more blissfully ignorant and happy with their position despite their lack of skills than us mainstays, who are much more emotionally tied to the success of our solutions and engineering and thus are less satisfied with our jobs when our environment conspires against us.

      And so we are left with: KDE/Kernel/GNOME/etc/etc/etc developers obviously can't get a job in programming, so they just develop OSS projects, right? (Of course, you also conveniently forget to point out that there are tons of developers for whom developing OSS _is_ their job.)

      --
      "Old man yells at systemd"
    14. Re:Show me the money.... by DesignShark · · Score: 1

      I did not say that I would pay less that market value. I would definitly try to pay someone what they are worth, or at least make the place so enjoyable that you would never want to leave, However there are people that just want the money. Loyalty, experience, stability, job satisfaction mean nothing to them. If you are keeping your eyes open, then either your desire is just money, or something else it wrong. My guess is the former.

    15. Re:Show me the money.... by Desperado · · Score: 3, Interesting

      Paul,

      I've been in this biz only a little longer than you have and agree with your approach.

      A couple things I've noticed about the better programmers I've worked with/hired are:

      Most play a musical instrument of some kind.

      Most enjoy and are good at strategy type games such as chess and go.

      Left handedness seems to be higher than in the general population.

      They do crossword puzzles.

      John

      --
      If you're not living on the edge, you're taking up too much space.
    16. Re:Show me the money.... by Pfhreakaz0id · · Score: 2

      BS... maybe If I'm being hired to work at a company that releases Open Source software. I agree with the poster, I don't give a code. Period. It's my work, someone wants code, they pay for it and I don't feel one smidgeon of guilt.

    17. Re:Show me the money.... by terminal.dk · · Score: 1

      What I have been doing is to ask subjective questions regarding former projects / programming.

      Ask them what they liked about the task, what they didn't like, what problems did they have, choices made etc. You should also ask into the persons role in previous projects - He might not fit the role he will have in your company.

      A strong personaliuty often shows that a person has drive and energy, and their problem solving skills can also be seen if you ask questions that can't be answered. Try to ask how they would solve a type of task like what they will be hired for. Have them write som pseudo code on paper. Surprisingly many can't, or are too afraid to make mistakes to be worthy of an IT job.

      Also did interviews in the 3rd world. Man was it hard to find good people there. So many was not having independent thoughts and initiative. They could not code, but coould cite books on the subject, down to spelling errors. So the only way to test them is to try to have them solve problems.

      All the above, including the coding part holds true for all IT jobs, including DBA and SysAdm. They need to be able to write some simple programs / queries.

    18. Re:Show me the money.... by rw2 · · Score: 2

      " I really don't think either of these questions are likely to map well to good programmers."

      People people. The point isn't that *all* good programmers show those traits. The point is that people who show those traits are likely to be good programmers.

      Though anyone who can't grasp the logic of the questions is likely to be unable to program well... ;-)

    19. Re:Show me the money.... by ch-chuck · · Score: 2, Insightful

      the kind of programmers that are likely to contribute to OSS projects are probably those that CAN'T find a job

      OTOH - they might be the kind of programmers that are SO GOOD that they can no only hold down a job, but contribute to public / community projects that they're interested in in their spare time. That is, an employer specifies what your going to work on, but they may have other personal interest persuits, as a self educational hobby and don't mind sharing it.

      Jeez, there's a LOT of ppl with time and talent on their hands who do community volunteer work at Hospitals, Churches, schools, scouts, election commitees, etc. - I would be leery of anyone who does absolutely nothing w/o getting paid for it. Employers used to expect some kind of participation in Lion's clubs etc just to help promote a friendly, responsible image, instead of looking like greedy bastards.

      --
      try { do() || do_not(); } catch (JediException err) { yoda(err); }
    20. Re:Show me the money.... by tiedyejeremy · · Score: 1

      effort? what effort? the effort of trying to conceal the fact that the programmer is being paid less than market value.

      and what does the God, family, employer ref have to do with it? How does this help to choose the best programmer?
      Finally, the correct question would have been "To what open source projects have they contributed?" -- you should never end a sentence with a preposition.

      --
      Anything you say will be held against you. ... "tits"
    21. Re:Show me the money.... by DesignShark · · Score: 1

      I guess when you are used to the mercenary life style you get that point of view. The places where I worked, have all been incredible places of learning, and comraderie. I guess job satisfaction means nothing to you. I would rather keep an employee that I enjoy working with and make ok money, then work with a steel cold employees that makes me more. This of course is said within reason.

      Too many of the steel cold mercenaries caused the super inflated salaries of the dont com boom, and they were not even worth what they were paid. (who do you think got cut first?)

    22. Re:Show me the money.... by Reality+Master+101 · · Score: 3, Insightful

      If you are keeping your eyes open, then either your desire is just money, or something else it wrong. My guess is the former.

      I'm astounded by this attitude. Are you seriously suggesting that there is something wrong if your employees keep their eyes open? Are you seriously suggesting that if an employee is happy working for you, then there is no possibility of a better job coming along that might be more in line with what they ultimately want to do?

      Personally, I don't feel this need to hold employees in bondage and take it as some personal insult if they happen to find another job that is better for them. I don't know; maybe I'm just weird but I'm happy for people personally when they are able to find something better. Sure, it's a pain in the ass to replace people and often I wish they would stay, but I just don't feel this greedy need to hold onto every employee at all costs, and think "that ungrateful, disloyal bastard!" if they happen to find something better.

      To be honest, it sounds like you (whether you think you do or not) look at employees as chattel who shouldn't dare to think their might be something better than what you offer. Maybe you should expand your outlook a bit and think that maybe employees are human beings with their own disires and ambition, and your job offering may not match what they ultimately want.

      --
      Sometimes it's best to just let stupid people be stupid.
    23. Re:Show me the money.... by pere · · Score: 1

      With all due respect, you are free to choose your priorities.

      Contributing to open source projects is about team work, and it is about giving back to a community.

      If someone in an interview said that they never contributes to open source project because they dont get any fast cash that way, it would not give me a good impression. Is this a person who only helps out his collegues when he sees short time personal benefits in it as well? If Im looking for team players, open source involvement would be definately be positive (but of course not the only thing to look for).

    24. Re:Show me the money.... by LordNimon · · Score: 1
      if I met a programmer who didn't do any programming outside of work, I'd assume he *didn't* like coding, he just liked the salary.

      That's bullshit. What if after spending 8+ hours straight in front of a computer, he wants to spend his free time with his wife and kids? Perhaps he has lots of other hobbies, and he gets enough programming in his day job. I've been programming for 25 years, and I do not write code at home or anywhere outside the office. Do you think a doctor likes examining sick people after work?

      --
      And the men who hold high places must be the ones who start
      To mold a new reality... closer to the heart
    25. Re:Show me the money.... by Anonymous Coward · · Score: 0

      Guess you won't get the job.

    26. Re:Show me the money.... by acebone · · Score: 1

      Hooray !! That's me !!

      Eh... except I don't do crossword-puzzles

      --
      Check out my PHP Url Validator
    27. Re:Show me the money.... by Amazing+Quantum+Man · · Score: 5, Funny

      They do crossword puzzles.

      With a pen, not a pencil.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    28. Re:Show me the money.... by DunbarTheInept · · Score: 2

      Do you think a doctor likes examining sick people after work?

      Do you think a doctor that donates some of his time to a charity is doing so because he is incompetent and can't hold down a real job? That was the sort of implication put forward by the grandparent of your post, but for programmers instead of doctors. Do you think a scientist who publishes his findings in a scientific journal instead of selling them to a company is doing so because his findings aren't worth anything? That's the kind of insulting crap the parent of your post was responding to.
      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    29. Re:Show me the money.... by Manitcor · · Score: 2

      Though not all people agree with this and many companies dont excercise this. IMHO I don't believe what someone chooses to do with thier time outside of work should be a consideration for thier position (besides major crimes and drug use of course).

      A person should not get a hand up becasue they participate in a paticular group, club or project outside of work. Nor should it count aginst them becasue they choose not to participate.

      I personally have never contrubuited to OSS projects (though I have considered it). this does not mean that I do not program enough or that I don't enjoy it I have many personal projects that I am working on.

      Also in the past few months I haven't coded much outside of the office I feel that there are many more things to do than to spend another evening in front of the screen.

      --
      "Don't mess with him, he taunts the happy fun ball."
    30. Re:Show me the money.... by Reality+Master+101 · · Score: 2

      If someone in an interview said that they never contributes to open source project because they dont get any fast cash that way, it would not give me a good impression.

      I think your zealotry is overriding your good sense here. Let's look at some slightly different questions along the same lines. Are they still reasonable?

      1) Do you vote Democrat? (because we know Republicans are selfish non-team players)

      2) Are you close to your family? (because we know if someone isn't close to their family, then they probably can't form relationships with anyone else, like employees)

      3) Do you and your wife argue a lot? (because if he can't get along with his wife, how is he going to get along with other people?)

      And dare I say it...

      4) Are you black? (because we know black people are lazy)

      You're going to think some of these are extreme and/or irrelevent, but I think if you think it through you'll see that you're applying a standard that is irrelevent to what you're trying to screen for, just like all of these cases.

      --
      Sometimes it's best to just let stupid people be stupid.
    31. Re:Show me the money.... by SirSlud · · Score: 2

      Oops! Sorry, I forgot all programmers live lives just like you, so its entirely suitable to make sweeping generlizations like you did.

      Yes, I did to (in saying that if you didnt program outside of work, you must not like coding), but it should be somewhat obvious that if you dont have *time* to code outside of work, because you have family to spend time with, or other hobbies, sure .. moot point. But to say that simply contributing to OSS means you arn't a good coder is going to produce a hell of alot of false positives.

      I see what you're saying, but I think that time constraints that certain idividuals deal with are fairly obvious I willingly admit that I should have noted that in my generalization. Your corrallary, that OSS contibuters are bad programmers and not good programmers who dont have fam yet, or lots of other hobbies (or arnt contributing to OSS on the job), is somewhat more damning of people who would be fully capable in programming positions.

      --
      "Old man yells at systemd"
    32. Re:Show me the money.... by dollargonzo · · Score: 1

      funny thing is that i didn't mean to imply they were bad programmers, just that they weren't lucky and didn't find a job so they spend time instead on OSS projects

      --
      BSD is for people who love UNIX. Linux is for those who hate Microsoft.
    33. Re:Show me the money.... by DunbarTheInept · · Score: 2

      The original point was to find a good potential programmer employee, what should be asked in the interview. Ideally you want someone who even if they didn't do if for a job, would still be writing code anyway because they like it. The question about stuff written outside of work is a test to see if you have that sort of person in front of you. I wouldn't trust a programmer who does no programming for himself on his own time, just as I wouldn't trust an auto mechanic who has never popped the hood of his own car.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    34. Re:Show me the money.... by banda · · Score: 3, Insightful
      So applicants showing those traits are a subset of the set of (likely) good programmers.

      Wouldn't it be more effective to identify the superset, thus ensuring that you don't overlook good programmers who don't meet your more restrictive criteria?

      Identifying the subset exposes you to the following risks:

      Your subset includes only the least qualified of the applicants

      Your subset doesn't identify any candidates at all

      You're mighty quick to attack other people's logic skills, there, partner.

    35. Re:Show me the money.... by guttentag · · Score: 2
      It's possible that the question is designed to help the employer keeps tabs on what open source projects the programmer contributes to (if any). If he is hired and makes any contributions during the period he is employed, the employer can swoop down and declare the project (or parts of it) company property.

      So the smart answer may be, "I don't contribute to open source projects. I prefer to reserve all my time and effort for improving my employer's profits. By the way, do you give cubicles to programmers? At my last job I had to share a folding table in the hallway with four other guys."

    36. Re:Show me the money.... by Anonymous Coward · · Score: 0

      ... and you couldn't program to save your life. Otherwise, that's you alright!!!

    37. Re:Show me the money.... by MisterBlister · · Score: 3, Insightful
      If you don't like the GPL, you don't get hired.

      Haha, like anyone with a brain would want to work for a company with that attitude? Especially since you'd have no money to pay them since everyone knows you can't make money by giving away free software!

    38. Re:Show me the money.... by DunbarTheInept · · Score: 2
      Speaking of hobby code written at home, the poster said:
      [...] and that probably won't be as well refined as the stuff you do professionally.
      That would depend on the code standards where you work. At a previous place of employment I was forced to write code in such a manner that I would be embarassed to show it to a potential employer as an example of "my" work,. In my opinion, work that was truly mine wouldn't have looked so awful as what the coding standards forced me to put out at that job. (The coding standards had been written at a time when a lot of the coders in the company had just switched to C from COBOL and FORTRAN, and were displeased with the shoot-yourself-in-the-foot-ness of C. So they wrote standards that tried to make their C code look a lot like the languages they were used to, instead of letting C look like it's supposed to. They also disallowed certain constructs that existed in C but not in their former languages. (such as the trinary operator: expr ? expr : expr, turning the elegant "printf( "This location contains %d %s.", numP, numP > 2 ? "pallets" : "pallet" );" Into the unnecessarily verbose: "if( numP>2 ) printf( "This location contains %d pallets", numP); else printf( "This location contains 1 pallet");

      Anyway, that rambled a bit. The point is that becuase of company coding practices, prefessionally produced code is not really indicative of the programmer's own style, and that can be detrimental as well as beneficial, depending on the standards in question.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    39. Re:Show me the money.... by Prior+Restraint · · Score: 1

      you should never end a sentence with a preposition.

      "Ending sentences with prepositions is something up with which we must not put."
      --Winston Churchill (I think)

    40. Re:Show me the money.... by Ironica · · Score: 2

      Hm. Maybe I should tell my friends who are graphic artists that they should put away their portfolios based on this line of reasoning...

      It's a very common practice in fields that require not just training but also skill and (gasp) talent to request to see prior work before hiring. Contrary to popular belief, not just any monkey can code properly. If you don't want to show samples of your work before being hired, don't be shocked if you don't get an offer.

      --
      Don't you wish your girlfriend was a geek like me?
    41. Re:Show me the money.... by Anonymous Coward · · Score: 0

      Some of us are legally restrictred from showing off code from projects.

      It isn't like producing a magazine cover and saying, see, I produced this...

    42. Re:Show me the money.... by Kintanon · · Score: 2

      I only do the occasional crossword, usually the ones in newspapers contain 3-5 really irritating pop-culture items that I don't know... I prefer wordsearches, doing them on a clock, give myself 3-4 seconds per word and see how well I can do.

      Kintanon

      --
      Check out JoshJitsu.info for Brazilian Ji
    43. Re:Show me the money.... by Ironica · · Score: 3, Informative

      I don't think doctors usually see patients for fun after work hours. I do, however, think that doctors talk to their friends and family about medical concerns, and help them see that they're getting appropriate care... except possibly for doctors who are incompetent or really hate their discipline (maybe they only went to med school for the money).

      Fact is, while certain factors (such as marital status, religion, age, etc.) cannot by law be considered as factors in hiring, employers in all fields *do* ask about professional association memberships, related volunteer work or internships, and so on. In some fields, if you haven't done any work for free, there's no way in hell you're going to get paid for work (see: Entertainment Industry for further information). The fact that someone has not contributed to any Open Source projects does not mean they are a bad programmer, but those that have probably will be more enthusiastic about their work, and have more easily verifiable skills.

      --
      Don't you wish your girlfriend was a geek like me?
    44. Re:Show me the money.... by Pfhreakaz0id · · Score: 2

      you misunderstood. I will gladly show example code I've written, but the point was show Open Source projects you've worked on. I always keep source I worked on.

    45. Re:Show me the money.... by Ironica · · Score: 2

      "Though anyone who can't grasp the logic of the questions is likely to be unable to program well... ;-)"

      Actually, anyone who can't grasp the logic of the questions is likely to be unable to HIRE well. You can program quite well without any understanding of how to find good coders... which is probably more or less how this thread got started.

      --
      Don't you wish your girlfriend was a geek like me?
    46. Re:Show me the money.... by cduffy · · Score: 3, Insightful

      And if you see writing code in your spare time as "another evening in front of the screen", you probably aren't a Real Programmer (or whatever terminology one wishes to use to refer to those with true mastery). That's not horrid -- there are lots of folks who write good code from 9 to 5 and then stop, but of those whom I count among my betters, a great many of them still do all-night hack sessions after work -- despite having a family and kids and all the obligations that entails. Not that late-night hack sessions are a requirement either -- but a love for the work is, and contributions to OSS are one way to help measure that.

      Of course, there are also lots of folks who do contribute to OSS and aren't quite godlike in their skills (yours truly among that group).

      I'm not going to not hire someone because they haven't contributed to OSS on their own time -- but it's still a reasonable question to ask, as long as it's only one indicator within a larger evaluation process.

      Finally, let me mention that most of the open source work I've done has been while employed. Indeed, I'd estimate that over half of my contributions to open source have been done within the context of my job (my present employer is in the embedded Linux business). Most of the major contributors to Linux/MIPS, Linux/PPC and gdb (and probably many other projects) also do so professionally, not on their spare time and certainly not on account of being unemployed.

    47. Re:Show me the money.... by Reality+Master+101 · · Score: 2

      I wouldn't trust a programmer who does no programming for himself on his own time, just as I wouldn't trust an auto mechanic who has never popped the hood of his own car.

      But see, this is your own prejudice coming through. I'm a pretty damn good programmer, but I don't do that much programming for fun, because I have a life. I've been doing it long enough that my other hobbies (including my family) are just plain more interesting. Now, I should say that early in life I used to do a LOT more programming for fun, but there are just other things in life.

      And yes, I would trust an auto mechanic who gets enough grease at work that they don't feel like fixing their own car. That issue is orthoginal to whether they are competent or even great mechanics.

      --
      Sometimes it's best to just let stupid people be stupid.
    48. Re:Show me the money.... by cheese_wallet · · Score: 2

      I think the subset approach is the best given the current market. Programmers are everywhere. The market is flooded. Employers can be very choosy, and it is to their benefit to be that way.

    49. Re:Show me the money.... by Anonymous Coward · · Score: 0

      In fact, it's possible to be an excellent coder while being morally opposed to the entire concept of Open Source...
      WOW..glad someone finally sees this, i fall intothis catagory:)

    50. Re:Show me the money.... by leshert · · Score: 2

      Yes, I did to (in saying that if you didnt program outside of work, you must not like coding), but it should be somewhat obvious that if you dont have *time* to code outside of work, because you have family to spend time with, or other hobbies, sure .. moot point.

      Trouble is, at least in the U.S., you're not allowed to ask questions that would tell you if the candidate doesn't contrinute to Open Source projects because he spands time with his family, other charities, other hobbies, etc.

      Your point is valid--I've seen some really bad contributions to Open Source projects, and I've known some truly talented coders who didn't participate in them.

      Maybe the correct approach is:
      1. Ask "Do you participate in any open source projects?"
      2. If true, after the interview, download the projects, use cvs to find out what the person actually did, and judge them on the merits of their code.

      (Not that code quality is the sole criterion for hiring somebody, of course, but this approach might be just about the only way to get some non-trivial sample code to look at).

    51. Re:Show me the money.... by bluGill · · Score: 2

      Hmm, one of my former co-workers concluded it was impossibal to be both a good programer and a good musician. That isn't to say you can't do both, but you cannot be good at both. He was in his late 50s, and has been a programer all his working life, so he has plenty of expirence.

      Note however that being good different from just playing. I'm not sure where though, other than I play but am not good.

    52. Re:Show me the money.... by Ironica · · Score: 3, Insightful

      Wouldn't it be more effective to identify the superset, thus ensuring that you don't overlook good programmers who don't meet your more restrictive criteria?

      Not usually.

      Logic is all well and good, but for those who haven't noticed, it tends to break down a bit where human beings are concerned. When we are in a position of evaluating other people, we necessarily rely on certain prejudices based on our prior experiences or information gained from other people. In some cases, the prejudices are unjustified (eg: I don't like people with beards because I was mugged by a guy with a beard once) and sometimes, they are justified (eg: among the people I've worked with over the years, the ones who are willing to correct me tend to be more intelligent and resourceful). Regardless of the genesis of the prejudice, however, you will *always* eliminate some people who otherwise fit your criteria.

      The reason we do it this way is simple: because we just can't cope with too much information. The nature of our brains is such that we *have* to simplify input in order to analyze it. We seek patterns (that sometimes aren't there), we prejudge based on past experiences (that sometimes aren't valid), and so on. This is a *human* thing, not a logic thing.

      Ideally, I suppose, we should sit down with a committee, come up with all the possible criteria, weight them for a particular position, give the prospective applicants a detailed questionnaire based on the list, enter it all into a database, and have a computer sift through it all to find out who is the BEST applicant for the position. Unfortunately, we're likely to forget something... and that approach doesn't leave room for the applicant to add some surprising detail that puts them over the top.

      So until our brains are significantly augmented, we're going to continue using "illogical" methods to cut down the amount of information we use in making decisions. Address complaints to the psychology department of your local research hospital.

      --
      Don't you wish your girlfriend was a geek like me?
    53. Re:Show me the money.... by zCyl · · Score: 2

      Uuuhm, I've met a lot of left-handed chess-playing musicians in my life who couldn't program their way out of a DOS prompt. Your metric doesn't strike me as having a very high predictability value.

    54. Re:Show me the money.... by Prior+Restraint · · Score: 2

      I agree about the goofy coding standards, but they still could've written it better than that.

      /* forgive any mistakes, I've not coded in C in 5 yrs */
      char sp = '\0'; /* singular or plural? */

      if (numP > 1) /* I assume you meant 1, not 2 */
      sp = 's';

      printf("This location contains %d pallet%c", numP, sp);

      Of course, you could be in my current situation, where there are no standards to speak of. Nothing brightens my morning more than to bring up some code and see no fewer than four different bracing styles.

    55. Re:Show me the money.... by Desperado · · Score: 2

      zCyl,

      You're right it probably doesn't have very good predictability value for programming aptitude.

      However I've found that of the programmers I've known the better ones have one or more of these traits. Your mileage may vary.

      John

      --
      If you're not living on the edge, you're taking up too much space.
    56. Re:Show me the money.... by Anonymous Coward · · Score: 0

      The New Hackers Dictionary mentions being good with an instrument as a frequent (coding) hacker trait. I think they would have some basis for that:)

      -Lars

    57. Re:Show me the money.... by elmegil · · Score: 2
      Oh please get off your goddamned high horse.

      Guess how many workplaces I've been in my entire adult career? 2. Guess what? They've been "incredible places of learning and cameraderie". But that had to do with my Coworkers not my employer. My employer in the first case couldn't care less as long as they had a warm body in place willing to put up with the stresses of a University Sysadmin position and 24x7x365 oncall for a pittance salary. My employer in the second case again as a corporation doesn't give a damn either. My managers, my coworkers, are all fantastic people to work with, and we cover each others backs. But if it costs the corporation more money to keep me than to lose me, I have no illusions that I'll be gone, and all the happy management warm fuzzies in the world will not change that.

      I have no "super inflated salary of the don't com boom". And as for the biggest super inflated salaries, well, I can't say I've seen a lot of CEO's taking pay cuts lately. (I'm talking real pay, not over-the-top options-inflated bonuses).

      Don't confuse loyalty to your work group (which does count for a lot) with loyalty to "the company". Of course you want to do what's in the company's best interest, because that's what having a job is about. But you have to keep your own best interest ahead of that, and that includes being ready, willing, and able to move on when you need to, instead of shackling yourself to a sinking ship because of misplaced loyalty that is never going to be returned. Forgetting "loyalty" and leaving my first job was one of the best things I ever did for my career, my family, my mental health, and my quality of life.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    58. Re:Show me the money.... by rw2 · · Score: 2

      Wouldn't it be more effective to identify the superset

      Yes. Tell me how to do that.

      I find that this subset is quite accurate. It would be niave of me (or anyone) to use it as the only criteria, variety is the spice of life and all, but it is quite broadly useful.

      If someone can tell me how to, with the same accuracy, identify the superset then cool, I'm all ears.

      I don't find that to be a trivial exercise though. :-)

    59. Re:Show me the money.... by roman_mir · · Score: 2

      I wrote some simple games and programs a while ago and released them as open source, today I do not have time to write anything for myself, I am quite busy with work and my girlfriend and home problems. So what, does it mean I do not like coding? I've being coding since 12, my grand mother bought me a programming book and I liked it so it became my hobby (unfortunately I did not have a computer, so I was tracing my code on paper.) Later on I found out I could actually make money this way, finished university and am working in business for 5 years.

      So I do not participate in open source projects currently, bite me.

    60. Re:Show me the money.... by pere · · Score: 1
      I think if you think it through you'll see that you're applying a standard that is irrelevent to what you're trying to screen for

      Sorry, but you are missing the point here. There is no point in asking a person in an interview if he is a good team player. Everybody will answer "yes". You have to look for other things.

      Sure, persons that are only interested in watching TV can be good team-players as well, but I would favor a socially active person (if I was looking for someone to work in a close team).

      I have now idea if you are a good team player or not, since I dont know you. So dont take this personally:

      If someone (with programming skills) have used OS programs for a long time, without contributing anything back (no patches, no bugreports, nothing), it is fairly obvious to me that this is not a good quality for the new programmer for my team. (Of course its not very important, but it is relevant, and definately a piece in the big puzzle)

    61. Re:Show me the money.... by vsync64 · · Score: 1
      *sigh*

      Trying out new albums on EMusic and loading them onto my player is about the extent of my musical prowess.

      I play the occasional game of chess and checkers and get beaten every time. I've never tried Go.

      I'm right handed.

      Crossword puzzles annoy me, and my girlfriend just trounced me at Scrabble.

      I... I think I'm good, but no one hires me. Oh well.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    62. Re:Show me the money.... by tetsuji · · Score: 1
      Heh. For my first job interview as a programmer, the final question in the interview was my prospective employer showing me a chessboard and asking me to name the opening he had set up.

      It was the Queen's Gambit. I got the job.

    63. Re:Show me the money.... by KILNA · · Score: 1

      Yes, but they all own Macs.

      --
      Error: PANTS NOT FOUND. Press <F1> to continue.
    64. Re:Show me the money.... by Death_Angel · · Score: 1

      *laugh* I play four musical insterments I am good at Chess, go and a lot of other strategic games And I love crosswords. The only thing I am not is left handed... yet I don't understand anything of programing and my boyfriend (vsync64) is a good prgrammer.

      --
      Bond girl numero uno!
    65. Re:Show me the money.... by Tony-A · · Score: 2

      ...concluded it was impossible to be both a good programer and a good musician.
      There's a skill set common to both that's something of a scarce resource. If you concentrate on one, you lose concentration on the other.

    66. Re:Show me the money.... by Anonymous Coward · · Score: 0

      Fortune 500 company. 200,000 employees. Billions of dollars in sales.

      You probably dream about owning one of our products.

      And no GPL, no hire.

      Most programmers provide services to real companies, you know. They don't sell software.

      In a world where Free Software is going to eat your lunch, working for a company that sells software is a sucker's bet. Enjoy the unemployment line.

    67. Re:Show me the money.... by cduffy · · Score: 2

      So the smart answer may be, "I don't contribute to open source projects. I prefer to reserve all my time and effort for improving my employer's profits. By the way, do you give cubicles to programmers? At my last job I had to share a folding table in the hallway with four other guys."

      Let's just say that you don't want to give that answer if you're interviewing with me.

      I don't work to improve my employer's profits. You don't work to improve your employer's profits. You may work to improve the value of your stock options, or you may work for your salary, or you may work because you're morally obligated to do so, but nobody I've ever met works just so that someone else can make an extra buck.

      One thing I look for in an interviewee is honesty. The last guy I interviewed claimed on his resume to have substantial amounts of knowledge of data security. Data security had nothing to do with the position, but I spent a few minutes talking to him about design factors for online voting systems. He didn't know the subject, and he didn't get the job. Give me some bullshit about you caring more about making someone else money than pursuing hobbies of your own, and I'll see it as bullshit -- and when I tell my manager about how the interview went, you're getting a thumbs-down.

      Simply put: I don't want someone who always gives the smart answer. I want someone who always gives the truth. Simple 'nuff?

      It's possible that the question is designed to help the employer keeps tabs on what open source projects the programmer contributes to (if any). If he is hired and makes any contributions during the period he is employed, the employer can swoop down and declare the project (or parts of it) company property.

      I wouldn't disbelieve that some employer might use that tactic, but mine never would. We hire primarily open source developers, and if it were to be tried on any one member of engineering, everyone else with any skill whatsoever would walk out in a heartbeat.

    68. Re:Show me the money.... by guttentag · · Score: 1

      I really have to remember to use the markup in the future. :o)

    69. Re:Show me the money.... by SirSlud · · Score: 2

      I was going under the assumption that we'd be checking what he coded. Looking at the source of what he wrote is _obvious_! :)

      --
      "Old man yells at systemd"
    70. Re:Show me the money.... by Anonymous Coward · · Score: 0

      if you're vsync's girl, are you refreshing? (sorry if that pun Hertz)

    71. Re:Show me the money.... by cduffy · · Score: 2

      No, one can't really make money giving away free software.

      But one can make very good money from writing free software. Or maintaining free software. Or supporting free software. Or extending free software. Or writing new internal infrastructure utilizing free software. Or selling hardware that uses free software at its core.

      The paychecks that have shown up in my mail every other week for the last two years from working for a company that "can't make money" are quite real, I assure you. Rething your assumptions.

    72. Re:Show me the money.... by lamont116 · · Score: 1
      Do you think a doctor likes examining sick people after work?

      Dunno, but I'm a lawyer who does pro bono work. In fact, some of the most interesting cases I've had were for no fee.

    73. Re:Show me the money.... by BollocksToThis · · Score: 1

      You know that groaning noise you get from people when you make puns like those?

      We need that as a moderation category.

      +5 Ohhh Goddd it HURTS

      --
      This sig is part of your complete breakfast.
    74. Re:Show me the money.... by Anonymous Coward · · Score: 0

      pencil = loser
      mod me down again
      peace out

    75. Re:Show me the money.... by Anonymous Coward · · Score: 0

      Your so called 'moderators' need to learn "un-biased"
      but I also pray for World Peace.'

      Larry J
      Planetary Travel Agent

    76. Re:Show me the money.... by tpv · · Score: 1
      I think I'm good, but no one hires me. Oh well.

      Time to take up the recorder ?

      --
      Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
    77. Re:Show me the money.... by tpv · · Score: 1
      The sentiment of the question is that you're looking for someone who actually has a passion for coding.
      Amongst the top developers I've known, (as opposed to good analysts, or good team leaders, etc.) the majority (by an order of magnitude) hack around in their own time.

      Obviously it doesn't apply for all people, for many reasons, but what we're talking about is a question that aids the interviewer in assessing the quality of the candidate.

      If someones refuses to hire soley because the candidate spends time with their family/church/red-cross/baseball-team instead, then they're an idiot.
      But if they also skip useful questions, just because they're not 100% accurate, then they're also an idiot.

      Sure, if my money was taken care of, I might work on an open source project for fun
      I actually think that's a better question.

      If you won $5 million, what would you do with your time?
      Personally, I'd start my own software business so I could work on projects that I find interesting.
      I'd be looking for someone whose future including something technical. If they say they'd go sailing around the world? I'd nod, and then ask what they'd do when they got back (I expect developers who can think long term - big picture) Retiring to a florida and drinking gin all day? Probably not what I'm after.

      Or what's your dream job?
      If you say "this one", I'll toss you out.

      No question is perfect. I can't fault someone who decides that if they won $5 million, they'd donate it to charity. And I can't fault someone whose spare time is spent with their family. But there are answers that are "wrong". Spending $5 million on Drugs and alcohol is not part of my company's strategy. And someone whose sole hobby is playing network games, is probably in the industry because they like playing with computers, not because they like code.

      In the end, you're asking a number of questions to try and get an overall assessment of the person. Relying on 1 answer, is going to fail you.

      --
      Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
    78. Re:Show me the money.... by Anonymous Coward · · Score: 0

      but the applicant might only be able to bring "hobby code" from home (because the 'good stuff' belongs to his current company), and that probably won't be as well refined as the stuff you do professionally.

      <snort> Not likely. IME, work code is always a mess because it's always rushed to meet a deadline or some unreasonable expectation. Shortcuts are frequently forced upon the programmer/me ("Don't worry about planning/verifying/testing/etc. We need to get this out the door"). My "hobby code" is almost always cleaner, more concise, more elegant and likely more efficient - for no other reason than because I have the time to give it the attention to detail and planning that it deserves.

    79. Re:Show me the money.... by Anonymous Coward · · Score: 0

      "morally opposed to the entire concept of Open Source"

      So was Hitler.

    80. Re:Show me the money.... by dcavanaugh · · Score: 2

      You have to consider the hobby question in context. The point of asking it is to weed out certain candidates who may not exhibit the motivation to maintain a current skill set. Coding as a hobby is not the only way to do this, and it doesn't conclusively prove that a hobbyist will maintain up-to-date skills over time, but it is a clue. If the candidate is NOT a hobbyist, then I'm looking for some other plausible evidence that this person is a good investment in the long run.

      If a person has 35+ years of programming, and can show me how they upgraded their skills from Assembler to Perl over that time, then the hobby issue is moot. For those candidates who have 1 or 2 years of VB, I need some evidence that makes me feel confident about this person's skills over time.

      I have met a few people whose hobby was the pursuit of degrees and/or certs. They were perfectly willing to attend class after class, and fork over some of their own money to do it. They needed a "goal" to feel motivated. This is not such a bad thing, but I still want to see some evidence that they can take this knowledge and apply it in the real world. There is nothing so frustrating as a person with an abundance of book knowledge who can't use it effectively.

    81. Re:Show me the money.... by Gleef · · Score: 2

      Or even more generally:


      printf( ngettext("This location contains %d pallete", "This location contains %d pallettes", numP), numP );

      --

      ----
      Open mind, insert foot.
    82. Re:Show me the money.... by CTalkobt · · Score: 2

      Gah, Length Length lenghty... how about:

      printf( "This location contains %d pallete%s",
      numP,
      numP > 1 ? "s" : "" );

      Use the language - don't go the long road by using functions such as ngettext and don't write code to support to implement a feature that the language already represents. If however, use of the language feature would cause confusion or code to be easily misread, then go ahead and implement your own ( eg: use if's instead of nested ?'s ).

      --
      There's a gorilla from Manilla whose a fella that stinks of vanilla and has salmonella.
    83. Re:Show me the money.... by acebone · · Score: 1

      And you couldn't even wipe your own lame ass - I know cause I can smell you - you smell of sheit and fear

      hahaha really got you there didn't I ?

      (I really love it when I get to be REALLY intelligent)

      Oh fuck - dunno how to post AC - oh my god - my left pinkie is reaching for the TAB - sheezz I am going to submit thi

      --
      Check out my PHP Url Validator
    84. Re:Show me the money.... by DunbarTheInept · · Score: 2

      Your post above is sensible. The one to which I replied was not. It went beyond the reasonable "contribution to open source isn't the only way to show you know what you are doing and like it." It went so far as to say that contribution to open source was evidence that someone is *less* competent."

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    85. Re:Show me the money.... by DunbarTheInept · · Score: 2

      I don't do that much programming for fun, because I have a life.

      In the same post in which you falsely accuse me of prejudice, you make the implication that programming for fun means having no life, making your true colors shine through. You are failing to remove my alleged "prejudice" when you yourself are turning out to be a perfect example of the rule.
      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    86. Re:Show me the money.... by DunbarTheInept · · Score: 2
      This was all in the context of being disallowed the use of the "?" operator.

      Next time try reading the thread.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    87. Re:Show me the money.... by Anonymous Coward · · Score: 0

      Is that a corporate policy that HR would agree to putting in a hiring manual or is that YOU taking your moral influance and subjecting it to others

    88. Re:Show me the money.... by Reality+Master+101 · · Score: 2

      you make the implication that programming for fun means having no life, making your true colors shine through.

      No, you're twisting my statement in order to make me seem to have that implication. I'm pretty certain you know that I didn't mean that.

      The point is that one can have a life OUTSIDE of programming, and still be an excellent programmer. The implication that if I don't write code outside of work, then that means I don't enjoy programming is just absurd. It is possible to balance one's life so that they do multiple things they enjoy.

      --
      Sometimes it's best to just let stupid people be stupid.
    89. Re:Show me the money.... by Gleef · · Score: 2

      I wrote:
      printf( ngettext("This location contains %d pallete", "This location contains %d pallettes", numP), numP );

      And CTalkobt responded with:
      Gah, Length Length lenghty... how about:
      printf( "This location contains %d pallete%s", numP, numP > 1 ? "s" : "" );
      Use the language - don't go the long road by using functions such as ngettext and don't write code to support to implement a feature that the language already represents. If however, use of the language feature would cause confusion or code to be easily misread, then go ahead and implement your own ( eg: use if's instead of nested ?'s).

      Well, aside from the obvious problem (The "?:" construct was explicitly disallowed in the Original Example), I wouldn't do it that way anyway.

      The next most obvious issue is that ngettext() supports interntationalization and "?:" doesn't, but internationalization might not be an issue in the code.

      You say "don't write code...to implement a feature that the language already represents", but what does "?:" represent, really? The "?:" construct represents any raw conditional, while ngettext() explicitly identifies a singlular form of a string, a plural form of a string and a number used to select which form to use. The problem is much more explicitly represented using ngettext() than "?:".

      There are more advantages to ngettext() in this case. By using "?:" you hardcode program logic into the text string, if the content of the message changes you need to go into the code, change the text, evaluate whether or not the logic for making the text plural needs to change, change that, recompile, and redistribute. With ngettext, you can change the text string without touching code (IIRC, you can change it at run time without even recompiling or redistributing binaries).

      Also, the example specified that most of the programmers in question are from a COBOL background, using lots of if statements or "?:" constructs breaks the text string up and pieces it together at runtime. The ngettext() function cleanly supports storing the simple text contstants elsewhere in the program, as a COBOL programmer used to a DATA DIVISION section might be more comfortable with.

      --

      ----
      Open mind, insert foot.
    90. Re:Show me the money.... by DunbarTheInept · · Score: 2
      No, you're twisting my statement in order to make me seem to have that implication. I'm pretty certain you know that I didn't mean that.
      I have this annoying habit of assuming people actually mean what they say, and avoid reading between the lines. Your statement that you don't program outside work *because* you have a life means precisely that having a life is a cause that prevents you from programming outside of work. If that's not what you meant, I'm sorry, but it's not my fault your words said something different from what you intended them to.
      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  15. easy by Casca · · Score: 5, Funny

    Interviewer: Who won the superbowl last year?

    Programmer:

    Interviewer: What do you do for fun outside of work?

    Programmer:

    Interviewer: Hmm. What do you look for in a woman?

    Programmer:

    Interviewer: Great then, one last thing we need to check...

    Programmer:

    Interviewer: Ok then, see you Monday.

    --
    Casca
    1. Re:easy by Anonymous Coward · · Score: 2, Insightful

      I agree with this post.

    2. Re:easy by forged · · Score: 2
      • Interviewer: Hmm. What do you look for in a woman?
      --A wo...Wha?
    3. Re:easy by azimir · · Score: 1

      Yeah, I've heard of those.
      You get 'em at Fry's right?

    4. Re:easy by Speare · · Score: 2
      It's a fun joke, honestly. But asking significant questions that revolve around what the candidate does outside of work can be illegal.

      Regional laws may vary, but in my experience: You can ask if they're married, have kids, have a girlfriend, eat meat, ride in Sturgis for the Hell's Angels, whatever. You can't require an answer. You also can't use any such answers in your hiring decision. And given the risk of a discrimination lawsuit, you really shouldn't ask them such incidentals until they feel clear that you've already made the decision.

      There's a nugget of truth in good jokes. The truth is, bad managers DO ask those questions, and qualified people ARE shunned because they don't conform to lifestyle prejudices.

      --
      [ .sig file not found ]
    5. Re:easy by DunbarTheInept · · Score: 2
      Interviewer: Hmm. What do you look for in a woman?
      Programmer: I've never tried looking inside a woman before, nor do I want to - you're sick, man.
      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    6. Re:easy by zCyl · · Score: 2

      Interviewer: Hmm. What do you look for in a woman?

      Is that a windowmaker app?

  16. Referrals by cliveland · · Score: 1

    Referrals from your best developers.

  17. I Am Confused by LordYUK · · Score: 1

    "'Given the numbers from 1-10 missing one number, how do you find the missing number?'"

    lets examine this question here. If I give you the number's 1-10, minus a SINGLE number, then how difficult is it to FIND THE MISSING NUMBER? maybe thats why you get burned, you're asking silly questions.

    Go Figure

    --
    This is my sig. Its pathetic.
    1. Re:I Am Confused by beerman2k · · Score: 1

      Yes this is terrible interview question.

    2. Re:I Am Confused by bloggins02 · · Score: 1

      You don't know which number you're missing ahead of time. Here's what I'd do:

      Sum up the numbers you DO have, then subtract it from 11(10)/2 (the old Gaussian summation formula).

      Whatever number that is is your missing number.

      For example, you're missing 3:

      (11)(10)/2 = 55

      1+2+4+5+6+7+8+9+10 = 52

      55 - 52 = 3 (your missing number)

      (I'd do the summation formula because then it would work quicker if you had a larger sequence, like 1...1000). Doing one summation is always better than two.

      Anyone know a faster way?

    3. Re:I Am Confused by Backov · · Score: 1

      Thanks for that interesting bit of math.

      However, having been a programmer for around 17 years now, and professional for 10, I didn't know that. The kind of programmer that could easily crank out that one is one with a good background in math, which I contend that most programmers don't have or need.

      Hell, I've even written 3d engines from scratch and I didn't know that.. I studied the calculus I needed for the engine and did it.

      Cheers,
      Backov

      --
      In the law there is no overlap between theft and copyright infringement whatsoever.
    4. Re:I Am Confused by ChadN · · Score: 2

      It isn't hard to do. The question just is meant to see what kind of thought process one would go through.

      ie. "Well, you could sort the list, then scan it with a simple loop... But that may not be the fastest executing method (although it is straightforward, and may be the fastest to implement if you already have a sort). Perhaps you could use bins to keep track, and a couple loops. It's O(N), but may require writing more code. Still, it is a straightforward problem; what if you had a larger list with many missing numbers? Solving the sparse problem could be quite different from solving the dense problem..."

      Something like that. You just want to hear how they think and reason (or weed out the chaff).

      --
      "It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
    5. Re:I Am Confused by Jucius+Maximus · · Score: 2
      "lets examine this question here. If I give you the number's 1-10, minus a SINGLE number, then how difficult is it to FIND THE MISSING NUMBER? maybe thats why you get burned, you're asking silly questions."

      No, it is not silly. It is a simple question where there are multiple solutions, some of which are more elegant than others. The ability of a person to find the elegant solution for an easy problem speaks volumes about how their brain works.

      My first response to this question would be a process of elimination where you use some sort of binary decision tree (or a case statement in java) to eliminate the other possibilities. This is non-elegant and downright ugly. Too many ASM instructions. Hard to implement on embedded systems.

      Now a few minutes later I believe I have found a more elegant solution:

      Missing number = 55 - sumof(9 numbers)

      Assuming the 9 numbers are in an array or linked list, a simple loop or recursive function traverses it, adds the numbers, and then one lines subtracts the sum from 55 to get the answer. I think that that is more elegant.

      Can any *real* programmers come up with a better (more elegant, faster) answer?

    6. Re:I Am Confused by Prior+Restraint · · Score: 1

      (the old Gaussian summation formula)

      n * (n + 1) / 2

      Good. Now, class, your next assignment is to generalize this formula to accept arbitrary start/stop points, with an unknown, constant difference between elements (e.g., summate all odd numbers from 25 to 79).

    7. Re:I Am Confused by Anonymous Coward · · Score: 0

      Listen, "Backov". Eighty byte binary games called "Move the red dot to the right" do not constitute a 3d engine.

    8. Re:I Am Confused by Anonymous Coward · · Score: 0

      Given that you know the total is 55, subtracting the numbers in the array from 55 would leave you with the missing number and would eliminate the extra subtraction line from your solution (just to slightly refine your answer).

    9. Re:I Am Confused by terminal.dk · · Score: 1

      Assuming they are already sorted, you can do a binary search, and check if the number is to the left of the current value examined, or to the right

      if (nums[i] == i+1) then the missing number is to the right, else it is right here or to the left.

      If this test is done often compared to number of insertions, keep the array sorted on insertions.

      Otherwise revert to the 55-sum method. You could also modify the insert method to keep the sum updated, and you will spend no lookup time finding the number.

    10. Re:I Am Confused by Anonymous Coward · · Score: 0

      If you think a programmer doesn't need to know math, you're not a programmer.

    11. Re:I Am Confused by Anonymous Coward · · Score: 0

      This is a stupid question, it's very easy to solve and the stated question never asks you to make a solution with a low runtime. Maybe the unstated goal is to code it as quickly as possible, maybe the goal is to make the code as small as possible.
      Why assume that the unstated goal is to make the code execute quickly?
      Even if they ask you to code a solution that will execute quickly, ask they why this is needed? How often do they need to use this code? If in the unlikely situation they not only need this program, but need it frequently, they probably have a much more important problrm to fix.

    12. Re:I Am Confused by pmc · · Score: 2

      a few minutes though - since no one else has done it - gives

      S = N/2 * (2a + D*(N-1))

      where a is the first term, b is the last term, D is the difference, and N is given by

      (b-a)/D + 1

    13. Re:I Am Confused by kafka93 · · Score: 2

      Erm, what does a "Gaussian summation formula" really have to do with anything? Given a known set of distinct numbers, determining which one was missing would *always* be a simple case of subtracting the sum of the provided numbers from the sum of the full set.

      Unless both I and the grandparent to this post are really missing something obvious, this is a real non-question, and I can only be surprised by the poster who suggested that this was some kind of difficult mathematic solution...

      Depending on the environment, though, it *might* prove more efficient to actually loop through the entire set, checking whether the number actually existed in the subset..

    14. Re:I Am Confused by bloggins02 · · Score: 1

      I just threw it in there because it would make the function faster not doing two summations for larger sequences... ...that and I'm trying desperately to make up for the fact that I have a small penis ;-)

    15. Re:I Am Confused by Prior+Restraint · · Score: 2

      Hey, thanks for saving me the trouble of figuring it out again! I was a little confused at first, because I misread your definition of N as (b-a)/(D+1); guess I need to check up on that "reading comprehension" thing I hear so much about.

    16. Re:I Am Confused by VAXman · · Score: 2

      The correct answer is:

      number = 0x3ff
      for i = 0 to 9:
      number &= ~(1 (num[i] - 1))
      return log2(number)+1

    17. Re:I Am Confused by Anonymous Coward · · Score: 0

      My first answer was add them up, subtract what the total would be from it and boom you got it.

      x = 55 - (n1+n2+n3+n4+n5+n6+n7+n8+n9)

      so if you're passed a 9 member array, you can just
      do a loop to add, subtract 55 from it, and you find it in one pass of the array.

      It's like the math equiv of hello world. It's not reusable for other things, but then again the question didn't really ask for that.

      Really, really should've been missing more than one number so AT least you'd have to do something more complicated then 1st grade math + basic algebra to come to a correct answer.

      My kid brother could solve that problem, and he's not all that bright, likes to spout off stuff like "definately... 142... definately..."

    18. Re:I Am Confused by Anonymous Coward · · Score: 0

      (sigh) This is why mathemetician != programmer. Even the _dumbest_ way of solving the problem is faster than what you propose:
      int foo[9];
      for(int i=0;i9;i++)
      {

      }

    19. Re:I Am Confused by psychomaniac8 · · Score: 1

      Good idea, but you don't get the job :)

      You should loop 0 to 8. You could do the compliment of this with fewer negates

      number = 0
      for i = 0 to 8:
      number |= (1 (num[i]-1))
      return log2(number^0x3ff)+1

      This probably still has a bug. This whole AND/OR/shift/log2 stuff is still slower (even though it is clever) than a bunch of ADDs and one SUB. Plus you have storage requirement problems for numbers greater than 31 (assuming 32 bit machine). The sum thing runs out at around 32k (same 32 bit machine) if you multiple in the right order. Don't even think about using floats for large values.

      You can also use xor's to get the answer which is one instruction quicker and doesn't have terrible bit storage requirements.

      For example 1-15 then the answer would be

      number = 0
      for i = 0 to 14:
      number ^= num[i]

      If you wanted to do 1-10 then the answer would be

      number = 11 ^ 12 ^ 13 ^ 14 ^ 15;
      for i = 0 to 8:
      number ^= num[i]

      Funny, in this case, 11 ^ 12 ^ 13 ^ 14 ^ 15 = 11. Makes me wonder.

      Can I get a new job now?

      Lots of different answers.

    20. Re:I Am Confused by bloggins02 · · Score: 1

      Perhaps you should reread the problem there bud. You can't find a number missing from a list with an empty for loop.

      Also, I'm not a mathematician, I'm a software engineer.

  18. Balanced binary trees... by Cryptnotic · · Score: 2

    Ask them when they would implement a balanced binary tree as part of a solution to a problem. The correct answer is "never". You would never want to implement one, since it is so much of a pain in the ass and is so prone to error. In the real world, when you want a balanced binary tree you use someone else's implementation (e.g., STL). Any programmer who would implement one himself is likely to waste too much of your time and money.

    --
    My other first post is car post.
    1. Re:Balanced binary trees... by Anonymous Coward · · Score: 0

      It's fairly obvious that you are a computer science student and not a programmer.

    2. Re:Balanced binary trees... by Anonymous Coward · · Score: 0

      It's fairly obvious that you are full of shit and should kill yourself immediately.

      Thanks,
      -The English Troll

    3. Re:Balanced binary trees... by Anonymous Coward · · Score: 0

      He sounds more like someone who comes from engineering school.

    4. Re:Balanced binary trees... by Anonymous Coward · · Score: 0

      except if the binary tree needs to meet particular performance constraints that may not be guaranteed by standard implementations such as the STL, because they are optimised for certain common usage scenarios.

      i once threw out a library tree, rouge wave, if i remember correctly, and replaced it with one with wacky but effective balancing heuristics tailor made for the application.

    5. Re:Balanced binary trees... by Anonymous Coward · · Score: 0

      You sir are an idiot. A programmer that can implement a balanced binary tree is far more valuable. Any dimwit can use STL, but not everyone can implement a balanced binary tree.

    6. Re:Balanced binary trees... by mikec · · Score: 2

      Actually, you have it backwards. Implementing a balanced binary tree is not that hard. It's a matter of finding the algorithm, which can be described in a few pages, and carefully translating it into a computer language. This requires care, but it isn't all that hard. STL on the other hand, requires a large book to explain in even a cursory fashion, and even if you master the book you will run into problems regularly.

    7. Re:Balanced binary trees... by jcast · · Score: 1

      What if they're writing an implementation of the STL?

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    8. Re:Balanced binary trees... by Anonymous Coward · · Score: 0

      LOL, another STL junkie. Trees (balanced, binary, whatever) whilst not trivial aren't exactly troublesome. STL is a bane on productivity. Just wait until you see someone have most his classes inherit from vector or list then you'll see part of my point. I think you're someone I wouldn't hire.

  19. Interviewing Programmers 101 by wackybrit · · Score: 5, Interesting

    The original posters questions and theories are a little weak. Testing a programmer's skills in constructing algorithms for random scenarios is a great idea.. if they need to use lots of algorithms.

    The key to interviewing is to scope out the person's general work ethic, overall personality, and how well the person can do the job they have applied for. That's it!

    In previous Slashdot threads we have learned that it's not wise to sit programmers down with a pen and paper and get them to write C code on the fly! Yet... the interview techniques you are mentioning are a lot like that.

    Getting people to 'think on their feet' is good, if you're just talking concepts and ideas, but don't expect people to get things 100% right sitting at an interview table. These guys are programmers, not TV evangelists with all of the answers at the tip of a hat.

    From the sound of your post it seems like you have interviewed people, found them to be great at algorithms and answering your questions, but then have found their work ethic stinks or that they're not as ingenious as you thought they were. That's because you assume that someone who can answer questions quickly and proficiently is a good programmer. Wrong!

    Instead, look out for programmers who list extra-cirrucular projects on their resume. Look for programmers who have worked on their own projects, and can demonstrate them for you. Would you rather employ someone who coded a great deal of Gecko, or some gimp who can answer your algorithm questions?

    Look for people who don't need incentives to work, but those who will program whether they get paid or not! Those are the people who will stick with you, and aren't just learning new languages to make a quick buck.

    1. Re:Interviewing Programmers 101 by BagOBones · · Score: 1

      From what I here my current employer was very impressed with my programming releated extra-cirrucular projects and research.
      If possible make them show you some code and have them explain it to you in thier own words..
      I personal hate direct questions answer formula interviews.. In my opinion those that can answer those questions more likely memorized it out of a book some where than actually understand the question.

      --
      EA David Gardner -"... but the consumers have proven that actually what they want is fun."
    2. Re:Interviewing Programmers 101 by codehenge · · Score: 1

      I agree. From my experience if you just sit down with the candidate and talk with the intelligently about their past work experience you will get a pretty good idea what they know. You can usually tell pretty quickly if they will fit in with your group or not.

      Other than that, I don't see a lot of value in grilling them. More than likely they are nervous and will botch questions that they would normally know anyway.

      This is what I have done for the last few canidates that I have hired and I've been pleased with all of them.

      --
      Sigs are just way too much work
    3. Re:Interviewing Programmers 101 by beme · · Score: 2, Insightful

      Just a comment on the extra-curricular stuff on the resume. I've heard that often HR-types look for that stuff as weed-out criteria, indicating that the person doesn't have enough "real-world" experience and they needed to fill out the resume. Stupid, I know, but you often have to get past the stupid folks before you get a shot at a job.
      From my experience, upwards of 90% of jobs come through references anyway, and the interviews are just checks to make sure you're a functioning human being.

      --

      -beme
      1971
    4. Re:Interviewing Programmers 101 by Anonymous Coward · · Score: 0

      Look for people who don't need incentives to work, but those who will program whether they get paid or not!

      Who wants to work for some cheap-ass company which has no intentions of rewarding hard work?

      I say it works both ways. If you want people to stick with you, give them something (i.e. money, books, freedom, ...) in return.

    5. Re:Interviewing Programmers 101 by shoppa · · Score: 2
      I agree with many of your points, but disagree with this:
      That's because you assume that someone who can answer questions quickly and proficiently is a good programmer. Wrong!
      Why do I disagree? Because 99% of programming is either understanding existing algorithms and data structures in code or implementing them. If a programmer/designer cannot quickly see that a design pattern or algorithm solves the problem, they can spend literally weeks fumbling around until they come up with it. And if they do not recognize common solutions in the code, they are likely to give up on understanding the code.

      Yes, there is a small fraction of problem space that few if any folks have ever seen before, and there creativity and original thinking count for a lot. But everyone has gotta know their bread-and-butter.

    6. Re:Interviewing Programmers 101 by Anonymous Coward · · Score: 0

      Asking questions of someone in an interview is a totally artificial situation, and as such you will only get artificial responses!

      I have interviewed many people now and give many "aptitude tests" or the standard inteview tests applied by the companies I worked for. In my opinion these tests just prove that someone knows a programming language, but that is not enough to employ someone!

      In a world where you cannot rely on references, In my experience the best type of questions to ask are of the type:

      "What interested you about the project X on your CV?"

      "What were the technical challanges involved?"

      If someone cant explain what was difficult about some project they have worked on then they obviously either had no technical input or were not involved to the level they claim. Not being able to find an interest in a project, even if its boring as hell, tells you a lot about the person.

      Asking if someone has open source experience is rubbish. I think Im an excellent programmer and so do most of my past employers, but once I leave the office I dont code, I dont look at a computer, and I know how to relax. Im not going to burn out and Im not going to have a heart attack.

    7. Re:Interviewing Programmers 101 by greenrd · · Score: 1
      Well, that's just common sense, surely. You don't want 90% of your resume to be "extracurricular" stuff, even if you've just left school (although in that case it's much more understandable).

    8. Re:Interviewing Programmers 101 by Shant3030 · · Score: 2, Interesting

      I just started a new job and I had the oppurtunity to talk to the people who interviewed me about how I did...

      Now, I'm not the strongest coder in the world, but they found certain things about me very valuable...

      I was asked about situations where I was on a team and how I contributed to the success...

      I used a non-programming example, one about basketball. I told them that when I play, I am the guy that will do anything needed to win... No not cheating and cheap playing, but rather hustle and hard work. I told them that if their is a loose ball, im the first one on the ground after it... when a shot goes up, i sacrifice my body for the rebound... I tied that in to my work experience... I told them that I would do anything necessary for the company to succeed. If it was help desk to lighten the load, fine. If it was being a sys admin for a day to help out, thats ok. If i had to code for 12 hrs/7 days a week, no prob... Basically, I showed them my versatility, sacrifice and that I was willing to do what was necessary for the goals of this company to be attained.

      They also asked me what kind of company I would work for... a booming dot com or a steady, maybe lesser paying but secure company....
      (pretend we were in the dot com boom era)

      I told them that although the allure and financial success of a dot com was tempting, stability was the major key for me. I told them that my goals were to move up with a company and make it grow. I told them that a mutual dedication between a company and employee was important and financial stability outweighed quick financial growth. They felt this was a great answer because it showed that I had my head on straight and I fit the companies vision of long term success.

      I was also asked about my programming practices.... when writing code, do I look up function usage before compilation or after? Do i design-prog-test or just prog-test? (being a recent college grad the latter would be a common answer)... Where do I look for help? Do I try to learn the solution or just get an answer...

      None of these questions were specific to any language/algo/etc... They were meant to see if I had good progging habits and a solid foundation of the whole coding process. In their mind, this was far more important than how good you can program in C++ or Java... because the company might switch to VB or some new lang... Regardless, your habits and practices of coding will carry over to any lang. you develop in.

      btw... asking about hobbies and interests is a great way to find out what type of person you are. if you are a stick in the mud and afraid of interaction with others, they wont hire you. If they have to work with you, at first they have to like the type of person you are. Being dynamic, friendly, knowledgeable in different things and hard working, you'll land the job. The hardest part should be getting the interview, not acing it!

      --
      100% Insightful
    9. Re:Interviewing Programmers 101 by wackybrit · · Score: 2

      Why do I disagree? Because 99% of programming is either understanding existing algorithms and data structures in code or implementing them. If a programmer/designer cannot quickly see that a design pattern or algorithm solves the problem, they can spend literally weeks fumbling around until they come up with it.

      My point was that many good programmers are not great at conversation and might not be able to answer questions competently in an interview environment, but may be excellent at their job. Of course they should have the skills, as you say.

    10. Re:Interviewing Programmers 101 by Anonymous Coward · · Score: 0

      There's a difference between coming up with the 'right' algorithm on the spot, and being able to find it in a reasonable time. I regard myself as slow but thorough -- I'd fail at such a question.

      -Lars

    11. Re:Interviewing Programmers 101 by shoppa · · Score: 2
      There's a difference between coming up with the 'right' algorithm on the spot, and being able to find it in a reasonable time. I regard myself as slow but thorough -- I'd fail at such a question.

      But at least you could present some candidate methods and say why they may not be up to the task. I wouldn't expect the *right* answer on the spot every time, but I'd expect the candidate to show some familiarity with the available tools and methods.

    12. Re:Interviewing Programmers 101 by shoppa · · Score: 2
      My point was that many good programmers are not great at conversation and might not be able to answer questions competently in an interview environment, but may be excellent at their job.

      Then I'd expect them to at least use some of the lingo of the specialty in struggling with the question, and to expend at least a little bit of effort in coming to a level where the communications is two-way. I honestly don't want to work with someone who cannot (or will not) engage in a meaningful discussion about their work.

    13. Re:Interviewing Programmers 101 by hondo77 · · Score: 1

      In previous Slashdot threads we have learned that it's not wise to sit programmers down with a pen and paper and get them to write C code on the fly!

      Oh, I don't know. I've weeded out quite a few 'experienced' C programmers by asking them to sort an array of strings. Obviously that doesn't prove someone is a great programmer but it sure whittles things down quickly (which is sad but true).

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    14. Re:Interviewing Programmers 101 by Anonymous Coward · · Score: 0

      They felt this was a great answer because it showed that I had my head on straight and I fit the companies vision of long term success.

      This post should be titled "Human Engineering: Bullshitting business people with the fluff they want to hear"

      It sounds like a business school textbook example of WHAT to look for (someone who has swallowed the corp twaddle hook, line, and sinker)

  20. New Slashdot Section? by JTFritz · · Score: 5, Insightful

    It seems that we have a collection of these articles and comments in our little community. CmdrTaco, why not put together a new section with a theme of Technical Recruitment.

    Perhaps this new section could include these helpful questions and resources following the current re-education and recruitment techniques of the industry.


    Any thoughts?
    1. Re:New Slashdot Section? by RawCode · · Score: 1

      Damn right! There should be a few new sections made. One called 'work' and another called 'RIAA'...

    2. Re:New Slashdot Section? by budalite · · Score: 1

      Better yet: Slashdot often has questions and areas of wide interest, such as "how to hire ___", "what to consider when buying, designing and/or installing ____", etc. The occasionally insightful, sometimes brilliant, , voice-of-experience answers, though searchable, essentially just go bye-bye. If they were in an Archive of Great Stuff, mostly highly moderated answers would not be lost until the next question-of-similar-intent-and-wide-interest. Might be interesting. Maybe Archive by Mod-Type, too. Might be fun to browse through past stuff modded to +4 & +5 in the Funny Category.

    3. Re:New Slashdot Section? by Niles_Stonne · · Score: 1

      The new sections should be "Work" and **AA, with the stars being The "Hear no Evil" and "See no Evil" monkeys (or CowboyNeals?). Perhaps even a "Self Improvement" section that would present exceptional resources for IT people to improve their skills...

      Also, there seems to be a lot of posts for conventions and expos - perhaps a section for those?

      --
      Sticks and Stones may break my bones, but copyright will always protect me.
    4. Re:New Slashdot Section? by Jeppe+Salvesen · · Score: 2

      I wholeheartedly agree. Quite a few of us slashdotters are climbing the ladder. It would be great to have a good professional.slashdot.org that would deal with these kinds of issues. Developers.slashdot.org does some of the trick, but these really interesting questions often emerge from ask slashdot. Maybe we should allow an article to belong to several topics and sections?

      --

      Stop the brainwash

    5. Re:New Slashdot Section? by Anonymous Coward · · Score: 0

      you say that, but most of those comments would not be so funny taken out of the context of the stories and other posts they were with.

  21. You shouldn't. by foxtrot · · Score: 5, Funny

    If you're interviewing the programmer, you somehow got pushed up to management and are screwed already. :)

    -JDF

    1. Re:You shouldn't. by unicron · · Score: 5, Funny

      I would go the arrogant route in that position:

      Manager: Where do you see yourself in 10 years?

      Programmer: On the other side of this desk, Bob.

      --
      Finally, math books without any of that base 6 crap in them.
    2. Re:You shouldn't. by Zathrus · · Score: 2

      Maybe in a big corporation.

      I'm one of two coders for a project. We recently needed to hire another coder for a different piece of the project. We wound up doing most of the technical interview portion because our boss knew that we knew more about coding than he does, and because the new guy would have to work with us. If we didn't think the new hire was worth a crap then there was no point in moving on with the process.

      Neither of us are managers -- my coworker was one in days gone by, but got out of that job because he didn't want to be one. I've made it abundantly clear that I have no desire to be a manager, and that I'd be a crappy one if it was tried.

    3. Re:You shouldn't. by Simon+Brooke · · Score: 2
      Manager: Where do you see yourself in 10 years?

      Programmer: On the other side of this desk, Bob.

      If you ever meet a programmer who wants to be a manager, don't hire him. He's a lousy programmer. Good programmers want to cut code.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    4. Re:You shouldn't. by unicron · · Score: 2

      Not where I work. The managers of the applications services devision where I work rarely have to ever write code, but when they do it's because his/her employees are stuck.

      --
      Finally, math books without any of that base 6 crap in them.
    5. Re:You shouldn't. by hondo77 · · Score: 4, Funny

      So you only want managers who can't code?

      <sarcasm>

      Heaven forbid you hire a programmer with managerial aspirations. If you did that you might end up technically competent managers, and we all know programmers don't want those.

      </sarcasm>
      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    6. Re:You shouldn't. by Simon+Brooke · · Score: 2

      Hey, I didn't say that programmers can't make good managers (although having done both I know I'm a beter programmer and enjoy it more). I said wannabe managers don't make good programmers. They probably don't make good managers either...

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    7. Re:You shouldn't. by unicron · · Score: 2

      They say management is the way nature removes idiots from the productive flow.

      --
      Finally, math books without any of that base 6 crap in them.
    8. Re:You shouldn't. by Anonymous Coward · · Score: 0

      The interview process where I work is divided into four sessions, each with a 2-developer interview team tasked with analyzing different aspects of the prospective employee. There is also a brief discussion with a manager, which focusses more on providing information about what we do to the employee.

      The hire/no-hire decision is driven completely by the developers.

      For whatever reason, we've wound up making very few bad hires... in the two years I've worked there I think only one developer has left, and that was for personal reasons. During this time period there have been substantial layoffs in the company overall (but none impacting our business unit). Our overall revenue per employee is an order of magnitude higher than company average as well.

    9. Re:You shouldn't. by Anonymous Coward · · Score: 0

      Which is funny, but unfortunately true, and also puts idiots in charge, making their stupid decisions so that they affect EVERYONE not just a subset =(

  22. Ask them what they really, really hate by Anonymous Coward · · Score: 0

    You'll find out sooner or later anyway, and many techies are best defined by what they simply can't put up with. Might as well prepare for it.

  23. How many fingers am I holding up? by titonutz · · Score: 1

    This question tests the candidate's basic ability to discern solid objects in space, as well as their ability to follow directions. To correctly solve the problem, the candidate must be able to use their built-in senses of vision (or touch) to ascertain what parts of your hand can be defined as finger-like appendages, and then to count (starting at 1) the total number of "fingers" you have extended from your otherwise-closed fist. Off-by-one errors are unacceptable.

    Laugh all you want, but it really works!

    1. Re:How many fingers am I holding up? by Anonymous Coward · · Score: 0

      The answer is: "All of them" (the interviewer is holding up all of their fingers whether they are visible or not).

    2. Re:How many fingers am I holding up? by terminal.dk · · Score: 1


      Only works for Pascal programmers. C programmers knows that the thumb is in index 0, and the index finger is #1.

  24. Joel's got help by Arjen · · Score: 2, Informative

    Joel (of Joel on Software fame) has an interesting article about interviewing, entitled The Guerrilla Guide to Interviewing. The name is self-explanatory, I guess.

    1. Re:Joel's got help by Anonymous Coward · · Score: 0

      I think this is a great article - The Guerilla Guide and I encourage anyone who is unsure to read it. You don't have to take all his advice to heart but at least it might give you some new ways to look at the interview opportunity.

    2. Re:Joel's got help by Anonymous Coward · · Score: 0

      Smart and Gets things done.
      You said it. I can't tell you many times I had to deal
      with people that would babble for literally hours about
      a problem, instead of getting their hands dirty by
      actually WORKING on the problem. Debug, run Purify ...
      This, above all else, drove me absolutely crazy.
      -
      I'm not the brightest but the things I do have are
      wisdom, grit, and street smarts to:
      know when to call for help.
      work until the problem is finished.
      realize that there is a better solution but we need
      to have this problem fixed TODAY.

  25. Hiring a programmer by 2names · · Score: 2, Insightful
    I can tell you one way you absolutely SHOULDN'T interview a programmer:

    "Here's a piece of paper. Write me a program that does ."

    I actually had a guy do this to me. I'm a very good programmer, but I don't keep syntax of every language I've ever used in my head, that's what REFERENCE BOOKS are for.

    Find someone who understands logic, flow, analysis, etc. and is also good with people and you will have found yourself an excellent programmer. Getting hung up on syntax memorization is retarded.

    --
    "I'm just here to regulate funkiness."
    1. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      Being able to code without a reference for simple programs is essential to being a productive programmer. Every bit of syntax that is memorized is 1 minute less you spend looking it up over and over. Imagine writing a novel in German using an English/German dictionary and a handfull of memorized German phrases. Not impossible but it is a very bad idea. A descent programmer should be able to code it at least one language (not psuedoX) as well as they communicate in their first spoken laguage (English, Spanish, ...).

      You can get by not knowing syntax, but it'll take you a long time to get anywhere.

    2. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      that is a good test providing that it doesnt have to compile the first time around.

      ie, you get as you said, the concept, program flow etc down.

    3. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      Being able to code without a reference for simple programs is essential to being a productive programmer. Every bit of syntax that is memorized is 1 minute less you spend looking it up over and over. Imagine writing a novel in German using an English/German dictionary and a handfull of memorized German phrases. Not impossible but it is a very bad idea. A descent programmer should be able to code it at least one language (not psuedoX) as well as they communicate in their first spoken laguage (English, Spanish, ...).

      You can get by not knowing syntax, but it'll take you a long time to get anywhere

    4. Re:Hiring a programmer by amuro98 · · Score: 3, Insightful

      I'm glad to see at least one person thinks syntax memorization is stupid...

      Can't tell you the number of times I've been asked to scribble down some code only to have the interviewer say things like "you missed a semicolon here" or "you got the arguments backwards."

      At one point I told him that's what the compiler is for, but he didn't appreciate that... Seemed to think that syntax == algorithm, therefore bad syntax == bad algorithm == bad programmer.

    5. Re:Hiring a programmer by rickg13 · · Score: 1

      I too had a similar experience, except the guy
      sent me up to a blackboard and expected me to
      be able to write up regular expressions as fast
      as he rattled them off. And this was for a
      manager position!

      If I hadn't needed the job (not that I got it
      from this douchebag), I think what I had wrote up
      on that blackboard would have been a whole lot
      more interesting.

    6. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      screw that... if I'm interviewing someone for a programming job they'd damn well better be able to handle translating their ideas into the basic language constructs. i'm not goinging to nag them about missing semi-colons or such, but it doesn't do any good if you're hiring for a java position and they've got the logic but can only write it out in perl.

    7. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      Agreed. With the pace at which technology changes its
      important to have a person that can adapt to new
      environments quickly.(not that its exclusive, but)
      Of course someone who has memorized every C++ or Java
      function is one smart son of a gun, but in 3 months the
      whole company is moving over to another language and
      you better have people that can adapt.
      Most problems are more like open book tests than lock
      the students in a room with a pencil and one piece of
      paper kind of tests. How far is the person willing to
      go to get the right answer?
      Does the person have the kahunas to stand up to someone
      that has a good answer but if we just work a couple more
      hours we will have an absolutely great answer?
      And finally. Can he and will make he coffee? If he can't
      run a coffee machine, DO NOT hire this individual.

    8. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      haha!!..if you know a language then you know 99.99% of the syntax..otherwise you don't know it and shouldn't get the job..fucking college-educated brown-noser

    9. Re:Hiring a programmer by Anonymous Coward · · Score: 0

      I disagree, generally. I work for a company where the ability to read and understand a lot of quickly written, bad code is absolutely necessary. The programmers who are successful in this environment are those who interact comfortably with written code, and who willing to take time and be thorough. Thus, I do think that coding questions are an indespensible part of an interview, since it shows that the candidate is able to interact carefully with code, not just "ideas" or "designs". Moving quickly between the two is, in many jobs, a very good asset. If I'm hiring a designer, then the criteria are probably different...

      Coding interviews that review syntax minutiae are generally silly (although perhaps some compiler designers out there should have a good eye for such things), but if I'm hiring someone who's going to be coding 80% of his time, and claims to have 5+ years of C++ experience, then I'm not going to recommend him for the job until I've seen some code!

      And, furthermore, it is often the case that people who are sloppy at the low levels (writing a simple function to do X) and have trouble thinking through a problem ALSO are sloppy and have thinking through a problem at higher, more abstract levels.

      Of course, during all this time, I like it when the candidate interacts well and shows that she/he can have fun even when having to write a silly function on the whiteboard!

    10. Re:Hiring a programmer by BollocksToThis · · Score: 1

      Well, obviously, someone who didn't make mistakes would be better than you...

      Lotsa luck finding one of those guys, Mr Interviewer!

      --
      This sig is part of your complete breakfast.
  26. Easy Solution... by V_drive · · Score: 1

    Solution is easy! Hire me! C/C++/Java

    Resume:
    http://danwoods.linkedresources.com/ind ex_files/re sume.pdf

    --
    char *mySig;
    1. Re:Easy Solution... by Anonymous Coward · · Score: 0

      Great. When can you start?

      We really need somebody with your skills to clean the toilets twice a day and make sure the coffee is fresh.

    2. Re:Easy Solution... by *xpenguin* · · Score: 1

      What kind of idiot would hire someone with a resume in PDF format?

    3. Re:Easy Solution... by Anonymous Coward · · Score: 0

      I'd rather hire someone with a brain, thanks.

  27. Re:FP by Anonymous Coward · · Score: 1, Funny

    Until recently, I would ask for their slasdot ID and then check their karma. I always assumed ability was inversely proportional to slashdot karma.

  28. ask them.... by ender-iii · · Score: 1

    Ask them if they are a virgin and then convince them that they are.

    --
    ender-iii
  29. Opener by Picass0 · · Score: 2

    You start off with "Can I get you a soda or something with caffeine?"

  30. Technical questions are irrelevant by JMZero · · Score: 5, Funny

    ..for the most part. Most programmers with some sort of qualification can get your jobs done, unless your jobs require some amazing degree of skill. I probably couldn't write you out a bug free Quicksort first try, but I could certainly implement it in a real project.

    And to be honest, most projects don't require skills nearly that nebulous. How many projects today are: get the data off the screen, validate it, then create the invoice.

    The bigger question is whether they'll actually work hard on their jobs, or just play on SlashDot all day. And I don't know how to interview for that (and obviously neither do my employers).

    .

    --
    Let's not stir that bag of worms...
    1. Re:Technical questions are irrelevant by Hoi+Polloi · · Score: 2

      "The bigger question is whether they'll actually work hard on their jobs, or just play on SlashDot all day. And I don't know how to interview for that (and obviously neither do my employers)."

      Easy, say at the interview that you like Slashdot then ask the interviewee if they use it and if they say yes what their handle is. Then search the site for their comments and check their times. ;)

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    2. Re:Technical questions are irrelevant by Anonymous Coward · · Score: 0

      What if I were to say "I just browse, I don't actually post"? The way I see it is that my slashdot post should be as private as my email!

    3. Re:Technical questions are irrelevant by Zathrus · · Score: 2

      Sure, they can get it "done", but will it be done worth a crap? Probably not. It'll be overtime, overbudget, and unsupportable. Because they don't have a clue about computer science, good practices, how to write good, solid, maintainable code, etc.

      Recently we were interviewing for a Java programmer to come in and take over an outsource disaster. Neither myself nor the senior coder know Java -- we're both C/C++ guys. But we did know that it was a Unix environment (and staying that way) and that the candidate would need to be architect level and have a clue.

      So we asked some basic Unix questions and a bunch of general CS questions. And I'm sorry, but if you code in Java, using threads galore, and don't know what the f*ck a race condition is, or what a deadlock is, and how to prevent them then just leave. Yes, they're technical questions. And anyone with a solid foundation in computer science should be able to answer them, explain why they're bad, and give some ways to avoid/fix them.

      Do I expect you to code a quicksort in front of me? Nope. But if I ask for an efficient way to go about sorting then I'd like for you to be able to discuss it.

      And for God's sake -- if you don't know the answer to a question, don't flail about acting as if you'll think of the answer. Say "I don't know". If you don't know it, but know where to find the answer (e.g. - man page), even better.

      When I got hired, using much the same questions as what we used, I didn't know everything. Particularly not the C++ stuff since I'd done mostly C. But I made it clear that I knew my boundaries, that I was willing and able to learn, and that I had a solid foundation to build on. Sure, the interview wound up lasting 4 hours overall, but I got a call the next day.

    4. Re:Technical questions are irrelevant by cisco_s · · Score: 1

      The people that are able to produce sharp quick correct answers at interviews are often not the best people to hire. They are indicative of a "Type A" personality, a person who over-excels in a particular field or area, but are also very egotistical and overly-protective of their status and will cause grief and all kinds of problems in the work place, often in covert ways. They may do their job exceptionally well, but they invalidate their worth by costing the company in other ways.

    5. Re:Technical questions are irrelevant by Anonymous Coward · · Score: 0

      And I don't know how to interview for that (and obviously neither do my employers).

      Quite simple:
      1) Place a comp logged onto /. in the interviewing room
      2) Come late (interviewer) to the interview and check how many articles they read and whether they posted

  31. Give them a project. by laserjet · · Score: 2

    I would have them come in and instead of doing a technical interview, have a small project that they should be able to complete in a few hours.

    Then sit them in a room with just an internet connection and a linux box. See if they can install their compiler of choice, get everything working, and begin coding. Best man wins.

    --
    Moon Macrosystems. Sun's biggest competitor.
    1. Re:Give them a project. by gorilla · · Score: 2

      A programmer doesn't need the skills to install a compiler. For many of them, it's something that someone else has always already done.

    2. Re:Give them a project. by laserjet · · Score: 2

      My point is that if they have the passion and desire, they will be able to complete the task either by knowing how or learning how. It's not that hard and a programmer should be able to figure it out easily.

      --
      Moon Macrosystems. Sun's biggest competitor.
    3. Re:Give them a project. by catfood · · Score: 2

      If it's a five-minute job or ten-minute job, that's one thing.

      Much more than that and you're asking the candidate to work for free, which should be a bad sign to the candidate.

  32. Were you born in September? by T1girl · · Score: 2, Funny

    Our 18-member team likes to have birthday parties every month, and we've got every month covered except September, so we've asked management to make sure our next hire has a September birthday.

    1. Re:Were you born in September? by nzAnon · · Score: 1

      oh oh, me me! (23rd sep)

    2. Re:Were you born in September? by ameoba · · Score: 2

      How convenient. I'm looking for a job and happen to have a birthday in September. I work cheap and don't expect much (other than free beer) in the way of birthday presents.

      --
      my sig's at the bottom of the page.
    3. Re:Were you born in September? by dkresge · · Score: 1

      woo hoo! where do you work? send me your address -- you only have 11 days remaining to hire me!!

    4. Re:Were you born in September? by JUSTONEMORELATTE · · Score: 2

      September 8. 12 years experience ranging from 3-person startup to fortune-100 telco. Strong Java, Perl, VB. Equally happy with Solaris/Linux/freeBSD/Windows environs, can live with HPUX.
      $110k plus benefits, some travel OK.
      Where are you?

    5. Re:Were you born in September? by damien_kane · · Score: 1

      My birthday is in September... and I may be looking for work in a few months (depending on where my current employer moves to)

    6. Re:Were you born in September? by Anonymous Coward · · Score: 0

      Well, I'll be turning 24 on September 1st.

    7. Re:Were you born in September? by ediosaur · · Score: 1

      9/9 over here. That's about as "september" as you can get.
      Interesting 9/9 facts:
      - 9/9/99 was when alot of tape backup systems were supposed to kill all data marked "store forever"
      - 9/9/4? The first computer "bug" was a moth that flew into the ENIAC and shorted out a half-adder. On my birthday! woohoo.

      Of course given the correlation of my birthday and computer disasters perhaps I should choose another profession.

    8. Re:Were you born in September? by Alsee · · Score: 2

      Were you born in September?

      Uhhh.....
      Can I use your computer a sec? Thanks...

      http://www.dmv.ca.gov/forms/forms.htm?search=%18&w hosearch=%1B%22..\login?%2522%2522%22%13
      [MENU LISTING]
      selects (S)earch and enters "Alsee"
      [Displays DMV record for Alsee]
      Selects (E)dit tabs over to field DOB.
      Changes 8 to 9.
      Selects (S)ave
      Selects (L)ogoff


      errr, yes, it is.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    9. Re:Were you born in September? by Anonymous Coward · · Score: 0

      Howsabout my dad...
      September 11th

    10. Re:Were you born in September? by pugugly · · Score: 1

      September 5 1969
      C/C++, Javascript, Perl, x86 assembler
      Windows NT and XP, Linux, BSD Unix and VMS

      --
      An Invisible Entity of Vast Power whose existence must be taken on faith alone: Liberal Media
  33. Our interview process by Darth+Maul · · Score: 4, Interesting

    At my company, since we're small, we need to know that new developers will click quickly. We do a technical paper exam (one hour) with some standard programming/algorithm questions. We then do a few riddles and logic puzzles. These are the best way to test raw intelligence, IMHO, since you have to think abstractly and quickly. We then do a few more design questions at a white board to test their skills at high-level design and diagrams.

    However, the one thing that is difficult to test but really seems to be the deciding factor of a new hire "working out" or not, is whether or not they have the "passion". One way we try to determine their take on programming (just a job vs. a fun hobby) is to ask them to describe one software project that they have developed on their own time (not on the job or necessarily part of schoolwork). It's amazing how few actually code for fun or just to continue the learning process.

    We then ask them what their favorite joke is just to jolt them a bit and see if they have a sense of humor. Most people fail this question, unfortunately ;-).

    --
    --- witty signature
    1. Re:Our interview process by Anonymous Coward · · Score: 0
      We then ask them what their favorite joke is just to jolt them a bit and see if they have a sense of humor. Most people fail this question, unfortunately ;-).


      That must explain why you have so many super geeks and social rejects working for you these days. People who tell canned jokes often don't have what I like to call... "the thsocial thskillz."

    2. Re:Our interview process by jandrese · · Score: 5, Insightful

      I know the Joke thing would get me. There's no way I'd tell my best jokes to my employer (they just aren't workplace safe), much less my interviewer. Besides, you probably don't want to hear some of the jokes I make to myself when I go out to interview, they aren't very flattering to the employer or interviewer.

      --

      I read the internet for the articles.
    3. Re:Our interview process by Hoi+Polloi · · Score: 5, Insightful

      After working on computers for 8hrs+ a day I don't feel the desire to go home and code some more. I'd say you should be doing something else at home to keep your interests varied unless you want to hire single minded fanatics.

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    4. Re:Our interview process by philovivero · · Score: 2
      Wow. Then you wouldn't hire me. I fail on almost all counts. But let me elaborate, I think it isn't a good thing you'll miss out on me. Every employer I've *EVER* worked for, be it in the U.S., Taiwan, or New Zealand, has *ALWAYS* fought very hard to keep me from leaving them.

      My traits? Hmmm. I'm not a quick thinker. Hell, quite the contrary. I'm a very slow and belaboured thinker. I have a hard time keeping up in conversations because they change quickly. But I'm a very thorough thinker. I think deeper about any given topic than anyone I know. Perhaps this is why I don't follow conversations well... the MTV style of changing topics every 60 seconds don't suit me well. I'd rather stay on one topic for an hour.

      You want to ask me what my favourite joke is? I don't have one. But everyone I've *EVER* worked with says I have a great sense of humour. Very... DEEP. I don't tell jokes. Ever. But I often have something to say that makes people laugh or makes them amused.

      Well, at least on that "passion" front I can brag. I have no television, and I don't play games. But I do have six computers at home. They run PostgreSQL, Oracle, Sybase, Perl CGI scripts, shell scripts, and who knows what that I've written. I've also written a Dia diagram to SQL converter (tedia2sql).

      I'd recommend rethinking your interview technique.

    5. Re:Our interview process by LordNimon · · Score: 1

      Telling jokes is a very poor measure of one's sense of humor. When you watch a funny movie or laugh at something you saw, 9 times out of 10 it's not a joke, but rather something else that happens to be funny.

      --
      And the men who hold high places must be the ones who start
      To mold a new reality... closer to the heart
    6. Re:Our interview process by Anonymous Coward · · Score: 1, Insightful

      You have web pages that are lynx friendly.
      You are hired.
      Sign right here.
      -
      -
      Good luck with everything. Unlike quite a few people
      here, you know whats what.

    7. Re:Our interview process by Anonymous Coward · · Score: 0

      How many times has a person that can spout 50 jokes
      an hour ended up pissing off quite a few people?
      All it takes is one off colour joke and that guy has
      pissed off half the team.
      Some people like canned jokes, many don't.
      If your office is like a locker room, then hire a
      stand up comedian. If your office has a wide variety
      of people, you would be better off with people that have
      a more subtle sense of humour.

    8. Re:Our interview process by tomlord · · Score: 1

      All the good puzzles are well known. All that you're testing is whether or not someone has read the same puzzle books. If you are trying to make up puzzles of your own, you are probably doing a bad job.

      I've never met a competent interviewer. I've met plenty who are just clueless, and some who are asking "will you help us snow the mgt?"

    9. Re:Our interview process by Anonymous Coward · · Score: 0

      Riddles and logic puzzles ???
      Somebody starts throwing riddles and logic games at me
      and I am out the door. For one thing, thinking in the movie
      abstract terms about something that I could not give
      a rats ass about generally draws a big blank in my tiny
      little noggin. Give me a problem that is related to
      my kids getting to eat this month(paycheck) and I am
      beating my brains out trying to come up with a variety
      of possible solutions that are practical.
      Interviews should not be like a college entrance exams
      nor should they end up being about who has the biggest
      brain pan. This isn't MIT nor do I care how many
      papers you have written.
      Can you get the job done??
      -Your interviews remind me of the interviews in
      Armeggedon. In other words.
      useless

    10. Re:Our interview process by ckedge · · Score: 2


      DITTO.

      Looking at code and html or even a keyboard/OS when I get home is just *so* far out of the question. I was a geek with a C64 and a stack of programming books when I was in high school, and I did it for fun. But 40-50 hours a week is my limit unless the specific job/project/task is just *that* rewarding.

      On a related note - doing something that brings in money vs doing something that will DO SOMETHING USEFUL for somebody WHO REALLY NEEDS IT makes a big difference in motivation on a specific project.

    11. Re:Our interview process by Cinna · · Score: 1

      Hows this for an office friendly joke?

      Achilles Firewall: Where the only open port...is your a$$.

      Hmph. I think some senses of humor don't translate to the office very well.

    12. Re:Our interview process by Elwood+P+Dowd · · Score: 2

      You've got to be out of your mind. Some really intelligent people aren't going to have canned jokes for you at all. Some of them aren't going to want to tell a stranger (whom they don't want to offend) any jokes they know. Some of them won't want to work for an employer that would ask them interview questions simply designed to make them uncomfortable.

      I realize the whole "make them uncomfortable" plan might be popular, and it might weed out everyone that is upset by it, but that doesn't mean it's a good idea.

      Jesus. Make your interview more like a day at work. If that's how your office works, I'd quit.

      --

      There are no trails. There are no trees out here.
    13. Re:Our interview process by tyler_larson · · Score: 1
      After working on computers for 8hrs+ a day I don't feel the desire to go home and code some more.

      There's a fine line between doing what you like and liking what you do.

      How many professional sports players do you think don't enjoy playing a friendly game at the park with their friends when they're not "at work"? Some people love the game, some people just play the game. The same principle applies just about everywhere.

      To a real hacker, programming isn't about writing code, it's about solving problems. And when solving problems is your passion, chances are you probably do it at home too.

      When my day's work is done, I work on my car, I build R/C airplanes, I tweak my wirless networks I solder things on to my computer, and yes, I write programs. And somewhere in there I have an exciting social life too.

      I like building things, and I love learning. Writing code, reading manuals; It's all a means to an end.

      If you come across someone who enjoys writing code when he's not getting paid for it, chances are you're dealing with more than just a technician. This is the stuff that hackers are made of.

      Now the question is, do you want a hacker working for you? Hackers can be tough to work with if you don't provide challenging projects, and absolutely impossible if you give them secretary-style assignments. But if you have difficult problems to solve, they can be invaluable.

      --
      "With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea...."
      RFC 1925
    14. Re:Our interview process by Anonymous Coward · · Score: 0

      So if he enjoys playing around with computers, he should forgo that and do something that he doesn't like for the sake of being well rounded? Go ahead, but I'd rather hire someone who knows what he likes and spends his spare time doing it.

    15. Re:Our interview process by Anonymous Coward · · Score: 0

      Thats a terrible interview process. Screening programmers on IQ is no way to tell if they have any nack for coding. The nack is everything in programming. IQ is just a means to an end.

    16. Re:Our interview process by BollocksToThis · · Score: 1

      My favourite joke would get me booted out the door faster than you can say "Thank you for coming"...

      I think I'd have to lie for that question.

      --
      This sig is part of your complete breakfast.
  34. Simple by Anonymous Coward · · Score: 0

    Ask for a sample of their source, say 300-1000 lines min. and a few example apps of what they've written in the past.

    Your own 'good' programmer should be able to tell you how compedent he/she is.

    BTW any Goto's... send 'em back to microsoft!

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

      I resent that statement.

      Sincerely,

      Masahiro Goto

    2. Re:Simple by Anonymous Coward · · Score: 0
      BTW any Goto's... send 'em back to microsoft!

      Applicant: Hi, I'm Linux Torvalds and I've done a Unix kernel with help of friends all around the world.
      Interviewer: Do you have some code sample?
      A: Sure! Here, have a look.
      I: Hmmmm .... what's this? A *GOTO* ??? How do you explain this?
      A: Dijkstra probably hates me.

      (with apologizes to Linus and the memory of EWD)
    3. Re:Simple by mtrupe · · Score: 1

      I would never hire a "compedent" programmer.
      Perhaps I would hire a competent one, however.

    4. Re:Simple by Anonymous Coward · · Score: 0

      Joudan iuenai Goto-san.

    5. Re:Simple by RetroGeek · · Score: 1

      BTW any Goto's... send 'em back to microsoft!

      In general goto's are a bad thing.

      BUT, there are situations where only a goto will work, without going through a lot of gyrations with loop constructs.

      Mind you, in the past 10 years or so I have only had to use a goto twice...

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    6. Re:Simple by Anonymous Coward · · Score: 0

      My god man, your full time programmers have got to hate you.
      Do know how obnoxious it is to have to look at
      other peoples code??
      Do you know how many ways there are to solve a particular
      coding problem??

  35. Stretch their minds... by Dr_Harm · · Score: 1
    I generally interview with in three parts:
    1. Simple HR-like questions (i.e. how do you handle deadlines, etc).
    2. Simple-to-moderate technical questions (i.e. why is it important to use parens in a #define)
    3. Brainteasers
    It's the brainteasers that's where the 'okay' and the 'excellent' really differentiate themselves. The questions I ask have solutions... they take the typical person several days to work out. But I'm not interested in the answers, I just want to see how they think and attack the problem -- can they see the blind alleys? can they recognize when they don't have enough information? what sort of questions do they ask?

    Occasionally, I throw a curveball. "I see you have experience with the PPC architecture. What's your favorite PPC instruction?" You'd be suprised how many people answer that with "eieio, because it sounds funny". Which isn't a bad answer -- I wanted to see how they reacted to an unexpected question. Another candidate told me once that (for the ARM platform) the bit-invert function was good for writing highly-optimized bit-manipulation functions for banging away at hardware registers.

    Through all of this, tho, you need to keep in mind their personality. Will they play well with the rest of the team? That's a difficult factor to judge, and I'm likely to cut a candidate some slack on this.

    1. Re:Stretch their minds... by nojomofo · · Score: 1

      But I'm not interested in the answers, I just want to see how they think and attack the problem

      The problem that I have with this is that some people are much better at verbalizing their problem solving than others. I've (fortunately) only had one interview where I've ever been asked a brainteaser. And I bombed it. Not because I couldn't figure it out, but because I couldn't talk my way through how I was solving it. I'm a good problem-solver, but I can't generally say how I'm approaching it. So to you, it looks like I have not problem solving abilities. I am systematic, but those brain teasers just don't generally lend themselves toward systematic approaches, or at leas not the way I approach things.

    2. Re:Stretch their minds... by amuro98 · · Score: 2, Insightful

      I hate brainteaser questions during an interview.

      Wanting to know what my thoought processes are is one thing, but more often than not you're going to expect an answer - and if the candidate takes too long or doesn't get it, what then? Reject them?

      One of the worst interviews I had was at Microsoft. 8 straight hours of nothing but linked-list code fragments and MENSA questions.

      At the end of the day, I still had no idea what position(s) I had interviewed for, and couldn't tell what any of the folks I talked to actually did. Sort of makes answering "So, would you like to work here?" sort of tough, unless all you want to do is solve brainteasers while your peers look on and say "Come on, you're going too slow."

  36. soft questions and references by dcocos · · Score: 1

    Ask questions about problems you've run into while working with the lang but not nessecarily related related to the syntax or structure of the lang (ie classpath problems with Java or connection errors with databases)

    Most of these are pretty easy to setup a test for on your computer which you should have them use to trouble shoot during the interview.

    The other thing you should do is check with their past managers. Make sure that they've actually worked where they said they did and they did what they've said they've done.

    And finally look for their name on google!

    1. Re:soft questions and references by rickg13 · · Score: 1

      The only problem I would put forth in regards to the past manager is one which I've run into. Namely, where the hell are they!? The last 2 places I worked at were dotcoms that went down the tubes. I had good relationships with my managers but they liked to keep things professional. As such I had work numbers, e-mails, and maybe a cell phone. Suddenly the company dies, they leave and none of their contact info works. The company before that I had my manager's home and work info. However, 1) they eventually left the job and 2) I found out at a later time "Oh yeah, they moved out to Oregon". It's almost to the point where I feel the need to hire a private detective just to find past managers. Underlings and peers are no problem. I have a ton of them lined up. It's just the managers who have made like 'the Fugitive'. Rick

  37. Don't ask those technical questsions. by crazney · · Score: 1

    By the sound of the questions you ask, alot of good coders would probably screw them up in the heat.

    I know I could probably screw them up quite easily.

    why? Because with those questions your testing invterview skills, not programing skills. I'm a shy and nervice guy, as such in an interview I'd likely get paranoid and worried and just blunder everywhere (and probably try to answer too quickly). Even though I know the answer.
    Someone who is good at being interviewed would take it calmly and answer calmly, correctly.

    And as you probably know, most good programing geeks arn't exactly totally out there and self confident.

    What you want to do is two things:
    a) Look at their previous work. What projects have they worked on, what have they done personally in there own time. Ask them to submit any work they can do.
    b) Make them feel comfortable and then ask them technical questions, but in a chatty way so they don't feel pressured, it shouldn't be a Q&A type session.

    Disclamer: I've never interviewed people or been interviewed. But I am a programer, and have had two jobs as one (one I'm in now).

    Cheers
    David.

    --
    stuff
  38. Does contributing to open source projects help? by Mastos · · Score: 2, Interesting

    One of the reasons I contribute to open source projects is to learn something new that will perhaps be needed for a future job. In the interview for that job, I would think that being able to point to source code that is in production, so to speak, would be a tremendous advantage. Has this been the case for anyone? Has anyone gotten a job primarily due to related open source contributions?

    1. Re:Does contributing to open source projects help? by Anonymous Coward · · Score: 0
      Yes. Especially if you are trying to get hired at the companies funding said work.....

      It's the only thing we look for. The interviews tend to go like this:


      Hey I saw that patch that did blah blah blah... it was really cool. Man, nice.


      yeah. thanks.


      So, you're hired, you know.

  39. For a real look at their personality... by perfects · · Score: 2, Interesting

    ...casually ask them where they post. Then ask them what their User Name is. Then go read what they have written.

    Not only will a handle like LuvWarez or MyBossSux tell you a lot, but I suspect that over time a person's SlashDot messages (for example) are a good indicator of their real personality and attitudes. And intelligence. And sense of humor.

    1. Re:For a real look at their personality... by Dthoma · · Score: 1
      "...casually ask them where they post. Then ask them what their User Name is. Then go read what they have written."

      Yep, and if their karma's Excellent, they're a suckup. And if their karma's Terrible, they're an immature troll. So hire them if their karma's Good.

      --

      Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

    2. Re:For a real look at their personality... by Walt+Dismal · · Score: 1

      Help! Can Cowboy Neal help me remove my previous posts on kitten-skinning, DUI while yakking on cell phones, and compulsively purchasing Microsoft software? Oh yeah, and the ones on my KKK and Nazi membership. By the way, I collect knives and moths.

      So, does your company offer free lattes? I won't work without them.

  40. Check their grasp of reality. by Kenja · · Score: 5, Funny
    Based on some psycho developers I've worked with, I would recommend checking their grasp of reality in the interview.

    Some example questions would be.

    Which compiler do you prefer?
    1. GCC
    2. Visual Studio
    3. Small furry rodents are chewing my eyes out from the inside
    4. Metrowerks

    Complete the sequence. 2, 4, 8, 16, 32, 64
    1. 128
    2. 256
    3. 512

    Are the voices in your head loud enough to disturb your coworkers?
    1. Yes
    2. No
    3. How do you know about the voices?
    4. What voices?
    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:Check their grasp of reality. by wayland · · Score: 0, Redundant

      ...and the correct answers are:
      Which compiler do you prefer? GCC

      Complete the sequence. 2, 4, 8, 16, 32, 64, 128

      Are the voices in your head loud enough to disturb your coworkers? No :)

    2. Re:Check their grasp of reality. by Skapare · · Score: 2

      1. cat >a.out
      2. -128 (assuming signed 8 bit integer)
      3. Not when I ask them what to code
      --
      now we need to go OSS in diesel cars
    3. Re:Check their grasp of reality. by MobyTurbo · · Score: 2
      Some example questions would be.

      Which compiler do you prefer?

      1. GCC
      2. Visual Studio
      3. Small furry rodents are chewing my eyes out from the inside
      4. Metrowerks
      You forgot "5. Cowboy Neal" for each question.
  41. here's how by PanBanger · · Score: 1

    give them a piece of paper with the word "Slashdot" on it. If they pull out a pen and scribble "first post" at the bottom of the page, don't hire them.

    1. Re:here's how by GlassUser · · Score: 1

      Right. Everyone knows a real troll would write "f1st pr0st"

  42. Repeatly tasks by famazza · · Score: 2

    Ask him/her to do something repatly, if he organizes a way to do it faster, or to do it easier then just repeating each time a different way, the he/she is a good programmer. ;o)

    --

    -=-=-=-=
    I know life isn't fair, but why can't it ever be un-fair in MY favor!?
  43. Ask about quality by matsh · · Score: 2

    I think this is a good question:

    How do *YOU* make sure the code you write is of good quality.

    The answer must involve a discussion on what characterizes good code, *AND* how this particular person gets his/her code to that goal.

    It should reveal if the person doesn't understand what quality is, and/or if they have no idea how quality code gets written. A good programmer needs to know both these things.

    It is a really hard question, and I think it would be pretty obvious if you try to bullshit yourself around it.

    Mats

    1. Re:Ask about quality by Anonymous Coward · · Score: 0

      would "i don't know, i am sorta an idiot-savant" be bsing it, that would be my only responce, i can write tight code in 13 langs to do just about anything, no idea how though..

  44. for fun projects! by drenehtsral · · Score: 2

    Ask them about their for-fun projects. This will break the ice, and give you an idea for their level of geeky enthusiasm for programming. It will also give you a look at how they approach problems, and will give you a good buzzword-free handle on the sort of thing they are good at.

    If you task a programmer with things similar in nature and challege level as the stuff they are doing for fun on their own time, you'll have a better fit to their skills. A programmer knows what they can do, and they will use everything they've got on their own projects. A programmer with no projects of their own probably lacks design skills and is more of a coder than a programmer.

    It may help to point out that you're not asking this so as to steal away the projects, but rather to gain a better/wider picture of one's experience.

    (I work as a programmer for perspective information).

    --

    ---
    Play Six Pack Man. I
    1. Re:for fun projects! by Anonymous Coward · · Score: 0

      I always ask them to tell me about the coolest thing that they've coded. If they jump on the question and they're excited and proud, then I take them seriously. They'll usually describe the techniques/challenges that they faced.

      If they hem and haw, then blandly describe something they worked on, then I tend to blow them off. Even worse is when they can't think of an example.

  45. Standardized testing across the board? by Xuli · · Score: 0

    I recently started work for a small comany that has a pretty solid core staff of people that have an average tenure of about 5 years. As part of my interviewing process, I was introduced to a standardized test that one of the executives had recently learned about, taken, and felt was an excellent measure of an individual's professional and personal fit in the organization.

    While I don't tend to put much stock in most standardlized testing, I am currently sitting at my desk at said employer and must, therefore, acknowledge that the process played some part in my receiving an offer.

    The push now is to apply the test to everyone in the organization, to pick out common themes of people who've been part of this company for some time.

    While I'm not sure this would have any bearing on assessing someone's performance in a technical role (there are some reasoning aspects to the test) it will help to ensure that there is a sanity check as to who is a good fit moving forward.

    Perhaps this is one way to address the issue, as someone who gets along with peers and can relate to them, is more likely and willing to mold into the culture of the organization.

    --
    "I'm disrespectful to dirt! Can you see I am serious?"
  46. ask them about the mailing lists they read by Anonymous Coward · · Score: 0

    One of the best phone-interview questions I was ever asked was "what mailing lists are you on?"

  47. idea by Tebriel · · Score: 2

    Ask them how much they've done in the past 3 months to improve their skills. If they say nothing, show them the door. A good programmer is always looking to expand their skillset in some way.

    --
    The Blaster Master Fighting for Truth, Justice, and Evil Pie since 1979
    1. Re:idea by Anonymous Coward · · Score: 0

      OK, maybe, but a good programmer is constantly learning on the job in order to do the job. Every decent programmer I've worked with could learn languages and tools pretty much on the fly in the context of real work. This adaptability and lack of technological fear is one of the traits that makes them good.

      Even with a great "skill set" match, starting any new job means diving into lots of new stuff anyway, so this seems to me a more important trait than continuous non-directed updating of skills.

      In fact, the continuous updaters I've known were all pretty lousy on the job so I'd beware of using this as a metric.

  48. Everyone's favorite: logic puzzles by reyalsnogard · · Score: 0

    Much to a lot of interviewee chagrin, I advocate the employment of logical puzzles as part of the interviewing process. By throwing the 'technically-inclined' candidate a logical problem, and asking for thoughts aloud, the interviewer can test the applicant's ability to formulate correct assumptions, heuristically test solutions, and explain their reasoning/rationale.

    .. and if those aren't valid points, every interviewer should have some lithe trick up their sleeve to make the interviewee squirm. =)

    For those who may have missed it the first time it was /.'d, there exists an expansive collection of riddles/logic puzzles/etc. at http://www.ocf.berkeley.edu/~wwu/riddles/intro.sht ml

  49. Questions... by wilburdg · · Score: 2
    To find out if he is a real programmer you need to ask questions like:
    • Do you have a girlfriend?
    • What did you do last friday night?
    • If you had $10,000 what would you blow it on?
    • What is your slashdot karma rating?
    • Can you wear sandals with a suit and tie?
    • Name 17 cafenated beverages
    • And last but not least: What is the airspeed velocity of an unlaiden swallow? (I actually had someone ask me that once)

    1. Re:Questions... by Jucius+Maximus · · Score: 1
      "Name 17 cafenated beverages"

      And most importantly:

      Spell <random word picked from thesaurus>

    2. Re:Questions... by Papyrus · · Score: 1
      And last but not least: What is the airspeed velocity of an unlaiden swallow? (I actually had someone ask me that once)


      I trust you asked them whether it was a European or African swallow !!

    3. Re:Questions... by nadador · · Score: 2

      > # Can you wear sandals with a suit and tie?

      I agree that this is a fundamental programmer attribute, and one that should not be ignored in a first interview.

      But, would you believe that not everyone thinks sandals and suits go together? I went to court on a traffic violation and wore a tie, etc., and sandals. The judge called me a no-sock, sandal-wearing hippie. Of course, then he didn't make me pay the fine, so it worked out okay :-)

      --

      Outside of a dog, a book is a man's best friend. Inside a dog, its too dark to read.
    4. Re:Questions... by wilhelm · · Score: 1

      * And last but not least: What is the airspeed velocity of an unlaiden swallow? (I actually had someone ask me that once)

      Dude, so did I! It was hilarious! And of course, I gave the correct answer... :)

      Unfortunately that particular gig didn't materialize, but they said it was because of them not having enough new work. Oh well.

    5. Re:Questions... by Anonymous Coward · · Score: 0

      ..if they didn't have enough new work, why in the hell were they wasting time and money interviewing people.

      They could at least think of better excuses, or *gasp* just tell you that you weren't what they're looking for.

    6. Re:Questions... by tiedyejeremy · · Score: 1
      • "The judge called me a no-sock, sandal-wearing hippie. "
      You say this like it is a bad thing...
      --
      Anything you say will be held against you. ... "tits"
    7. Re:Questions... by Anonymous Coward · · Score: 0

      I asked Jeeves, just for fun, and all he gave me was a few broken links, and the ones that did work were lame. Then I asked Google, and it responded with, "Did you mean: What is the airspeed velocity of an unladen swallow?" I clicked that link and it gave me a whole bunch of links that actually would help answer the question.

      Rock on.

  50. Ask for percentages by totallygeek · · Score: 2
    Ask them to break out in percentages where they have learned most of their programming:

    • In school
    • On the job
    • At home

    Pick the one with the highest percentage At home.


    This is such a tough thing to do. I understand why there are the strange creative-thinking or logic problems offered-up to applicants (How many bricks would you guess there are in this building? How many gas stations are there in Florida? Using a 5 gallon bucket and a 3 gallon bucket, give me four gallons of water -- not sure the wording on this one). I have never been very good at logic problems like Brad has on a green shirt and is sitting next to a woman; Mindy is wearing a blue shirt and is sitting beside someone wearing a purple shirt; what color shirt is Tracy wearing? I would have never made it on the LSAT test for law school. Of course, I have never claimed to be a great programmer or anyone dedicated to reading enough to be an attorney.


    Good luck in your hirings! At least it sounds like you can get rid of staff if they don't work out. I have seen terrible people get to sit on the job endlessly because the company fears firing anyone from the liabilities. I have worked with a CNE (Novell Netware certification) that had never built a Netware server, didn't know how to create/manage print queues, and could not figure out Groupwise or Netware Connect. I have worked with some "Linux experts" that didn't know what an inittab was for, could not install Linux, and were totally clueless when it came to installing software. I have also worked with programmers that used all global variables, did not put things into separate, clear functions (500+ lines of c in main() ), and couldn't figure out how to do anything from scratch. They all got to sit around while someone else (me usually) covered for them!

  51. Working through a problem by SuperMallen · · Score: 1

    One the best techniques I've used (or had used upon me) is to pose a general problem, maybe even one you've encountered before on this project, and see how the candidate addresses it.

    The trick I've found with these sorts of questions is to pose it very broadly at first ("This piece of the application goes slow. What do you do to make it go faster?") Then see what kind of questions they ask you. ("How is this piece configured? Have timing measurements been taken?") What they ask you can reveal much more about their thinking processes than any puzzle-type questions you ask them.

    Beyond that, identify the three or four key skills that will be needed for the position, then come up with two sets of questions for each: a normal set and a mean set. The normal set should contain questions that any programmer with a reasonable amount of experience should be able to answer. (For example, a Java question might be "Why would I decide to use an inner class?") Then you can ask mean questions to see how far their depth goes ("You can't use the keyword synchronized on a static method. Why?")

    Always always always get them to talk about a past project. Drill into their knowledge and find out exactly what they did.

    --
    -- What is this Earth thing you call "slow"?
    1. Re:Working through a problem by AJWM · · Score: 2

      Then you can ask mean questions to see how far their depth goes ("You can't use the keyword synchronized on a static method. Why?")

      The problem with questions like that is that you come across looking stupid to someone who does know their stuff. (You can use the keyword synchronized on a static method.) You might lose your best candidates right there -- not because they can't answer the question, but because they won't want to work for a bozo.

      I had a co-worker who liked to ask a really obscure technical question (typically something about determining the convex hull bounding a set of points in 3-space), not to see if they knew the answer, but to see how they reacted to the question. If you tried to bullshit your way through it, you were out. An honest "I don't have any idea, but here's how I'd research it" type answer was about as good as actually knowing what he was talking about (the question had nothing to do with the kind of work) and giving a technically correct answer.

      --
      -- Alastair
  52. Riddles by DeadSea · · Score: 2
    Three years ago, as I left college, I interviewed with about sixty companies. Most asked some programming questions, and some kind of riddle. You know the kind of stuff:
    If you have a cabbage, a goat, and a wolf, how do you get all three accross the river without the wolf eating the goat, or the goat eating the cabbage given that your boat can only carry you and one other item.

    (You of course have to take the goat, come back for the cabbage, take the goat back, bring the wolf, then retrieve the goat one more time.)

    I don't know if these actually show anything, but they were popular, I probably got asked 30 distinct riddles.

    For programming questions I tend to ask high stress problem. Such a problem has a simple solution, but it is non-obvious, and puts people in a time crunch. One such problem I would use is find a regular expression that you can put into the search box of your text editor to find the first c-style comment (no "\/\*[^]*\*\/", and "\/\*.*\*\/" don't work, although they are the most common first answers). Things that I've run across that were harder than I thought they would be or have elegant solutions that I didn't think of right away. I have several from my college classes where the professor presented something and the whole class gasped, and said, "Why didn't I think of that?".

    1. Re:Riddles by WetCat · · Score: 1

      Wow! A great solution: make goat and wolf incapacitated (or dead) and you are in freedom of choosing whom to take in boat!

  53. Story about a guy at work by The+Wing+Lover · · Score: 5, Funny
    Work was interviewing somebody for a non-technical position. However, he had put on his resume that he knew HTML. The company's president (we're really small), who was interviewing him, quickly came to the conclusion that he didn't know a thing about HTML, but he wanted to see the guy sweat. So he said, "Here's my computer; I'll be back in 10 minutes. I want to see a web page".

    Well, 10 minutes later, the president came back in the room, and there was a web browser displaying his creation -- a single sentence, "Hi Tim, I wrote a web page" in bold and italics. Up on the screen were other web browsers containing internet searches about basic HTML, as well as the output of "view source" from one of our web pages.

    Three years later, this guy is still with us, by far the best customer service manager we've ever had.

    I guess the point is, give the person a puzzle that you know that they have no idea how to solve, and give them the resources to figure out how to solve it, and see what they do.

    --

    - In Capitalist America, law violates YOU!

    1. Re:Story about a guy at work by Hanashi · · Score: 5, Funny
      I guess it worked out for you, but I can't say that I'm all that enthused about this approach. See, when I read that, I read:

      "Here's my computer. I'll be back in 10 minutes. I want my box rooted 10 ways from Sunday. Make me your bitch."

      Otherwise, it's was pretty clever. I guess your boss was a bit shocked...

      --
      Check out my eclectic infosec blog at InfoSecPotpou
    2. Re:Story about a guy at work by WinterSolstice · · Score: 2
      That sounds like an awesome way to hire a security guy.

      Give him a sandbox, that seems to be your actual machine on your actual network. Tell him he has 15 minutes to own you system.

      If he doesn't even try, he's probably not worth it.

      -WS

      --
      An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
    3. Re:Story about a guy at work by MisterBlister · · Score: 5, Funny
      Tell him he has 15 minutes to own you system.

      Does he get oral sex in the meantime?

    4. Re:Story about a guy at work by demaria · · Score: 3, Funny

      Just what I want. An interviewee downloading root kits and trojans.

    5. Re:Story about a guy at work by Anonymous Coward · · Score: 0

      I guess it worked out for you. But he would've been out the door if I were interviewing him for complete dishonesty on his resume.

      Of course, maybe that's what you were looking for in a customer service manager ... :/

    6. Re:Story about a guy at work by Anonymous Coward · · Score: 0

      Why whould you do that? The guy knows HTML now, what's the difference?

    7. Re:Story about a guy at work by anonymous+cupboard · · Score: 1
      Isn't that what the FBI did to those Russian consultants?

      Personally, I often do support work and I would be very warey of being asked to crack any system at an initial stage without a signed waiver. On the other hand, I do support jobs and if it is clear that there is a real problem which is caused by someone being locked out of a box I will crack a system when I get a verbal ok from their boss. However, under such cases, time is an issue.

  54. Asking the wrong questions by leibnizme · · Score: 2, Insightful

    The technical interviews tend to be a combination of specific technical questions ('Is friendship inherited? How would you find out?') and algorithmic ('Given the numbers from 1-10 missing one number, how do you find the missing number?'). In addition, we essentially try to interview for: intelligence/performance. technical skills (algorithmic, etc.), and team compatibility.

    "Is friendship inherited?" is just a bad interview question. Are you looking for specific programming languge knowledge, or the knowledge to search for answers? "How would you find out?" indicates the latter. Phrase the question accordingly: "If you wanted to brush up on friend classes, where would you turn?"

    Depending upon the skill set you're seeking, algorthimic questions should be of an appropriate level of difficulty. "Given 1-10, with one missing..." is a question my mother could answer without any knowledge of computer science. If you want to check for algorithmic understanding, pose a graph problem. They're easy to visualize and easy to describe. You should get some stock answers like Dijkstra's or BFS or Kruskal's... Then ask for the person's own algorithm to see how he reasons through the problem and modifies his approach. This helps test for intelligence and flexibility in thinking.

    As for testing team skills, pose both hypothetical questions and real-life questions. "What would you do if a person in your team was not pulling his weight in a project?" "Describe a time in your life when teamwork was essential. What were some problems you encountered?"

    In general, the best thing you can do is force the person to talk. Not just simple, short technical answers, but stories and long "essay" answers. You shouldn't ask specific details about C++ ("In a switch() statement, how you specify the default case?") but general questions ("When would you use a switch() statement?"). Of course, you would want to ask harder questions, but you get the idea.

    The best interview I had was with the CIA (Central Intelligence Agency). Did they care about my technical skills? No. They had my resume and my transcript. Every question got me talking about myself. "Tell me about a time you failed" separates the men from the boys. And you get a good sense of who this person is... which is the goal you're really seeking.

  55. Ask him to perform a common task... by Anonymous Coward · · Score: 0
    "Given $600, an electrical outlet, a T1 line and 5 hours, build the best server you can."

    If he comes back to you with a kick-ass Linux box, hire him. If he comes back with a Windows box, tell him you'll let him know. Then hand the box to the next candidate and say:

    "Given this computer, a T1 line and 5 hours, build the best server you can."

    Repeat.

  56. Hire people you know by Wee · · Score: 2
    how do you find out if someone is a good programmer?

    This may sound trite, but I've seen it happen successfully over and over in the past three years the tech world has been languishing: Hire people you've known professionally. There are a lot of folks that got tech jobs due to the dotcom expansion who would have otherwise not had that exposure. The VC money was just phosphorus for the tech algae bloom, though. Now the colony if is dying off, and the strongest ones survive. Trouble is, some of the weaker ones can fool you into think that they are really strong ones. The only good way past this is first- (or even second-) hand knowledge about the person you're hiring.

    It's common knowledge that the the job boards (Monster, Dice, et al.) are completely useless and that the only way to get a tech job is to get a referral/offer from someone you already know. So it stands to reason that the people who are looking for work either don't know anyone else professionally (not a good sign) or they know people professionally, but those people either can't or won't hire them. You can't tell the difference between them all from one interview/phone screen.

    Interviews are like references: they can be as useful as the interviewee is honest. But the best way to hire good people is to hire people whom you know are good. Failing that, hire someone as a temp, on spec, for a probationary period, etc. If they work out, then hire them full time. There are a lot of very talented people out of work, and it's something of a buyer's market. If you have a decent position open, then many people will put up with being a temp in order to secure the permanent job.

    -B

    --

    Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.

    1. Re:Hire people you know by Anonymous Coward · · Score: 0

      So it stands to reason that the people who are looking for work either don't know anyone else professionally (not a good sign)

      wow, that has to be about the most idiotic statement of the year. I remember a few years ago working at a production plant going to school at night. Did I know tech people? yeah, the ones I was going to school with. (gee, I don't recall them hiring.) It took me a while to land a good job, and all is well.

      Who knows how many good people your've passed up.

  57. behvioral interviews by mitchner · · Score: 1
    My company gave all techies a good training class on an interview style called behavioral interviewing.

    Traditionally, interviewers would ask clever questions requiring the candidate to think on their feet. Of course, if the candidate has heard that question before, they will slam-dunk the answer regardless of their intelligence/ability. From earlier stories, lots of /.'ers follow this approach. The main problem with this approach is being able to quickly answer a handful of difficult questions in an interview doesn't mean that person will write good code day in and day out or be a good employee. IMHO, it measures interviewing ability more than the ability to get work done.

    The other approach is to ask the candidate what they've done and how they did it.
    • Describe the design patterns you used on your last project
    • Describe a difficult algorithm you had to write recently and how you wrote it.
    • Describe a problem you had on your last project and how you solved it.
    • Describe your role on your project team.
    • etc...
    Then, take their answer and drill into more details on it. Try to understand their process of working and solving problems on a real project.
    I think this approach works well.
  58. It's not all about ability by 72beetle · · Score: 2, Funny

    At one job interview, I was asked "What would you do if you found $2500 on the street?"

    I said, with a shit-eating grin on my face, "I'd buy puppies for orphans", and was hired on the spot.

    In any case, I think a good sense of humor is essential, if I was in a position to hire someone, I'd ask them to tell me a joke during the interview. You can learn a lot about someone by what they think is funny. An employee's technical ability can be improved as needed, but their personality is what it is.

    -72

    --
    -Those who dance are considered insane by those who can't hear the music.
    1. Re:It's not all about ability by Wraithlyn · · Score: 4, Funny

      "I'd buy puppies for orphans"

      You MONSTER! Do you know how much it costs to care for and feed a puppy? And you'd inflict this financial burden on poor orphans?

      You're sick SICK SICK!!!

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    2. Re:It's not all about ability by Anonymous Coward · · Score: 0

      Now the kids watch the puppies starve to death the same why they are...

      I agree... You sick FUCK!

    3. Re:It's not all about ability by damien_kane · · Score: 1

      You misunderstand his answer...

      Orphans are small and don't eat much...
      Puppies are small and organic...
      Therefore, puppies make good meals for orphans

    4. Re:It's not all about ability by NanoGator · · Score: 5, Funny

      I interviewed for a position as Sysadmin once. They asked me how I'd troubleshoot the Blue Screen of Death. My response was "I'd ask Clippy".

      Didn't get the job, though.

      --
      "Derp de derp."
    5. Re:It's not all about ability by stevey · · Score: 1

      About a week before I landed my current job I updated my CV to include:

      * Decorative around the office
    6. Re:It's not all about ability by Elwood+P+Dowd · · Score: 2

      That's funny on so many levels.

      --

      There are no trails. There are no trees out here.
    7. Re:It's not all about ability by jsse · · Score: 2

      I interviewed for a position as Sysadmin once. They asked me how I'd troubleshoot the Blue Screen of Death. My response was "I'd ask Clippy".

      Once I've a friend being asked the same question. He explained in details what to do when you see exception '0D', '0E', 'VxD', etc. He even had detail explanation on how it'd happen and what caused the problem.

      He didn't get the job, neither. I think this question is to test your response in dealing with impossible problem. You are out if you attempted to give answer. :)

    8. Re:It's not all about ability by Xaroth · · Score: 1

      "I'd buy puppies for orphans"

      You MONSTER! Do you know how much it costs to care for and feed a puppy? And you'd inflict this financial burden on poor orphans?

      You're sick SICK SICK!!!


      Neverminding where you're going to find all those orphans to pay for the puppies in the first place. Next time, try using cash instead--not as portable, but more commonly accepted.

  59. An untested (AFIK) suggested question... by Dark+Nexus · · Score: 1

    Ask them about their programming "style". I know I've worked with other programmers who are on the same skill level as myself, but have fundamentally different approaches that just did not work well with mine.

    Even though a wide array of viewpoints can be important, similar mindsets can go a long way to a team working well together and opposing styles can kill productivity.

    --
    Dark Nexus
    "Sanity is calming, but madness is more interesting."
  60. Brainbench by Omega1045 · · Score: 1

    I start out with a 15 question test from BrainBench on the subject matter. When I tell candidates that they will be taking a test, about 25% weed themselves out (ie I never here from them again). I only continue inteviewing those that didn't flunk the test. I am not a good test taker, but I think I am a fine programmer. So, I don't want to miss a good programmer just becuase they don't test well. However, If someone flunks the test, that means (to me) that they don't no sh!t. Next, I have a real-world programming problem I faced a while back that I offer to the candidate. During the interview, we walk through how to solve the problem. This gives me a good window into their analytical abilities, programming skills, and general organizational and thought processes. The problem is solved with psuedo-code, but I make sure to ask some questions relating directly to "mechanical" issues of programming (memory amangement, data connection, remote data, Big O, etc). The third ingredient for me is gut feeling. I have a pretty decent knack for spotting BS.

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

  61. simple by tomstdenis · · Score: 3, Insightful

    seek honesty not perfection.

    Ask questions of humility. That should be a good indication. Honest people will have no trouble telling you of their past mistakes and faults as well as their strengths and abilities.

    If someone only tells you all the good they've done [e.g. positive outcomes] then they are either a miracle or holding things back.

    Tom

    --
    Someday, I'll have a real sig.
  62. Don't Focus on Quiz Questions by adamjone · · Score: 5, Insightful

    I've been on both sides of the interview table, and from what I can tell, most interviewers fall into the same trap: focusing too much on detailed technical questions. In reality, your programmers are going to be involved in much more than writing eloquent solutions to programming problems. Your programmers will most likely be involved in project management, project design, project implementation, project testing, and project deployment. Be sure not to get wrapped up in asking too many questions like "how many bytes in a java int?" Instead, look for good all around problem solvers. Ask about their design experience and what tools or resources they have used in designing previous projects. Ask how they would handle testing when a project has been under-quoted. These are questions that good problem solvers will be able to answer quickly, and those who "studied" for an interview will not. It will give you a much better idea of how your potential employee would work out in your business. Be sure that your interviewee will not only be a good programmer now, but also in the future when your development tools change.

    Another useful tool for an employee interview is to have a break for lunch with a group of your staff. This will give you and your staff a chance to meet the interviewee in a less structured environment. Many times, an interviewee will relax a bit during your lunch, and you get a much better idea of the person's attitude. Someone who answers technical questions very well may turn out to be a social dunce. Or you may find that the person doesn't share the goals of your company. It will also give your staff a chance to find out if they fit in with the group.

    If you don't feel satisfied without asking some technical questions, be sure to ask questions which apply to your framework, and not necessarily the programming language you use to implement that framework. For instance, if you design using Object Oriented principles, ask about "has a" and "is a" relationships. The idea is to ask questions that are still relevant if you change languages from C++ to Java or to some other language.

    Using some of these ideas, my company has been able to easily pick the good candidates from the poor ones. YMMV: good luck!

    1. Re:Don't Focus on Quiz Questions by Anonymous Coward · · Score: 0

      Many times, an interviewee will relax a bit during your lunch, and you get a much better idea of the person's attitude.

      I agree with the idea of an informal lunch interview, but ... I don't know how many times I've done lunch interviews that started off, "So do follow the baseball at all?" And then the moment I take a bite of food the interviewer takes out a stopwatch and starts drilling me with questions, "What is the average air speed of an unladen swallow!?"

      Meanwhile I'm hungry, dressed up in some uncomfortable monkey suit, and already mentally tired from the two morning interviews. All I really want to do is talk to the guy a little about the social atmosphere around the company and around town and all he wants to do is have me solve ancient Greek geometry riddles while my ravioli goes cold.

      On the other hand, group lunches between a couple employees and a couple candidates usually go well.

    2. Re:Don't Focus on Quiz Questions by alecbrown · · Score: 1

      I totally agree with this, last year I did alot of interviewing for some Java/J2EE programmers, I rejected lots of dross (including one guy who told me that there should be no reason why he would ever need to come into the office).

      One of the guys I actually hired was a C++ programmer, he had used Java in his spare time and was keen to change. At the time I guess if I had shown him some of the obscure technical questions I have had in the past, he probably would have flunked it. Obviously I do ask some technical questions, guageing opinions, experiences, knowledge of patterns, issues, etc..

      What I am trying to say is that general programming interest, aptitude, temperement and problem solving are far more important than 'what is the difference between a Statement, a PreparedStatement and a CallableStatement' as they might not have done any JDBC code before, doesn't mean they couldn't work it out quickly in a work scenario.

      BTW C++ guy very quickly became one of the best J2EE guys I have worked with.

  63. make them answer... by csguy314 · · Score: 1

    fill in the blank questions...

    1. All your base are belong to ___ ?

    --
    This is left as an exercise for the reader.
  64. Cute questions... by thunderbug · · Score: 1

    ...don't work. Measure what a person can do based on what they have accomplished. Cute questions, so typical of programmer interviews, only show a specific example under the heat of an interview. A different question and likely a different result.

    In the real world, reflection is more valuable than a quick answer. Don't attempt to make a hiring decision based on one set of interviews. For final candidates, stretch the preocess and talk to the person several times over a period of days/weeks. Glean keywords. Get to know the person. How they will work together is very important.

  65. well by jukal · · Score: 2
    (I suppose you are talking about a job interview :)

    ofcourse it depends of the type of work and team he/she is going to do and join. I don't think there's any magic in it. Once, for example, I talked with our new foreign employee and my present friend only via Irc, for maybe 6 months. That time was long enough to cover all kinds of things, and to solve some real problems along the way - do some teamwork.

    That might not have worked in most of cases. Anyway, I think it's generally good that the whole team meats and possibly even "works" with the new possible team members, and make the decision together. That way, everyone has the chance to say "u suck", in time.

    So, maybe I think there should be some kind of traditional formal interview part but I think that atleast as important is - especially if you have never met the person before - to do something together.

    Sk1llz are not all that matters, I think that the co-operating skills are maybe even more important than being a guru in anything or even everything.

    I don't do recruiting for my work, but this is the feeling I have got.

    1. Re:well by jukal · · Score: 5, Funny
      > Anyway, I think it's generally good that the whole team meats

      I don't have anything against vegeterians either </in our "How to cover up a typo" series> ;))

    2. Re:Well by bloggins02 · · Score: 1

      You have a good point. However, I think a small function such as the swap is good because it lets you see how programmers solve a problem on the spot, yet it's not large or complex enough to be downright unfair.

      To be honest with you, I'd probably look it up too... given a choice that is :)

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

      I was actually given this as a test from my current employer. I was aked how would I reverse the words in a string without allocating more memory.

      I came from a background in languages that did all of the memory allocation so I was really lost and had to draw on knowlegde from a single C class I'd taken years ago. Anyway the interviewer just sat there and let me fumble my way through it just to see how I thought. Anyway I came up with a solution eventually, a very bad solution but it worked. I got the job, not because I knew anything about pointers but because I was willing to work it out and make a stab at it.

      So I believe that this type of question while a good thing to ask shouldn't be the basis on hiring someone. It should just be used as a tool to gain insite into somones abilities.

    4. Re:Well by Anonymous Coward · · Score: 0

      anyone who doesn't have swap memorized, or can't figure it out in 5 minutes (tops) is not someone you want as a programmer.

  66. Ask about solutions to your current problems. by Whispers_in_the_dark · · Score: 1

    IMO: If you're working on something that isn't terriby secret around the time of the interview ask the interviewee for his/her opinions about the solution to the problem. This gets you a little free (although dubious) advice and lets the interviewee know the sorts of challenges that they will face in the job.

  67. OOPS I MEANT "THEIR" by Anonymous Coward · · Score: 0

    lol I cannot spell omg i think i'll post on slashdot DROOL....

  68. Not freaky at all.. by k98sven · · Score: 2

    When I applied for my current programming job, they gave me a barrage of tests and compiled an aptitude and personality profile of me.

    It was really freaky how accurately it described me...


    Not really. The big fault in all these tests are that they are essentially asking you what you think about yourself,
    and then spitting it out in different words.

    Here's another simple test:
    10 PRINT "How would you rate your programming skills?"
    20 INPUT ANSWER$
    30 PRINT "This is our evaluation of your programming skills: ";ANSWER$

    So you shouldn't be surprized at the result matching your view of yourself;
    The question is if the test result matches your co-workers descriptions of you.

  69. Who do you want? by Anonymous Coward · · Score: 0
    Some how I think the question isn't accurately describing the real problem. For me, the better question is "who do you want to work with?"

    I am terrible at reciting text book algo's and other terms a CS major would know. I learned to code on my own and take a deconstructionist perspective on coding and architecture. I've always been able to catch on quickly and get the job done, but I don't have the academic background other have. But for me that is a strength, because I learned critical thinking in college. The techniques apply to every engineering challenge I've come across and helps me identify non-engineering problems blocking the solution. I'm no guru or anything, but from my personal experience, the drive to excel is your best bet.

    Don't confuse greed and expectations of wealth with a person's desire to improve themselves and reach their full potential. I usually with my gut and think, would I want to spend 7 hours working with this person. If the answer is no, then the chances of that person fitting in the team is pretty unlikely.

  70. Look at their code, for one thing by EvilAlien · · Score: 2
    If you want a programmer, have another programmer look at their code. Have a non-programmer with an understanding of logic and basic concepts look at their code.

    Mix that with good behavioral interviewing techniques (ask your HR people for help, in other words) and you should do ok.

    --
    perl -e 'print $i=pack(c5, (41*2), sqrt(7056), (unpack(c,H)-2), oct(115), 10)'
  71. We've created a test by Anonymous Coward · · Score: 0

    A quite simple test. We give them a compiler, and editor, and a bunch of problems to solve (obviously with the editor already configured for Fn=compile+link). These range from anything as simple as "Make a loop to print ten consecutive number starting with n" to more complex algorithms, over to huffman coding (where they are already give the huffman table) to basic graphics manipulation, a simple sound low-pass filter over a given sound input file (file by name, where the correct output file is present for them to compare) and such.

    This will display a number of skills: Do they know how to even make a loop and print output. Do they know some basic computer algorithms. Do they know file in/output...

    It might sound silly, but I don't think you'd be surprised how many of our applicants fail. Hell, it seems half of them don't even know there is something called CRC, much less can they explain what it is, does or is used for in an abstract way (without requiring them to even explain the polynomials or the inherent complexity - which is well beyond even my comprehension). Many seems to have fiddled with VB for a week and two and then come to the conclusion (probably due to M$ hype): "Hey, I'm a programmer!".

    What I'm trying to say is probably that you have to put a considerable amount of effort into _your_ selection process to see what applicants are candidates for the job you seek for. _You_ have to create the tests. Create them in a hierarchical manner so you can reuse the most basic e.g. C++ tests for a C++ position and so on, but don't EVER ask why manholes are round! :-)

  72. What I do by Anonymous Coward · · Score: 5, Funny

    I usually ask if they contribute to open source. Then, if they answer affirmatively, I tell them they can telecommute, give them a design spec document, and give myself a bonus for saving 100 percent on salary!

    1. Re:What I do by Anonymous Coward · · Score: 0

      Just for that I am going to GPL my code and OWN your
      ass when you use my code in your proprietary product.
      So there.

    2. Re:What I do by DEBEDb · · Score: 1, Offtopic

      Well, *I*'ll factor out all your code into
      LGPL library, and if you still have a problem,
      claim prior ownership of the code :)

      --

      Considered harmful.
    3. Re:What I do by Fulcrum+of+Evil · · Score: 2

      But you're still SOL, because he GPL'ed the code. You can't relicense stuff you don't own.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    4. Re:What I do by DEBEDb · · Score: 2

      But if I had the code first, he had
      no right to GPL it, see...

      --

      Considered harmful.
    5. Re:What I do by Anonymous Coward · · Score: 0

      The moment you allowed him to work on your code under GPL you GPL'ed it yourself.

  73. Finding the missing number by PrestoChango · · Score: 1

    XOR all the numbers together.
    XOR the result with 11.
    The number you end up with is the missing number.

    a ^= b is the fastest operation a cpu can perform. I think this is the fastest possible way to do it.

    Can I have a job?

    1. Re:Finding the missing number by Anonymous Coward · · Score: 0

      I think the fastest way is probably to take the binary search approach. Could reduce the number of operations to 3-4 operations.

      Still I like that little trick. Haven't come across it b4.

    2. Re:Finding the missing number by Anonymous Coward · · Score: 0

      Sorry didn't mean operations in the literal sense. But ya catch my drift

  74. Maybe this test helps by Anonymous Coward · · Score: 0

    Check the questions asked here, you may want to include this as a side test: Personality Disorder Test

  75. A good first question... by wbattestilli · · Score: 1

    Do you own your own computer? If so, what exactly is in it and what OS is it running. Please justify each answer.

    Basically, if person doesn't own a computer or only owns a Dell that they just bought use to surf the web, then they aren't really "into" computers. To be a good programmer it has to be a hobby too.

  76. Thought-process of programmer candidate by Dark+Coder · · Score: 1

    The way the programmer thinks is also a value-added skill-set to today's rapid-prototyping startup company.

    Such an example would be to ask the Programmer what steps he/she would take to write the code for "Fermat's Algorithm."

    Then listen carefully as to how the problem is solved (preferably step-by-step). If the candidate says "google it," firstly, its a pretty good start.

    Second would be how the algorithm is ported to C (or C++).

    Thirdly would be how the code is organized.

    Fourthly, how it would be tested.

    and if you're extremely lucky, he'll start writing the algorithm in C on the whiteboard.

    Really... the person may not have a clue what Fermat's algorithm is, but the strong-willed, articulated and attention-to-detail programmer will show how to accomplish the problem.

    Self-starter... are management's best asset.

  77. One question by anthony_dipierro · · Score: 2

    Do you realize you're an at-will employee and can be fired at any moment if we don't like you?

  78. Answer : Don't do technical interviews by kinshadow · · Score: 1

    I've been through many interviews in my search to find a job, as well as put groups together for specific functions. IMHO, the best interview is NOT a technical interview. I believe any interview should have "technical" components, but barrage someone with syntax questions is no way to find out if they are a good programmer. Broad conceptual questions like : "How would you build a house for a giant?" seem much more useful in finding out how someone thinks. People who memorize syntax and only grasp the concept definitions do not make good programmers. Additionally, do not hire someone who does not seem genuinely interested the work you are doing.

    --
    Sigpilot : I'm in the pipe, 5 by 5.
  79. psychoanalysis by iradik · · Score: 1

    maybe the people you are hiring have psychological problems after a few weeks of working for you. i usually employ a psychoanalytical style of interivewing to check for the likelihood of this.

    1. Re:psychoanalysis by ynohoo · · Score: 1

      maybe the people you are hiring have psychological problems after a few weeks of working for you. i usually employ a psychoanalytical style of interivewing to check for the likelihood of this.

      I am not surprised if your employees shows signs of psychological problems if you treat them in this manner. Basing decisions on pseudo-sciences such as psychology, in particular the behaviourist strand, is as socially damaging as religious fundamentalism, IMHO.

  80. Clearly this is what Certifications are For by FreeUser · · Score: 4, Funny

    [humor]

    It is obvious that anyone with hiring expertise, such as human resource specialists, can most effectively hire potential candidates by insuring that they have MCSE (Microsoft) or Red Hat (Linux) certifications.

    This removes the requirement for the interviewer to ask intelligent questions, and for the interviewee to provide intelligent answers, streamlining the entire interview process completely.

    After all, how else is an interviewer going to be able to BS a potential candidate into believing they know what they are asking about, and how else is a potential candidate going to BS an interviewer that they know what they are talking about?

    As Microsoft and Apple have been pushing for on the desktop for years now, it is time we removed the expertise and knowledge from the entire process altogether, thereby "enabling" and "facilitating" the hiring process.

    [/humor]

    --
    The Future of Human Evolution: Autonomy
    1. Re:Clearly this is what Certifications are For by Anonymous Coward · · Score: 0

      A good interviewing question:

      "Have you, or have you ever used Microsoft Windows? Just answer the question!"

    2. Re:Clearly this is what Certifications are For by Anonymous Coward · · Score: 0



      Yes, now you too can insure that your employees have the competencies their resumes claim. Just purchase this policy at a nominal fee and if it turns out that they lied we will pay off within the coverage limits.

      </sarcasm>

  81. Smart and Gets Things Done by Anonymous Coward · · Score: 0

    I tend to agree with Joel on Software in the Guerilla Guide to Interviewing. The whole goal of your interview process is to determine if the candidate is (1) smart and (2) gets things done. There are a lot of other good tips on that site in various articles. The bottom line is to have them design something so you can see how they think. You're trying to decide if they're smart and get things done. You also want to see if they would fit in with your team (personality). At the end of the interview, if you're not 100% confident it's a HIRE then it's NO HIRE.

  82. Interviewing Programmers by Anonymous Coward · · Score: 1, Insightful

    Having been on both sides of too many interviews, the best process I have seen is Art & Logics. They require applicants to write a short program using a class they provide. The first "test" of the interview is to see the applicant's response to the class not compiling. If the person write HR asking for a working version, the process is terminated. Besides getting a feel for the applicant's nature, the fix requires a knowledge of the c++ preprocessor. After getting past that hurdle, the applicant is free to design/code the program as they see fit. (They are required to follow certain coding standards). Once submitted, it is reviewed by senior programmers. Those that have done a nice job are then provided an in person interview. By this time, the employer already knows quite a bit about the applicant. As one who hates technical interviews (ie: Microsoft's), I actually enjoyed Art & Logic's. It provided a non-threatening environment that allowed for creativity while being able to learn about my technical abilities. See: www.artlogic.com

  83. Leading Questions and love for the work. by Anonymous Coward · · Score: 1, Insightful

    Ask questions that allow you to ask "why".

    For example: 'Given the following scenario blah, blah, blah, what type of data structure/class would you use?"

    When they answer with Tree/Hash etc. Ask them why they picked that answer. Ask for the logic behind the decision. Most people in the field have either read enough/heard enough in school to scam their way through multiple guess, yes/no type questions. But its hard to fake your way through good thought processes. For every "reason" they give, you also have another option to say "why" or "what about an alternative"...In general the "whys" are more important than the "hows".

    Ask what the person does with their home computer.
    If they don't use a home computer for anything useful (i.e. more then email/games) its much less likely that they enjoy their work than one who uses their computer for other things. Do they write code of ANY kind at home? Do they tinker with the hardware. Do they run *Nix or something else other than Windows?

    Ask what they do for fun. Someone with no social life may be productive but will probably cause you other problems because they wont play well with others. They'll be an outcast (i.e. no communication) or they'll just creep people out so that no one wants to deal with them.

  84. Interviewing Pitfalls by FreshFunk510 · · Score: 2, Interesting

    I am in the same position at a small company and we've had our share of hiring bombs (excluding me :) ). Here, I think, are some core issues to consider:

    1) Decide what you want. Uber genius or uber implementer. Everyone falls in between but I beware of people who claim themselves to be "really into design" when we really need implementers.

    2) Don't ask the same old questions. I think most everyone is aware that a book of interview questions can be found online. Sometimes learning the answers to these is as easy as memorization.

    3) Find out what the interviewee knows and doesn't know, never just one. One beef I always have is that when I'm being interviewed the interviewer would assume I know some very specific about a certain technology I worked with. Why would I know the specific way threading works on web servers when I've done web applications?

    4) Technology and experience must go hand in hand. I think every programmer knows that technology can sometimes be seen in terms of an API. While experience is useful, so is design experience (and vice-versa). One doesn't necessarily make up for the other.

    5) Ask relevant stuff. While intelligent people may correlate to good programmers, intelligence alone might not make up for lack of experience and/or the ability to learn new technologies quickly. I've had my fair share of algorithms and trick questions asked to me at jobs where I never implemented any sorting/searching algorithm nor did a project on how to measure time by burning candles. One thing I would look for is initiative to learn new technologies. Did they learn how to design and implement a web application on a short 6 month project? Or did they just manually fix html bugs for 1 year?

    Lastly, if you're unsure to hire than pick the hotter chick (or the only chick).

    --


    "Injustice anywhere is a threat to justice everywhere." - Martin Luther King, Jr.
    1. Re:Interviewing Pitfalls by Anonymous Coward · · Score: 0
      Why would I know the specific way threading works on web servers when I've done web applications?


      Exactly! I was asked the threading riddle when I had interviewed at Ariba few years back. It irritated the hell out of me... I am not applying for systems level programming job, nor was it mentioned on my resume... He did not give a damn about my problem solving approach/skills, or how and what I had done at previous jobs.... he kept on asking me questions related to threads even after I had told him that I have not yet worked on any threading code outside of classes that I had taken in college... the dude must have read about the riddle somewhere, so I guess he decided to test it out on moi....:)

      I look for people's problem solving skills given an unexpected situation... I present problems that I myself had run into and solved, just to see what approach they'd take to solve the same problem...

  85. Don't ask for outside code! by travail_jgd · · Score: 2, Interesting
    One mistake a lot of interviewers make is asking job candidates to bring in copies of programs they've written.

    The first reason is that the programmer's employer is (almost always) the copyright holder of the code. A lot of companies consider their programs to be both property and a protected secret -- asking the candidate to bring in code is like asking them to steal. To put things another way... how would you feel if one of your employees was taking your company's programs to other employers (and potential competitors)?

    You could require that the candidate to have done something for the Open Source or shareware communities... but then you're really limiting your choices.

    The second reason not to ask for code is because you have no reference for it. You don't know how well it works, how well it integrates into the system... you don't even know if the person you're interviewing wrote it! I have known a couple of programmers who have submitted "brilliant" code samples to the PHB, but couldn't function in a working environment.

    On a related note, would you penalize the programmer for adhering to his/her company's standards for formatting code, because they don't conform to yours? I've had interviewers say they didn't like the way I formatted my code, despite the fact that it was required for the job I was currently doing.

    My suggestion: set up a computer off the network. Allow the candidate access to manuals, and give them a small programming task (and about 30-45 minutes) to complete, and let them work.

    1. Re:Don't ask for outside code! by m_ilya · · Score: 2
      It doesn't have to be a strict requirement. It just an additional filter which helps you to separate good programmers from bad.

      You don't know how well it works, how well it integrates into the system...

      It is not that hard to distinguish bad style from good. Bad code smells!!! You can see code duplication, usage of bad coding practices, etc.

      On a related note, would you penalize the programmer for adhering to his/her company's standards for formatting code, because they don't conform to yours? I've had interviewers say they didn't like the way I formatted my code, despite the fact that it was required for the job I was currently doing.

      I would not with one exception. There are so many formatting styles people use and while I have some personal preferences I know that formatting style is really minor thing as long as all participants of one project agree on one of them. The exception is absense of any formatting. I did rejected some candidates for not using indenting in their code at all.

      --

      --
      Ilya Martynov (http://martynov.org/)

  86. two questions by renard · · Score: 2
    When I was interviewing programmers for my former employer, there were two questions I would always ask.

    1. Why do you want this job?
    2. What single accomplishment of yours are you most proud of?
    I would also have a creative problem-solving question. Ex: How would you walk on water, or, Design me a mailbox. Inspired by Joel's Guerrila Guide to Interviewing, we were content to look for someone who was (a) smart; and (b) got things done. Best way to judge (a) is to have them solve a problem they haven't thought of before (no algorithms! no riddles!). Best way to judge (b) is with the questions above.

    -Renard

  87. Behavioral Interviewing by jmoriarty · · Score: 2, Interesting

    Many moons ago I used to ask questions like "What is your favorite movie?" to try and loosen candidates up. I then got the smackdown from our corporate HR, which informed me that the question could be viewed as discriminatory. Same thing for any questions about "for fun projects" or anything of a personal nature. It's a thin line to walk.

    So a whole herd of us manager types got shuffled off to Behavioral Interviewing training. The basic premise is that you construct questions to gather information on specific work related issues they have experienced in the past. Assuming past performance is indiciative of future value in this case, you can get a good feel for how a candidate will perform in a given situation. As for faking the answers, that can be tough to do with some of the questions unless you are dealing with a very gifted improv performer.

    Behavioral Interviewing is the norm at several Fortune 500 companies I have worked with. Take a peek at it, and definitely run any ideas you read here past your HR folks. All it takes is one lawsuit and you will find yourself on the other side of the interviewing table.

  88. Ask about Operating Systems!! by ni4882 · · Score: 1
    In my experience, most people who come on site for interviews can handle basic programming tasks. The real thing that separates them from the ones who can really program is their underlying knowledge of the system. I program device drivers, so when I interview, I ask a lot about OS fundamentals. I like asking the interviewee how to protect shared data structures, what an ISR is, how to share resources in multiple threads, etc. If you're looking at C++, there is a plethora of stuff to nail somebody to the wall with. I really like to see if they understand real OOP, such as what would you use an abstract base class for?

    I also like the interviewee to go through an example of a project that they have worked on, and show me the architecture. I then ask questions about their design and it lets me know how good of a communicator they are. Somebody may be a good coder, but they also have to be able to communicate their design in an efficient manner.

    If somebody doesn't understand low level computer basics such as interrupts, semaphores, synchronization, etc. they don't make the grade for me!

  89. One thing by Anonymous Coward · · Score: 0

    Try to get to know them better, and see if they _fit_ in your company. Introduce them to some of the future colleagues.

    It's pointless to hire some top notch coder if your company sucks and the guy leaves in a month.
    But a not-so-good one might actually feel at home, and turn out much more productive.

  90. If they do, don't hire them??? by www.sorehands.com · · Score: 2
    The problem with that is if they take code from the last company to show you, they take code from you to show their next company.


    If they do, make sure it is open source, their own project, or have authorization to do so.


    Then you have to question them on it to make sure it is really their code, not something they ripped from someone else.

  91. Here's some things I do by JustAnotherReader · · Score: 1
    Look at their resume and see what they "say" they've worked on (example, Java Server Pages). Then start asking them questions about that technology. For example:
    • What version of JSP?
    • What changes occured between the version you worked on and the version previous to it?
    • In a JSP how would I pass a vector of objects from a servlet to the JSP and then display an HTML table with the number of rows equal to the number of objects in my Vector?

    It's pretty easy to find out if they've actually done work with that technology or if they're just filling their resume with buzzwords.

    I also like to hear the applicant extend his answers. For example :

    Me: Have you ever used a Model-View-Controller pattern?

    applicant : "Yes"

    That was the wrong answer. I want him to say "Yes, when I was building such and such a project we created Java beans to hold the data, Java servlets to be the controller, and Java server pages to control the viewing of the data." That shows me that he's A: not lieing to me, and B: that he really has used it or at least understands the technology.

    Riddles, trick questions, it's all crap. You can't determine if applicant A is better than applicant B based on whether or not he knows why manhole covers are round.

    One guy here likes to ask the applicant "I want you to build me a calculator program. How would you go about it?" Think about all the logic behind a simple calculator program. It has parsers, language definitions, a GUI and so on. Does the applicant say anything about searching for existing applications and reusing code? Or does he want to figure out a recursive decent parser on his own? Does he even recognize what the task entails? If he's being interviewed for a C++ position does he recognize that in Bjarne Stroustrup's book "The C++ Programming Language" he uses a calculator program as an example of the C++ language. The applicant should have at least read the book enough to know that an example of how to do that program already exist.

    Always ask if the applicant has any questions for you. If he doesn't then that's a sign that he's either in "deer in the headlights" mode, or he just doesn't understand you just talked about.

    But these are just a few exmples. If you're already doing 2 technical interviews and an HR interview and you're still getting duds then you need to look at the guys in your company who are doing the technical interviews. The problem may be with your interviewers, not the applicants.

  92. A not so lame comment by oliverthered · · Score: 1

    I used to review peoples CV (not a job that requires me to spell!)

    The most amusing was a CV from a guy who claimed to be a proof reader for 4 years, he also claimed that he wasnt an idol worker.

    If i want for a job where the interview/company was lame enough to worry about my spelling then I wouldn't want to work for that company anyhows.

    --
    thank God the internet isn't a human right.
    1. Re:A not so lame comment by Anonymous Coward · · Score: 0

      Bbbbbblow Mmmmmeeeeeeee! I would not hire you if you did not care about basic communication skills, you would probably produce incoherent spaghetti code, while working on your mis-spelled resume...

    2. Re:A not so lame comment by krugdm · · Score: 2, Interesting

      We just turned down an applicant, partly due to poor spelling on her resume. This was a scientific position which requires careful attention to detail. If she couldn't be bothered to run a spellcheck on her resume, why should we assume that she wouldn't take the same attitude to her work with us?

    3. Re:A not so lame comment by Recluse · · Score: 1

      You mean any professional organization? Must be nice, being able to earn a living without being able to communicate effectively.

      --R

      --
      Look ma, I'm a .sig
    4. Re:A not so lame comment by oliverthered · · Score: 1

      'why should we assume that she wouldn't take the same attitude to her work with us?'

      exactly you assumed I hope you don't make too many assumptions

      --
      thank God the internet isn't a human right.
    5. Re:A not so lame comment by Anonymous Coward · · Score: 0

      why didn't you understand?

    6. Re:A not so lame comment by Anonymous Coward · · Score: 0

      I would not work for you, you probably produce incoheriant bloated specifications that arn't specifications at all.
      your loss.

  93. communicate what you want by Anonymous Coward · · Score: 2, Interesting

    One thing that seems to be skipped is a clear description of what you WANT in a programmer.

    Most jobs I've had I've had great evaluations due to my attention to detail and care given to corner cases. I pay a lot of attention to the design phases and ask a lot of questions. I communicate about deadlines and the occasional slippage. Project managers tend to love me.

    One job let me go after my 90-day eval because they said that I didn't take enough on, didn't invest myself fully, wasn't enough of a self-starter.

    From their viewpoint I had a great interview and didn't live up to it. From mine I was left ticked off that they didn't communicate they wanted a shoot-first-ask-questions-later guy. Or a throw-myself-to-the-wolves guy. I'm neither.

    Since then I've switched to freelancing and I love it. My clients love me and call me back for their next projects.

    Other point - occasionally, I think too much emphasis is placed on the brainteaser questions. Assuming someone's resume doesn't lie, a failure is more likely going to be about work style and personality flaws than someone's brain being too slow. I've had five salaried positions since college. Four asked me technical questions relevant to my experience and a bunch of other questions about what kind of guy I was, and they went well. It was the other one that focused on brainteaser questions like dumping cubes in paint. There needs to be room left for gut feelings in those kinds of decisions.

  94. Been There.... by Anonymous Coward · · Score: 2, Interesting

    We've had this problem where I work, and have been fooled by people (well, one person in particular) who had an impressive resume and could talk the talk. He turned out to be someone who couldn't code his way out of a wet paper bag.

    Our solution, which has worked very well for the last four years or so of hiring, is to sit the person down in front of a laptop connected to a small and portable flatpanel. I sit on one side of the table, watching the flat panel, and the candidate sits on the other side, working on the laptop.

    The entire interview consists of trying to fix all the bugs (and there are many, some obvious and some subtle) in a small command-line tool. During the interview, the candidate is requested to think out loud as much as possible, so that I get a feel for how they're thinking about the particular problems they've been presented with.

    Fixing every bug is not necessary or expected -- tackling the problems and presenting good solutions to those problems is crucial. It really gives you a taste for how the person goes about problem solving and how they code, especially under pressure.

    Several people have commented that this seems like a severe way to interview, but most of the candidates I've interviewed have demonstrated a fairly good ability to work under these kinds of conditions, and it has improved the quality of our department staff considerably.

  95. Joel "on Software" Spolsky's tips by Digital_Fiend · · Score: 1

    Joel Spolsky seems to have a bit to say about this. Try his Guerilla Guide to Interviewing. Of course, not everyone agrees with everything he says, but, in my opinion, he has quite a few insightful points.

    You can go here to find all the articles related to growing a software team.

    Hope that helps.

  96. Look for honesty, not oversell by wytcld · · Score: 2
    If a programmer presents a wonderful, smiling, confident, accomplished face it's likely to be because they have the normal ethic in our culture of hiding flaws and embelishing accomplishments. Such people belong in marketing (perhaps) but never in programming, since the last thing you need in your programs is a bunch of well-hidden flaws.

    The trick isn't to find someone who knows it all, but someone who is aware of what they don't know yet, and is curious enough about it to stay up all night with a puzzle if needed.

    --
    "with their freedom lost all virtue lose" - Milton
  97. Ditch the standard interview format... by Satan's+Librarian · · Score: 2, Interesting
    IMHO, either you need to ask to see a portfolio similar to artists, or you need to have them write code to a spec and spend some time looking at it. What you want is experience, attention to detail, and drive - quite a bit more than mastery of the rarely used constructs of a specific language.

    The standard interview format doesn't work for programmers. The best interview I've been given was from Art & Logic, which is a coding test. It weeded out the weak pretty well, as well as the non-self motivated types (I made the cut, worked with them for a while, then got an offer I couldn't refuse elsewhere - but they're a great team of solid coders).

    My only complaint with them is that I didn't get a peer code-review afterwards - I would have liked to have had more feedback on the code, even though they apparently liked it enough to hire me.

    A lot of game companies do this as well - I know Acclaim's subsidiary Iguana software used to ask for you to write a Defender knockoff, and I've heard of others.

  98. Tech Questions by Greenisus · · Score: 1

    Here's a tech question you could add, and it's fun to show your friends that don't already know it:

    Write a swap function that doesn't require a temp variable.

    If no one gets it i'll post an answer.

    1. Re:Tech Questions by perlyking · · Score: 1

      a=a+b
      b=a-b
      a=a-b

      ?

      --
      no sig.
    2. Re:Tech Questions by _lost_ca · · Score: 1

      If it is to swap two integers:

      x = y XOR x
      y = x XOR y
      x = y XOR x

    3. Re:Tech Questions by Anonymous Coward · · Score: 0

      saw that on the comp.lang.c newsgroup once.

      and the xor solution will work even when the data isn't integer, along as you typecast it to something xor can handle, and is large enough. (long is good for starters)

      ps. can i get the job?

  99. ohyeah one more thing by FreshFunk510 · · Score: 1

    What we often do is hire peopel we like part time to see try them out for 6 months or so and, this is where my boss comes in, we give 'em the axe if we've totally failed or hire them full-time if they are as awesome as we thought.

    --


    "Injustice anywhere is a threat to justice everywhere." - Martin Luther King, Jr.
  100. Bad question by SVDave · · Score: 1
    'Is friendship inherited? How would you find out?'

    I first learned C++ in 1991, from Ira Pohl, no less. In 1995 I took a graduate seminar in object-oriented programming, again by Dr. Pohl, while getting my MSCS. I have had a job programming in C++ since 1998. And I would have no idea how to answer that question other than "look it up in my copy of Stroustrup". Class friendship is something that I've needed so rarely in my work that I don't know how it works off the top of my head.

    If one of your main criteria for what makes a good programmer is "knows every obscure detail of C++ by heart", then I'm not surprised your hires are not working out.
  101. It takes one to know one by Anonymous Coward · · Score: 0

    Know your subject and know what you want done in the project.

  102. Half a joke... by Reality+Master+101 · · Score: 2

    And half not a joke. Prepare yourself, don't take this presonally, your mileage may vary, one man's experience, etc, etc, etc...

    Programming skill is often proportional to beard length.

    Value of code is often inversely proportional to beard length.

    What I mean by "value of code" is maintainability, documentation, cleanliness, and all the other measurements besides "cleverness". The worst programmers I've ever had work under me had huge beards and antisocial personalities (of which beard length is often a symptom). These people gave ZERO thought to the programmers who would come after them, and only worshipped at the altar of "cleverness". Their primary objective was "how do I entertain myself today" rather than "what is the best solution for this problem taking into account the business case for the solution".

    Once again, I'm half kidding about the "beard test". Mostly I'm issuing a warning against finding people who are TOO into programming for programming's sake, rather than "software engineers" who really like the "right" solution rather than the "clever" solution.

    --
    Sometimes it's best to just let stupid people be stupid.
  103. WTF? by Anonymous Coward · · Score: 0

    Why is there a "television" icon for "How sould you interview a programmer?" subject?

    Someone needs to put the bong down. :)

  104. Slashdot by Anonymous Coward · · Score: 0

    Ask them to give you the five most recent articles on slashdot... if they know the answer, then don't hire them -- since they'll just spend all of their time goofing off and reading slashdot :)

  105. And the almost always overlooked flip question. . by kfg · · Score: 5, Insightful

    How many people have you rejected that would have turned out to be the best people in your company?

    I'll bet the answer is well over 'one.'

    You're looking for a magic bullet. A simple mechanical reduction of human issues. It doesn't exist.

    The only sure fire way I've ever found of evaluating an employee is to give them something to do and see how it works out, bearing in mind that often times a person with mediocre skills turns out to be a very valuable employee and those with great 'creds' often turns out to be nearly worthless. That's why God invented the probationary period.

    To get a better look at what I'm driving at here take a look at another flip side. *You* are asking this question because you are performing less than 'perfectly' at evaluating prospective employees. Why? Because you're humans. You yourself are too complex to easily reduce your performance to a repeatable, mechanical formula.

    It is always, ultimately, no matter what interview and evaluation process you impliment, going to come down to what it has always going to come down to, an educated guess and a gut 'feel.'

    And you'll make mistakes, you'll hire people you shouldn't have, and *you'll let go people you should have kept.*

    Thus it has always been, thus it will always be, as long as it's people we're dealing with.

    KFG

  106. I prefer to interview by Anonymous Coward · · Score: 0
    in the nude. It gives the employer a chance to see my main qualifications, that is can I homosex my way to the top? Because God knows, it's not the technical ability that makes your career these days!


    I've seen an ex-drug dealer turned so-so tech leapfrog over everyone else because of the ruthless bullshit tactics he used. In the meantime, I was stupidly working on technical stuff and got axed.


    The slippery anus gets the dick!

  107. Logic Puzzles by johnstown · · Score: 1

    If you give them a logic puzzle, make goddamn sure you tell it right.

  108. How I was interviewed by Stonent1 · · Score: 1

    I was asked a nearly impossible question yet I knew the answer immediately. One guy thought I had talked to the other cantidate before but I didn't. (I was interviewed by a group of people sitting at a table) Anyway, turned out I was perfect for the job. I didn't know everything they needed but I knew how to solve complex problems and that was more important to them than to have it all stored in my head. Later on, they were hiring another person there. He had his MCSE and on his resume it said "I know everything about computers." He had 2 strikes already. 1. MCSE and 2. "I know it all" So the interviewer asked him the pinout of an ATX power supply. He had a blank stare for a few moments and then stood up and said "I don't think that this position is for me." And left.

  109. Don't ask for specific code by Uttles · · Score: 2

    Nowadays there's so much of an emphasis on code reuse that a person might not know what classes/libraries you use and therefore will have a hard time popping out specific code snippets.

    On the other hand, you should ask questions and allow psudocode. This way, you can evaluate their thinking process. It's a little bit tricky, but you can also see their talent level in the specificity of their pseudo code. If they don't say very specific things and have some structure, even though it is pseudocode, you can tell they are bullshitting you.

    --

    ~ now you know
  110. I was once asked by happyhippy · · Score: 1
    'Whats the difference between RAM and ROM?' for a networking job.

    As for my question I would ask: 'What Simpsons character are you most like?'. If he says anyone other than Comic Store Guy, he doesnt get the job.

    1. Re:I was once asked by user+no.+590291 · · Score: 0

      That's not fair. Apu holds a Ph.D in Computer Science, for crying out loud.

  111. I've found interviews only go so far by Anonymous Coward · · Score: 0
    An interview can only tell you so much about a person... things like: do they communicate well, do they have the type of personality that would fit in with your group and company, etc. You can get some indication on their technical smarts, but it's also easy to get fooled, as you've noted. All of this is important, but it's not everything you need to know.

    What I've found helpful is to realize that in order to find out how they'll perform in the future, it's a good idea to look how they've performed in the past. Towards that, here are some pointers:

    Use experience-based questions: don't just ask them how they would solve a tough problem, ask them what they did in the past when presented with a similar problem. This means, don't tell me how you would do something, tell me how you did do something. The proof is in the pudding.

    Three words: references, references, and references. If they sound like a good canidate, make sure to check their references. It's impossible to get a very good feeling about a person after speaking with them for an hour. Find out what people who have been working with them for a long time say.

  112. I've done this a little lately.. by Pfhreakaz0id · · Score: 2

    helped out our PM with interviews...

    I like to determine if they geniunely LIKE computers and using them. Some people don't -- they just got inthis for the money. I ask about there computer at home. I don't care if it's old or not, they ought to tell me SOMETHING about it, preferably something like a harry IRQ conflict they had to solve or something.

    I want to ask them something about solving a particular problem (in general terms).. in one case we're hiring a VB programmer to take over an existing program. This program is pretty large LOTS of forms and .dlls. I explained the project and asked if they would have any concerns. The ones who talked about being concerned with memory useage/leaks got my attention. Then I asked how they would solve it. I liked one guy who rattled off four or five good tips (maybe split up the program into multiple versions for the different user types... switch from MDI to SDI.. make sure to clean up references to .dlls by expliciting clearing references -- VB is supposed to do this for you, but is notoriously sloppy for doing so).

    That's a good example of an answer. Bad example: One guy's response was: Well, the install probably wouldn't fit on a floppy, and you'd probably have to use a CD-ROM... I dunno when this guy last used VB because freakin' hello world ain't fitting on a floppy in VB by the time the installer packs all the GD runtime dlls on it, but even so: Who cares? CDr's cost essentially nothing. That's not the issue. Anybody who knows anything about the industry knows that distribution is essentially free. You're obviously clueless. next.

  113. The problem appears to be... by nadador · · Score: 5, Insightful

    that you're interviewing programmers, aka code monkeys. They might dance, but they will never perform. You'd probably like an engineer or a scientist. How you interview for them is totally different.

    I worked for a startup company back when it was the cool thing to do. The nerds with titles were debating how to interview for a new position, and the battle came down to this essential problem - which is the best question:

    1. What is java.lang.Thread.join()?
    or
    2. Tell me about how you start and stop different execution paths in a multithreaded application.

    If you ask (1), you get a code monkey. He or she will write good code when given proper instruction because he or she has a minimum set of skills. Code monkeys can handle hammers and screwdrivers because they've used them before. Ask them to use, say, a quarter sheet finishing sander and they will be confused.

    Ask (2), and you get an engineer or a scientist. Knowing that you can wait for the termination of a thread in java with join() is nice, but understanding the implications and uses of join() is ten thousand times more important. Understanding the concept is more important than perfect syntax.

    My suggestions for questions are these two, because I think you are less likely to pick a code monkey and more likely to pick an engineer:

    1. Tell me about a project you are particularly proud of, and explain some of the technical issues you faced in finishing it. (This is a good question for several reasons. First, you get a good sense of interpersonal skills, because they have to tell a story. You also can gadge a candidate's general interests in the larger field of computer engineering/science, and a feel for their particular strengths. Lastly, you get to see whether this candidate is a finisher or a ship-it-when-it-compiles person because you asked about finishing a project, which is never the most glamorous, but frequently the most important part of being a software engineer.)

    2. Tell me about a project you worked on with a team. What kinds of challenges did you face and how did you solve them? (Again, story telling, this time with a definite bend towards interpersonal skills. You also get to assess team work skills, etc., in a technical environment. When I was asked about this question I talked about how my junior design project team needed to be more organized to meet our project schedule, so we got stricter about version control, documentation, etc. If the candidate tells you story about this irritating person or that jerk, you should consider whether or not you're going to be the jerk he talks about in his next interview.)

    --

    Outside of a dog, a book is a man's best friend. Inside a dog, its too dark to read.
    1. Re:The problem appears to be... by Lil'wombat · · Score: 1
      that you're interviewing programmers, aka code monkeys. They might dance, but they will never perform. You'd probably like an engineer or a scientist. How you interview for them is totally different.


      Absolutely!! Too often companies think that their processes and requirement gathering methods are so complete, that all they need are code monkeys. I'd trade 5 code monkeys for the 1 programmer who notices that the requirements are inconsistent and brings it to the attention of the Project Manager with a proposed solution!! Companies need Problem Solvers not monkeys.


      Except in sales. Sales need more monkeys - especially ones that have their own organ grinder!

      --

      Truth: If it's not one thing, it's another

    2. Re:The problem appears to be... by RisingSon · · Score: 1
      My suggestions for questions are these two, because I think you are less likely to pick a code monkey and more likely to pick an engineer

      Every team needs soldiers. You can't have all engineers (or craftsman). They tend to step on each others feet if they work too closely on the same project.

      However, you do make an excellent point. I believe many interviewers are in search of a software craftsman and ask code monkey questions.

  114. bad question, bad approach by Anonymous Coward · · Score: 0

    Your approach strikes me as combative, ill-defined, and uninformed.

    Combative and ill-defined because you're setting the interviewee up with your cagey use of the phrase "when they would implement...". I believe most people would answer the question by describing when it makes sense to use this structure. If you expect a certain answer then you need to ask the question very carefully, unless you're just trying to trip them up.

    Uninformed because there certainly are times when one may need to implement such a structure, rare though they may be. You're exhibiting your own ignorance here.

    If I were presented with this in an interview I'd likely remove this company from my consideration. I have no desire to work with, or for, people who take this approach.

    Remember, they're interviewing you at the same time. Tricks like this will lose you good candidates.

  115. Specific technical questions? Why? by fiend_bailey · · Score: 0

    As a professional developer, I might be offended by specific technical questions that I can find the answer to in 30 seconds or less, but don't know off the top of my head.

    Three interviews is a large time investment: I suspect that that time would be better spent researching an applicant's past performance through his references.

  116. Call their references by AppyPappy · · Score: 2

    Geez, how hard is this? You make sure their references are valid and you call them. A given programmer may be able to answer a bunch of math trivia but it doesn't mean he can code or act responsibly in public. Make sure he/she is not a loudmouth or a jerk or a do-nothing. Offer them a project leader job for the same amount and see if they spring back with "Oh yes, I'm really not very technical". BUSTED.

    I have been involved in one probation firing and in that case, we didn't call his references. Ya gotta do dat.

    --

    If you aren't part of the solution, there is good money to be made prolonging the problem

    1. Re:Call their references by jmoriarty · · Score: 1

      Geez, how hard is this? You make sure their references are valid and you call them.

      It isn't hard to call, but it can be very hard to get a good answer. If you say anything in a referral that can be viewed as preventing an candidate from being hired, you win a trip to Lawsuit City.

      In most companies where I have worked, we can confirm their employment and say whether they could be rehired. That's it. No details, no matter how awful the person was. Some companies insist that all referral calls go to HR.

      Coworkers and managers can't answer honestly, and friends will just lie. For my money, referrals are worthless for anything except confirming employment history. (Which you should certainly do!)

  117. Amen by Anonymous Coward · · Score: 0

    People who focus on trying to test algorithms and ask a lot of technical questions are either (a) insecure about their own ability (b) Have no ability to tell a good technical match from conversation about approaches rather than detail.

  118. My top ten questions... by StevenMaurer · · Score: 5, Insightful

    1] Describe the technical accomplishment you're most proud of.

    2] How did it work?

    3] What did you do on it?

    4] At our company, we have this general problem X. What are your first thoughts on how to solve it?

    5] How would you rate yourself in (language)?

    6] A language specific question. For instance in C, what does "volatile" mean? For C++, write code whose meaning would change if you used the keyword "virtual" in front of a base class. (Note: passing the test is nowhere near as important as that it generally matches with the answer under #5).

    7] (Note: several questions may be done in this area - again, it is more important that skills are accurate on the resume than everything is done exactly right.)

    8] Say you have a technical disagreement with a fellow programmer, and you really think you're right. What are the steps you'd take to resolve it?

    9] What sort of software tools are you familiar with? How to you coordinate development with other engineers?

    10] What are the things you expect from the company for us to make you happy?

    I have noticed in interviewing that engineers can easily spot other good engineers. If you can't, it's because you can't program yourself. So go get someone with the skills to do your interviewing for you.

  119. Not freaky, it's called the Horoscope Study by JUSTONEMORELATTE · · Score: 4, Informative
    Usually about 2nd-year psyc students learn about the Horoscope Study. The main reason cited by believers of astrology is that the descriptions are stunningly accurate. The trick is, they are stunningly accurate for ANYONE, not just you.

    I don't know what survey your employer used, but you spent some effort to complete the survey, expecting that a well-designed system would evaluate some qualitative aspects of you. When presented with results, you subconciously hoped to be:
    • described accurately
    • described favorably
    This subconcious desire on your part made you willing to forgive minor points that didn't fit your desired outcome, and willing to magnify points which did fit the desired outcome.

    Again, I don't know what survey you used, and there certainly are valid personality tests out there, but don't get too freaked out when one seems to describe you to a T.
    1. Re:Not freaky, it's called the Horoscope Study by IIRCAFAIKIANAL · · Score: 2

      Actually, the thing that got me was that it got my "bad" traits as well - ie/ I often lose the big picture by concentrating on the details :)

      Meyers/Briggs was one, but I can't remember the rest - they all appeared to be standardized tests - all done by a third party (my employer only received the same report I did)

      Freaky was the wrong word - this wasn't a cosmic experience for me... Don't confuse me with the type of person that believes in subluxations and crystals :p

      --
      Robots are everywhere, and they eat old people's medicine for fuel.
    2. Re:Not freaky, it's called the Horoscope Study by eddy+the+lip · · Score: 2

      I'd even go a bit further and say I'd refuse a job that an evaluation like this was required for. It's highly unlikely that an employer will get this kind of study right (the usual "Fifty Questions to Understand You!" isn't it), and I'd rather not work for someone with such poor critical skills, if at all possible.

      --

      This is the voice of World Control. I bring you Peace.

    3. Re:Not freaky, it's called the Horoscope Study by GlenRaphael · · Score: 1
      Actually, the thing that got me was that it got my "bad" traits as well - ie/ I often lose the big picture by concentrating on the details :)

      Everybody does that. People have limited bandwidth, and projects tend to have too many details to take it all in at once. The main variant is individual interpretations of what "often" means.

      --
      I play Nerd-Folk!
    4. Re:Not freaky, it's called the Horoscope Study by Anonymous Coward · · Score: 0

      Actually, it is not called the Horoscope Study. It is called the Barnum Effect. Horoscopes are an example of the Barnum effect, as are nebulous personality tests (usually the ones for entertainment).
      A number of corporations that have utilized high quality personality tests as a part of the interview process experience lower employee turnover (thus lower training costs), and overall higher quality employees. Personality tests should not be the only thing used, but they are useful tool for finding people with the characteristics that fit the so called "mold".

    5. Re:Not freaky, it's called the Horoscope Study by Bongo · · Score: 1

      Again, I don't know what survey you used, and there certainly are valid personality tests out there, but don't get too freaked out when one seems to describe you to a T.

      And besides, who you think you are is just the stuff that you're already aware of. There is plenty which you are not aware of, and that has just as much potential to cause problems, if not more, seeing as neither the test nor you know about it.

      Self knowledge is not easy.

    6. Re:Not freaky, it's called the Horoscope Study by JUSTONEMORELATTE · · Score: 2
      Blockquoth the AC:
      Actually, it is not called the Horoscope Study. It is called the Barnum Effect. Horoscopes are an example of the Barnum effect, as are nebulous personality tests (usually the ones for entertainment).
      A number of corporations that have utilized high quality personality tests as a part of the interview process experience lower employee turnover (thus lower training costs), and overall higher quality employees. Personality tests should not be the only thing used, but they are useful tool for finding people with the characteristics that fit the so called "mold".
      Thanks for correcting my failing memories! Barnum, as in Phineas T. Googling turned up an interesting excercise (on handwriting analysis, and its use in job interviews no less!) over at pbs.org
    7. Re:Not freaky, it's called the Horoscope Study by Anonymous Coward · · Score: 0

      I disagree... many people can concentrate on the big picture and never once get bogged down by a single detail. Usually that sort of person becomes a project manager - the sort of person you can describe the exact same problem to forty five times and they still don't remember the details properly next meeting.

      Insert +5 funny example here.

    8. Re:Not freaky, it's called the Horoscope Study by Anonymous Coward · · Score: 0

      Meyers Briggs can have as many as 500 questions for what is considered a very rough template.

    9. Re:Not freaky, it's called the Horoscope Study by harvardian · · Score: 2

      I was a psych major until last year, and posts like this are why I switched to CS. The Horoscope study doesn't prove that a person is full of shit EVERY time they say "wow, that descibes me perfectly." It just means there's a tiny innate bias.

      The tests that the poster took were not a "survey" off of the Internet. They were probably things like the WAIS (the IQ test for adults) or the MMPI (personality test). These tests were written by psychology PhDs and their results have been corroborated by about a bazillion different studies.

      I'd prefer that you didn't strut your stuff just because you got through psych 1. By the time you take psych 405 you'll realize that an educated person doesn't look at an incorrect MMPI result and think it's right on the money.

    10. Re:Not freaky, it's called the Horoscope Study by Anonymous Coward · · Score: 0

      maybe, but psych tests are still bullshit.

      they do have one major plus point though, they get psych grads jobs 'administering' them, because of course you need to spend several years studying brain function to understand what

      "When something goes wrong you
      a) Kill everyone you see.
      b) Try again.
      c) Think about why it went wrong.
      d) Kill yourself."

      means.
      A bazillion badly conducted studies that show psych majors have the useful role of relieving businesses of their money.

    11. Re:Not freaky, it's called the Horoscope Study by Anonymous Coward · · Score: 0

      dude, i want to be your psychic. I have a bridge that I want to invest in and only need to get money out of my Nigerian husband's bank account (he is imprisoned) to help locate your dead uncles secret buried treasure and I can tell you are very wise person who as a weakness for helping people who are down on their luck such as myself.

    12. Re:Not freaky, it's called the Horoscope Study by Anonymous Coward · · Score: 0

      Dude I don't know about you, but even though I was born in May, I'm sure I'm a Cancer.

      I was going to bring up the horoscope bit too. One thing you forgot to mention is that the people who are susceptible to this stuff are also impervious to any logic that discounts it. See his response.

  120. Or... by smileyy · · Score: 1

    Programmer: Firing you.

    --
    pooptruck
  121. Sure answer by t0ny · · Score: 0

    NEVER hire anyone for a computer related job that does not have a computer at home. If they have been doing networking for a long time, they should also have a home network. This is a MUST, because it reveals the personality of the person you are hiring; if they dont have a computer or a network, they dont personally see any value in it.

    --

    Manipulate the moderator system! Mod someone as "overrated" today.

  122. Not them, but the devolopment environment by mc6809e · · Score: 2

    Maybe its not them, but your development environment. Are they familiar with all the tools they're going to use? What about peculiar aspects of the OS? Can they create a make file?

    Its easy to find people with knowledge of C/C++, but knowledge of the use of your development tools and system is almost as important as knowledge of the language you're using. Programmers can get frustrated at the prospect of having to learn about all the little quirks of a particular system and this can make them much less productive.

  123. the missing number question (my answer).. by Pfhreakaz0id · · Score: 2

    IMHO, the "proper" answers below given to the missing number question wouldn't be the one I'd give (or want to hear).

    My answer:

    "I'd do it the simplest, quickest way to code that achieved the desired result. Offhand, I'd just write a damn loop from 1 to 10, compare and see if the current index is in the list, and if not, I'd have my answer. If at some point in the future, the application had speed problems and a code analysis showed this loop near the top of time wasters, then and only then would I think about ways to improve my code. Too many programmers get stuck on doing things perfectly and fritter away countless hours on 'great' designs so their code will be 'maintainable and scalable' only to find that their code is long retired before it gets too slow or the business rules have changed SO drastically it is worthless."

    1. Re:the missing number question (my answer).. by Hoi+Polloi · · Score: 2

      Since you are looking for one value in an otherwise complete sequence just take the list of 1..n and sum it then take the list (1..x, x+2..n) and sum that then subtract one from the other and there is your number!

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    2. Re:the missing number question (my answer).. by Pfhreakaz0id · · Score: 2

      If I happen to think of it as I'm writing the code, fine. But my point was GET IN DONE, OPTIMIZE LATER. As long as you are separating things into functions and objects, you can easily optimize a section of code later. If I do this task less than five times in the program and it takes less than five seconds to execute, more than one minute thinking about optimization of the code before I start writing the function is a WASTE OF TIME.

  124. DO's and DON'T's by mactari · · Score: 5, Insightful

    DO ask for demos of working apps from previous jobs/schools. If they don't have anything working to show, they can't take a project, even a simple one, cradle to grave. You want self-starters who don't need constant supervision.

    DO NOT make them solve brain-teasers on the spot, regardless of what joelonsoftware.com might say. I love brain teasers personally, but trying to get all the members of U2 across a bridge two at a time doesn't exactly translate. Reread number 1, and if they gave you their stuff, you're safe.

    DO ask them to review code from your shop and tell you what they'd do differently. Whitespace, comments, logic that should be pulled into functions or other objects -- these are the kinds of things a good programmer will notice. A good potential team member will even point them out, point blank.

    DO NOT discriminate because they haven't programmed in your particular programming language, unless the work is very short term. They're all dialects of the same language. Good code is good code, even VB! (Note that I didn't say "working code" -- I *mean* good, commented, well laid out, non-repetitive code) The only exceptions are pointers and object oriented code. Some people just can't get it. Test them [by showing them code to review] if you use either.

    DO look for someone who gets passionate about a topic during your interview.

    DO NOT for one second think that someone who claims they have 10 years experience in C, VB, Java, and FORTRAN means it. Ask what they've done which each language. If they can't tell you in enough detail that you can envision it, that's a "no hire".

    DO, for heaven's sake, call their references.

    And most importantly (and this is something olde Joel gets right), "Maybe" means "Don't hire". If you can't strongly recommend the candidate after the interview, don't hire him/her. Mistakes at hiring time will cost you for months and maybe years. It's worth spending the extra month or two to find someone worth their salt. Oh, man, it's worth it.

    --

    It's all 0s and 1s. Or it's not.
    1. Re:DO's and DON'T's by beme · · Score: 1

      " DO ask for demos of working apps from previous jobs/schools. If they don't have anything working to show, they can't take a project, even a simple one, cradle to grave. You want self-starters who don't need constant supervision."

      I think this is just wrong. There are many reasons a valuable candidate wouldn't be able to supply a demo -- NDA's, not an "applications" guy, etc. Assuming no demo means a person can't take a project from cradle to grave is a mistake. Better would be to ask for a completed, simple project. (Although a request like that would turn _me_ off -- don't lose sight of the fact that a potential employee is also interviewing the company).

      I like the other points a lot, though, and would like to see more people make use of them.

      --

      -beme
      1971
    2. Re:DO's and DON'T's by scrytch · · Score: 2

      DO ask for demos of working apps from previous jobs/schools. If they don't have anything working to show, they can't take a project, even a simple one, cradle to grave. You want self-starters who don't need constant supervision.

      You also apparently want someone so self-starting that they negotiate rights to all the code they write. I can't show you line 1 of any of the code I've written for previous employers because it's their internal code.

      As for personal projects, you just can't know without making the interview last all the live long day whether they actually wrote that code, whether they understand it, and whether it actually works. I suppose you can demand something that's already widely deployed where you can look at the credits/authors file. I suppose with all these criteria, you can take years to find a candidate (I also suppose that's not accurate in today's economy). Just apply this criticism to the other pieces of advice.

      DO, for heaven's sake, call their references.

      That should be quite sufficient. You're hiring a programmer, not a wife.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    3. Re:DO's and DON'T's by wayland · · Score: 1

      >DO NOT discriminate because they haven't programmed in your particular programming language, unless the work is very short term. They're all dialects of the same language.

      >The only exceptions are pointers and object oriented code. Some people just can't get it. Test them [by showing them code to review] if you use either.

      > C, VB, Java, and FORTRAN

      The languages you mentioned (C, VB, FORTRAN, and Java) all translate pretty well, as does Pascal.

      You made a point about OO and pointer code. The same goes for functional languages (ML, LISP), and for thinkgs like Prolog and APL. And Regexes. Personally, I can't program in functional lanugages (although I'd like to learn), have never programmed in Prolog, and had a lot of trouble with APL. Perl (with regexes) is second nature. :)

    4. Re:DO's and DON'T's by stickb0y · · Score: 1
      DO NOT make them solve brain-teasers on the spot, regardless of what joelonsoftware.com might say.

      Huh? While Joel has a site with brain teasers (techinterview.org), he discourages using them.

      From Joel's Guerilla Guide to Interviewing:

      Finally, avoid brain teaser questions like the one where you have to arrange 6 equal length matches to make exactly 4 identical perfect triangles. If it's an "aha!" question, you don't get any information about "smart/get things done" by figuring out if they happen to make the mental leap or not.
    5. Re:DO's and DON'T's by Anonymous Coward · · Score: 0

      DO NOT discriminate because they haven't programmed in your particular programming language.
      They're all dialects of the same language


      Just because Java and C++ are very similar, doesn't mean you're going to be able to do Lisp, Prolog or Perl, etc - there's an *entirely* different set of idioms and techniques to learn, if you're doing them properly.

      It's like saying if you know calculus you automatically know trigonometry!

      What I would definitely stay away from is someone who only knows one language, like, say, Java. It just demonstrates you've got no interest or ability in computing whatsoever, aside from some superficial "job training".

  125. My interviewing technique by cartman · · Score: 1

    By now I have interviewed several hundred programmers; some of them worked out, others didn't. I've found the following to be the most successful interview technique.

    First, do not ask a standard set of questions. Standard CS questions are known by almost everybody, even wrotten programmers. "How do you implement a linked list" will not assure you a good programmer. Pick an area in which the applicant claims to have significant expertise and understanding. Then, ask increasingly difficult questions about _that topic_ until they can't answer all your questions any more. This gives a good indication of the level of technological sophistication.

    Furthermore, ask WHY. "What is the purpose of third normal form?" is a _vastly_ better question than just asking what is third normal form. Everyone knows what third normal form is. Asking why allows the programmer to demonstrate genuine understanding. Not so many people understand the rationale behind the trivial facts they've memorized. Anyone can memorize facts; fewer people can understand.

    Also, look for a background of challenging projects. People who have had significant roles in successful, challenging projects are generally good programmers.

    Finally, don't ask questions that are only relevant to yourself!! Several commentators here have said you should ask "Which open-source projects have you contributed to," and judge based on that. Because you are an OSS advocate does not mean that OSS people are the best programmers (they often aren't). Some people here have said you should ask "Explain (blank) algorithm in detail..." when that algorithm relates to speech processing or compression etc. That's YOUR area of expertise. Ask them about THEIR area of expertise.

  126. Impossible Questions by sielwolf · · Score: 2

    I found that asking impossible questions or riddles works best. And not for the reasons you expect. I don't want them to answer... I want to see how they deal with pressure and problem solving.

    You might try standard stuff... OO concepts, SE questions or some of those interesting riddles (like the one with the three lights and the three switches in the different rooms).

    Now if they can easily answer the questions, fine, find ones they can't (at least not right away).

    See how they go about it... how they attack the problems, what questions they ask you, how frustrated they get, how well they take being stumped, if they are willing to ask questions or be defeated.

    The best ones are those who come up with interesting ways of attacking the problem... and who can appreciate a novel solution.

    Trust me, it really reflects on how it is to work with them and how willing they are to learn. It is easy to teach a good worker a new skill, it is more difficult to work with a prick who just happens to know everything.

    --
    What is music when you despise all sound?
  127. No wonder you get bad people. by Damon+C.+Richardson · · Score: 2

    If I was asked the 1-10 which is missing I would walk out the door.... I bet you have a bunch of smart asses that like to try and out do each other.

    I have done a ton of interviews... I've been told that I am very good at them. One thing I stay away from are those kind of retard brain teasers. What you get is someone who is good at retard brain teasers.

    I'm not even going to help with any suggestions. It's is plain to me that you or your company has a problem with programmer centric ego's.

    by the way... add them up and subtract from 55.

    --

    Last one in jail is a fascist.
  128. Management Skills by Curialis · · Score: 1

    You post was a little vague on how you were burned by these programmers. Did you hire them in management positions and they did not manage the project? Did you hire them as pure coders? Were they given proper direction and help to fit into the team and become productive? Having worked as a contractor for several years and working in many different work environments, it takes about 6 months for any new member of a team to be considered a true member of the team. Adding a single new member to a team will cause the whole team to fall apart for about that length of time before everyone starts working as a unit and can be considered a true team again.

    If you found that these people could not program that is one problem and you did not interview adequately. If it is productivity, take a look at your team leaders and project managers and determine why they could not get the best out of these individuals. If you truly found someone who was liked by the other team members you should have spend time and energy improving their time management skills. Just because someone is a good programmer and an intelligent person does not make them good at allocating time to tasks. Sometimes it just takes a good mentor to straighten them out.

    Productivity is something that comes from a good working environment with defined goals, policies, and expectations.

    Oooops, that's enough here, my productivity is dropping....

    1. Re:Management Skills by zoobee · · Score: 1

      Or ask them to solve this:

      1) Spawn a process which does nothing but gets current date n time and writes out the timestamp to an external file.

      2) Spawn another process which then changes the system time. Does not matter if the time is moved back in to the past, or moved forward into the future.

      Even though the process in Step 2 has changed the system time, the process spawned by step 1 still logs the original time (correctly incremented as the time passes).....

      --
      SIG ALERT
  129. The 'Toilet Tank Test' by Jack+William+Bell · · Score: 4, Insightful

    There seem to be lots of good responses here, many of which I have used myself in the past. But no-one has mentioned my favorite; the 'Toilet Tank Test'.

    The 'TTT' is designed to find out if the person thinks about programming off the job, if programming excites them and just doing it is enough to motivate them all by itself. It works like this:

    (After technical, logic puzzle and attitude questions are dealt with)

    -- First Interview --
    INTERVIEWER "OK, so let's suppose I walk into your house and go into your bathroom right now. What magazines would I find on your toilet tank, or wherever else you keep magazines you read often?"

    INTERVIEWEE 1 "Uh... Golf Digest, Sports Illustrated, People I guess." (Doesn't mention Penthouse.)

    INTERVIEWER "Thank you for your time. Don't call us, we'll call you."

    -- Second Interview --
    INTERVIEWER (asks 'TTT' question)

    INTERVIEWEE 2 "Uh... Linux Journal, Dr. Dobbs, Game Developer I guess." (Doesn't mention Penthouse.)

    INTERVIEWER "When can you start?"

    Jack William Bell

    --
    - -
    Are you an SF Fan? Are you a Tru-Fan?
    1. Re:The 'Toilet Tank Test' by Nonesuch · · Score: 1
      "OK, so let's suppose I walk into your house and go into your bathroom right now. What magazines would I find on your toilet tank, or wherever else you keep magazines you read often?"

      I don't keep magazines on the toilet tank, at least not since I got the Cat-5 drop into the bathroom working.

      Pretty much takes care of the Penthouse issue as well ;-)

    2. Re:The 'Toilet Tank Test' by Phosphor3k · · Score: 1

      Thats where I keep most of my asm books; in a basket to the left of my toilet.

  130. screen for professionals who can code by fermion · · Score: 1
    Having been on both sides of the, I can tell you some of some key points I believe are important.

    1) Define the person you need
    A job description is often deemed as overrated, but it's helps to insure that the person is going to be happy doing the job. Even if the job is a jack-of-all-trades, there are going to be dominant tasks, and the person has to be able to do those well, and enjoy doing them.

    2) What is the importance of current and future knowledge
    In my experience tests can be very effective to judge current knowledge. What tests are less good at is to determine how quickly the person can gain new knowledge and how quickly the person is going to be able to apply that knowledge to the job. Even a good college GPA is only so useful.

    3) Can the person write code
    A simple coding test can validate the knowledge of standard idioms and basic language constructs. What is often harder to test is whether the programmer can write code that is useful. That is, is the code written to minimize bugs? Is it modular enough to facilitate debugging? Are the interfaces clean and clear? I have had only one interview process in which these skills were sufficiently tested. Some might say that looking at past code is good, but who wrote the code? In one job, half of the people who were hired with me were let go because they could not write code, even though they had the technical skills.

    4) Can the person work in the environment
    My experience is that professional can work in a wide variety of environments.. They question is does the person want to work under the conditions, and will the current staff accept that person. That is why I believe in face to face interviews with co-workers much more than personality tests. Unless the test is screening for certain philosophical beliefs, such tests are a waste of time

    I find interviews like these to be the most. Interviews that do not follow these guidelines tend to be a waste of time, at least for me.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  131. The sample code is a test... by Anonymous Coward · · Score: 0

    ...but not the one you think.

    Bringing in code you've written for your present employer is unethical, because you have no permission to show it to anyone else.

    Therefore, if you refuse on ethical grounds, you pass.

    1. Re:The sample code is a test... by IIRCAFAIKIANAL · · Score: 2

      Bringing in code you've written for your present employer is unethical, because you have no permission to show it to anyone else.

      I showed them code I wrote in my spare time. They didn't request a full working program either - I can't remember if they even requested it or if I just offered, actually :p

      --
      Robots are everywhere, and they eat old people's medicine for fuel.
    2. Re:The sample code is a test... by fegu · · Score: 1

      Asking candidates to bring code they have writte for another employer is unethical, instead we ask them to bring code from a recent small project done outside of work. This is a great way of weeding out the ones who have not written any code except for work. These are generally the same who didn't write anything except that demanded by compulsory excercises as students.

      Who would want to hire a mechanic who never fiddled with his own car? Or a carpenter who never used a hammer except at work?

      --
      "There is no substitute for thinking" - Bjarne Stroustrup
  132. First step... by p3d0 · · Score: 2
    Can the skill-testing questions. Just because someone hasn't seen the cute "subtract them from 55" question before doesn't mean they won't be a good programmer.

    Those questions are worse than useless. I don't have any particular suggestion for what to use instead, but I know what doesn't work.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  133. Don't Ask "What", ask "How" by bevan.arps · · Score: 5, Insightful

    In a corporate development environment, you don't want someone who can only write code based on what they already know. You want someone who can accept a task requiring skills they don't already have - yet deliver quality anyway.

    The old adage about "if all you have is a hammer, everything looks like a nail" is what I'm going on about here.

    If your candadate only knows one thing ( Java or Delphi, or C++) be wary.

    If the candidate knows something useful about a wide variety of things (Java, Delphi, C, C++, shell scripting, XML, XSL, HTML, CSS, Perl, Python, Ruby, batch files, SQL, XQL, servlets, JSP, ASP, PHP ...) then you have a candidate that has a variety of tools in their skills toolbox.

    Before anyone chimes in with the old myth "you can only know one thing well" - I agree completely, you can only be an expert in one or two areas. But you CAN know a dozen (or two) things well enough to know which to use - one of the brightest developers I've ever met was a guy smart enought to say "I shouldn't do this - it needs X and I don't know it well enough. Give this to person A and I'll pick up what they are currently doing." This same guy scored 100% on the Java certification exam - he's that good.

    Ask your candidate what tools they know - from what vendors. Don't settle for one or two - keep pushing for as many as they mention. Ask them to explain how they would choose between tools - if needed, give them a scenario or three.

    One of the things you're trying to find with this approach is how well they might understand the principals that underly the languages - just as you wouldn't ask a fish about water, you can't ask someone who knows only one tool to critique that tool.

    Another idea is to get your candidate to give a five minute off-the-cuff presentation on something interesting. Limit it to stuff relevant to the position you're interviewing for, but otherwise leave it open for the person to choose for themselves. They'll choose something they know well - look for how they speak, how well they explain, how well they teach. Also shows how they work under pressure.

    1. Re:Don't Ask "What", ask "How" by chickenmonkey · · Score: 1

      I've interviewed people for some time now and I think that:
      1) Targeted technical grilling helps. Someone who has C++ on their resume doesn't need to know what CONST does, but I'd prefer someone who does. This person might be someone who learns every obscure fact about a language, or they might be someone who learns what it takes to make their code safe. They might be someone who pontificates about sorting algorithms or they might be someone who brings this information to bear effectively. I'll depend on the other parts of the interview to decide how much of each they are.

      2) Forcing candidates to explain projects can be very enlightening if you work at it. Ask them to explain in gory detail something they've worked on. It takes patience and technical acumen to do this, but this is a chance to see how they perform at a task they'll need to do over and over again when working with you: explain something to an audience that knows much less about the topic than they do. Give them all the tools they would normally have: whiteboard, pen and paper, etc. When in a comfort zone like this, you'll be suprised how much of their true character comes out. Drill down to the absolute extent of their knowledge about the project. You'll see how much they understand about the project and in making educated guesses about parts you'll see how educated their guesses really are. And you can see if they use "I don't know" when appropriate.

      3) You must check references yourself. Or make sure that some you trust with your sanity does it.

      4) You must be prepared (as a team) to put a lot of energy into the interview. You have a very short amount of time to get a lot of information at many different levels. Make sure that everyone involved realizes the gravity of the situation and is up for the challenge. I've had to pull people off of interview assignments because of deadline-induced sleep depravation. It's almost definitely the most important thing you'll do that week so make sure you act like it is.

  134. Depends... by joeblowme · · Score: 1

    It depends on where your hires are falling short and what you expect of them. If your looking for an old fashioned "closet programmer" who knows the entire C syntax by heart but has the communication skills of a rock. Then simply give them a programming test during the interview. If your looking for a developer who will be working alot with customers don't worry so much about there deep technical skills. Make sure they understand concepts well, are good at listening to other's ideads, have good communication skills, and are problem solvers. Learning a new syntax can get better with time. You really need to classify your programmer based on what job he will be doing and not lump him into a generic group like a programmer. There are Design/Analyst, Data Analyst, Project Managers, and Coders. Also look more on how your bringing them in most development jobs I've had I felt out of place at for the first few months. Usually I get very poor training, a lot of companies have a tendancy to put thier best developer in charge of the other programmers this is often not the best idea since a lot of great programmers don't have great communication skills.

    --

    If your not cheating your not trying. If your not trying your not winning and if your not winning why play?
  135. why by snartal · · Score: 1
    Why do you want to be a programmer? I put this question to an MIT graduate in Computer Science. They hadn't a clue and I don't think they liked programming at all.

    Also, What is your favorite data structure.

  136. Find out their career goals by Anonymous Coward · · Score: 0

    I have always done best when I can work torward
    my next career goal, and can do things I'm
    genuinely interested in.

    Also, try to find out how people work best; I
    believe that many people work best in small
    groups, and some work best alone. Personally,
    I prefer working closely with someone on a
    project around half the time.

    My $.02!

  137. Exactly by Anonymous Coward · · Score: 0

    Testing a programmer's skills in constructing algorithms for random scenarios is a great idea.. if they need to use lots of algorithms.

    Good point. These days you don't need to write any algorithms at all. You just use the standard template classes. Any programmers who write their own algorithms are jst reinventing the wheel and wasting your company's time.

  138. Stupid Peasants and Flawed Government by zefnd · · Score: 1

    I don't know the particulars of the situation, but it sounds like your organization (like most others) focuses on people and not on process. Basically, you assume that when something fails or someone doesn't "work out", it's the fault of the person ("Stupid Peasants") and not the processes, policies, and management ("Flawed Government") that dictate much of their everyday routine.

    I've seen many companies like yours where you focus on insanse quizzes (which are most likely illegal in some states of the U.S.) and questionaires to hire people. Then, when the person gets the job, they are forced to wander around the building begging people to help them get started. There is no documentation on your processes. You have no way of initiating new developers. There is no software quality assurance group responsible for the quality of the process and the code. Projects only succeede if the grandmaster coder or super project manager are on the team. And, you insist that all developers perform as well as your current "uber-geek-god-coder" rather than accepting that people work at different levels. Worst of all, you have no way of empirically measuring what the uber-geek does different, let alone what "perform as well" even means.

    What you need to do is move away from your people focus, and start adopting a process focus. This way of running things assumes that people are intelligent, and that if they don't perform well, then there's something wrong with the processes and policies. In other words, rather than firing people, find a way to improve things for them. If you do this, then you can spend less effort trying to find uber-geeks as regular folks should be able to work efficiently.

    The best thing I've seen for this (and what I currently follow) is the Capability Maturity Models at CMU's SEI. It is a very good process which focuses on measurement and doesn't require any particular development method. We use a mix of XP and other stuff for our processes. The primary thing CMU tries to emphasize is that you should always try to improve your process (something the manufacturing industry has known for about 20 years). This continuous improvement is what is needed to stay ahead of the competition, and has worked well for many other industries. The trick is improving process without stifling creativity (although, most coding I do isn't that creative).

    The downside to CMM is that people assume it will cause all their projects to instantly succeed. This would be a matter for another discussion, but let's just say that I can't think of any other industry that tries so hard to make so much crap "succeed". CMM will only help you produce the best crap you can, it doesn't turn crap into gold.

    Finally, it seems that your managers tend to blame the workers when things go wrong, even though managers setup nearly everything in the environment. This way of running things will probably need to be the first to go since CMM (and any process improvement) forces management to admit that they are responsible for failure since they are in control. Once that psychological hump is rolled over, things get easier.

    Enjoy! And I hope you start looking at your management practices, not your hiring practices.

  139. Three questions to ask oneself. by Mezzrow · · Score: 2, Informative

    Well, there are many technical questions one can ask to get a handle on a programmer's skill level, but I've always felt that that's only part of the issue. I once worked in a place where, after an interview, each interviewer would answer three questions.

    1) Can the person do the job?
    - This would be the technical part of the interview. Does the person have the appropriate technical skills to get the job done? Do they have a good, problem-solving mind?

    2) Will the person do the job?
    - This is as important as number one. You want to get someone motivated to work. Also, if you're hiring someone to do program maintainance, for example, you don't want someone who looks at the job as a three month stepping stone. They need to be excited and ready for the specific task at hand.

    3) Am I willing to work with this person while they do the job?
    - We all like to think that we can be rational, detached creatures at work, but its important to be able to get along with workmates. It makes work more enjoyable, and workers more productive.

    The best hires I've seen, are the ones who receive strong passes on all three questions.

  140. Help! I have a question... by Chessucat · · Score: 0

    How do I get a job that they pretend to pay me and I pretend to work? Fake it 'til you make it, it really works. Give it the old american, half-assed try and it'll all work out. Because, in the end, you're dead and all is forgotten!;-)

    Selah,
    ~chess

    --
    "I'm a dirty white tomcat, enter my world..."
  141. Try torture. by Anonymous Coward · · Score: 0

    The iron maiden and/or rack should tell the tale.

  142. Being a good programmer is more... by tomq123 · · Score: 1

    than just know a programming language. Most script kiddies can tell you about pointers and write a simple swap function.

    Ask them about systems they have written in the past. Have them discribe, draw, diagram these systems and explain how the different parts work together.

    Ask about problems they ran into designing and writting these systems and the solutions they came up with, and why they choose those solutions.

    Give them an example of a problem or system you might be trying to implement and ask them if they have any ideas on design and implementation.

    Yes, it is important for a programmer to know a given language. But most good programmers are problem solvers. They can look a system or problem and design and write a solution regardless of the given programming language.

  143. Always hire contract to permanent by abcxyz · · Score: 1

    We never hire "unproven" staff and put all perspective or potential employees on a 30 - 90 day contract. This allows us to determine if (1) are they competent, and (2) can they interact with the other team members. If things don't work out, it's very easy to get rid of the contactor, much more difficult with perm. employees.

  144. Before the interview even begins... by TitaniumFox · · Score: 1

    ... surf the net and make sure you don't have a Bernard Shifman walking in for the job...

    --
    -- I'd say your post was about 3 monkeys, 18 minutes.
  145. Too close to nepotism. by aepervius · · Score: 1

    First you have to have trust in the people which will recommend you the candidat. Willt ehre be nepotism ? Further, the system advanatge people with "link", "insider". meaning if you are a God in programming, but you don't know anybody, well abd luck. Somebody mediocre but friend with somebody will get the job.

    Referal System is IMO one systemw hich call for more abuse than pure random system 8as it is mroe or elss know with programmer hiring in some firm : "did he/she had good cloth ? What is her/his astrologycal sign ?").

    --
    C. Sagan : A demon haunted world:
    http://www.amazon.com/gp/product/0345409469/
    visit randi.org
  146. Too obvious by Anonymous Coward · · Score: 0

    "Do you read Slashdot?"

    At a "yes" dismiss him/her; slashdotters aren't productive.

  147. It's not them, it's You! by Kagato · · Score: 2

    Many moons ago I worked for a large multi-billion dollar company. They had a simple rule about interviews. No one interviews until taking a class in how to interview. At the time I thought it was kind'a silly. But after going into contracting it simply ammazed me how few hiring managers actually know what the hell they are doing. Technical people are even worse. You can divide the questions into several categories of stupidity:

    1) Have you ever/Do you know?

    It's the start of a good line of questioning. However, rarely does the interviewer ever follow up. For instance, Do you know Perl? Yes. I've used Perl in a variety of projects from X to Y.

    It's a start, but you want to ask something again to double check. What version of Perl did you use? DId you use CPAN modules with it? When should you "use strict" in a perl script? etc. etc.

    2) Riddles.

    It could show someone is really good with logic, or, it could show that they just have heard the riddle before. You'd be better off giving the person a problem based on something they might see in the position they are going for. You could ask a web application developer what is the likely cause when a program seems to run fine, but the web server says "Premature end of headers". The real world problem not only looks at logic, but experience.

    3) Programming questions that have little to do with the job.

    Why ask a VB programmer an XOR question. There are all sorts of questions that seem great for figuring out how well someone can think on their feet. But they may or maynot actually get the person you want. Just like riddles you could have someone who had a prof in college who liked these logic problems. Maybe the person understands whats going on with the problem, but the person could just as easily be doing it from memory. Again, real world problems, and keep digging for supporting facts that the person knows what you want.

    If you are having a problem getting the right canidate you need to bite the bullet and reconize that it's YOUR FAULT you end up with crappy employees. Take a class on how to interview. Learn how to ask the right questions, and how to follow up with addition questions to find out what the canidate really knows.

  148. Give them code to write by dave555 · · Score: 1

    I am a senior software specialist for a large data center and I frequently interview programmers for open positions. The MOST effective question we have found (weighted 50% of the interview) is to give them a coding problem. For intermediate programmers we ask them to parse a word out of a string (that we give them) in any language they know. They are asked to write their CODE on the white board. Actually, we give them the question prior to the interview and give them 30 minutes to think about it.

  149. I always would start with 2 questions by lotussuper7 · · Score: 1

    "When is the last time you spent your own money on a technical book for your own education?"

    "Did you read it cover to cover?"

    --
    ----- Lotus Super 7 - A real car. :-}
  150. true test: analogy mapping aptitude by 10am-bedtime · · Score: 1
    everything depends on the job in question, of course. i assume for simple coding (i.e., very little algorithmic formulation required) by the time you figure out who's good or not there will be some magic code generator wizard thingy which would obsolesce any answers people give here anyway.

    so let's focus on jobs that require skills other than being able to type into a keyboard fragments of caffeine-induced hype fallout, i.e., jobs that require some amount of analogy mapping aptitude (AMA for short). an analogy is the layman's term for "model" which is what needs to be clear in the Programmer's head at some point in the process, preferably early on.

    mapping is the translation of this model into some design and eventually code. the mapping needs to be flexible because not all parts of the model are architecture (fundamental to that class of models); some parts are implementation (likely to change at the whim of your customer). a good mapping produces two deliverables: the design and the cleavage points (if you will) where a small tap can separate the architecture from the implementation (to facilitate maintenance, don't forget about that :-).

    lastly, aptitude is what you think it is: tractable ability honed from either intuition or experience, preferably the latter. here, tractable is the meta-ability to call forth the ability at will and also includes the social skills of working with other people. the latter is (un)fortunately outside the scope of this post, however.

    so now that we've defined these terms, how to go about assessing the candidate Programmer AMA?

    here's a concrete suggestion: pick a process (say the hiring process or the process of recycling glass bottles or the process of programming itself (if you think the candidate is sufficently meta)). ask the candidate to model it. check to see if the description includes all inputs/outputs (interfaces). ask the candidate to redesign that process to optimize it somehow (say, for less paperwork --- always a relatable goal!). check to see if the interface breaks in the new design. if the interface breaks, your candidate does not have Hacker nature, but may still be competent in other ways. obviously if the candidate cannot do this redesign, or if the new design doesn't work at all (after some encouraging re-iteration --- no need to be hard-ass), your candidate may not be a worthy Programmer.

    keep in mind, too, that sometimes people have ability to change themselves in which case their (un)worthiness as a Programmer may improve. but that's another post for another time...

  151. I've been very successful in hiring... by anactofgod · · Score: 1

    ...the best systems engineers, application architects, programmers, methodology gurus, information architects, UI designers, usability experts...you name it, I've hired them and been successful. My secret is...

    RIIIIGHT!!!

    Like I'm going to tell you! I'm going to keep all the wheat for myself, and leave the rest of you to make do with the chaff! Once my company full of Big Brains (TM) has achieved global domination over you Teen Brained (TM) competitors, you will all bow down to ME!

    BUWAHAHAHAHAHAH!
    BUWAHAHAHAHAHAHAH!
    BUWAHAHAHA HAHAHAH!

    No, Minnie Steve! NO! We do NOT eat our kitties!

    B. Gates.

    --

    ---anactofgod---

    "Equal opportunity swindling - *that* is the true test of a sustainable democracy."
  152. Interviewing Programmers 102 by Hooya · · Score: 2
    Would you rather employ someone who coded a great deal of Gecko, or some gimp who can answer your algorithm questions?

    What the hell. Not everything is 1+1. just because someone is great with coding for Gimp/Gecko/what-have-you doesn't mean that the programmers is going to work out for YOU. I have conducted the 'tech' part of the interview. I've been burned a few times. But on an average, I've done well with the people I've recommended.

    I do make sure that the person is up to the (algoirthmic) challange. I mean if the person doesn't have any brains, a thousand monkeys could eventually come up with the code... Then it's your gut feeling. (we do do the psyc test too.) Just talk to the guy. Get a feel for the person. Then go with whatever your gut says. You just can't judge a person by adding numbers -- be that the algo-tests, psyc test ...

  153. One simple question by eluke66 · · Score: 1

    There's one easy question that will immediately weed out 99% of all applicants:

    Have you ever done anything....high tech?

    1. Re:One simple question by fgb · · Score: 1

      If an interviewee bursts out laughing at this one you may someone who is both technically strong and has a good sense of humor.

  154. 'Is friendship inherited? How would you find out?' by WhaDaYaKnow · · Score: 2

    You can start with having sex with your dad's second wife.

  155. Look for accomplishments by Titusdot+Groan · · Score: 2
    Read their resume and look for lots of accomplishments and make sure that those accomplishments are theirs.

    Every really good programmer I know (including myself :-) has a resume stuffed with tasks, responsibilities and roles. Good programmers get known for solving problems and they get the big ones assigned to them.

    Look for somebody that keeps getting the work piled on them at every job they go to -- they were the big fish at their last job and they will be at yours.

    In particular look for programmers that describe their previous job with something like:

    Well, I got hired to rewrite the GUI for the print subsystem but after the first release I was assigned to fix the database management interface. I also redesigned the system library and then got stuck with reviewing the overall system design as well. Oh and I also had to spec out a new source code management system. And I almost forgot that I had to rework the schema for the ...

    The problem with appitude style tests is that they select for smart not for productive. You want both.

    1. Re:Look for accomplishments by Anonymous Coward · · Score: 0

      I agree on this point. It's not about potential for delivery, it's about delivery. It's our actions that define us, not just our thoughts.

  156. I think some people are missing the point... by Houdini91 · · Score: 1

    I keep seeing replies of "ask them logic problems" or "ask them to come up with an algorithm to do this or that". Sure, these questions could be important for a particular job, but that has nothing to do with how well a person can program.

    Questions I'd ask? This of course depends heavily on the language in question, but I'll assume C++:

    1) What progamming books do you own? - This would tell me if this person truley LOVES to program and tries to learn as much as possible on his/her own, or whether it's just a job for him/her. I'd also look for well known and respected books such as Code Complete, Design Patterns, Effective C++, Modern C++ Design, Exceptional C++, etc.

    2) Name some design patterns and their uses. - This would tell me not whether they know syntax (who doesn't), but whether they know how to properly architect and design large complex applications using reusable and maintainable code.

    3) Ask them to explain what use STL, functors, policies, typelists, smart pointers, etc, are. - This would give me an idea on how well they know/use generic programming and code reuse.

    4) Ask to see any source code he/she owns. - This has already been mentioned numerous times, but it would allow me to see whether this person can write readable code, whether they comment their code, whether they've implemented any of the items mentioned above.

    5) Talk to them on a personal level. Joke around, BS. - This would allow me to actually see their personality, how well they communicate, sense of humor, whether they are easy going, etc. All important aspects for programmers and team players.

    I've yet to see a company ask even two of those five questions, but I think an employer could betetr judge programmer using these than asking them "how would you reverse a linked list" or other such questions.


    - Houdini

    1. Re:I think some people are missing the point... by josepha48 · · Score: 2
      You forgot the most import programming quesion of all. It seems that everyone misses this as well.

      6) How do you debug a program and come up with a solution that will work? It may seem easy at first, oh I use a debugger or I use print statements. That is all fine in a situation where you can use a debugger or print, but what about black box debugging? What about gl accounting bugs? Or bugs that are formula driven, where you know the formula is correct but one of the inputs is getting messed up.

      additionally you couls ask
      7) Can they 'read' code?

      Anyone can learn syntax, and style and how to read a book, but not everyone knows how to debug "other peoples" code. Also not everyone has worked on a large application where what may seem like a small change may actually have major reprecussions.

      --

      Only 'flamers' flame!

  157. I have a solution to this problem by Anonymous Coward · · Score: 0

    Here is what I do with programmers.

    I give a small code sample. I ask the person to describe what the sample does. I tell them that this code worked fine in development, but when it was put into production there was a serious performance problem and this code is the cause, why? Ask them how one could solve the problem.

    Throughout I stand ready to explain any language construct that they find troublesome.

    The code sample I usually use is a double-loop to find the intersection of two arrays, and happens to be written in Perl. I have had Perl programmers stare at me blankly, and people who have never before seen Perl find the whole exercise trivial. (It should be trivial, and this is not the kind of thing I want you solving by rote.)

    A followup is to take something that the other person claims to know (eg what an "object" is) and tell them, Pretend that I don't know anything about this. Explain it to me. I then ask questions wherever I think a bright non-programmer would be lost. Plenty of native English speakers completely flub this since all that they understand are the buzzwords (and presumably program by cargo-culting off of examples). Plenty of people who speak English as a second language do fine.

    Getting through those two does not guarantee that you are worthwhile. But flubbing either indicates that you probably are not going to be a competent programmer.

    Another fun question (but one which is harder to compare between people) is this, Describe a recent difficulty you had, and how you solved it.

    Other areas (eg sysadmins) would get different specific questions, but it still is easier than you might think to come up with good questions.

  158. Best Programmers by Anonymous Coward · · Score: 0

    Coming from other areas in a software company (QA, and
    network admin,etc.), the best programmers were the ones that
    understood how to deal with the people from other teams.
    If QA finds a problem, just admit it, fix it, and move on.
    Throwing the problem report back at QA 20 times will
    alienate the whole QA team.
    I realize that the whole 'in the flow' issue is very
    REAL, so attempt to work out a system whereby QA can
    swing by to discuss problems with the code or how the
    product is supposed to work.
    Working with a programmer you can talk to is a godsend.
    Working with a prima donna is a one way ticket to the 4th
    circle of hell. So lighten up.
    Follow the specs and make sure everyone knows what you
    consider to be a bug.

  159. Tell me about what you LOVE to do... by DigitalSorceress · · Score: 1

    My company is kind of small, and being that I am the technical catch-all, I never really sit down and interview anybody in the traditional sense... however nearly every person we've hired has been run through the "geek gauntlet" with me during their interview.

    With the programmers, I usually ask them about what kind of stuff they hack together on their own time. I'll ask what games they love to play, what their hobbies are... what I am really looking for is to ilicit some kind of really passionate reaction - I want to see their eyes light up as they delve into a description of whatever it is that they love to do. No passion, no thumbs-up from me. People who are dead inside don't make good co-workers and they sure don't hack code until 4am.

    Then I always finish with "Coke or Pepsi?" I don't actually change my opinion of them based on this answer, but I get to give 'em a hard time if they say "Pepsi"

    *grin*

    --

    The Digital Sorceress
  160. Hiring by ObeWan_smith · · Score: 1

    It doesn't really matter what you ask or how long you Interview. It's ALL a crap shoot just like Vegas!!! You've got people who are test takers or have a photographic memory but couldn't write a program to count from 1 to 10. And they might even have a Master's or PHD too!! Not that any of the above is bad other than the fact that they can't program. I want somebody that I can get along with and who's willing to learn ANYTHING. I can't tell you the number of people I've worked with over my 22 years who don't want to EVER learn anything new. After all change is bad right? My .02 cents...

  161. Our solution... by raarts · · Score: 1

    We needed C programmers. What we did:
    pick the 5 most promising candidates. Give them a programming problem that is pretty hard to solve in a day for a mediocre programmer, and give them a day.

    Our problem was: write a utility that scans our source tree, printing out all .c and .h files that #included (directly or indirectly) a particular .h file.

    See how the resulting code output varies wildly, even though people have comparable CVs.

    It worked like a charm, and it was fun. The winner was very good indeed. Later he appeared to be working at home on his own unix kernel, running on an Atari Falcon (it was '90, '91 or so). Linus wasn't the only one, albeit the most successfull ;-)

  162. Certifications are only good for sysadmins by Anonymous Coward · · Score: 0

    Certifications are only good for sysadmins not programmers. What does the MCSE have to do with my c++ skills? Nothing. What we need is a accreditation system for programmers. Engineers need to take tests to become engineers, so do brokers and accountants. Why not programmers? Something alon the lines of the MCSE but for coders not sysadmins.

    1. Re:Certifications are only good for sysadmins by Anonymous Coward · · Score: 0

      The problem with that is: You have a lot of different groups that put out different products that use different languages and APIs on umpteen platforms, using revisions x, y and z of libraries i, j and k.

      You'd be left only testing pure ANSI C and C++ skills. How many programs do you know only #include <stl> and <iostream> these days? Okay, so tell me again, who has the authority to certify you/me as "A Programmer"? What panel oversees them? Right...

      If you're familiar with Win32, you're a programmer with Win32 experience; if you're into Qt or GTK+, you're a programmer with the respective experience. Just like there are different types of auto technicians, there are different types of programmers.

      The people that are hiring just have to get a clue as to what needs to be done and ask the right questions. I understand that some companies try to expand into new fields, but if they do not have the proper expertise in the field, it's usually cheaper (and arguably easier) to hire a consultant to do the work.

    2. Re:Certifications are only good for sysadmins by abiogenesis · · Score: 1

      There actually are different kinds of certifications than the Microsoft ones. Lotus, for example, certifies system admins and programmers differently, and you get either a CLP (Certified Lotus Professional) Developer, or a CLP Administrator certificate (or both). The exams to pass are completely different for each certification.

      --

      Donate free food to the hungry at The Hunger site.
  163. You get what you ask for... by Anonymous Coward · · Score: 0

    There are some really good suggestion here and some really stupid ones. (some funny ones too)

    People who ask little riddles or spot quiz questions are simply not the people I want to work for or want working for me. While these are ok if they are part of a larger picture of quality, they usually are poor indicators of real talent.
    Remember;

    Never memorize what you can look up!

    I am more interested in hiring someone who has a reasonable match to the skill set the position calls for but more importantly a person WHO CAN THHINK, not rattle off answers to a quiz.

    No programmer has ALL the programming answers at the tip of his/her tounge. But, how would they go about researching the answer is more important.

    I've actually worked with some people in the past that could whip together code-snipets in a flash but wrote unmaintainable, undocumented code. If not full of bugs, full of severe limitations, that the end user was not interested in using.

    What are the goals here?

    1. Re:You get what you ask for... by Mr.Spaz · · Score: 1

      I agree with some of these points (particularly because I perform horribly in these "interview quizzes.") I've worked at a few places where candidates seemed to be shoo-ins based on the interviews, but couldn't handle the actual job of solving a problem and writing code (esp. modular code that was part of a large project). The other failing I've seen is the programmer who gave a great interview and wrote good code, but blew it on more basic employment skills, like showing up on time and being able to follow plans.

  164. Interviews > source samples by porkface · · Score: 1
    You haven't mentioned WHY they didn't work out. If there's any kind of common theme, that's a good starting point. If not, there might be a more underlying theme anyway. Two general possibilities come to mind that require different approaches.
    1. Incompetent or minimally experienced coder

      If you're hiring people who just don't do a very good job, you're not weeding that out in the interview process (sorry, obvious). Source samples brought in can be immeasurably tainted. Don't try to learn much from them. A person may be able to recite their samples and explain the whys and hows of every line, but that can come from simply studying someone else's code. If they're incompetent, you need to schedule more time for, and be tougher in the interview. If they have to write code on a whiteboard for 3 hours, that's easily worth the investment. I've known people hired by Microsoft who would write code on a whiteboard for 8 hours to answer a single question. Don't finish their sentences. I see people doing that a lot, and then not really counting it against the interviewee in the evaluation meeting.

    2. unmotivated

      This is the person who has the requisit number of years experience in their field, but doesn't do any of it at home. Or maybe they bring their home projects into work when there's work to be done. Maybe they read TOO MUCH Slashdot (Me). Maybe this person worked in a team, and can easily mask their level of involvement. Find a way to weed these people out in the interview. They may seem less than excited after spending an hour writing code on the board. Ask them about projects where they felt like they carried the brunt of the load.

    Are you interviewing for technical skills beyond your own? You're going to need some help if that's the case. Don't try to assume that because you're good at what you do, you'll be able to spot someone who is good at what they do, because that obviously isn't working out.

    But of course, without knowing what kinds of problems you've had with the people you've tried, it's hard to say where you're going wrong. There's so much talent out there and out of work, that it's almost safe to say you should be looking only for people who've lead teams and done the majority of the work before. That can be a good indication of talent as well as motivation that you won't always have the luxury of filtering for.

  165. "Programmer" vs. "Software Developer" by eples · · Score: 1


    I always thought a "programmer" was a lackey that wrote Excel Macros or built spreadsheet formulas or made Access applications.

    Maybe you want to hire a professional "Software Developer", somebody who knows not only what an algorithm is, but also how to select the appropriate ones and implement them.

    --
    I'm a 2000 man.
  166. Try memory-efficient instead by Anonymous Coward · · Score: 0

    You can write a double-linked list using only one pointer per element for navigation.

    How? And if you do this, how can you recognize the end nodes?

  167. A good programmer gives circular responses. by windex · · Score: 2

    Sure, it may sound like they're just going in circles to piss you off or avoid the question, but..

    In my experience, lots of programmers (myself included) like to bring ideas full circle several times, sometimes out loud while discussing the problem, this is to make sure that the entire problem is understood and a solution that is generated is applied that fits the entire problem and not just the noticible part.

    I can plan an entire client/server enviroment verbally in discussion, know exactally how to do it, then spend a few weeks documenting it afterwards, find 2-3 problems with it, fix them, go back over everything, etc, it can take 6-8 weeks (depending on the size of the project, mind you) of planning on the part of the lead programmer to come up with a solid concept before code actually gets written.

    Asking people to produce code to do X Y or Z during an interview is just wrong, because if they have time to research doing X Y or Z they may discover a way to do it no one else has thought of before. I've walked out of interviews that asked me to write code during the interview, because it's not worthwhile, they could have asked me for refrence code prior, and chances are these people only care about bang for buck anyway.

    I was actually asked to write a simple client/server hello world once, the interviewer had the nerve to insult me further by saying I couldn't do it to aggrivate me, so I did write it in about 15 minutes without any of my normal refrence, had one compile time error that took 10 seconds to fix, and even used a message sending protocol instead of a normal socket reading and dumping method, then proceeded to inform the entire room of people I did not wish to hear from them and was no longer interested in a job where HR insulted its employees. A friend of mine that worked there told me the HR guy doing the interview got fired for that one. :)

  168. The best way to interview a programmer? by Tax+Boy · · Score: 1

    Is from upwind.

  169. heres a good one by Anonymous Coward · · Score: 0

    don't judge people based on thier college credits, judge them on work they can present to you that they can prove they made. Personally i am about to move to NZ because thats how they do it there. i know 13 languages(and another 20-30 that i can read, because when i say know i meen i can code perfectly or near perfectly in them), 8 of the top graphics design programs, and can work on Mac, Linux, and Windows. I am about to drop out of high school because formal schooling hasn't taught me anything new since the 5'th grade(When i got my first net connection), i now know and can interperet theories on Cosmology, Nuclear Physics(so easy..)Particle Physics, Thermo-Dynamics, and Quantum Mechanics; as well as being well versed in art, music, phylosophy, etc.. I couldn't get a job after 2 months of trying(not even an interview without at least a college degree, let alone a high school one). i have a friend who dropped out of school in 7'th grade living in nz, almost the same coding skills, he went out and after a week he found a job and got it that pays 1,200/week, the reason you can't find any good coders is because you havevery bad standards, i have done code on places like rentacoder.com for college student's finals that they aced, because i needed cash.. make sure anyone who you hire can prove it rather than presenting a silly high school or college diploma.

    1. Re:heres a good one by Mr.Spaz · · Score: 1

      If what you state is true, then I hate to say the following; if your résumé reads anything like this post, I can point out a good reason why you might have been passed up for employment. This is friendly advice: Try brushing up on your spelling and grammar before moving to New Zealand.

  170. The only question that needs to be asked! by ChaoticChaos · · Score: 1

    Interviewer: Can you explain in English John Carmack's recent comments about how the Doom 3 engine renders? YOU GOT THE JOB DUDE!

  171. Be prepared to be interviewed by the interviewee by Koyaanisqatsi · · Score: 1

    About a year ago, for reasons I don't need to go through, I was getting ready to switch jobs. So I started taking interviews on companies I felt like working for. Since I was the one "picking" and I was not really under pressure to get a job (I had one already), I could afford to chose carefully.

    Well, turned out that after a couple of interviews I started to be the one making most of the questions. I wanted to know about the methodologies in place, work environment and so many other things that I ended-up discarding quite a few companies based on their responses or their attitude. I got offers, but I turned down many based on what I gathered from these experiences.

  172. sort of by Anonymous Coward · · Score: 0
    although there _IS_ a difference between programmers, developers, designers, analysts, architects and engineers. Even if as you go up that list you begin to take on more roles (parts of them at least) of the previous, they are still different roles in themselves.

    On the other hand, I have come across more bags of crap that have 'systems engineer' or 'chief architect' or such that it makes me sick... mainly because it spoils the real idea of what these jobs entail and turn people off of them. Then there are good managers (of course I have not worked for them yet) that have the identifier of '[chief] systems architect/engineer' to which it is simply just the incorrect title, and not that they are puss covered bags of puke like so many other managers are in large companies and government. (Hey! I know buzz words... watch me dazzle everyone and NOT DO MY F%^&*#& job)

    I agree in full that there is more to programming than just the language... for developers and above. For a simple programmer, that is all they really need to know. Ideally you want your programmers to be developers, meaning that they can offer good suggestions, understand the big picture, the requirements (if your shithole management bothers to gather, organize and disseminate them) and interaction/integration methods and goals... then you will have that much better of a implementer. I always believe that more knowledge brings forth more skill and overcomes low morale (which includes apathy) and is good for you in the end.

    1. Re:sort of by tomq123 · · Score: 1

      I agree. It definitely depends on what level of programmer you are looking to hire. I was assuming he was talking about a higher level developer, someone with some experience. A junior level person is just basically a code jockey and doesn't really need to worry about how something is designed, they just write code.

      Personally, I believe that all good developers are designers by nature. They want to understand how things work together and how best to make things work together.

      I think the whole dot bomb thing really killed the programmer profession. People who should never have been writting code were given titles like Programmer, Senior Programmer, Engineer, and Senior Engineer. Now these people are out there trying to get jobs as programmers and don't have a clue what they are doing, and it's making harder for the real programmers.

  173. How you've been burned matters by Anonymous Coward · · Score: 0

    After a point, I think that the ability to do anything moves away from technical skills/learning into personality and socialization. Bright people who don't talk to others without any drive don't get a lot done.
    I would look for people with STRONG work skills who get things done, and if their not the best of the best in techie skills ignore that. People who sit down and do the work are who you want, even better is finding people who will ASK for help or look something up when they get stuck. It isn't how smart you are it is how smart you work

    1. Re:How you've been burned matters by ObeWan_smith · · Score: 1

      ABSOLUTELY!!!!!

  174. 55? by Anonymous Coward · · Score: 0

    Interviewer: So... Given the integers from 1 to 10, inclusive, how would you find the missing number from a list of 9?

    JeffK: ?!?!!1!111??? 5ub7r4c7 73h 5uM fr0/\/\ 55, |\|umb|\|u75. Novv g1v3 /\/\3 teh j0b 0r 1 w1ll h4x0r jO0!!11!!!11!

  175. Is Friendship Inherited? A Trick Question by SloppyElvis · · Score: 2

    What kind of interview question is that? FRIENDSHIP BREAKS ENCAPSULATION, A TENET OF OO DESIGN! Obviously, if your candidate speaks volumes on friendship, than he is a hack who will run rampant through your code and leave spaghetti in his wake.

    Seriously, a better question would be, "How would you approach writing a program that does X"

  176. Know what you need by Anonymous Coward · · Score: 0

    The same things for finding good programmers holds true for any good selection interview.

    Most interviewers do a horrible job, because they never stop to think about what traits are required for their ideal candidate. Most go so far as to focus on what knowledge the candidate has instead of the more important question of what traits. 'Programming' is an art and science that involves many traits we can readily define (such as problem solving), but the organization that is hiring should have a much more detailed idea of what they need. If you're using a buddy system and frequent code reviews somebody who works well in solitude isn't as important as someone who communicates well and is into the 'team concept'.

    Once you have the list of traits and skills you want, you should be able to prioritize them. From there you can write a list of questions designed to help you identify the traits desired. Just remember the real answers you need are to whether or not the candidate has the traits/skills you are looking for. If their answers are not satisfactory you must continue to probe until your real question is answered.

    It's also important to help the interviewee in whatever way is possible. Most people are understandably nervous in a room of strangers answering questions. If performing under stressful situations isn't part of your needed traits, you should do things to help settle them down. For instance one form of interview is the funnel interview. You begin with simple closed questions that should be home runs (e.g. What was you GPA? How long have you been programming?). It's not until later in the interview you hit them with the open ended questions or the ones that really stretch them.

  177. Find missing number 1-10 (is a useless question) by BLAG-blast · · Score: 1
    Add all the numbers. Subtract result from 55, there is your missing number.

    A more generic one would "find the missing number 1 .. n. Add all the numbers and subtract the result from (((n+1)*n)/2), this is your missing number.

    Now, can anybody tell me what use that is? How can you tell that somebody is going to be doing there work on schedule with high quality from that?

    If you where to roll out the useless questions tests on me, I'd probably terminate the interview right there and then, "thank you, but if this is how you select my work mates, no thank you.".

    It seem apperent that you're method is not hiring the people you need, because you need people to solve really world problems not problem to pass the time on a bus journey.

    Why don't you ask questions like: "When you write code, how long do you expect the code to be in use?" "What do you do to ensure your code meets it's predicted life expectancy?"

    (By the way, will you post you company's name so I can make sure it's crossed off my interview list in advance.)

    Btw, I'm really good a sovling really world problems, I'm really bad solving problem that start with and number of villages, or you have three canibals and boat. But I'm really good getting working code that wouldn't have to be rewritten next year and give deadlines and time estimates that are accurate.

    Find the hardest non-NDA bug or problem that you or find a work mate who has been working on a tricky problem for while and let the interviewee chew on it for a while. Sometime I'd take somebody out of an interview and hand them over to a colleague for ten minutes to see if he can help them with a problem.

    This will give you several benifits. One: you have some insight into how they will act when they turn up to work and have to solve real problems. Two: you will beable to get an idea if other team members can work with the interviewee. Three: hell, they may even solve a useful problem for your team, for free, whether you hire them or not.

    I can't spell for shit, but nobody has ever hired me spell.

    --
    M0571y H@rml355.
  178. Tell me about your current job... by anonymous_wombat · · Score: 2
    The question that I usually ask (and am asked) on interviews is to describe the project that I am currently working on. This can lead in all sorts of directions depending on the interests of the interviewers, but the main advantage is that the applicant better understand what they are currently working on, so you don't have to worry about a bad selection of questions. If they are not working on something close to the position that you are trying to fill, you can ask followup questions as you go along.

    I also like to ask problem solving questions, which can be design questions, find the bug in the code questions, describe a problem and ask you they would debug questions, etc.

  179. I've been hoping to get a co-worker ... by Hektor_Troy · · Score: 2

    It's not likely that I'll get one, because the company is really not that big (12 employees thus far), and I'm the only developer/programmer, but I would REALLY like a co-worker. I wouldn't settle for a simple "answer this questionaire" type interview though, if I had to hire some one.

    In my job, 85% of the time is spent inventing new stuff, so just because you can fix bugs in 200 OSS projects, doesn't mean you can fill this position.

    I want some one who can listen to an idea and have his brain run amok in synaptic explosions, because even though 99% of those explosions are going to be misfires, some of them are going to pay off.

    I want someone who handles a new idea like Microsoft and embraces it (but not quelch it), and not reject it like a foreign object in the bloodstream.

    I want someone who's creative; who'll look at an idea and throw it around, complement it and give it a fair chance, instead of thinking "well, we can just patch this and this in yonder program", because sometimes you have to throw out what you have and just use your experiences from earlier.

    I'm tempted to pimp an idea of mine (not work related), to give you an idea of what I mean by "creative" and "inventive", but this is not the forum ...

    Anyway, not all companies wants someone who can code the pants of anyone - sometimes they want one who's creative and open minded. I know that's what my current employer told me (and still tells me) was the reason they hired me.

    --
    We do not live in the 21st century. We live in the 20 second century.
  180. How we do it where I work by DeadMoose · · Score: 1

    The person will interview with a bunch of different people, all who have a different focus: Mike grills them on their academic history. Ruth grills them on their technical skills. Bill chats with the candidate, and gets a feel for the person.

    All three are really good at their particular interview tactic, and the people who've gotten thumbs up from all three have turned out to be great.

    The last time I remember that we hired someone without buy-in from all of them, Bill said that the guy just didn't feel right. About a month later, he wound up getting sacked because he really didn't do much of anything.

    So my advice is figure out what each person on your team is really good at evaluating, and make them focus on that.

  181. Well.. by mindstrm · · Score: 2

    obviously. Experience outweighs education.

    Education does not make you an expert, it gives you enough to START doing what it is you want to do.
    Education does not make you a professional.. it lays groundwork.

    1. Re:Well.. by Axe · · Score: 3, Insightful
      Education does not make you an expert, it gives you enough to START doing what it is you want to do.
      Education does not make you a professional.. it lays groundwork.

      ..and you do not have good anough START, or nave poor enough groundwork - it comes back many years later and bites you in the ass. Hard.

      Most important thing I ever learned - is how to learn.

      --
      <^>_<(ô ô)>_<^>
    2. Re:Well.. by Iffy+Bonzoolie · · Score: 1

      Unfortunately, I've seen people with lots of experience and education that couldn't do anything practical at all. I've seen people with no experience and no (or little) education that were bright and capable and adaptable, and could get the job done. So the formula isn't so straightforward as you make it seem. Of course there ARE people with lots of experience and Education that blow your socks off.

      I've found, though, if I have to pick favorites, that a proper education in the field is worth a lot more than experience, because experience will teach you very specific things about very specific topics, whereas an education teaches you how to approach any problem. And the reality is that when entering a new job, you are rarely, if ever, doing the exact same thing the exact same way.

      So I would disagree and say that education is more valuable than experience.

      -If

      --
      Run a pencil-and-paper RPG campaign with your far-off friends: Gametable!
  182. Interview questions by Anonymous Coward · · Score: 0


    [how to intreview someone]

    On one hand Mr. Anderson you have a very impressive resume. You worked at a highly profitable software company, re-wrote an SDK by yourself and you help your manager log into his workstation when the caps lock key is on....

    On the other hand Mr. Anderson, it seems you lead a double life. At night, you go by the name "Bob", have a girlfreind that you take shopping and spend 12% of your free time with. You like to take her to dinner at a Tai place down the street from your apartment.

    One of these lives has a furture Mr. Anderson.

  183. Show the Code by Ranger · · Score: 1

    Have them show samples of code they've written and see if they can explain it to you, preferably not stuff they did in school but on the job.

    --
    "You'll get nothing, and you'll like it!"
  184. Do you have to be hardcore to be good? by dten · · Score: 1

    A lot of posts suggest asking about off-the-clock projects. The implication seems to be if you're not doing extra programming on your own time, on top of what you do at work, you don't have the passion to be a good programmer.

    What about the rest of us who go home and play music, or go hiking, or weave baskets? Those who think life is too short and too big to spend all your time doing just one type of thing? Does that mean we will never be considered good programmers, even though during the day we enjoy churning out good, fast code, just like the geeks?

    1. Re:Do you have to be hardcore to be good? by Pinball+Wizard · · Score: 2
      What about the rest of us who go home and play music...


      Good question. Now how much effort do you think it would require to achieve mastery in a particular instrument(hint: a lot)


      The same can be said of any discipline, programming included.

      --

      No, Thursday's out. How about never - is never good for you?

  185. Can i have a Jjob by paulydavis · · Score: 1

    To answer one of your questions... In c++ at least "friendship isn't inherited, transitive, or reciprocal"... NO need for the job really..

    1. Re:Can i have a Jjob by paulydavis · · Score: 1

      Test 1 if they cant spell JOB then dont hire them. !!! ;)

  186. Two suggestions by Simon+Brooke · · Score: 2
    The best people I've ever hired were people I'd noticed posting consistently well informed and even-tempered advice on relevent technical usenet groups. When I was still employing people I would regularly write to the best people on the groups in my particular areas asking if they wanted a job. I got a lot of (mostly good natured) refusals, but the people I hired as a result were real gems - easily and consistently the best people I ever hired.

    The other thing is I was browsing el Reg this evening, as you do, and noticed this story:

    Q. Why, oh why, do you insist on Microsoft Word format for CV uploads?

    When I hire people, I turf all CV's that arrive to me in a proprietary format, into the bit bucket.

    Man's right.

    Real geeks don't send CVs in Microsoft Word format - at least not to people they respect. If the CV is in TeX, or postscript, or plain text, or XML, or even, at a pinch, PDF, that's a good clue that the person who sent it is a geek. Likewise if it's in any proprietary format, even if it's the cool Linux Wordprocessor du jour, there's a good probability that the person who sent it is a luser.

    --
    I'm old enough to remember when discussions on Slashdot were well informed.
    1. Re:Two suggestions by Fulcrum+of+Evil · · Score: 2

      Real geeks don't send CVs in Microsoft Word format - at least not to people they respect.

      Very funny. As a Real Geek, I find your generalization lacking. I realize that the people I'm talking to are HR people for the most part, and they always demand Word format resumes. When they don't, a text dump looks pretty good.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  187. First: Understand what you need by LoveMe2Times · · Score: 1

    I've done a fair amount of interviews over the last five years, both as interviewee and dozens as the hiring manager for programmers, QA people, and other managers. One of the most important things that you can learn about hiring: you get what you ask for (this is true of many things, actually). You have to understand what you need. And I don't just mean job descriptions (though I'd bet that those are a little weak, too). You need to think about the person's role on the team and what kind of personality will excel at that.

    For example, if you need a coder that keeps his head down and does what you tell him, that's a fairly specific personality type. If you're counting on the coder to tell you you're wrong (when you are :), that's a very different personality. Next, you have to keep in mind the team dynamic--you can't just load up on one type or you'll miss a lot of angles. A room full of heads down coders will happily deliver the shittiest program you've ever seen, 'cause that's what you asked for. However, there is some inherent conflict between some personality types you have to watch for--that's (partly) why the manager has a job, though :)

    Anyway, we found it very useful to lable the position with a short but colorful personality description. This personality will determine how important the technical details are. For example, if you're hiring a blackbox tester, niggly details about platform differences are important (how do you examine cookies in IExx on Mac?), whereas you expect an architect to have very broad knowledge and the ability to get and understand details when needed. Here are some examples of how we might characterize the needs of our positions:

    Yesman
    Bullshit-o-meter
    Swingman
    Schedule Monkey
    Mad Scientist
    Maud'Dib
    Professor
    Mechanic
    By-the-b ook
    Can-smell-trouble (ie bugs)
    Programming Seal (ala Navy Seal)
    a Machine

    These types of characterizations are useful because your non-technical interviewer can understand the gist and help look for them. Also, you can find professionaly prepared interview questions along with guidelines for how to interpret the responses for these types of things.

    Once you've got this figured out, you can decide whether or not you should ask syntax minutiae, give logic riddles or textbooky exercises, ask them to explain concepts, or ask them to tell a joke they like. All in all, if you know what you need, it's much easier to spot.

  188. pairing by GutterBunny · · Score: 4, Insightful

    Why not take your top three candidates and pair with each of them for an hour or two? Pick a task with little domain knowledge needed. Let them drive or do the majority of leading and see what happens...

    Then ask yourself (remembering that this is your first pairing with this person)..
    Did I like this person?
    Did he try to work with me or against me?
    Was he technically capable?
    Was his technique compatable with yours?
    Could he adapt to your style?
    Could I corroborate daily with this person?
    Does he smell ok?
    Did he offer to buy you lunch?
    Was he enthusiastic?

    If the answers were yes or mostly yes, then you've got a winner.

    --
    managers...why god invented purgatory
  189. Developers != Programmers by Eric+Savage · · Score: 2, Insightful
    One HUGE mistake managers (technical or not) often make is not realizing the difference between a developer and a programmer. Personally I consider myself an excellent developer and a competent programmer. What's the difference you say? Well the programmer lives in the world of code and pops his head up into the real/business world as needed. The developer is just the opposite. Programmers are typically the caffiene-fueled hackers that can bust out elegant/efficient/stable code that developers can only admire. The developer is presented with a problem and very quickly figures out platform/logistical/architecture issues, and can implement the solution (but is better off helping a programmer to do so).

    Unfortunately many programmers/developers also don't realize the difference and think they are both. In truth you can't be one without some of the other, but after a few years you will realize which camp you really excel in. I once worked with a large team of only (good) programmers and it was a nightmarish experience because they didn't appreciate the "development" side of the work, leading to a steaming pile of logistical problems and a missed deadline. Conversely, a team of only developers will likely turn out code with great intentions and design but a weaker implementation.

    Its not a matter of being better or smarter or more personable or working better in teams because those skills are valuable to both trades. It really boils down to
    1. what you like to do
    2. what you are good at
    3. why you do it


    To answer the question at the top, I think the first thing you need to do is find out what you have on your staff already, and then establish what you need and interview with that in mind. Looking for the person who does everything and does it well is likely going to lead to dissapointment.

    --

    This is not the greatest sig in the world, this is just a tribute.
  190. Well by mindstrm · · Score: 4, Insightful

    So what if I'm the kind of programmer who would have to whip out a book to do this? Does that make me a bad programmer? What if my methods and code are far cleaner and efficient than most, and I always produce what I say I'm going to produce on time.. are you going to discount my work as a programmer because I had to look something up? Because I didn't know it on the spot?

    Seems far too many people think it's about hotshot know-everything-instantly type of work, where you work when inspired or work when you are 'in the mood'.

    What about those who can methodically and cleanly produce code day after day?

  191. interview blech by american1620 · · Score: 1

    Rule - hire programmers you know. Period. I'm the world's worst interview, and a really good programmer. Beats the hell out of me how you find that out until I work for you. Too much resentment bubbles up when some goofball asks me a shmucko question about programming. I am really easy to work with, not at all nasty on the job--but syntax interviews, or even reasoning interviews, just piss me off. But anyone who doesn't hire me on that basis is missing a sure thing, and talent ain't that common. I liked the vi question (it's :q, by the way). Even simpler - what's the UNIX equivalent of dir? That kind of simple question is actually the best. To the other ones, like "whether friendship is inherited," I'd say "sheeeit, I don't know. Why don't you tell me?" Good programmer characteristic number one: he finds someone who already knows AND ASKS. Every other talent is totally secondary.

  192. To get a good candidate you need: by Anonymous Coward · · Score: 0

    To ask them questions about working with a team of other developers. I dont care if you can program the best code in your basement what can you do as part of a team.

    You'll want to look for answers like the applicant getting his previous employer setup on a cvs or other version control software.

    Setting up instant messaging systems (which are surprisingly not used by a lot of business) and just a general idea that the candiate has worked as part of a team before.

    Things that will not tell you a good programmer from the bad are technical questions, tests or multiple interviews.. You're just wasting peoples time.

    If you know what a good programmer looks like you'll probably know it from his cv.

    MCSE+BSci == crappy programmer.

    why because he got into it to make money.

    highschool dropout with oss contributions and his own dotcom will be a much better worker for you.

    The reason is simply because in the programming world you dont need (or at least i dont) a bunch of jump-through-the-hoops lackies.

    I want a developer to challenge the way i do things if he can provide a better way. I am not so egotistical like a lot of management i've seen to get upset when someone wont do it my way.

    These confrontational non-nonsense programmers are not going to waste your time or theirs. IF theres a job to be done they'll get it done faster.

    I hired my share of bsci's even a few masters before I caught on.
    the formula i use is.

    (time spent on degree) * 0.25 = relevant experience.

    so when you hire your next developer look to someone with 5 years real-world experience and not someone with 5 years education. Because really they wont learn crap all that YOU can use until they're out in the real world for at least 5 years.

    Another good question for your prospective employee is if he would be willing to take less salary and join in a profit sharing program.

    If the canditate believes in your business he or she will take your offer. If not they'll stick to their guns.

    I'd hire the former.

  193. Understanding the platform never hurts... by DNAGuy · · Score: 2

    This may be obvious, but it's important that the candidate has experience with at least some of the technologies you will be using. As a Windows coder (it pays the bills, folks), I constantly deal with folks who have decent pure programming skills, but do not understand enough about the platform we're dealing with.

    For example, if your candidate has years of experience working with Oracle and your app is being built with MySQL, you need to be aware of the risks. It is entirely possible that the employee might design in features that are missing or difficult to build using MySQL but were simple in Oracle. By the same token, they may not understand the performance characteristics of the available ODBC drivers, or whatever.

    This is particularly important when using large libraries like GTK, .Net Framework, etc. We've all seen folks reinventing the wheel when the widget they needed was available to them already.

    Of course, this is only one concern among many. In certain situations, where something really new is being developed, cross-pollinating different types of developers can be helpful. However, for most of the corporate apps being built today (content management, ERP, etc.), risk management is likely to be one of your highest priorities.

    --

    BRENT ROCKWOOD, EST'd 1975

  194. 1 easy question by Anonymous Coward · · Score: 0

    1. What is the best Star Trek Movie? Answer: #2

    That's all folks. I've met precious few programmers who didn't like Trek and I'm willing to treat them like experimental error.

  195. Look at their programs. by Anonymous Coward · · Score: 0

    Period. Look at their code. Find out how long it took them to make it. Would you hire a glass blower without seeing his work?

  196. A few other numbers by Fryed · · Score: 1
    Here are some other numbers that your perspective employee may or may not answer:

    69: If they choose this number, only hire them if you are running a pornography business.

    666: If they choose this number, immediately hire them, and send them to your legal department. Many companies are already following this same practice.
    (As a side note, you may also want to send some of these people to your accounting department, as in the case of WorldCom and Enron)

    Any number greater than the salary you are planning on offering them: Laugh, and then tell them that only the people in management get those kind of salaries, not the programmers!

    1. Re:A few other numbers by BollocksToThis · · Score: 1

      6 - legal

      666 - marketing

      any number made entirely from 1's and 0's is definitely programming, and you've probably just seen their password.

      --
      This sig is part of your complete breakfast.
  197. I can answer those questions in my sleep. by xyote · · Score: 1

    I'm one of those who solve problems with some kind of backgroud mental process so I am usually asleep with I come up with a solution. Unfortunately, it's considered bad form to fall asleep during the interview.

  198. My one question.... by airrage · · Score: 0

    I typically put the applicant in a lone chair in a large room with a lamp hanging directly overhead. As it sits blindfolded, I play strange sounds like rat-feet scurrying, Pink Floyd, or the Windows Boot Up wave file. Then silence. I remove the blindfold, but remain outside the light. I make visible a loaded 9mm glock with glow in the dark sites I bought from ebay for 59 bucks and no questions asked.

    "I only have one question...." I say as I deftly chamber a round and put the working end of the gun to it's head. "What are you thinking right now."

    Some answers which have ended the interview badly:

    * My dog/cat/pet won't get fed.
    * I didn't get to tell my friends/family/s.o. that I loved him/her/it.
    * I'm too young to die.
    * crying

    Some winning answers:

    * My cron job will fail if I'm not there.
    * Can we do this tommorrow I'm on call tonight.
    * I forgot to cut some space on the xp512 for >.
    * My quake clan is going pissed about this.
    * Damn, I'm gonna miss Enterprise/Buffy/Farscape tonight.
    * Go ahead you ain't got the cajones. :)

    --
    "This isn't a study in computer science, its a study in human behavior"
  199. Do I get a cookie now? by Mr+Z · · Score: 1

    Precisely. And xfig even makes it easy! (Hint, use 'update' on a compound object.)

    Or, if you're boring and code-inclined:

    • prev = NULL;
      curr = head;
      while (curr)
      {
      • next = curr->next;
        curr->next = prev;
        prev = curr;
        curr = next;
      }
      head = prev;

    Does that look right?

    --Joe
  200. Ask them something you're working on by Anonymous Coward · · Score: 0

    After the standard questions to determine that the person has indeed attended college I usually ask them to solve something I'm working on. You often have to take some of the details out of the problem so they can understand. At the very least you'll get another opinion on how to solve the problem you've currently got.

  201. Switcheroony by openSoar · · Score: 1

    how about you ask them "if you had to interview a programmer, what would you ask them?"...

    hopefully they'd raise a lot of points in this thread during the discussion of what they'd do.

  202. What to look for by Alien54 · · Score: 1
    fortunately/unfortunately, there are a number of websites out there that have hints for things like the Microsoft interview riddles, etc. a number of which have featured on /. - etc

    I would likely look at a number of practical skills tests focussed on key skills. For example, I might have a simple 5 to 10 page brochure website in straight html on a floppy. I might ask him to maintain the look, but convert to style sheets. Have them sit down at a PC without a net connection.

    Or find out and fix something that is broken on a page or in a piece of sample code.

    In other words, have tests for key tasks, nothing huge. You could even make it a timed test. Create a benchmark by having all current personnel also take the test, so you know what the bell curve is. The current crew could even help design it, supplying questions that people should be able to figure out in order to work there.

    --
    "It is a greater offense to steal men's labor, than their clothes"
    1. Re:What to look for by notsoanonymouscoward · · Score: 5, Insightful

      you would expect them to work offline?!?! come on. just give them everything they would have in a normal working environment. do you really want to not hire someone because they forgot to add one little thing? because they didn't have access to the documentation for whatever tools they are using? I am of course saying this all because I'm one of those people who doesn't memorize. I just remember the best places to look when I need a reference for any of the number of languages I've done work with.

      also, 90% of work is on the job training... do you expect people to be a perfect match walking in the door? wouldn't you rather have someone intelligent, adaptable and dependable, than someone who really really knows css and frontpage?

      --
      I ate my sig.
    2. Re:What to look for by tdelaney · · Score: 1

      Damn I wish I hadn't used up my last mod point.

      I'm exactly the same. I don't bother to memorise anything I don't use all the time. If I use it enough, I'll remember it. If I don't, I'll remember where to find out what I need to use it. If I can't remember that much, then it's off trawling the web and USENET for the answer (also what to do when it's something I've never encountered before ...).

      I'd much rather someone who demonstrated that they knew how to find out what they need (and then apply it) than someone who has memorised books.

    3. Re:What to look for by Aexia · · Score: 2

      Exactly.

      At my current job, I've developed a reputation as guru with Microsoft Excel. I don't have encyclopedic knowledge of everything in Excel. Most times when someone has a problem and asks me to help, I don't know the answer.

      BUT I've used Excel enough to know how things are laid out and I'm able to find the answer within a minute or two. It's the same with a lot of problems.

      The funny thing is that my job is to write queries in SQL and support a Domino database... but the bulk of the acclaim I get in my job is related to what I've done in Excel.

    4. Re:What to look for by MaxVlast · · Score: 1

      That's because nobody likes anyone associated with Domino.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    5. Re:What to look for by Anonymous Coward · · Score: 0

      You know this, I know this, but it doesn't seem like anyone looking at resumes or doing the hiring knows this. Seems like they'd rather have a buffoon who's programmed Java for three years, regardless of its quality, than someone with real talent but no Java experience.

    6. Re:What to look for by scott1853 · · Score: 2

      Simple question to ask the interviewee: To find the answer to a technical problem, do you consult the 1000+ page spec book, or head to groups.google.com?

      The college kids with no practical experience will go for the books. People that have enough experience to realize that the implementation never matches the specs go to google.

    7. Re:What to look for by (outer-limits) · · Score: 3, Insightful

      I don't think I am such a bad programmer, but i don't like the MS type riddles. They annoy me in that there is a single, pre-defined answer. When I am dreaming up a technical solution to a request, I am thinking up something that doesn't have a pre-defined answer. I have seen plenty of solutions that work, but merely parrot the previous solution and ignore any new possibilities that may have come up since. All that results is that we get bogged down in old technology and methods.

      --

      Microsoft - Where would you like to go today, Maybe Jail?

    8. Re:What to look for by Anonymous Coward · · Score: 0

      change that to "wouldn't you rather have someone intelligent, adaptable and dependable, than someone who really really knows how to interview." The answer, almost without exception is no. Not because intelligence, adaptability, and depandability aren't good traits, but simply because those traits are so intangible in an interview situation.
      Interviews almost always favor the person who knows what you were looking for, rather than the person who could have done the job the best. People who are good at what they do tend to get jobs through knowing people, or having reccomendations, because it takes different skills to be good at interviewing than it takes to do most jobs.

    9. Re:What to look for by Grab · · Score: 3, Insightful

      If a company asks me a Microsoft-style riddle, I'm outta there. You might as well ask a Trivial Pursuit question instead - it's just testing whether you've seen that riddle before, not testing any brain-power.

      The important thing to test in an interview is *method*. Not whether the answer was right, but whether they went through the right steps to get there. If they got the right answer by some random guess, that tells you nothing, but if they went through the right steps and made a mistake, in the real world they can back-track and find the mistake.

      Grab.

    10. Re:What to look for by Darkfred · · Score: 1

      I don't think this comment is correct. Not in programming at least. Ture it may take only a few days for a good programmer to learn a language. THe majority of programmers need at least 5 years out of college to get to the level where they can write the engine around a product or start from scratch on a new project. This is what I look for and it takes experience.

      Once you find someone like this they can lead a team and make up for the deficiencys in the younger programmers, and as a lead myself I can say that this takes a good deal of my time.

      With your startegy you would end up with a bunch of intelligent guys who had to try try and error until the project got into the debugging stage. There is no substitute for working experience.

      --
      ----- 70% of all statistics are completely made up.
    11. Re:What to look for by notsoanonymouscoward · · Score: 2

      Everyone works differently... accept it. Thus I don't think your comment is correct. Especially in programming. And now on to some heartfelt flaming.

      5 years to learn a language? Shesh. No offense, but anyone with a good year or two solid with a language should be able to handle team lead using that language. Even more so if that person took the time during college to really learn good design. And yes, I do know what I'm talking about, and yes I do have the experience. And no, you can't hire me =) And no, please don't reply saying you wouldn't hire me anyway because blah blah blah...

      --
      I ate my sig.
    12. Re:What to look for by Darkfred · · Score: 1

      You are obviously not a programmer, or not a good one at least. None of the candidates I have gotten out of college could be asked to write anything from scratch. And it takes years of experince before you can trust them to write it correctly.

      Programmers don't give a damn about languages, not real ones. It only takes a couple days to learn a new language, if they can't learn like that they aren't worth the time train.

      Its experience in developing complete systems that makes a good programmers. Even the bad programmers understand this. Could you have developed the project you are working on now from scratch given enough time?

      In short you sir are a fool.

      --
      ----- 70% of all statistics are completely made up.
    13. Re:What to look for by notsoanonymouscoward · · Score: 2

      learn perl in a few days biotch =) all of it, modules, libs, etc. learn java in a few days biotch... all of the classes and intricacies of the language. We're not talking java in 21 days here pal. now be honest and tell me i'm right in this case... or can you honestly delude yourself into thinking one can really learn everything in a few days? just as one needs to know the right way of designing complex systems, one must truly know the ins and outs of the tools (languages) they use to implement the design.

      i've written the usual smorgasboard of web apps, wireless apps (client and server), UI and middleware for embedded devices using c. worked on full projects: design, implementation, and debugging... from scratch. i've done everything from lowly QA to team lead... what have you done? lately? and what freaking college are these people coming from?

      I may be a fool, but i'm a damn well paid one, and respected by my peers. Thats enough for me. Can you say the same?

      --
      I ate my sig.
    14. Re:What to look for by TheICEBear · · Score: 1

      I agree with you. Syntax can be and should be learned in days. Intricacies, libraries, good behavior and the like that at least a year, but then you should have it done.

  203. one more thing by Anonymous Coward · · Score: 0
    how do you suggest getting around the paradox of 'not knowing enough to qualify, but never being able to get that experience to know enough'? I guess what irks me is the inconsistency I see. Some person comes in to a new joint where because of bad management and bad luck their former place went under. The new folk don't know that person, so put them in shit work. Worse, said shit work is not shit to many but is to someone who does not like nor is qualified for that work (probably a two way relationship there, plus one mans garbage...). Now we get to the problem of inconsistent policy (written or spur of the moment decisions), attitude and behavior on the part of the decision makers. If someone comes in who is touted as 'the shit' yet people fall all over themselves helping this person... and help this person ALL THE TIME, then the question that begs to be answered is, "Why does someone who obviously needs so much assistance in such high demand?"

    How can someone who does not have as much experience in specific areas prove themselves if they are given things that: 1) no one else can do 2) not given info, tools, training on that new system 3) observes that training, orientation and assistance are given to those that where described as being self sufficient and solution providers? That is a never ending spiral downwards and a saavy businessman would understand that it is in their best interest to provide their staff with the best means possible to grow and flourish. An analogy would be with gardening: what if you bought two types of tomatoe plants? One was a normal breed, but the second was some uber-mater that was light years ahead of the other. It needed vastly less amounts of water, but yet would not suffer from over watering. Could grow perfectly in the shade, yet suffered no ill effects of day long full sun. Produced massive disease resistent tomatoes that ripened quickly and were as sweet (or tangy if you prefer) as can be yet could survive a 10 foot drop without a bruise. Grows great in nutrient poor soil, in basic or acidic soil as well as in sandy, clayish, or silt like soil. It matures amazingly fast, does not crawl all over the place or get leggy, and produces tomatoes 10 months in most North American regions. All this and of course you must pay about 5 times as much.

    Now with this in mind, wouldn't it be silly to starve the 'normal' tomato plants of water, sun, nutrients and basic care yet give all that and more to the uber-maters? Isn't that rather inefficient? If you give those nutrients to the normal plants you can have in essence double what you get without. This is a basic economic principle... that of making the most of limited resources. Children often make the mistake of getting enamoured by sparkles and shine and devoting all their 'resources' to what does not need them. The result is that one thing only being decent, while everything else is crap. I fail to understand how it is that this basic understanding of business (or common sense practice) sense methods are overlooked when people promote and hire management. A manager, like with an athletic team, definitely does not need to do every task of every player, much less do it the best or even as well. However, they must understand 'why' and 'how' those skills/positions and the interaction between them are so important. They are not the boss just to be the boss. (RHIR should ALWAYS be higher in priority to RHIP) They are not just coordinators of tasks, but the motivator, the liason and the visionary. Instead, what I have found entirely too many times are managers in name only (I suppose that includes pay, rank, etc also but that is not the point of this) As position increases, so does the impact of decisions. So, it is silly and backwards to hold a higher standard to people on the lower end than the higher. To do so, is to declare you do not care about good results from your organization. (besides it pisses people off and bad morale has a horrible effect on productivity... just ask Sun Tzu, well you know what I mean)

    Back to programmers (sorry for the rant), but I think that there should be differing types and levels of entry instead of the perfect person. Ideally, find someone who is enthusiastic about that type of work (the one that pesters and bugs you to do that work), put them with experienced people, provide adequate resources (hw, sw, training, leadership, etc) give them direction, give them REQUIREMENTS, and for God's sake please organize your methods and processes so as to make sense to the unnitiated... create some CONTINUITY. Provide mentorship through the work and you will be amazed at the loyalty and hard work that will give you great results. Those results will be direct and indirect (more skill, more motivation to learn more, more ideas, etc) so as to help your organization get the best of both worlds. Or, you could just stagnate and spin your wheels and then yell 'Quality' once in a while.

  204. HIRE THE PERSON, NOT THE SKILLZ by tstoneman · · Score: 2, Interesting

    Don't get me wrong, skills are very important, but you do not, under any circumstances want to forgo skills for personality.

    To be a good programmer you need to be:

    1) easy to work with.
    2) No Prima Donna attitudes.
    3) passion
    4) smart

    There are some people that I have worked with that were really good at bug fixing. One co-worker would spends hours and days until she found really really tough bugs so she was really useful. Because she was good at fixing bugs, she thought she was a great programmer. WRONG! Fixing bugs is easy, it's generating your own code from scratch that is hard. This bitch thought she was too good for code reviews so she never did it, and changed code whenever she wanted and wreaked havoc on our products. Whenever you even mentioned some of her code she would get defensive and on a couple of occassions started crying because she thought we were attacking her. No dumbass, we're just trying to fix a bug in the program. Anyway, believe me, you do NOT want to hire people like that.

    Brain teasers are the stupidest things to ask during an interview. Figuring out problems is only half the solution when it comes to programming.... you also have to worry about maintainability and coding style because in the long run, this is what matters most.

    When I start conducting interviews again, I will

    1) ask some technical questions to see if they can talk the talk
    2) go for lunch with them and just shoot the shit to see what their personality is like
    3) give them an overnight somewhat challenging coding project and have them e-mail me their code the next day. This lets them code in their most comfortable location, gives them all the reference materials they need (who they hell knows all the syntaxes off the top of their head) and I can take a look at their coding style.

    The other thing I have learned for myself is that the next job I take, I'm going to require them to show me a sample of their code for their products. I will not take a job where the previous coders left a piling of steaming shit and then I have to come in and either clean up their mess, or code through hoops because everyone is too afraid to touch it because it might break everything.

    1. Re:HIRE THE PERSON, NOT THE SKILLZ by DEBEDb · · Score: 2
      2) go for lunch with them and just shoot the shit to see what their personality is like


      This may be worse (I know it would be for me) than
      making them solve problems. A good-to-work-with
      personality may change for the duration of the
      interview, obviously, not just due to the
      pressure (which applies to solving problems as
      well) but also due to desire to act the way
      you want them to (which does NOT apply to the
      hard logical problems). It is entirely IMHO,
      but a total asshole can fake a great personality
      much easier (or, perhaps, statistically in a much
      greater number of cases) than a hack can fake
      an answer to a logical problem or a comp-related
      "loaded" question.

      But I love your 1 and 3! Gimme those, and you'd
      hire me! :)

      --

      Considered harmful.
  205. Demos? Don't bet on them. by Malkin · · Score: 1
    mactari says:

    DO ask for demos of working apps from previous jobs/schools. If they don't have anything working to show, they can't take a project, even a simple one, cradle to grave. You want self-starters who don't need constant supervision.


    I'm afraid that demos of working apps from previous jobs or schools are often simply not going to be available, no matter how good a programmer is.

    My job at school had me writing embedded systems software. I'm sorry, but I can't haul a 50 foot neutral buoyancy tank into your office for a demonstration. Or how about my telco billing system? Nope. Can't demo that. Secret defense systems? No way! Nitty gritty systems programming projects for an ISP that has gone through two acquisitions since then? Nope. Proprietary intranet for an up-and-coming services company? Not a chance, babe.

    Between clearances, non-disclosures, and the impracticality of emulating some operating environments in your office, I think that's it's more than a little unreasonable to expect demonstrations of working projects.

    Moreover, if someone does manage to show you a demonstration of previous work, there's no way of knowing how much the person sitting in front of you actually contributed to the application in question. It's possible that all of his code was ripped out and refactored, and that his ineptitude pushed the project three months past its deadline.
  206. Portfolio by DPalomo · · Score: 1

    Most programmers that are really enthousisastic about programming have some protfolio they can show. In the game (entertainment) industry it's quite common you bring along your portfolio and show some demos of the things you've already accomplished.

    I think a lot of 'good programmers' do progam for fun in their free time. So I think, most of them should be able to show a portfolio.

    --

    - For every winner, there are dozens of losers. Odds are you're one of them -

  207. Here's how you interview a programmer: by Anonymous Coward · · Score: 0

    #1 If the programmer has any of the following, they are automatically out no matter how he describes himself: a mullet, a visible tattoo, a pony tail, facial piercings, gauged ears, or if his breath smells like he just ate a pile of rhino shit. All of these things are signs of a complete asshole.

    #2 If the person calls you "sir" (or ma'am if you're a fem-geek. In which case I say "such my dog's dick".

    #3 If the person smokes crackrocks, they are dope fiends and shouldn't be trusted.

    #4 If the person gives a shout-out to a rock band during his phone interview say "fuck off" to them.

    #5 If the person reaks of shit, pick that mother fucker up by the throat and threaten to arrest him for being a loser.

    #6 If the person programs in Delphi or Perl tell that mofo to get a job elsewhere. As a cock-sucker.

    #8 If person is a nigger, say "good day, sir" when they leave. Tell them that you're an equal-opportunity employer and talk with them for many hours before the "good day, sir". Make them your best friend and invite them to a barbecue with your family. Then take them to a dinner at a classy restaurant and drink expensive champagne with them.

    #9 Examine their source code.

    If you stick to that, you'll weed out good canidates from the bad.

  208. Non-tech Tech Interviews by higg · · Score: 1
    I've been interviewing programmers for several years. One trend I've found in interviewing techniques is that they've become much less technical.

    I'll typically look for interesting things on their resume and ask things like:
    • Why did you make the design decision you did
    • Why didn't you use xxx pattern
    • How did you get along with your team members


    The point is that I would rather have a moderately experienced coder who knows how to think than some prima dona, Java Certified, programmer who cranks out crappy code and doesn't get along with other team members.
    --
    Thus sprach higg.
  209. as with all tests... by Anonymous Coward · · Score: 0

    ... you are not measuring anything meaningful. I can memorize answers to many things that you can ask me (see the slashdot sites for specific examples). It is only when you get me in front of the stuff can I perform, and either sink or swim.

    There is no question you can ask me that is truly indicative of my knowledge level/ability. OTOH there is simply no way to fake actually doing the work.

    On a very much related note, some of the worst people I have hired have been straight A students from top universities. Some the best people have been B and C students. Seems counter-intuitive, but many of the B and C folks really are quite smart, but are bored with the classes. It is hard to find these nuggets, but when you do, single people of this ilk are worth 10 of the best folks from MIT.

    Find out what gets their juices flowing. If it is nothing, well, you have a dud. See who has gone far afield to learn how to do something. See who has taken the road less traveled. It is more often than not, the people whom you least expect.

    In various fields of study at universities, you often have many foreign (for the US) students with straight 4.0 averages. Seemingly wonderful students. Get them into a lab, give them a measuring device, and tell them to "do". Most of the time they cannot. has to do with the fact that memorization is not learning (internalizing and understanding). Many straight A types are memorizers. These are the ones who do really well on the questions you ask.

    Give them a 60 day window if they pass the rest of the muster. If at the end of the trial period, they have not measured up, out they go. Wheat will be in one pile, chaff in another.

  210. Re:And the almost always overlooked flip question. by claud9999 · · Score: 1

    Amen to this, I think far too many "managers" out there are the cause of employee failure, not the employees themselves.

    Given the areas that phamlen is asking the candidates, they have some skills...But perhaps the questions don't match the needs of the workplace or (I'd guess being just as likely) the workplace is not conducive to productivity and the managers are expecting far more than is humanly possible. Then again, anyone dumb enough to work for such a shop (and not quit) are fools as much as incompetent.

    (Phamlen, had many people quit the project?)

    Unluckily, asking /. how to solve your management problems is like asking random guy on the street, we don't understand your situation nor do you have confidence in our ability to address your concerns. Now back to our regularly scheduled advert^H^H^H^H^Hnews articles.

  211. Knee-jerk responses... by DEBEDb · · Score: 4, Funny

    Having hired several programmers who haven't worked out...

    1. ... or showered, or shaved...

    2. For myself, having hired several
    bodybuilders who haven't programmed...

    --

    Considered harmful.
  212. Re: How Should You Interview a Programmer? by Paracelcus · · Score: 0

    Not just a programmer, anyone technicial!

    All the interviewers I've had the misfortune to interview with these last five months have had one thing in common, they are very uncomfortable interviewing older workers, they seem to want animated snappy youthful answers to their question, I even went to a workshop on inview tecniques, I thought the video examples they showed us were just plain stupid, the actors in the little vignettetts heads were bobbing around like some crack addicted bird, I was told by the instructor that I "had no body language" and that I should "project enthusiasm", what a bunch of BS!. It would seem that answering tecnicial questions correctly isn't enough, you have to look like you are a member of the interviewer's peer group, you know someone to have as a playmate, I didn't get a job as sysadmin at WalMart.com because the head System Administrator (a twenty year old kid) didn't like the fact that I prefer RedHat over Debian, your should have seen the look on his face when he saw me! even his Micky Mouse T-shirt got mad.

    --
    I killed da wabbit -Elmer Fudd
  213. High Pressure Hiring by Garridan · · Score: 1

    My boss is pointy-haired in that he has no idea about what I, or the computers I control do. Fortunately, he understands his pointy-hairedness and put me (the only programmer at the time) in control of hiring my assistant. Hmm. I'm gonna have to work with this guy every day. He's sharing my freaking office, for crying out loud! I'm gonna find me the best partner I can get.

    So... I looked through the resumes, put the straight-edgers (class presidents, etc.), PhDs, (we're making webpages, not rockets... we can't pay for that) into the "I'm keeping this because I'll get sued if I don't" pile, and called in some of the younger guys (my age) for interview.

    When they came in for interview, I took them into my office with my music blaring, and shut the door. I seated them in an almost ridiculously small folding chair, contrasted by my boss's plush leather armchair that I was sitting in. There was a normal chair turned to face the wall, which only one applicant took (he was the only one that passed that test). I started out with a few questions, but other than a few skill-related questions, it was mostly personal. The less I liked them, the less personal it was.
    Then I got down to business. I showed them my company's website, a little bit about how it works, and told them about a feature that we were adding. Told them a bit about how it was supposed to work, and showed them my prototype. It took me about 30 minutes to do, and I told them I expected the same of them. I sat them down, and watched them code. After about 20 minutes or so, I'd ask the applicant if they were uncomfortable from my presence. If they denied it, I stayed there. If they didn't, I got my homework out and worked alongside them. I got a very good picture of how they worked under pressure, and how they coded. I denied more than one fully-qualified applicant on the grounds that I knew I wouldn't get along with them. I'm still confident that I hired the best man for the job, 4 months later.

    1. Re:High Pressure Hiring by Anonymous Coward · · Score: 0

      ... I sat them down, and watched them code. After about 20 minutes or so, I'd ask the applicant if they were uncomfortable from my presence. If they denied it...

      I shouldersurfed real close on their backs like a tick. Then I asked them if they minded. If they denied it I whipped out a megaphone and started dictating keystrokes.

      Dont kid yourself, you saved more than one fully qualified applicant the grief of working with you.

    2. Re:High Pressure Hiring by Garridan · · Score: 1

      Correction: I saved more than one otherwise fully qualified applicant the grief of working under my boss. If they couldn't work under pressure, they wouldn't have survived here a week.

  214. Time to read up on riddles by des09 · · Score: 1
    thanks. I'll go read up on all the riddles I can and hope I get asked one I know the answer to in my next interview.


    Cottleston, Cottleston, Cottleston Pie,
    A fly can't bird, but a bird can fly.
    Ask me a riddle and I reply:
    "Cottleston, Cottleston, Cottleston Pie."

    AA Milne
    --
    .sigless since 2003
    1. Re:Time to read up on riddles by Anonymous Coward · · Score: 0

      that's not a riddle, its a tongue twister

  215. Can they read API documentation. by irritating+environme · · Score: 1

    #1 sign of a good programmer: self-starter who reads documentation and uses example code to write in any language. Face it, no programmer you hire knows the apis and features of the language you select and the architecture you construct 100%. A good programmer learns quickly, adapts programming examples (with code conservation). Stupidest questions ever in interviews: Can you tell me how works? I.E. is Friendship inherited? Please. A good programmer RTFM when he needs to determine if friendship is needed and if its inherited.

    --


    Hey, I'm just your average shit and piss factory.
  216. Ask them to go in-depth on something they've done. by shess · · Score: 1

    Of the dozens of people I've done technical interviews of, the clear factor distinguishing the hires who worked out from those who didn't was their ability to go in-depth on a topic. It annoys the heck out of me to have someone listing an MS degree (or with a decade of "experience") who can't expound on a subject without prompting.

    Heck, I recently revisited my resume, and realized that I could still go deep on projects I've not been working on for 5 years or more.

  217. You only need one question by dasmegabyte · · Score: 2

    Well, technically, two:

    1) "Are you Das Megabyte?"

    and

    2) "How much do you want?"

    --
    Hey freaks: now you're ju
    1. Re:You only need one question by Fulcrum+of+Evil · · Score: 2

      1) "Are you Das Megabyte?"
      No.

      2) "How much do you want?"
      Das Megabuck pro decade

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    2. Re:You only need one question by Anonymous+Squonk · · Score: 1

      So, you ask the second question only if you answer No to the first one?

  218. Background checks by LeBain · · Score: 1

    I find that criminal background checks are useful.

    --
    Give serendipity a chance.
  219. reinventing the interview by mokhwaci · · Score: 1

    I recommend you read _Ask the Headhunter: Reinventing the Interview to Win the Job_ by Nick Corcodilos. Nick is a silicon valley head hunter and also writes a column for the EETimes (http://www.theworkcircuit.com/headhunters, also good reading). Although intended for job hunters, I think much of his advice makes sense for employers looking for new people. To summarize, he says the best interview is one where you actually do the job, thereby showing your ability to do the job. The reason you were disappointed with the people you hired? You asked them one set of questions and checked for one set of skills, and then when you hired them, you expected them to have another set of skills.

  220. Get them to do the job in the interview by sukotto · · Score: 1

    Sit them down and show them the work you want them to do. In particular, show them a problem you currently have open and ask how they would approach it... Get them doing the job in the interview.

    It doesn't matter if they can answer riddles.
    It doesn't matter if they have a shiny resume
    It doesn't matter if they know exactly how language X's pre-parser works.
    It doesn't even matter if they are a genius prodigy programmer. (seriously)

    What matters is that they can (help) solve the kinds of problems your group faces regularly (or expect to face soon).

    So try to get them doing that during your interview. If they can, they you have a potential winner and can start thinking about how they would integrate into your group's personality.
    Then you have them casually meet their potential co-workers and you can get those people's impression of the candidate.

    One website I really love is: AskTheHeadhunter
    Particularly these articles:
    asktheheadhunter.com/harespecting.htm
    asktheheadhunter.com/hatenmistakes1.htm
    asktheheadhunter.com/hahireright.htm

    --
    Come play free flash games on Kongregate!
  221. how to evaluate work ethic? simple... by r3volve · · Score: 2, Funny

    have your interviewee sit down at a machine with a random file of code open in some development ide.

    then time how long it takes before IE is fired up to slashdot.

    (withdrawal symptoms such as sweating and mouse-finger-twitching often appear first, so these are sometimes good indicators as well)

  222. Worst troll ever by wackybrit · · Score: 1

    So before you attack Gimp, I suggest you consider what you are saying.

    Did you realize that a troll actually has to have some sort of truth or some sort of humor in it? You have missed on both marks. I didn't even mention 'Gimp', you gimp!

  223. PDF Resume by Anonymous Coward · · Score: 0

    I wrote my resume in PDF (Specifically LaTeX) and it looks rather good.

    NOBODY FRIGGIN' CARES. They want MS Word.

    I often send my resume in BOTH formats. One woman (recruiter) was completely lost as to "what the 'other' file was".

    PDF gets you nowhere with HR or recruiters.

    And the funny thing is that the majority of jobs that I am applying to are Linux / Unix jobs.

    You won't be considered unless you submit in MS Word.

    Period.

  224. Games... by tmhsiao · · Score: 1

    Were I to have the permission/wherewithal/time, I would try to get three other people and play either a game of Hearts or a game of Spades with the candidate as my partner. What might also work would be to get some poker chips and play a few rounds of No Limit or Pot Limit Texas Hold-em, just to see how they react.

    Or maybe I'm just a sadist.

    --
    "My God...It's full of ads!" -Fry, about the Internet, Futurama
  225. It doesn't work by Anonymous Coward · · Score: 0

    whatever you're thinking of doing, guarenteed it won't work.

    I worked at a large pharmacuetical company in the support center. One day I and a collegue were given a call to a user who had recently installed a scanner, and now thier SCSI card wasn't working. I think it was on a Sun Ultra machine.

    On arriving at the users desktop my collegue starts fucking about with a windows CD ROM, which for obvious reasons wouldn't install (presumably he hadn't even realised it wasn't windows). After 5 minutes he proclaims that the SCSI card is dead because "the balloon didn't go up".

    On questioning him on what the hell this balloon stuff was all about, it turns out his only experience with PCs had been working in a PC World, installing components - as all of the components were identical, and the procedure always the same he had assumed that ALL computers and components were the same. The balloon in question was some kind of SCSI checking program that came with the cards he was used to.

    Anyway, after that it took me ~20 seconds to discover a SCSI ID conflict. switch flicked, job done.

  226. Wrong by Pope · · Score: 1
    you should never end a sentence with a preposition

    1) There is no such rule in English, and
    2) In this instance, "to" is a verb fragment, not a preposition.

    --
    It doesn't mean much now, it's built for the future.
    1. Re:Wrong by tiedyejeremy · · Score: 1
      2: It is my contention that "to" is not a verb fragment. Were it a verb fragment, it would be a part of the verb contribute. It is not. It is part of a prepositional phrase containing a preposition (to) and a noun (what.) Prepositional phrases indicate or describe relationships. A relationship exists between contribute and that to which a contribution has been made: what.
      1: While I may not be able to quote a specific rule off hand, I would advise that prepositions describe relationships which cannot exist between one thing and nothing. It may be possible to construct a proper sentence that ends with a preposition, but every sentence I have seen ending with a preposition has been incomplete or contains an implied redundancy. Perhaps the writer was attempting to use an eliptical construction by deliberately dropping words. To do this properly, one must be certain that the words left out are identical, not similar, to the remaining words. I do not see this in this instance

      I don't want to get into a grammatical debate or spitting match, as, though english is my primary language, I am certainly not an expert. I was merely pointing to a common error I encounter that, to me, indicates laziness or an inability to properly convey meanings.
      Thank you kindly for keeping me on my toes.

      The easy solution is to add an object as in the following example:
      • Were are you going to? incorrect
      • Were are you going to, Asshole? see the difference? :)

      reference: Troyka, Lynn Quitman, "Handbook for Writers," 2nd ed. Prentice Hall, Englewood Cliffs, New Jersey, 1990, sections 7 & 9
      --
      Anything you say will be held against you. ... "tits"
    2. Re:Wrong by Anonymous Coward · · Score: 0

      Where are you going to be?
      You are going to where?

      Both of these are better and proper as:

      Where are you going to?

      There is nothing else to associate 'to' to. 'To' is either a verb fragment or it references the object. Questions do not often follow the subject, verb, object syntax common in declarative sentences. 'Where' is the object.

  227. Don't Be Superficial by Anonymous Coward · · Score: 0

    I've had two interviews recently and they were both superficial. They wanted me to think creatively on my feet on an optimization problem, debug a simple string class, and quote verbatim from windows.h. None of their questions accurately assessed my programming skills. Creative thinking is hard to do in a group interview situation, fixing a string class is a fair enough test but I should be left alone to do it, and who cares if I know the exact syntax of every function? My interviewers tested my charm and memorization skills, and lost the opportunity to hire a great programmer.

    On a similar note, don't look for a grocery list of skills, look for concepts. For example, a company I worked for hired two Java contractors with lots of Java and Oracle experience. Their skills were a perfect fit, but they both left a showstopping bug in the main servlet because neither one of them had a clear understanding of how client-server applications work. There is a difference between years of experience with specific applications and quality. Quality usually comes with a passion for the work, which is why so many of these posts have emphasized personal projects and open-source contributions.

  228. Just like programming... by DA_MAN_DA_MYTH · · Score: 2

    You test, test, test....

    We have been looking for a Java Programmer for some time, and to alleviate the riff raff we typically give them a Java Test, and SQL Test. The SQL Test is more knowledge base with very little thinking and the Java test is mostly developing algorithms. The sad thing is a lot of the people come in asking for a starting salary twice as high as mine, and can't even pass my fscking test. Sad thing is no one has passed the test yet, so we haven't hired anyone...

    I would say this test is on par with a 2nd semester programming class midterm.

    --
    "It takes many nails to build a crib, but one screw to fill it."
  229. Re:Hmm...Qn. asks how "difficult" not how easy... by Anonymous Coward · · Score: 0

    Answer: It's not difficult at all.

    If the interviewer gets stumped by this answer they are not smart enough.
    (Remember an interviewee should also try to find an employer who is a good match. A dumb interviewer asking apparently smart questions is a bad sign).


    Interviewer: care to elaborate?

    Answer: "Assuming that the question meant you're given 9 #s between 1-10"
    state your assumptions when given such poorly worded questions. Good scientists, Engineers and even Techs (e.g testers or tech support trouble shooters) never blindly assume anything. State your assumptions & keep them in mind all the time. Ask for clarification when forming the assumptions. If the assumption is wrong you'll likely get a wrong answer. On the other hand if you correctly answer the wrong question the interviewer will think you're crazy.

    Is it difficult to find the missing # that would make a total sum of 55?

    No b'se ... missing number = 55 - (sum of the 9 given #s). Easy!

  230. Give them a Task by lizzybarham · · Score: 1

    Give them a programming assignment besides the general interview. Even if it's way over their heads (or may take too long to do in the time given), pay attention to how they go about solving the problem.

    • Do they even try to do it?
    • What resources do they consult?
    • Do they make UML diagrams?
    • Have a senior programmer review their code:
      • Is it sloppy?
      • Is it well commented?
      • Is it brilliant but needs polish that will come with more experience?

    Tell them, "Try to do this and return anything of value that will help you or others achieve the goal."

  231. I agree by JMZero · · Score: 2

    So we asked some basic Unix questions and a bunch of general CS questions.

    Certainly as a manager you need to know what skills your guy is really going to need, and whether this guy has these skills (or is going to be able to pick them up in a reasonable time). I'm only suggesting this:

    For a lot of programming positions, many applicants will be overqualified technically - or at least able to get the job done in a reasonable way. In these cases, your best bet as a manager might not be to say "Which of these guys has the most technical knowledgge?" but instead "Which one of these guys is going to work hard, be willing to learn, be good to work with, etc..."

    For lots of jobs this won't be the case. You'll need to verify specific technical skills.

    --
    Let's not stir that bag of worms...
  232. Re:Personality and social skills by YourGarbageMan · · Score: 1

    I'm glad someone mentioned this. Being a good programmer is not the same thing as being a good teammate.

    If your project is a team project and I assume it is then you need to hire good teammates. That means someone that can do the work *and* someone who fits into the team culture. That doesn't mean they have to be carbon copy personalities, but it does mean that they need to get along with the people they work with.

    I once made a horrible mistake in this regard. We interviewed this guy and he was technically smart, but his personality seemed oddly stoic. I thought he was just nervous because of the interview. Turns out he was just weird and not in a good way. He was a loner and lacking many common sense social skills. He just did not fit in, and try as I might I could figure no way to connect with this guy. Our boss had to micromanage him to get him to do anything. Needless to say, it was not a good situation. He was not a good teammate, and although very smart, he did not contribute to the team effort to the degree which was required.

    My requirements for a new hire are that 1) They are smart enough to be trained to do their job in a reasonable amount of time and 2) They are someone I can relate to on a personal level. If I can't have a casual conversation with this person then I know that working together will necessarily be less efficient.

    The most productive teams I've worked on are the ones where my teammates also became my friends. These groups are spontaneously organizing. We had informal offsite get togethers often, and no one person was the central organizer of this effort. Things just happened, and work was the same way, things just got done without the need for much management. We just worked together well, because we got along with each other well.

    I would also advise against hiring someone just because they would make a good friend. They have to be able to do the work too.

    My last piece of advice is, if you do find yourself in the situation where the group is high functioning and high performing, don't let upper management fsck it up. Unfortuantely one of my greatest success stories also became one of my greatest tragedies, because management couldn't let well enough alone. They destroyed the team and nearly destroyed the project. It is still limping along now, but it may not survive.

  233. Look for brave people by Anonymous Coward · · Score: 0

    The key is to hear somebody say "I don't know but so what?" People without fear are the best programmers/sysadmins, it's impossible to know everything so the key is to be brave enough to find out and solve a new problem by themselves.

    Fear leads to anger, anger leads to ....(Can't remember but they are fired at the end)

  234. It's about personality by billDCat · · Score: 1

    My thinking on this is that you can throw as many technical questions at a person that you want, but what you might find is someone who may be a good programmer, but not a good employee. I would qualify a good employee as someone who has a good aptitude to learn, communicates well with others, and is going to add personality to the work environment.

    Being on both sides of the interview process, what I find works best is to have a conversation, not an interview. Ask questions about their non-computer related interests, get a conversation going from that, and once your into a conversation, continue to have a conversation about the more technical and business aspects of their experience. What you do is make the person more comfortable and gets them out of their pre-rehearsed "interview" shell. If you can't find experiences in common to talk about, or they have no interests aside from computers, that probably was not a good candidate to work in your team. You still will want to get a sense of their technical acuity by asking them technical questions, but not until you have had a chance to assess their personality.

    Incidentally, in one interview I was asked "Do you consider yourself a programmer?". My response was that I consider programming to be one of numerous tools that I use, but I had no interest in doing nothing but programming. The interviewer's reply was "Good, we don't hire those people." I got the job, and am still working at it three years later.

  235. The interviewer needs to understand the question by angel'o'sphere · · Score: 2

    Well,

    In 50% of the interviews I was evaluated it was obvious that the interviewer had far less clue than I.

    That might be a typical problem as "staffing" often seems to be done by guys from the staffing department.

    So, two things bother me:

    as potential employee I do not know how to answer a question where I see the asker does not understand the question himself but is looking in a list of possible answers wehter I answer correct.

    Further: as an interviewer I meet regulary people who just learned one thing: how to pass a test, how to be brilliant in an interview, how to socialize to look "intelligent" / "nice" / "competent".

    With interviewers not mature in the topics important for IT/developers/architects/programmers you never find the right guy for a job.

    With questions who only imply "Oh, my god, what does the interviewer like to hear?" reactions, you get no good answers form a good guy either.

    Does friendship get inherited, is a absolutely dumb question.

    Its a typical question which tries to trick even the expert.

    And the question does absolutely not matter.

    Better questions would be:

    Suppose you have a bug to fix. The bug involves a wrong value in a private field of a certain class.

    Wich options do you have to modify the code to solve the bug and to access the private field to store the correct value?

    Why would you prefer one option over the other?

    And yes, using a friend could be one of about 10 possible solutions.

    And each one has their own advantages and drawbacks. And certainly the discussion is far bejond a simple job interview and the fnnal descission can not be made without looking deep into the problem environment.

    Regards,
    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  236. subject specific interviews are a waste of time by Anonymous Coward · · Score: 0

    If you are hiring a java developer the worst thing that you can do is ask questions about java. Real programmers will not remember all the niggly little details because they can look them up when they need to. By definition, anybody who knows a huge amount about 1 language and is applying for a job doing relatively menial work in that language does not know how to program. The algorithmics interview is good and the nontechnical interview is essential, but then it becomes a question of what you ask. If you want somebody to write good code for you they have to love writing code; so find out when they started programming: was it when they were 10 and got onto the commodore 64 or was it when they entered first year in some kind of college? Ask them about the recreational code that they have written on their spare time. I've yet to meet a competent programmer who doesn't write their own stuff.

    I spent a year writing java for a dotcom and it was all good code, but for the life of me I couldn't tell you whether friendship is inherrited right now. But give me the code you've got and a week and I can outclass (bad pun) anybody who "wins" in your java interview.

    Another really important thing is to make sure that people have a handle on assembler, digital design, and structured programming. Nomatter how object oriented your codebase is, if they think structured programming means putting in gotos when they don't know what to do, then they are not worth their salt. Likewise, if you are going to get decent code out of a developer, they've got to understand what it will look like when a compiler is through with it...even if it is being compiled into a java class, that is no excuse for not understanding how it would translate to assembler commands.

    And with the digital design type stuff, it may seem irrelevant, but I once had a long argument with a coworker (with a degree from Sadam Hussein University - I kid you not) who really beleived that a variable in java could be written to atomically; she was a human dictionary of java definitions, but she spent two weeks writing a procedure to put commas and a period in dollar values for large sums of money...and it didn't work when she was done. Looking at the code, there was crap I had never seen being written; I couldn't make heads or tails of it. Someone who can't do this in about 20 lines of code should be vaccuuming the carpets at night, not writing code. The scary part is that she was the one interviewing the new developers at the time by seeing if they knew the java buzzword definitions etc, and ALL of those hires were heinous.

    To sum up, you're much better off looking for a good programmer with a degree from a good school (read: Waterloo, MIT, CalTech, Carnagie Mellon, IIT, etc) who has never seen java than somebody who read the book, How To Pretend to Know What You Are Talking About: Java Edition.

    You might want to take a look at MicroSoft's methods of hiring...despite everything about the company, they are good at hiring. I once had an interview with Cognos that was really superb too. The technical portion included questions like, "Here is some code; will it compile? will it run? if not then correct it." The last question was, "Estimate the number of cars in Canada [because that is where we were]. That question was judged on time, explanation, and result. Not only that, but it confused the bejesus out of me to be asked that immediately following, "at what point in time will this variable actually be initialized"

  237. Technical Interviews and other Mistakes by Malkin · · Score: 2, Informative
    Technical interviews demonstrate how well someone can handle a technical interview. Exams demonstrate how well someone can take an exam. Neither of these things is that useful.

    There are three crucial things you need to find out:

    1. Can this person learn quickly and independently? What is far more important than what she knows now is what she is capable of knowing, at some critical moment in the future. Specialists become obsolete when you move on to new technologies, but your fast-learners will be good forever.

    2. Can this person communicate effectively on a technical level? The candidate shouldn't get tongue tied, but you also want to avoid someone who is going to storm out of meetings in a huff, or someone who becomes intolerable when you engage her in discussing her favorite holy war. Some people think that you don't need social skills to be a good programmer. For any environment involving more than one person, these people are wrong.

    3. Does this person enjoy programming? This sounds like fluff, but it isn't. Most people who enjoy programming are addicted to a little high they get with each small success. They learn new things on their own time. Their heads are filled with programming ideas. They may be a little stimulus-hungry (always wanting new, different problems to tackle), but they're always going to have a better intuition for the work than someone who is just going through the motions. The guy who is passionate about programming is going to be the one who pulls your bacon from the fire at the 11th hour, when you think that all hope is lost.
  238. Testing by nedron · · Score: 2
    Frankly, without some type of testing you're relying on perception. Any information you get from the candidate is biased, as is any information from previous/current employers (maybe they're saying the candidate is great just so that they can get rid of him/her without the hassle of firing).

    CompuServe used to administer a test for anyone applying for a programming position. It was called the CompuServe Programmers Aptitude Battery and you had to get at least 80% to be hired for most programming positions. The test was similar to an ACT and covered logic, math, etc.

    It actually worked pretty well, though of course it didn't handle personality issues. That's what the actual interviews should be for.

    --


    * As is generally the case, my opinions do not reflect those of my employer.
    1. Re:Testing by user+no.+590291 · · Score: 0

      And we see where CompuServe is now, ten years late to the Internet party. It was cool back in the day, though. A and B protocols, FILTRN, CB and the way 1337 PDP-10 stuff in the PROgrammers' area.

    2. Re:Testing by nedron · · Score: 2
      Ummm, business problems can be directly attributed to the management (particularly marketing) of CompuServe, not to the developers.

      Many great developers were wasted on projects like WOW!, NISA, WinPad, etc. Even worse, management could not be convinced that the Internet was a danger, nor did they think Microsoft would ever be interested in the online business. They also didn't want to give everyone in the family a pseudo-account so that we could pad our membership numbers just like everyone else. Not a lot of great thinking in those parts of the company.

      P.S. Don't forget GIF came out of CompuServe as well and CIS employees made significant contributions to PNG.

      --


      * As is generally the case, my opinions do not reflect those of my employer.
    3. Re:Testing by user+no.+590291 · · Score: 0
      Sorry--that was a cheap shot.

      Anyway, I knew about GIF, but didn't think about PNG. Guess that was about the time of the Unisys LZW fiasco. CIS lost its allure for me when they ditched the old forum software and forced people over to HMI. (I really miss the file libraries for the old 8 bits.) But I was one of those nerds that preferred TAPCIS to CIM. (Really, I preferred to read online, but at $12+/hour at 1200 baud, it would have been too expensive.)

    4. Re:Testing by nedron · · Score: 2
      Removing the ASCII interface to the forums when they moved to NISA was one of the biggest marketing failures ever at CIS. It would have been very simple to continue the ASCII interface even with the contemptible NT-based NISA platform, but the decision was made by marketing that we didn't need the 100K+ users that accessed regularly via ASCII, even though this represented about 10% of our users at the time. Same decision was make re: OS/2 users. A version of CIM for OS/2 was ready for beta testing, but pressure from various quarters caused the marketing group to cancel the project and announce that there was still "months of work to be done on the code". Hmmm, I was on the development team and it was ready to role. In fact, it was in far better shape than the Windows version which had already been out for a couple of years.


      TapCIS was pretty good, though I generally used Steve Sneed's OzCIS. Boy, those were the days.

      --


      * As is generally the case, my opinions do not reflect those of my employer.
  239. What my company does..... by asdef · · Score: 1

    The unit I work for has a policy of hiring new tech staff via a temp agency first, so if they don't work out they're easy to get rid of... I don't think it's the best way to do things, but depending on your situation it just might work.

  240. Binge drinking by macdaddy · · Score: 2

    Take him to a bar and see how well he can hold his liquor. If he holds it well, higher him. If he also buys, make him the CEO.

    1. Re:Binge drinking by Fulcrum+of+Evil · · Score: 2

      If he also buys, make him the CEO.

      Shouldn't that be "If he gets you to buy without saying anything, make him CEO. If he tells you to buy and write it off as a business expense, make him CFO" ?

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    2. Re:Binge drinking by macdaddy · · Score: 2

      You just might be right!

  241. Jeez, this is pretty duh by KanSer · · Score: 1

    1.) WHAT is your name?

    2.) WHAT is your quest?

    3.) WHAT is the capitol of Assyria?

    --
    • MOD PARENT UP by Anonymous Coward Wednesday April 20, @4:20
  242. not gotcha riddles by jbrians · · Score: 1

    Riddles are a useful but dangerous interviewing tool. You need to steer clear of "gotcha" riddles. Those are the kind that either you get or you don't, and no amount of sitting in silence is going to help. They have some sort of 'trick' and basically a one word or one sentence correct response. Which direction is the bus going (hand-drawn picture of a bus)? Left, because you didn't draw the door. Terrible interview question.

    Riddles that require the interviewee to ask a lot of questions and talk things out are very good for gaining insight into their thought process.

    --
    "Faith strikes me as intellectual laziness." -Robert A. Heinlen
  243. obligatory movie quote by Ozan · · Score: 2

    I was interviewed at Adobe Systems a long time ago, and one of the people asked me if I liked my mother.

    Leon: My mother?
    Holden: Yeah.
    Leon: Let me tell you about my mother...BLAM!

    1. Re:obligatory movie quote by Anonymous Coward · · Score: 0

      hahahahaha

  244. I'm not a fan of certifications by sprior · · Score: 1

    As a person who has been programming professionally since graduation 1988 (and a lot longer before that), I'm not a fan of worrying about certifications. I've programmed in i386 assembler, C, C++, Java, Prolog, VB, Windows, Unix (multiple flavors), and if I didn't feel like programming any more I have full LAN admin experience in both Windows and Unix. I've spent my free time building Linux From Scratch (www.linuxfromscratch.org). I programmed in C++ in the days of cfront and have taught it in classrooms both at work and at a local community college. Then fairly recently my employer decided it likes to see certifications and wanted people to get them. I was actually working as a LAN admin at the time, was my department seriously going to pay/let me waste time getting my C++ certification? I think not. Was I really going to get my MCSE, Java, Unix, C++, and LAN security certifications? When would I have time for work?

    Also, I'd much rather ask someone if they program for fun. While I like open source and use it all the time, the programs I spend my own time writing have so far been VERY specific to my home setup and wouldn't be useful enough on a wider scale to distribute - I've also been more in "what is possible (and educational)?" mode rather than what
    would be practical for others to deal with.

  245. Problems? by Anonymous Coward · · Score: 0



    The problems with technical questions is that technology changes quickly and people who tend to memorized "syntax" are great programmers in that one area. They also tend to be less flexible about what they can and cannot do - and they tend to stick with the areas that they are the experts. Then when they new technology hits - they are the ones trying to play catch up.

    I tend to seak out people who =

    a) Understand the software concepts (OOD - or just design tradeoffs - for example) and can explain them to a ten year old. This shows that they can break down a problem to it's simplest form.

    b) Do not have all the answers, but knows where to find them (the answers). This shows me that they can teach themselves - this is a biggy...

    c) Finally - that they have completed projects. This is the hardest to find in a programmer. The closer we (as in programmers in general) get to finishing a project - the more we look to the next project. Finishing is must in order to be successful....

  246. What would John Camarack Suggest? by Anonymous Coward · · Score: 0

    Jesus H. Crist
    Quit being such a bitch and write the code your goddanm self. You fucking pussy.
    Then at least you'll know it is right

  247. Microsoft Software Developer Interview by Anonymous Coward · · Score: 0

    I interviewed with Microsoft for a software developer position. For one of the on campus interviews I had a programming test. I was shown a sheet with C source that had Open Soure info in the comments. I was instructed to copy it to Microsoft compatible libraries.

    Another task was to write a few text manipulation functions in C that are part of Microsoft's implementation of C. I had to repeat the same thing for each language I told them I was interested in.

    Soon after the interview Microsoft flew me out to their campus to meet some of their people. Their people are very unorganized and it is suprising they actualy produce a products.

  248. three words.. by geekoid · · Score: 2

    contract to hire.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  249. People usually hire those that... by EvilSpongeBob · · Score: 1

    People usually hire others that they feel are similar to themselves. If you have had a bad run in hiring good programmers, perhaps you shouldn't be interviewing them (seriously, this isn't meant as an insult).

    It could also be that your organization isn't attracting the top talent. Most places think that they are the end-all, be-all of great places to work, but most of them are not. Good luck telling them that, though.

    ESB

  250. Interviewing tips... by Anonymous Coward · · Score: 0

    Cliff,
    Although the majority of my friends and coworkers would argue with me, I am a moderate programmer at best. I also have a small social science background and therefore have my share of interviewing experience.
    I see a few issues with your interviewing process. First, asking relatively simple algorithmic questions does not accomplish anything. If your interviewee is a poor interviewer and happens to be nervous then they may make mistakes that the normally wouldn't make. If the person codes the algorithm effortlessly you still haven't learned anything about them. They could still be a terrible programmer! Unfortunately it is not practical to ask a difficult algorithmic question in an interview because of time constraints among other reasons. Second, your theoretical questions seem quite limited. Questions like, 'Is friendship inherited? How would you find out?' let you know how well your interviewee knows a language and its basics. Again, you don't seem to learn much from this. Your interviewee could be an amazing programmer in a non-OO language.
    I am a firm believer that everyone is capable of answering the questions you ask at interviews. It all comes down to if they have had exposure to the languages you develop in and if they are nervous interviewees. Both of these things should be completely irrelevant to the interviewing process. In general, employers want someone who can excel not over the first few weeks on the job, but someone who will excel over their entire career. To uncover if an interviewee is capable of doing this it is important to learn two things: how well does this programmer grasp big picture concepts and what type of projects has the interviewee been involved in (and what was their involvement)?
    If the interviewee has a good understanding of the concepts behind your project you know that they will be able to add to the project team. If they don't, it is a good idea to ask the interviewee big picture design questions that pertain to other areas of programming (Systems, Data warehousing, Networking, Graphics, etc). This way you can figure out if the interviewee is capable of understanding the entire project you are working on.
    If the interviewee has worked on some large-scale projects and is able to explain a good overview and a specific piece in detail (preferably something they coded) then it is safe to assume that this person can program effectively. This eliminates the need for algorithmic on the spot coding questions. If you are worried that the interviewee is not proficient in the languages used for your project then it may be necessary to ask some of your language specific questions (memory management, pointers, OO questions, etc). Just remember, the longer you plan on having this employee work for you, the less important it is that they know every in and out of a language (languages are just a tool to convey the design/theory behind your project).

    Interview Outline

    1. Ask questions about hobbies, sports, extra curricular things
    This accomplishes a few things: First, it gives you a grasp on the interviewee's personality. Second, it gives the interviewee a few minutes to loosen up.

    2. Ask about previous projects they have worked on
    Generally people are fairly comfortable discussing past work experience. They are transformed from an interviewee to an expert on their pervious projects.

    3. Go in for the kill and ask the questions that pertain to your project.
    a. Overall design/theory question
    b. Possibly some extremely important language concepts

  251. Simple... by balloonhead · · Score: 1
    Just get them to bring samples of their work, be they source, binary programs, or web sites - anything that fits their intended role. Then ask them about these - how did they do X or Y? What problems did they have? What help did they get? Where did they find it?

    If they are in a slightly different role, e.g. sysadmin, see the sites they run. Ask them about uptimes, downtimes, reasons for these, possible improvements. What would they change? What do they like?

    These questions are all easy - if they actually work on the articles in question, they should have no problems. Their answers might surprise or impress you (or not). If you like their work, and you appreciate how they achieved it, then hire them. My website (down at present and I don't want it slashdotted anyhoo) is based on remarkably (less than one week's) little coding experience - but it runs MySQL/PHP/Apache and I like to think it looks pretty. Could it get me a job? No - I don't know enough. But I could talk about it enthusiastically, to anyone who would be interested, and I could explain exactly how I achieved what I did, and how (IRC, those web monkeys built my damn site, I admit it!) I would change things a second time. Getting the job done is far more important than than how (unless you are Sigma designs...) and what better to talk about than your own work? After all, you know more about it than anyone else.

    --
    This idea was invented by Shampoo.
  252. Re: Good Cracker != Good Security Person by Anonymous Coward · · Score: 0

    This is a common fallacy. Crackers are basically QA testers: looking for flaws in a system. While this is a useful thing that the security guy needs to be do, the security guy has a bigger problem: design a system without flaws. Actually, the problem is worse: design a system as "flawless" as possible while still meeting the needs.

    They both need to aware of the things that go wrong, but designing requires much more global thinking, while hacking (and QA testing) requires much more patience and persistence.

    The skills to be an editor are different than the skills to write a good article. Managing programmers requires a different skill set than programming. Cracking is different from securing.

  253. More relevant that "Do you like snowboarding" by aoteoroa · · Score: 1

    We started our company as a partnership. Two programmers and a guy with lots of charisma and sales ability. When the time came to expand and hire another programmer our sales guy handled it.

    After a hundred or so resumes and about 20 interviews he found the perfect fit for our company. The prospect was into snowboarding, rollerblading, ultimate frisbee, and had cool taste in music. However after I asked a few (barely) technical questions it became clear that he couldn't code himself out of a wet paper bag.

    My one piece of advice is to be aware of the people whose only experience is a 6 month course. Good programmers whether self taught, or formally trained have honed their skills over time and all good programmers have some sort of portfolio of code they have written. Even if it is a school project.

  254. Re: Good Cracker != Good Security Person by Morphine007 · · Score: 1

    it works in the other direction though; A good security guy *SHOULD* be a good cracker... or at least familiar with the methods. I would think that most are... I know how to secure systems (except my current one... since you can't layer security over windows^H^H^H^H^H^H^Hinsecurity) but it's much more fun to break systems ;)

  255. "What question should I have asked you?" & boo by dotgpb · · Score: 1

    My favorite question to ask when interviewing a potential co-worker is "what question should I have asked you?". A good candidate will think up a question that you never would have, and a good answer for it. Someone who thinks at least a bit differently than you can be a great asset, as they are likely to be able to offer alternate approaches to solving problems. I always save that question for last as it gives the interviewee the chance to get in any information that they wanted to convey, but didn't fit into any of my previous questions.

    A question I usually ask near the beginning of the interview is "reading what book has most improved your programming". A great answer is something like "the pragmatic programmer", "code complete", a book about development methodologies, or a general computer science book. An acceptable answer is any decent in-depth book focused on a specific technology. If they answer foo in 24 hours or bar for dummies, or can't come up with anything, the interview ends quickly.

  256. A Solution to TEN NUMBERS problem by stienman · · Score: 2
    Sum the numbers (one of the fastest things you can do with them) and then subtract the result from 55. The missing number is the result of the subtraction.

    Aside from that, a programmer needs several things to work well, but three utmost are:
    • Basic skill set, knowledge of tools used in particular tasks in your company - you don't want to hire a programmer who knows little java for an all java job unless the other qualities are far and above others you interview who do know java
    • Problem solving skills, an interest in the solutions of unique problems, etc. This is your programmer's greatest asset. Their ability to find out information about something they do not know about is just as important as leaning back and considering a problem. Finding an elegant solution is nice, but finding a solution that is workable and maintainable is paramount.
    • Lastly, and perhaps most important, is the ability to cummunicate. 90% of your problems are problems of communication (and 72% of statistics are made up on the spot). Teamwork is important for companies where programmers work together, but more important where they work alone or are one of the few technical people in their department/company.
    -Adam
  257. Precision Answer by telstar · · Score: 2

    Yeah, it's exactly like Daiktanka's engine ... only a little better.

    (I didn't bother to check the spelling of Daiktanka because I don't really care)

  258. Adding a semicolon would make them declarations by cainem · · Score: 1

    The first foo is a pointer to void. The second foo is a pointer to a function which takes no arguments and has no return value.

    1. Re:Adding a semicolon would make them declarations by Morphine007 · · Score: 1

      The first foo is a pointer to void. The second foo is a pointer to a function which takes no arguments and has no return value.



      <MR T.>
      I PITY THE FOO!!!!

      </MR T.>


      sorry... had to...
  259. You missed the WHERE clause by Anonymous Coward · · Score: 0

    ...so I guess that tells us that you don't check your work ;)

    1. Re:You missed the WHERE clause by jallen02 · · Score: 1

      Well.. considering I was doing about three or four other things and just trying to make a point and light-heartedly discuss, not pointedly focus my attention on the problem itself, no I did not check it. (I realize you were kidding, but a couple other posts were a little more offensive)

      Jeremy

  260. Beware of complex answers... by Ironica · · Score: 4, Interesting

    ... to simple questions.

    People who have "training" but lack skill or experience are desperate to show you what they know. You can ask a very simple question, and they'll throw out names of tools they think might be relevant, and buzz words they've heard. They're unlikely to give you the simplest answer.

    I once was asked in an interview for a DSL installation tech job, "if you installed a memory upgrade into a laptop, and upon boot up the new memory wasn't recognized, what would you do next?"

    I felt kind of foolish saying "Well, I'd open up the laptop, reseat the memory, and try again." But the interviewer nearly wept... he'd been interviewing people with all kinds of "qualifications" all day, and I was the first person who had given this answer. He told me how everyone else had said "Well, I'd start up Tech Tool..." or "I'd get out a memory tester and..." without even checking that the installation had been done right in the first place.

    That, of course, is not a comprehensive method for finding a good person for a job, but it might make your technical questions a little more effective.

    --
    Don't you wish your girlfriend was a geek like me?
  261. Actually the best response is... by Anonymous Coward · · Score: 0

    She's dead you insensitive creep!

    You're set from there out.

  262. You seem to be looking at the wrong thing... by Delphix · · Score: 1

    Just becuase you memorize definitions (ie: what is friendship? what is polymorphism? what is inheritance?)... doesn't mean you know what they are, how to use them, and WHEN to use them.

    I would definetly hire someone who is capable of learning, interested in what you're doing, and a hard worker. All of the "programmers" at my company fit this description. Then again, none of them are CS majors. All of them are Electrical Engineers... Which is probably where their problem solving background was forged.

    1. Re:You seem to be looking at the wrong thing... by metachimp · · Score: 1
      Then again, none of them are CS majors

      This is interesting, because I see a lot of jobs out there that specifically ask for CS degrees. To my mind, a CS degree is not at all required to be a competent or even excellent Software Developer. My degree is in Sociology, which I'm sure some people scoff at, but for me it's been invaluable. What do you learn from Sociology? I'll tell you a couple of things that I take from Sociology that have helped me tremendously.

      1. Developing Processes-- Sociologists learn to develop processes and methodologies for conducting research projects from scratch. Most (good) Sociology departments require students to develop and fine-tune their own research methodologies appropriate to the subject they wish to study. They give you the tools (statistical analysis, interview techniques), but you need to decide how you want to play it. I know you get these things in CS as well, but how many expect you to develop your own?

      2. Big-Picture Views-- Sociologists are trained to look at societies, groups of people, etc. You begin to see patterns and components in everything. You learn to categorize things by function and purpose, you begin to see into the many layers of systems, and realize how they interact. I don't need to describe how this is useful to a developer

      3. Understanding Needs-- You learn about what's useful to people and what isn't. You learn about what makes them comfortable and what makes them not want to do things. Understanding people's motivations and issues helps UI developers in tremendous ways.


      Don't insist on a CS degree, you may be missing out on some extremely creative and intelligent people. I'm the first to admit that I would walk out of an interview if they asked me some bogus riddle question, or asked me something totally unrelated to what I've done, or some obscure thing that I haven't bothered to memorize because all you have to do is look it up in your favorite book.


      Also, asking for code samples kind of sucks, because everything I've ever done belongs to someone else. Unlike a CS major, I don't have a body of work I did in school.

      --
      The system has failed you, don't fail yourself. --Billy Bragg
  263. sexist by kimbly · · Score: 0, Troll

    Apparently it needed to be pointed out -- nobody else has.

    Given that this comment was made in the context of hiring, I think the implicit assumption that the candidate would be a heterosexual male is even more disturbing.

    Come on people! Don't let this kind of crap go unchallenged!

    1. Re:sexist by hyacinthus · · Score: 2

      It is a disturbing assumption, but all too honestly, a true one. I worked three computer jobs before quitting the business, and I remember _one_ woman programmer out of dozens, and no gay male programmers other than myself. _One_ of my computer science professors at San Diego State University was a woman. And according to a couple of articles I found after a quick search, the percentage of women earning baccalaureate degrees in computer science is _dropping_ (at least it was a couple of years ago.)

      I wonder what the mean age of a software engineer is. For me, "software engineer" conjures up an image of a slovenly man in his twenties who hasn't lived in one place for more than a year at a stretch--but that's certainly not a true picture.

      hyacinthus.

    2. Re:sexist by Anonymous Coward · · Score: 0

      You know what? TS.

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

      You know, you're right. Of course.

      But, the whole non-discrimination thing is a complete and utter joke.

      Unless a company passes a policy that discriminates against dozens of employees, or some utterly stupid manager puts something stupid in writing...

      No one, and I mean no one, cares.

      I've watched blantent discrimination in action, in a big "respected" business publication. A female member of Sr. Management on record, verbally, that she has no use for men in her group. HR? Strictly, see no evil, hear no evil, speak no evil.

      I'm gay, and contributed mightly over 10 years. Fought a problem of blatent descrimination from the inside, like a good employee should, about 7 years ago. As the '00 economic downturn proceed, I was force transfered into a new group -- just in time to be layed off under a blanket "last in - first out" policy.

      Yea. Tell me about it. HR never forgets.

    4. Re:sexist by Tablizer · · Score: 2

      (* I think the implicit assumption that the candidate would be a heterosexual male is even more disturbing. *)

      It *never* stated the gender of the sample programmer. YOU assumed that and berated us because of YOUR assumption. Women may like other women and also football.

      IOW, you look like a hypocrite.

    5. Re:sexist by Anonymous Coward · · Score: 0

      Well, since the answer he was looking for seemed to be "", I'd say the assumption was that the candidate would be asexual.

      Also, you might have a female candidate - wouldn't preclude you from asking the exact same question (although I think many women would give the correct answer ("") out of surprise...)

      FTR, I thought the correct response to "What do you look for in a woman?" would be "willingness, and maybe a little vision disorder" for most geeks.

  264. ask them if they read this article on Slashdot by roman_mir · · Score: 3, Funny

    and don't hire them, because not only do they read every single Slashdot article instead of working. But now they also know all the same tricks you picked up here.

  265. My favourite question... by marko123 · · Score: 1

    What would you do if you ran out of things to do?

    --
    http://pcblues.com - Digits and Wood
    1. Re:My favourite question... by user+no.+590291 · · Score: 0
      Why, sir, boss, sir, I can't imagine my ever running out of things to do in such a challenging environment and with such sage leadership as yours, but in the extremely unlikely event that I did, I would immediately approach you to determine what skills you in your infinite wisdom our next big priority will require and immediately set to work researching them and planning my upcoming evenings and weekends around learning as much as I could about them.

      Behavioral questions only tell you something when they're not obvious.

    2. Re:My favourite question... by marko123 · · Score: 1

      Funny comment. But when I'm working in a team with a lot of work to be done before a deadline, and someone says they have nothing to do because they are waiting for other people, I get totally pissed off. The next logical step for them would be to find out if anyone else needs help or something to be done. Then again, I'm a full-time employee working around contractors.

      Disclaimer: Some of my best friends are contractors.

      --
      http://pcblues.com - Digits and Wood
    3. Re:My favourite question... by user+no.+590291 · · Score: 0

      I would feel the same way. But I can't picture a job candidate with a three digit IQ actually telling you that he'd just veg out while waiting for the dependency on the PERT chart. (Of course, if he did, you'd either want to hire him for his candor or not hire him for his stupidity.)

  266. Re:Demos? Don't bet on them. by donglekey · · Score: 2

    You have worked at all these programming jobs and don't have anything written outside them? I think anyone worth their salt has written programs outside of work or school. If they haven't then they probably don't enjoy programming enough to be very good at it anyway.

  267. Forget diplomas, hire smart people by eyefish · · Score: 3, Interesting

    In one of my previous companies we actually tracked engineer recomendations for new hires (i.e.: how well did a person you recommend to work at the company is actually doing after a period of time X), and after about 18 months I came up on top of the list after 98% of the people I recommended ended up being described as "outstanding".

    If you care how I can tell the good ones from the bad ones, read on.

    It all boils down to someone being proactive in learning things, entusiastic about the field he/she is going in, being able to communicate effectively, and basically have the capability to look at things in more than one way.

    In my experience the best thing during interviews is to let them talk as much as they want, you will be surprised how much you can learn from them in just a few minutes. Encourage more conversation by asking short questions along the form of "can you explain that part a little bit more for me?".

    Also, to avoid the "bullshit talker", once in a while interrupt them and ask them to described how exactly (in pseudo-code) they solved a specific problem.

    It's also a great idea to ask them to draw visual diagrams that explains how things work. This tells you a lot about the way they solve problems.

    If you have the time, place them in front of a computer and hand then a piece of pen and paper and tell them to write a made-up documentation for a fictitious project. This will tell you how well they communicate and how well they express their ideas.

    During all this, it is up to you to figure out what makes this person special from the others. Is he great at explaining things? is she great at understanding what you mean and putting it down into a design on a piece of paper? Does he come up with novel ideas to solve problems?

    That's basically it. I usually refrain (unless it is a basic requirement) from asking language-specific questions (C, Java, VB, etc), since usually a smart programmer can pick just about any other language in a few weeks, and besides, usually newcomers don't start from scrach programming, there's usually an installed based of development tools and written code which can bring him/her up to speed.

    Those are my 2cents of wisdom.

  268. Going to the white board ... by Totally_Lost · · Score: 1

    So the guy that has thought about the problem wisks off an answer in 30 seconds and appears a wizard. The guy who has not encountered that specific problem really searches the depths of his experiences and doesn't flash an answer until he is pretty sure it is the "best" answer - and after 15 minutes of very careful design places his answer on the board - and in comparison appears very slow.

    Now what does that tell you about the performance of both applicants for a problem they haven't seen before?

    1. Re:Going to the white board ... by Kalzus · · Score: 1

      If he gets wedged, you're looking for *how* he gets wedged.

      Kinda like secure software (sorry, "software that is proposedly secure"): you're interested in how it works, but you're really interested in how it *fails*.

      --
      "The Devil does not know a lot because He's the Devil, He knows a lot because he's old." -- unknown
  269. Simple. The best looking. by plcurechax · · Score: 2
    You're hiring a human being not a code monkey to interact with your existing team, your non-technical staff (customer support, management, marketing, payroll), and to solve problems. Unless you are in that 2% of programming that need strong algorithmic skills on the job, the more productive programmer will be the one that uses already written, tested and documented library routines. Most real programmers spend their time understanding requirements and implementing "business logic."


    So hire the female that looks good in a short skirt. If she is not the best programmer, so what, educate her.


    I am only half joking. Women on average tend to be better at listening, empathic to the needs of others, less likely to hide behind jargon, willing to admit to not having all the answers and ask questions, and will work very hard to prove that they deserve their job and are not just a pretty face.


    So you'll be getting someone who is willing to work with the team, can listen, less likely to be a smelly offensive troll to non-technical colleagues, and you'll be helping to combat the inbalance of the sexes in computing.


    Oh, and hire someone happy to work for your company. Most of my employment partings involve not being able to stomach my employer or the (mind numbing) work I did for them any longer.

    1. Re:Simple. The best looking. by Anonymous Coward · · Score: 0

      Most real programmers spend their time understanding requirements and implementing "business logic."

      Real programmers aren't working in fields that require "business logic". Business computing just isn't an intellectual challenge.

      If anyone says that in my presence I just ask, "and what form of logic is that?" Such people clearly need to get that degree ...

    2. Re:Simple. The best looking. by Anonymous Coward · · Score: 0

      If she is not the best programmer, so what, educate her

      I've never met a female I'd consider to be even an acceptable programmer. I don't think education's going to help, it's just not the sort of thing they're good at by nature, in my experience.

    3. Re:Simple. The best looking. by plcurechax · · Score: 1
      Real programmers aren't working in fields that require "business logic". Business computing just isn't an intellectual challenge.

      I did not mean macho programmers. Perhaps I should of called them programmers in real-life, or programmers with a job.

      Real programmers are the ones that take home a pay cheque. I am talking about information system programming (in C, Visual Basic, Delphi, whatever), working on 2 or 3-tiered systems, depending on a database system, and provide business critical systems. Based on employment figures, most programmers do do business logic.

      While it's not sexy, geeky, or macho it is the bulk of "programming" in IT today. Who do you think writes all those lines of COBOL? Which is still the estimated most popular language by the LOC in use.
    4. Re:Simple. The best looking. by plcurechax · · Score: 2, Interesting
      I've never met a female I'd consider to be even an acceptable programmer.


      I did not mean the drunk girl at the party. :-)

      I have found my female colleagues naturally better system analysts, quality conscience, far better at working within a team, and more willing to forego "gold-plating" of the deliverables.

      There are fewer assembly or OS level system programmers that I've meant, and I think it is because they are not obsessive about minuta that assembly programming requires. I also find they are not willing to participate in "death march" style of project management. Which should be considered a good thing, because "death march" is a not good software engineering practise.

      In any case, I think companies should hire people to be software developers (or software engineers) not code monkeys if they want them to stay as long term employee .
    5. Re:Simple. The best looking. by Anonymous Coward · · Score: 0

      RE: I've never met a female I'd consider to be even an acceptable programmer.

      I am a female programmer/systems analyst. To my credit I have always been told by my supervisor that my skills and work ethic are beyond reproach. I have always worked as the loan female with men. I was placed in charge of some large projects with enormous responsibility for a large manufacturing company. All my projects completed successfully within time and budget. All my employers have replaced me with other females. All my sisters and female friends who are programmers are excellent programmers with great work histories.With regards to your comment I think that maybe you have an ego issue or haven't looked hard enough.

  270. Most answers here aren't quite right... by Duderstadt · · Score: 1
    ...because they are so out of step with the rest of the business world. The key to hiring a good - or even superior - programmer is the same as for hiring an an executive assistant.

    The ability and willingness to learn.

    The interveiwer for a professional position must examine candidates in terms of has done, can do, and will do.

    Has done is what you see in the 'employment history' or 'career background' sections of a resume. It should be evaluated for scale, ie: how many millions of dollars was in your budget? Mostly, however, it is used as proof of can do.

    Can do is what the interviewee can do for your company right now, with no training or preparation. While this is important, it is nothing compared to

    Will do, the potential benefits your candidate would provide with training and advancement. An assessment of loyalty is made here, as well. No need to train someone to get a better job with a competitor.

    Ever gone into an interview as the most experienced candidate within a 300 mile radius, only to find the (bastards) hired some entry-level hack? Well, sorry to tell you, but you were almost certainly lacking in will do.

    Technical questions are good for can do, but so what? What do you do when the limit of can do is reached? Your boy may be able to recite the entire Win32 API by heart (which would be damned impressive), but what happens when your company makes the move to *NIX? He better have a hell of a lot of will do...

  271. With a whip and a chair by Fear+the+Clam · · Score: 1

    Oh, and a tape recorder to take notes.

  272. Best question I've found so far by Anonymous Coward · · Score: 0

    I like to ask them what they don't like about their favorite programming language. This will either reveal their strengths or weaknesses very quickly since it exposes the boundary of their knowledge and experience. It's also useful to ask the same question about tools, OS's, methodologies, etc.

  273. The question is stupid by teetam · · Score: 3, Interesting
    Let us get some fundamentals clear - you interview people because your organization needs to fill some positions. This means that you should know exactly what you are looking for. After that, the interview process should be very straight-forward - just a few questions to determine if the candidates match those requirements. That's it.

    It hardly ever happens this way in real life. Many interviewers have no clue what they are looking for. Most questions are egoistic - just to prove that they know something that the candidate doesn't. Last year, a business software company asked me questions about Turing machines and the Halting problem. I answered him and further added that I had never thought about those since school and did not expect to use them at his company. So why did he ask me that? He said he just wanted to test me!

    An interview is not a quiz. If you are looking for a software developer to write Servlets, don't ask him higher math and complex algorithmic questions. Try to find out his views on software engineering itself (good practices that we all know about) and technologies related to his job (HTTP protocol, for example).

    Also, don't ask a programmer about any specific api or libraries (unless knowing that is specifically his job!).

    Don't ask him about tools ("how comfortable are you with Visual Cafe?" is a stupid question").

    And so on. Bottomline: Know what you need from him and see if he has that!

    --
    All your favorite sites in one place!
    1. Re:The question is stupid by Anonymous Coward · · Score: 0

      I disagree. I believe that by focusing on your short term goal and not on the overall quality of the programmer you lock yourself in to a single technology for that programmer.

      Now the Turing machine question is a bit extreme but generally accepted best practices for software design and basic programming practices should definitely be fair game and much more important that all the bits and peices servelts...asuming you've got several candidates you feel can write a functioning servlet that is.

    2. Re:The question is stupid by beanerspace · · Score: 2

      Yup. No lie, I walked into one interview where the guy wanted me to recite E.F.Codd's denormalization word-for-word - as he was unimpressed by a paraphrase and a real-life example. I still remember the smug look on his face.

      I contrast this with a very cool person who asked me what a hash was. My answer wasn't text book, but was indeed accurate. He liked that - in fact was looking for that as it was an indication that I worked with the stuff, instead of just parroting it.

      Then I had an interviewer who was bent on proving to me that my Master's in CSCI was worthless compared to his 'real-world' experiences. Appearently he didn't read the part of my resume that detailed several years getting it done.

      I've had more than one interview where they've asked me to solve a problem. Funny thing is though, they'e not willing to pay me if I correctly solve it. I understand their need to determine my skill - but some of those tests were merely guises to glean free technical advice.

      My best interviews - those instances where my resume and cover letter had already done the job and it was just a matter of making sure I wasn't a lunatic.

  274. theory and variety of langs + fire their asses by Anonymous Coward · · Score: 0

    You need to concentrate on someone who is able and willing to adapt. Be they fresh out of college or 50 years old if they're only ready to do one thing they will be useless in a changing industry. Experience with the technology you're focusing on in the short term is crucial but general computing knowlege (as seen the the Knuth books) and decent finite math skills are a much better measure of long term worth.

    You want someone who will go learn Java, C++, Perl, PHP, ASP, VB, or C# at the drop of a hat if that's what is required. Find someone who understands theory and has working in several different languages if possible because they make the best programmers over the long haul.

    Once you find this person treat them well and try to keep them around and happy and if they don't work out don't be afraid to fire them. The mistake that most companies make is they don't fire the incompetents who drag them down (especially in small companies where dead weight is a death sentence). Unemployment may suck but crappy code and having a salaried slot filled by a useless mound of meat is worse.

    1. Re:theory and variety of langs + fire their asses by Anonymous Coward · · Score: 0

      I agree with all of this post except for the "fire them" part. Not that people may not need firing, but I've seen more than one situation where the wrong person was fired - often because an inferior worker just made the right cranky noises at the right time.

      In one case the person fired had been hired as a designer/software architect and had designed most of the project, suggested implementations and solved many crucial problems along the way, only to be fired when the other programmers decided they didn't like his design. It was fun to watch one of these guys try to find out why his java program was running out of memory when he was keeping pointers to lots of things in a big array - but never nulling them out. The same guy managed to build essentially a web page viewer that took almost a minute to load and display each page (from local disk).

      Sometimes too, people are going through bad spots and putting them to useful, but less essential work is better (and cheaper) than firing them then having to hire someone new, teach the newbie the problem domain, get them up to speed on the way the project works and the like.

  275. Counting by Anonymous Coward · · Score: 0

    Ask him or her to count to 10 if they start at 0

    Hire them!

  276. an important question... by guest12 · · Score: 1

    dude, we like you, you seem to be good. now there's just one thing.
    would you prefer bangalore, bucharest or sydney..umm?

  277. Your interviews need more meat! ;) by weaselgrrl · · Score: 1


    Your post raises a lot of questions in your interview techniques themselves. First, as another poster has mentioned, "Is friendship inherited?" and "...how do you find the missing number?" are not particularly useful indicators in language and algorithmic knowledge.

    The second question raised is that you have two technical interviews and a final interview covering, I assume, more HR-styled and team-based questions. At most, you are probably talking about 3 hours (assuming each interview is 1 hr rather than 30 or 45 minutes), and that in practice is often not enough time to tell if a person interviewing well is going to work out. Sure, you can spot an obvious dud in 15 minutes or less but identifying a false positive takes the better part of an afternoon. For example, at Microsoft, a programmer typically has an HR interview followed by 4 1-hour technical/team interview, one as-appropriate, and one more return trip to HR. That's the entire day when lunch is tacked in. (Although, not everyone in the MS interview loop is as skilled as others ... but that is another matter).

    First, sort out the garbage candidate by doing 30 to 45 minute phone interview. Spend 5 minutes going over their overall background (right off their resume). Many people OUTRIGHT LIE on their resumes and this is much more true of students than long time professionals. Young graduate students who are about to leave with a masters degree and who have never had real job experience are famous for padding their resumes with crap. If someone says on their resume that they know Java, ask them how long they have programmed in it and what they have used it for. Don't forget to turn on your bullsh*t detector before they start speaking. After the background stuff, ask a couple of "simple" technical questions regarding data structures and algorithms. Remember, this is over the phone so you can't get too hairy where you will need a shared work surface (blackboard, whiteboard, piece of paper). Just make sure that they can verbally describe how to traverse a binary tree in order (or pre-order, or post-order) or something to that effect. If the person breezes through this in one minute, ask one question that is relevant to THE AREA OF EXPERTISE REQUIRED BY THE JOB: (multithreading and deadlock; rule-based logic programming, etc...). If the person resume need not be garbaged collected at this point, spend the final 15 minutes on the phone talking to them about your company and the job that they are applying for. Ask them if they have any questions about the job although keep things brief. Invite the 5 (give or take) most promising and inquisitive candidates to interview and assume that you will push one person through per day -- this will take an entire week.

    On site interview: bring in the candidate for the better part of the day. Think 10am through 4pm. Schedule lunch with one or two team members included. You can learn a lot about someone over lunch regarding how they will fit in. Not including lunch, schedule 30 minutes to 1 hour of HR-styled interview, 2 to 3 hours of technical interview, and 1 to 2 hours of "here's how we operate" interview (which can be schedule as appropriate based on how well they have done so far).

    Technical interview: DON'T waste your time with puzzles or brain teasers. DON'T waste time on programming language trivia. Instead, do the following three things: give them one _warm_up_ algorithms/data structures questions based on something that you or your team really had to implement. If someone really needed to implement a linked list and then perform some search, sort, delete, or insert and this really exists in your code base, ask them to pseudocode on the whiteboard some functions that maintain a linked list. Note, I didn't say what kind of linked list or what it will be used for. LET THEM ASK YOU for the specifications. There should be conversation about what is needed while the pseudo code is being composed on the white board. A good candidate will get through this in 15 minutes or less.

    That leaves the 45 minutes left in the first of two technical interviews to ask real questions regarding the kind of code your team is implementing. I can't tell you want to ask here -- you need to figure this out yourself but, does your programmer need to do a lot of design work or will s/he being implementing from godly detailed specs handed over by someone else (who really has the time to dot the i's and cross the t's -- heck, you may be in aerospace! ;-) ?? You need someone who can handle tricky multi-threaded code? Do you need someone who knows how to design and implement an interpreter? Work with natural language processing? Write fast and responsive graphical tools? Are they going to be doing API design? Ask real-world questions that mirror your own business practices to find out if the person either has the knowledge base in their head that they'll need on the job technically OR if they have related knowledge *plus* the knowing what they need to brush up on and how. I personally would prefer someone who knows how to learn and is willing to educate themselves than someone who is a one trick pony.

    The second technical interview, done by someone else, can go more or less the same way. The idea is to have two different people assess the candidate's technical abilities. If you require that a person can hit the ground running in a specific language, the second technical interview can focus more on programming language skills. Ask a few straight forward questions about proper use of the language (Java: what is the difference between an abstract class and an interface? When do you use one over the other?) and pose then some straight forward design questions that can be solved with 15 minutes of code writing. Again, pick something relevant to your business. Assuming that there is time left over, pose a coding problem that you (the interviewer) recently got stuck on and just talk it out to see what they would do with it.

    Third technical interview: ask the person about a recent project that they contributed to. Have them explain to you what the problem was, what the requirements were, how the solved the problem, how the solution was implemented and (if relevant) how the team worked together and how the code was maintained. Listen, ask questions. And ask yourself -- can this person explain things such that I (and others) can understand what the heck they are talking about? This trips up a lot of techical wizzes. Sure, they can code but they can't communicate. Can you afford to hire someone who can't explain things to other team members?

    Heres-how-we-operate interview: Explain the job. Explain what the team does. Explain how the team operates. Explain what this person will be expected to do. Do they have questions? Are they excited about what you are telling them? Are they picking up on the subtle difficulties inherent in the position? (spent 20 to 40 minutes on this)

    NEXT, tell them what their first assignment would be (or make up a real-world first assignment that is similar in nature to their actual first assignment). Ask them how they would go about attacking the problem. Schedule 20 to 45+ minutes to talk about this. Make sure that there is a conversation going on rather than them just scribbling on paper or looking off into space. You want to know HOW they think and how they plan to contribute. Talk through with them as they formulate a plan of attack.

    Good luck!!

    --
    I spent all of those years as Anonymous Coward and all I got was this lousy number (204976).
  278. Getting out the crystal ball... by Anonymous Coward · · Score: 0

    I am seeing the job of "lackey" in your future.

  279. Here a MIPS assembly solution by Anonymous Coward · · Score: 0

    I think the 55 - sum() method is the fastest way of solving this problem, unless you had an infinite amount of cache memory and could concatenate the 10 values together and just do a table look-up (assuming that the table was defined already).

    the 55-sum() method is faster than the worst case binary search, and a much smaller algorithm:

    li $1,55
    lb $2,0(input)
    lb $3,1(input)
    sub $1,$1,$2
    sub $1,$1,$2
    lb $2,2(input)
    lb $3,3(input)
    sub $1,$1,$2
    sub $1,$1,$3
    lb $2,4(input)
    lb $3,5(input)
    sub $1,$1,$2
    sub $1,$1,$3
    lb $2,6(input)
    lb $3,7(input)
    sub $1,$1,$2
    lb $2,8(input)
    sub $1,$1,$3
    sub $1,$1,$2

    answer is in $1, in 19 cycles with no stalls. That would be 19 nanoseconds on a 1GHz machine.

    With a binary search, you are going to have to worry about filling branch delay slots and things like that.

    You could speed things up slightly if you loaded words (4 bytes), whose sums were precalculated in a 64K table. Then you could do

    li $1,55
    lw $2,0(input)
    lw $4,4(input)
    add $3,$2,lut
    add $5,$4,lut
    lb $3,0(lut)
    lb $5,0(lut)
    sub $1,$1,$3
    sub $1,$1,$5
    lb $2,8(input)
    sub $1,$1,$2

    that is 11 cycles, but uses an enormous amount of cache (which would of course take a lot of time to precalculate!)

  280. It's all a matter of perspective. by janda · · Score: 1

    Obviously, "what you interview for" is going to depend on the position you're trying to fulfill. A systems programmer needs a different skill set then a web "programmer".

    This may sound like a radical idea, but the interview isn't for you, it's for the people the new employee is going to work with. So, try this:

    Take potential employee.
    Give them access bade for area they would work in.
    Take them down "to show them around".
    Manage to "lose them" for an hour or two.
    Come back, thank them, etc.
    Interview everybody else.

    --
    Karma: Food Fight (Mostly affected by Date Plate).
  281. Focus on complexity and ambguity by rustin_ross · · Score: 1

    The best programmers can produce results in environments where there is both complexity (in the scope of work to be done and in the business case for the projects); and ambiguity (a lack of direction and not readily apparent resources).

    This means you're looking for exceptionally bright, resourceful and highly internally motivated invididuals.

    What questions do I use to identify them?

    1. What's the hairiest most difficult development effort you've worked on, and why was it so?

    2. Give me some examples of times you've had to make your own way through development and how did you go about it?

    3. What's the most complex piece of software you've written and what made it complex in your assessment?

    4. How do you produce results in an environment where your only resource is you - and how do you feel about having to deliver in that kind of environment.

    --
    www.hiredinsight.com
  282. is the problem really finding the right person? by 6 · · Score: 1

    Something important to consider; if you are hiring programmers and have several that don't work out there is a good chance that there is nothing wrong with your technical interviewing. There may be real problems in the management.

    A lot of frontline managers of programmers are exdevelopers promoted into leadership roles with little to no training.

    Here are a few points to think about...

    1) For the most part this isn't rocket science (NASA types please substitute something else like maybe auto mechanics)

    What I mean by this is that in general most of us DON'T work on difficult research and development problems. The average programmer in your group is NOT going to create a new data structure or intriguing new algorithm or solve the halting problem. In general she will apply known good techniques to fairly simple problems for instance writing a device driver or web service.

    Almost any technical interview will reveal if a candidate has the basic skills to do this.

    2) Different people work differently.

    Not everyone responds to the same managerial strategies. In fact the essence of management is in figuring out how individuals are motivated and figuring out how to meet that within the constraints of your corporate and managerial culture.

    In general people like to work and like to succeed but are often unaware of what motivates them to excel. There are a few people who need little to no outside encouragement or affirmation to succeed. The fact that your group produces does not indicate perfect management.

  283. Using google for past reference ? by Anonymous Coward · · Score: 1, Insightful

    How about asking hem their nick or email address they usually used and use google to search for the names. If you found them posting comp.lang.c or others technical discussions ( open source or non open source ), it can used as an indicator for how passionate the person is in that field. More posting - better . More posting with sample source code even better.

    1. Re:Using google for past reference ? by user+no.+590291 · · Score: 0

      And if you found them posting here, pass.

  284. XCHG by Anonymous Coward · · Score: 0
    .

    Use what you have available,

    _asm xchg eax, ebx

    Voila!

    (cheers from the adoring crowd)

  285. Found your Bug, now let's find the number by Anonymous Coward · · Score: 0

    XOR all the numbers together.
    XOR the result with 11.
    The number you end up with is the missing number.

    a ^= b is the fastest operation a cpu can perform. I think this is the fastest possible way to do it.

    Can I have a job?

    No you can't have the job, your answer does not work. Suppose the missing number is 4. Your solution will never catch it (unless the number is 15).

    However, here are some ideas that might actually work.

    • I think this may work, and is efficient.Add the numbers and store the sum. The expected sum of the values from 1 to 10 is 55, so 55 - Obtained_Sum = missing value.
    • Recall that binary search only works if the inputs are guaranteed to be in sorted order. That wasn't specified in the given so you should ask before trying it. You may need to unroll the recursion to see how fast it is, for such a small input the first algorithm may be faster. You might do fast comparisons using a bit map.
    1. Re:Found your Bug, now let's find the number by Anonymous Coward · · Score: 0

      Doh! I misread the solution, the xor method does work.

    2. Re:Found your Bug, now let's find the number by PrestoChango · · Score: 1

      Don't feel bad. I've made a few "You're wrong...No wait!" posts myself. It just means you enjoy discussing algorithms. :-)

  286. No Free Software, no hire by Anonymous Coward · · Score: 0

    I work for a major manufacturing company... I can't say who we are, but if you watch Formula 1 racing at all, you see some of our products....

    And if you don't like Free Software and the GPL, we won't hire you. Go elsewhere.

    If you're selling software as a business, then you're selling buggy whips in a world that has just met the Model T. Sorry guys, but the majority of programmers work as service providers to companies that make products or sell services themselves. Selling software when there are better Free Software alternatives is a poor business case, don't you agree?

    If not, you won't be working for us.

  287. Re:And the almost always overlooked flip question. by tjb · · Score: 1

    Well, at my company several engineers interview each candidate and everyone has there own interview style.

    For myself, I like to pick a DSP subject on their resume that I only have a passing familiarity with and teach me as much as possible about the subject during our hour or so together. Filter design is my favorite, as I do very little of it myself, but I know enough to be able to pick out bullshit. Generally, I look for how much I learn and how enthusiastically its presented - enthusiastic, competent people that can explain complex subjects to others, well those people rock :)

    But, in the end, you're right. I may have gotten bad vibe off of some competent people because they weren't as hyper as I am about the subject. On the otherhand, I don't know if I want to work with people who don't totally dig their work...

    Tim

  288. don't rush it by not+Mr.T · · Score: 1

    I don't think I've ever been broad-sided by a bad hiring decision. When I've made mistakes, it has always been because I was in a hurry to find staff. My strategy is to try to put the interviewee at ease and then find out what they like about being a developer. Then I listen. If the hour goes by quickly and I feel the candidate is enthusiastic about writing code, and critical about the work they have done previously, I put in a recommendation to hire. If I have any doubts, if the interview was just OK, I pass. If you feel you have to resort to gimmicks, you probably haven't found the right candidate yet.

  289. Re:Demos? Don't bet on them. by tjb · · Score: 1

    Lookie here, and repeat after me:

    "All the world is *not* a PC. All programs are *not* applications. Some programemrs have *zero interest* in writing code that isn't assembly language for small systems, to them C code and operating systems just get in the way"

    I happen to be one of these people. Applications hold very little interest for me. I like programming hyper-optimized aeembly for DSPs, data framers, network aggregators, embedded control systems, etc. To me, if I'm not programming to the bare-metal, its an uncomfortable experience.

    Needless to say, there isn't a whole lot of hobbiest stuff to do in these areas within the means of anybody who doesn't have a trust-fund and tons of spare time. Just to do my job effectively at work, I have over $300K of scopes and analyzers of various sorts at my bench - needless to say, open source is not gonna happen.

    Tim

  290. Best advice I have seen by Anonymous Coward · · Score: 0

    I like his take on all things software.

  291. The ONLY exceptions? by Anonymous Coward · · Score: 0

    I guess that you have never seen people flail with closures, templates, or advanced macro techniques then?

    Details of syntax are not a problem. Entire programming techniques and philosophies can be. Understand what your shop uses that others might not, and think carefully about whether that is likely to be a problem.

  292. Is friendship inhereted? by Anonymous Coward · · Score: 0

    I think the key to your technical interviews is to have someone technical do them. Don't give some recruiter who doesn't know a three button mouse from a gerbil up his ass to read trick questions that you've typed the answer to for him.

  293. Um, look at past work maybe? by Anonymous Coward · · Score: 1, Insightful

    Am I seeing this right? No-one seems to be saying "look at past work they've done". Look at their source code too, if at all possible, and find out how long past projects took, how many people worked on them, what they did to contribute, how they made technology and implementation choices, how they prioritized design ideals with reality, what major unforeseen problems they ran into and how they solved them, and so forth.

    Asking pointed questions about past projects makes it pretty clear whether they have design experience and understand design tradeoffs, whether they can really handle writing a substantial sub-system, and whether they know how to write robust and maintainable code.

    Quizzing people and cute interview tactics don't do any of that.

    Another thing to consider when hiring doesn't work out: Are your own expectations realistic, or are they failing to work out in an impossible management environment? These are way too common, in my experience, to ignore this side of the hiring coin.

  294. Ask what kind of computer they have at home by Anonymous Coward · · Score: 0

    How they feel about there home computer and how
    they connect (broadband) is intresting.

    Put them in from of a keyboard. Many good programmers are good keyboarders (but not all)

    Listen to them explain about a previous project. Think about if they were explaining a future problem to you.

    Get a look at previous code they generated.

  295. Ah, so what you're looking for... by Anonymous Coward · · Score: 0

    is the proverbial heroic figure who finds him/herself single-handedly saving the asses of the incompetent. I see. You must be a higher-up where you work, because this is every bosses wet dream. Come on...overlooking your domain reg deadline? That sounds like "oh, I thought it was his job" crap. There's a difference between what you want and resourcefulness. Too bad there aren't more of the people who know how to prevent that kind of crap from happening.

  296. You don't interview programmers... by twoslice · · Score: 1

    They interview you! at least the really good ones do...

    Trust me, if the programmer is begging for a job then he is not worth his salt. If the programmer is making all sorts of demands then the one asking for the the most outgragous remuneration package gets the job!

    but hey, even if the guy can't program worth beans, at least you can say one thing about them, they've got hutzpah! and they will go far in the company...

    --

    From excellent karma to terible karma with a single +5 funny post...
  297. I am amazed... by pbuechler · · Score: 1

    I am amazed at how many people seem to like riddles, quizzes, and tests. Maybe it's just me, but I have to think about something for a while, and if I am at an interview I am just not ready for such things. Or you run the risk of the person giving you a better answer than the one you know, and you may not even realize it! Example: An interviewer asked me "What happens if you decrease the sample rate on a digital control system?" I replied, "The poles and zeroes rotate around the unit circle toward pi." "No," he replied, "it causes the phase margin to decrease." What was I supposed to do then, teach the guy a semester-long class on the z-plane versus the s-plane?

    What I do is I talk to the people about their past work, what sort of problems they hit, what they did about them. You can usually tell if they are bright just by the sorts of things they talk about. See what they think of process. See what kind of things they know about. See if they know anything about stuff that is not in their courses and/or work experience. Not with quizzes, but with conversation.

    I've hired a couple of losers, but I've hired a lot more competent people, and some who were just plain awesome (at least from my view).

    --
    -- Pete Buechler
  298. The Guerrilla Guide to Interviewing by CognitiveFusion · · Score: 3, Interesting

    I found this a worthy enough read to bookmark it. The author has some good ideas about preparing for an interview and formulating a meaningful evaluation of that individual's skills beyond the basic text-book Q/A dialogue. http://www.joelonsoftware.com/articles/fog00000000 73.html

    --
    Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it. ~A. Perlis
  299. Higher and Higher on the Interview by jefu · · Score: 2, Insightful


    Having sat on both sides of the table (being at the moment on the interviewee side as I'm looking for a job) here's my two cents worth (and worth every bit of sense you can get out of it too).

    I don't trust exam type things - especially with pen and paper and looking at specific skills. Indeed, I personally don't tend to care much about specific skills - the organization may need those today, but what about next year? Things change.

    The "here's a puzzle, stand at the board and talk about it" is always a good way to find out what how the person works - but don't just go for the right answer - go for the method and how the person reacts to getting stuck and to hints.
    (On one such exam (PHD qualifiers actually) I got stuck completely and spent an uncomfortable amount of time trying to unstick myself - but when the examiner said "how about this" - I saw the answer immediately and said "Ah..." It was the "Ah" that the examiner had been seeking. )

    I do always ask about a previous project that they enjoyed, and about one they hated (these can be school type projects). For each I try to find out what was the best part, the hardest problem, the worst part... And I'll usually encourage them to talk about team problems as well.

    Finally, in the case that the interviewee is undergoing a number of interviews with people in the organization) I encourage interviewees to just relax and take the time with me to decompress (to the extent that they can) and try to just chat about whatever. This gives me a chance to find out if they can talk and know something besides geekdom - which I think is a nice plus.

    But you might want to do just the opposite of my ideas - I've managed to make some quite wonderful mistakes. One of my favorites was very talented, but very inexperienced - he had the bright notion that it would be a good thing to send a 2000+ line program to the compiler writers and insist there was a bug in the compiler because it didn't work.

    Hmm, come to think of it, that would be a good question : "Have you ever found a bug in a compiler? - How do you know?"

    1. Re:Higher and Higher on the Interview by jefu · · Score: 1


      Oh, and I was also going to suggest that web searches for "The Secretary Problem" will give all and sundry an interesting and slightly different slant on the whole thing.

      A quick check at google turns up (among many others) this good read :

      http://www.math.grin.edu/~gum/papers/secretary/

  300. Two great questions: by marhar · · Score: 2
    1. "Tell me about an interesting project you did." This kind of open-ended question will allow you to gauge his interests, experiences, and ability to communicate about something he should feel passionate about.

    2. Pick a problem you're currently facing. Ask him about it. Does he sound like he can come up with a solution that will work for you? Does his approach mesh with your group's current style?

  301. More horseshit by bryan1945 · · Score: 4, Insightful

    I'll probably get crucified for this....

    If you have to include a "technical interview", not to mention 2 of those, then your company is shit. If your hiring manager can't get by with interviewing the guy/gal with some of his/her folks doing an informal interview (that do have some probing tech questions), then your entire structure is fucked.

    A bit ago I went through a tough time at my company, so I started out interviewing. I got 3 tech interviews that asked me questions like "what is the command to increase the frame relay delay timing", "what is the public number for public MIBs", and what are the arguments to display only workstations in a Tivoli system?"

    Give me 2 minutes with my books, I would have no problem. Expecting me to memorize all this random shit is just beyond stupid. Go find a 5th grader who memorized the nation and state capitals on the 1st try if this is what you want. If you want someone who actually solve a problem, maybe you want to hire someone who can research the problem and come up with a better solution.

    I'm still with my first company out of college. The hiring manager didn't even ask about my skills- he wanted to know if I wanted to learn, if I wanted to gain new skills, and if I was willing to put in the time to learn new stuff. Of course, I'm a DoD system and network consultant, so I need to learn and master new stuff all the time. The couple of corporate projects I've been on have so focused on one single aspect that they get a llama that can program in Java, and they still hire the llama. (Yes, that was mostly facitous).

    So go interview the guy/gal about who they are, what they want to do in life and in thier job, how they like to do their work. Don't worry about what languages they can program in (unless thi is what you are looking for), any literate computer person can learn a new language in a few days.

    In summary, look at the person, not thier certificatons and answers to crazy technical questions.

    --
    Vote monkeys into Congress. They are cheaper and more trustworthy.
    1. Re:More horseshit by BleedTheFreak · · Score: 1

      The trouble with letting some "hiring manager" do the deciding is that *me*, the technical person, risks getting clueless lamers who pass themselves off well. Ensure that most of the (direct) project team participates in the interview, that way you get to be sure, *and* the new employee feels more comfortable when they start - as they know they are accepted by all from day one. I went through this same process at my current job, and yes, it was tough, but it was *great* when I actually started - just knowing there was no one unsure about "the new guy". And the idea that any computer literate person can learn a language in a few days is clearly misguided - the syntax yes, the idioms and correct models/patterns, the traps and restrictions etc? No way. There are more languages than Java and C++, and more paradigms than OO! Basically, the more you know, the more easily you can pick up new stuff, and you're obviously capable of thinking about problems in different ways. If you just know Java or VB ... then it's back to the loch with you, Nessie!

  302. Make the candidate write a program by GringoGoiano · · Score: 1

    There's nothing like real code to see style, error- and unanticipated-situation-handling, algorithm design, use of object-oriented concepts, design ability.

    At my company an engineer comes in for an interview and we do the standard things. We then assign a programming task. If the candidate's interested they won't mind the 4- to 8-hour job.

    A typical programming assignment:
    • give the programmer a text file representing a set of entities with attributes and relationships from a real-world domain (there may be multiple text files)
    • ask the engineer to read the data into an in-memory structure
    • make sure the input data isn't completely clean (i.e., there may be missing, redundant, and/or inconsistent relationships) -- how does the engineer handle these situations?
    • ask some interesting real-world questions that will involve recursion, depth- or breadth-first searching, etc. Don't mention the computer science concepts you're testing for -- see whether they make the concrete-to-abstract leap themselves.
    • see whether the engineer also has a customer focus -- how clearly are program results presented? would a business/science/education/etc. professional easily grasp that information?
    • does the engineer mention design tradeoffs, do they try to optimize the wrong thing? do they mention possible enhancements or shortcomings?
    • does the engineer design for extensibility, for shifting requirements, or is their design so set-in-stone that changing requirements will force a major re-write?
    • how did the engineer test their results? did they write more example input files to test corner cases?
    • what tools did the engineer use? do they demonstrate knowledge of standard tools on their platform?

    You'll get a handle on the engineer's intellect. You'll also see how well the engineer will fit in a team. To hire an engineer without asking them to write code is a bad idea.

  303. Most important question. by Anonymous Coward · · Score: 0

    Do you know who Donald Knuth is?

  304. An analogy by Anonymous Coward · · Score: 0

    I want to buy a car. So I start looking at various models and rate them on only two things: speed and acceleration.

    And so I spend a lot of money on a car that can accelerate from 0-60 in 3 seconds with a top speed of 225mph.

    Did I buy the right car? Will I ever have to drive at 225mph?

    We rate programmers solely on intelligence and problem solving skills, and we invariably end up with assholes with big egos and poor work ethics. Give me a less talented, reasonable developer who is willing to stay the long haul any day.

  305. My Questions. by Anonymous Coward · · Score: 0

    I always give this multiple choice test:

    1. A good programmer always shows up for work ...
    A. At 8 oclock sharp.
    B. 10 minutes befor the boss.
    C. In time for lunch.

    2. UNIX is ...
    A. A religious cult.
    B. An operating system.
    C. A virus.

    3. A UNIX programming Guru is ...
    A. A leader of the UNIX cult.
    B. Someone who can write programs that work with the next rev of the OS.
    C. Someone who can write programs so obscure that they don't work with the next rev of the OS.

    4. The best text editor is ...
    A. VI.
    B. EMACS.
    C. cat.

  306. Fundamental Overattribution Error by xenocide2 · · Score: 2

    I seem to recall a diddy in my General Psychology class about something like the Fundamental Overattribution error or the like, which states that people (in our case interviewers) are more likely to attribute a quality to the person (the interviewee) than the situation (what the behavioral interview is looking at).

    On a personal note, you're right many fortune 500 companies do use the Behavioral approach, as their hiring managers are usually grunts who worked their way up the line from cashier to head cashier to store manager, etc. I remember a really perculiar interview for a local Hastings (which has since closed down). They start things off with a nice SAT style test to gauge your overall intelligence and give you perhaps 10 minutes. I believe this is to keep people from maxxing out the test as there is something like 60 questions on the test. The other thing that stood out was "Tell me about a time you exhibited leadership." At the time I was just out of my freshman year in college and looking for a summer job.

    My only previous job was a dead end stint as a movie theater grunt. All forms of independent action are strictly discouraged there. That is to say, they run 30 screens at that place and don't have time for concession grunts to waste on pleasing someone whose credit card isn't working. So any "situation" is dealt with by a manager or supervisor. Instead, leadership there was more of a trend. In odd cases where no supervisor was assigned there was a sort of politics over who wielded the radio, the communication device that whoever in charge would use to request assistance and answer to higher ups from afar. Is grabbing the radio really a situation? Not really. Is habitually grabbing the radio a trend of leadership? Probably. Hell, I would show up early just so nobody questioned my authority or made a power grab before me on the shift change. And for the most part, nobody questioned it. After a while I made the mistake of not playing the management's mind game of asking for a promotion rather than being bestowed one or solicited for it. They started expecting me to carry the torch without the benefits of recognized authority or pay, both of which would have improved my output as an employee. Anyways, back to the other crap job story.

    So after considering the previous paragraph (in a much shorter time frame in which much of it was internalized) I concluded that I had not exhibited leadership in a specific situation, and moved on. Did it hurt my chances? Nope. I got the job alongside four other less savory candidates for register jockey, in which I learned the place sucked hardcore. Hastings presumes everyone is a theif. They reward you 10 percent of the loot if you turn in an employee shoplifter (I'd wager you can cut a better deal with the shoplifter himself at 50/50). They also have what I like to call "use prevention" devices on their DVDs. They put them in these cases that require a special piece of plastic to pierce the lock on. Only the damn things are impossible to open when they're not broken, which is easily done. Additionally, their inventory system is outdated and really wierd. Rather than correlate a scan code with a given price, they generate a bunch of price stickers, stick them on the book and have you punch in that number. Which makes it really easy to misprice a book or used cd for 1.99 instead of 19.99. So how do they deal with this? They keep records of all your transactions and run it against a national database of costs. If you sell too many "red line actions" a flag pops up. I'm guessing red line means below cost. So if you get the register right next to the clearance bin...

    Well the other question is, did it work for them? I'm guessing no, but maybe the manager who had to pull together a new schedule when I quit after a week of "Training" (another joke) has a different opinion. Maybe she thinks that I was a bad employee because I only balanced my register to a penny. Or that I quit having been offered a job paying more using tools that work.

    --
    I Browse at +4 Flamebait

    Open Source Sysadmin

  307. Look at the really important things by cvanaver · · Score: 1

    Ok. Do you know the latest Java/C/C++ patterns? Yes? Great. Do you know what to do with XYZ algorithms? Fine. I gotta lay down the truth here. I don't give a damn what you know or don't know. I want someone that can make my job easier....i.e. either save my company/client money, or make money for my client/company money with me having to do as little oversight as possible (assuming I'm your manager). Do you take on new tech challenges and responsibilities with enthusiasm? Have you ever worked a menial job and found yourself working towards making things better, bigger, faster with no prodding? Do you count matchsticks which fall on the floor? You are a gear-head, but can you talk to pointy-headed-bosses? Great, you have growth potential, OR no, you can still be a valuable gearhead to me. DO YOU DO YOUR FRIGGIN JOB? Do you go home at 5 even though deadlines have not been met? Do you have a dream, and does it involve perfection of your code? Are you flexible, can you take on new technologies? Are you resilient, can you work on the same old shit for years on end? Do you understand the software development lifecycle and your role in it? Yes? Good, explain it to me. Do you know what testing is? Do you know what version control is? Do you know what UNIX is? No? Well, your're just like the rest of them, can I see your standardized test results? No. I don't care about your certifications.

  308. You Don't HIRE a programmer by Anonymous Coward · · Score: 0

    You sub-contract them.

    duh.

  309. Give them a program to write by Anonymous Coward · · Score: 0

    I'm partner in a consulting firm and we staff VB/ASP UI and C++ backend programmers. I can reconfirm from my experience that being good at programming trivia and being a good progammer are two very different things.

    The only way I've seen to get an accurate feel for a programmer is to give them a chance to write a small program on their own. There are a million toy problems that are perfect for this.

    Here are a few:
    http://acm.uva.es/problemset/

    Give them a choice at least 2 problems and plenty of time to do one. Leave them alone while they work and go get some work done yourself. You know you have plenty to do. If they finish the problem(s) as well as you'd hoped, great. Talk through their solution with them to see if they know what they are talking about and get a feel for how easy they are to work with when it comes to *their* code.

    We discovered that if a programmer can get the job done and get along with other people while doing it we want to work with her. We have had good success finding those programmers hiring this way.

  310. I totally agree. by Anonymous Coward · · Score: 0

    I totally agree... After you've been, uh, synergizing all morning, nothing hits the spot like interviewing with some HR clod who doesn't know dick about IT or technology, but thinks they do because THEY'VE HEARD OF APPLESCRIPT.

  311. Funny but True Stories.. by Anonymous Coward · · Score: 0
    We at Microsoft don't exactly have the best name in the Software Business, so now when we want to recruit programmers, we troll Slashdot, and mail out offers to all those who bite the troll's plump, juicy loins.

    No. Seriously. Here's funny but true story #1: At one big software company I worked that had a very entrenched corporate culture (no, not Microsoft!), one day my manager introduced me to our new hire. Lets call him 'Paul'. Paul was a programmer doing an MBA at a two-bit suburban university. Paul seemed to think he'd soon be running this company. (Let me tell you now this'd *never* happen) The first thing he did was arrange a departmental meeting every Monday morning; "I'll bring the doughnuts" he said. Everyone was oooh so impressed with the prospect of yet another meeting. He seemed clueless and/or lazy and kept asking questions in the manual. RTFM! we told him. Then Paul actually refused to do programming tasks. After watching one of his lame-o jobs fail for a week (customers were waiting for it), I told him he'd have to come in that evening and make sure it ran. He Told us (including his supervisor) we could do it. Sheeeshhh! We got sick of him by this stage. So Paul called a meeting, didn't show up, and left. I expected he thought this would teach us a lesson, but we just thought this made him even more pathetic. So how did this loser get hired? He was interviewed by two women managers. He was tall and had a loud voice. That was all he needed. But the crowd always figures you out in the end...

    Funny story number #2. Lame-o programmer, lets's call him Maurice couldn't code, so he "borrowed" one of my programs and tried to modify it to get it to do what he wanted, but he had no clue of what 98% of the code did. I didn't know about this, until we were at his walkthough with my supervisor and a few others. Imagine my surprise when I recognised the code. My supervisor ripped though the code, asking him why he did this? What did that do? Actually I thought my code was a class act, but my supervisor thought otherwise. Ripped it to shreds. He couldn't answer any questions and I sat there trying really hard not to laugh. He looked like the fool he was. Despite his incompetance, we covered for him. But we later found out he bitched to the managers we weren't supporting him (we wish now we hadn't), and he capped his off by stealing Timothy's Mars Bars. Maurice is still with that company. People don't always get their just desserts. This sap even had the hide to eat someone elses.

  312. The "Dave" theory of gender distribution. by alanh · · Score: 3, Funny

    I heard this a while back and it's been true in the majority of the technical situations I've been in:

    The number of women present is less than or equal to the number of men named David.

    --
    - AlanH
  313. At what interest quotient? by Anonymous Coward · · Score: 0

    I think the key to your question is not XOR, but the loopholes involved in "doesn't require a temp variable". I/O to a file or pipe comes to mind. So does the question, "What is a variable?", which suggests arbitrary memory locations, registers, etc. And also "What is a temp variable?", as opposed to non-temp variables. Even more interesting would be Rube-Goldberg-esque custom hardware involving either explosives or DNA.

    It's like the old Bananna Nuclear Reactor solution.

  314. What do employers look for? by Huithelai · · Score: 1

    A question to answer a question. What do employers look for? I'm currently going to school now for computer software and applications. I'm half way through school and i was wondering what they look for? I have NO programming experiance other than school, and i have no idea what is expected of a no experiance newbie on the job.. know what i'm sayin? I love programming but i know it takes more than passion to get a job.

  315. I just gave up... by Anonymous Coward · · Score: 0

    I used to try to think of good and interesting questions, but now I just hope they know the basics.
    I recently interviewed someone who had 2 Masters in CS and Math, and over 15 years of experience in object oriented programming on their resume, and they had no clue what are inheritance, abstract classes, the "this" pointer/reference(depending on the language), exception handling, static member variables and methods, etc...

    The person litterally said "I don't know".

    And you will be surprised how many people with supposed experience can't answer basic questions like that.

    I have trouble finding people who even have a clue what a linked list is or how to do simple bitwise operations.

    This is all very depressing... I don't even know why I even bother even trying to interview people.

  316. How to fail an interview by steveoc-iweb · · Score: 1
    I remember a few years ago being stuck in an interview, and realizing that I did not want the job (A 'Linux' job that involved using Visual Studio, and writing code in VB), thought it might be fun getting rejected :

    • So, where are you working now ?
    • Well I dont exactly have a job now because in my last job I had problems with my fucking boss.
    • Er, excuse me ?
    • Yeah, I had problems with my boss.
    • I see, what happened there ?
    • The asshole, he tried to go over my head, see ? I said to him 'Dont you ever go over my head again, you motherfucker, or Ill fucking bury you, and your whole fucking family with you, capiche ?', after that I fuckin walked, didnt I
    • I see

    Suffice to say, I was offered the job the next day, which I respectfully declined - stupid motherfuckers.

  317. Think about this... by 5282 · · Score: 1

    For a typical programmer: 1) its all about computer science basics so ask those type of questions A) programming language concepts - ex. generally how does function calls effect the stack and heap B) basic algorithm and data structure concepts - ex. bubble sort vs quick sort - try and stick to algorithms that are highly common and ask what would be the best kind of data structure to use C) database concepts - ex. Define normalizing D) optionally you could ask about OS concepts - like file discriptors, threading, memory management etc If they ace these type of questions then they can pretty much handle anything that you give them. This basic knowledge is what all programming is based on no matter what language, platform or software you are dealing with. Now usually you want to find someone that is more than just a programmer. someone that can think on their own and be creative. Here you can pretty much ask anything...like do you think Apple should offer Mac OS X on x86? why? Does it make business sense? Would it be politically acceptable with the existing Mac community? or with the Unix community? why? How do you think Microsoft would react? why? Monitor the answers and be objective...its not about the topic but about the creative answers/thinking. Also it doesn't hurt to ask a few business minded questions (ex. We need a basic database to use inside one of our applications and we need to do it cheaply..what's your recommendation?) Personally I'd look to the open src community ;) And the most important Management 101...never every compare the person to any other person especially you. I don't know how many times I've heard from managers that just hired someone make a comment like she worked at so and so just like me or they have demostrated the same working habits as i do etc...big mistake. the person is not you so don't treat them like they are.

  318. man, you hit the nail right on the head by lexus99 · · Score: 1

    I am an IT mgr at a televison station, and have worked in damn near every dept. there over the last 20 years, including production and engineering. Most folks here really do shoot from the hip in a hairy situation very well, bit there are still few who do simply cannot pull their own weight, but never get released.

    We have one (not in my dept.) that helps out a bit in IT when things get hairy, and even though I have showed her how to set up a windoze pc into our domain numerous times, she still has to ask for all the ip address (ip, gateway, wins, etc) and domains, and she has worked there five years now.

    Show me something once, and I will remember it forever. Some people just learn how to manipulate the system and do so their whole miserable lives.

    Live televison is a perfect example of this. If you can function well in a live tv enviroment when things go to hell, you can pretty much do anything (I would imagine air traffic control would be similier).

  319. OR.....! by Etrigan_696 · · Score: 1

    Go to college with the guy you are about to interview for four years, and during the interview, you can just bullshit and talk about how that one instructor was a bastard and gave impossible to finish tests, then turn to the other interviewer (typically someone from HR) and say "I know he can do the job. I've seen him work - under pressure and all - and I know he has the skills to do what we need done."

    That's what my last interviewer did. Now, if he'd just get the paperwork filed and light a fire under his boss' ass....
    *hahahah* - Sorry Mike....

  320. 40 Interviews later by superpulpsicle · · Score: 0

    Sorry, we know you answered our questions wonderfully. But Joe Boxer here will work for almost free to feed his family. Later ~

  321. Just curious... by Bodhammer · · Score: 1

    Just curious, what is the correct answer for #20 in this thread here?

    --
    "I say we take off, nuke the site from orbit. It's the only way to be sure."
  322. End User, Baby by Anonymous Coward · · Score: 0

    Ask them what they, as programmer, would do to reduce the support costs of

    1. deploying some application to a specific user set

    2. maintaining and deploying updated versions of said application

    If they can come up with thoughtful answers to those questions that consider the "real world situation" ("all clients will need new computers and broadband connections" doesn't really work) then they just might have something.

    That's what *really* counts in my experience. You've go to have end user focus, any moron can be taught to cut code.

    Also, genuine sympathy for the poor shlubs on the support desk is desirable.

  323. well as amusing as this sounds by Anonymous Coward · · Score: 0

    It's simple realy: ask them four questions:

    1)Why(Ie Why would you want to treat your.Java files as objects)

    2)what(What's their prefered programing language for fun if the answer is C++ don't hire if its ObjC ANSI C Logo or Java 2 do so)

    3)How(How do you solve your limitations ie: Do you ask for a another pair of ies do you use logic do you think like an enginere?)

    4)Last but not least: how man math,fantasy, and theology books do you read, what do you do for fun what's your favourite game, and have you experienced?

    you might also ask them to visualy graph a program if it's not clean simple and elogant then it's a no go.

  324. Why this is the wrong answer by Mad+Marlin · · Score: 2
    by the way... add them up and subtract from 55.

    This is the wrong answer to the question, even though it gives the right answer. Why? Well for one thing, it is "clever", which as any real programmer knows is the sign of something bad. What about 1..11 with one number missing? Oh no, it's broken! Actually, then you just subtract from 66 (for those of you who didn't get inflicted with series in math enough to just recognise this, 55 = 1 + 2 + ... + 9 + 10, and 66 = 55+11 ), but if you have two numbers missing it actually is broken. A general solution is almost always a better solution. If I were asked this during an interview, my response would be "I'm not sure, but I most definitely would not just subtract the sum from 55," knowing that is probably the answer they are looking for, and then explain why. Then I would state that I don't believe that trivial little mathematical puzzles are a very good way to try to select a computer scientist, or even a mathematician for that matter.

  325. Hire two. by blair1q · · Score: 2

    But first tell them there'll be only one of them still working after three weeks.

  326. Stop the stupid Questions? by til · · Score: 1

    If the Questions in you're example are real (i can hardly believe that), you should stop asking them. I'd never want to work for somebody, who thinks they'll find goog programmers by asking stupid questions. And yes, i am a good programmer.

  327. Very easy to hire a good programmer by ztwilight · · Score: 1

    The problem with hiring a good programmer is you don't know how good they are until they've been working for you for around six months. Then the real problems come in when they act like they're working but don't put anything out. No amount of interviewing is going to help you there - you should contract these people for one month at a time with the understanding that you will renew the contract if they perform well. If their performance starts to really slack off after a few months, then you know they're burnouts. You'll also know if you want them around after any other problems. Motivation is the key factor in development. I can name off many many programmers who know a lot but don't like to work. Looking for a college degree doesn't help either. If someone can program insanely well without anyone showing them how, would you think they were better or worse programmers than someone who had college professors show them how to do everything? Hiring only college grads will give you a lot of programmers who can't think and learn on their own, and are not willing to try new things. And think for a while about the technical questions you are going to ask. I have heard some VERY stupid questions lately in interviews, and those programmers will resent your stupidity the entire time they work at your company.

    --
    Who moved my sig?
  328. Make them write by dgero · · Score: 1
    I make them write a paragraph in English.

    Programming involves a lot of things, but ultimately it requires writing. If the programmer can't write well in a language they've used all their life, what does that say? Do they ignore punctuation, grammar, and spelling? What does it mean if they can't be bothered with details?

    Even better would be to have them write a poem in iambic pentameter, explaining to them what that is if necessary. Languages already impose a certain discipline, but how does the programmer react to extra disciplines? Does she only want to write in free verse? Ever tried to read an undisciplined programmer's spaghetti code?

    To be fair, this works against those whose native language isn't English, but that's the language I communicate in. For such people, a similar test might be to give them a syntax diagram of a computer language they don't know and ask them to write something in it.

    These days, dragging a control onto a form and hooking up the events is considered programming. Re-usable objects are Good Things, but it feels more and more like connect-the-dots rather than programming. I'm more interested in the person who wrote the control than in the person who can drag it around.

    The other test I give programmers is to have them copy a sheet of paper with sixteen rows of random sixteen-bit binary numbers. At least you find out the ones who pay attention to detail and check their work, both of which are important for programmers.

  329. Are you competent, and willing to kiss my ass? by Anonymous Coward · · Score: 0

    Which is more important? -- that is the question.

  330. Wrong question by freddled · · Score: 1

    Look. Your list of questions can be a mile long, if you don't know how to ask them, you loose. Too many interviewers in my experience have their own baggage or are prima-donnas who want clones or just plain d-o-n-t l-i-s-t-e-n. If the candidate is a close fit, expect to do some training - remember training, it used to be really popular. If the candidate is covering up weaknesses wilfully and they have the knack of evading and/or sounding plausible then again, no amount of questioning is going to help. Set them a test, either on paper or writing live code (using the target environment), ideally in a closed room. Give everyone the same amount of time, always add five minutes and sit behind em to add a bit of pressure, have a standard markings scheme and use it. When they are alone in the test keep an eye out, if they reach for the mobile throw them straight out the door and call in the person they called for interview instead. In short, forget about standard questions.

  331. FP by Anonymous Coward · · Score: 0

    First Post

  332. Get them in and have them do some work by cushty · · Score: 1

    I've found the best way to interview people is to actually get them in and work on a problem amongs their potential co-workers. I personally don't interview very well when it comes to answer questions; don't get me wrong, I know my stuff, it's just I have a tendancy to work myself into a stew (just like I did before I took any exams). I was really surprised when I went for an interview at a company when they turned round and asked me to come back and spend a day with their development team, working on a problem that was related to their product. It gave me the chance to actually sit at a machine, code, talk to the team, and generally show what I could really do.

    If you want to know if someone will fit into a team then the only real way is to put them in the team for a while. It worked so well for me that I took it to the next company I worked for.

    Obviously you still have to have that first interview where you do ask some technical questions, but make the questions those that will identify someone that knows nothing about something they've put on their CV so you can cut the dead wood quickly.

  333. The perfect interview by fidros · · Score: 1

    Have you published any open / free software and if so what's the URL?

    If he answers yes you can go and look exactly what this guy knows and does he plays well with other.

    --
    Gilad.
  334. What we do by Anonymous Coward · · Score: 0

    First, the riddle we ask the guy is based on something implemented in our product, true, but it is a design question. The system is something standard, with a twist that allows better optimization.

    I'm looking for whether the guy can give the basic answer off the top of his head, and how he is handling the twist. An important factor is whether they will accept help. If the guy will make 95% of the way on his own in ten seconds, but then half and hout later still won't let me hint him the remaining 5%, that's a problem.

    We're also picking a random project the person participated in, and pick that project apart. Ask about the most intimate details in the project. At that stage you are looking for whether the guy knew what he was doing, or whether he was just tagging along. If the guy was a crucial part of the project, he will have answers for you.

  335. VERY FAST O(n) solution by psychomaniac8 · · Score: 1

    quicker than sum subtract and works with big numbers. Up to around 4 billion on 32 bit machine instead of around 32k with the sum solution.

    uint findmissing(uint *numbers)
    {
    uint answer = 11 // magic 1-10 starting value.

    for i=0 to 8
    answer ^= numbers[i]

    return(answer)
    }
    okay mark this as redundant or the other. Didn't know which thread was better :)

    1. Re:VERY FAST O(n) solution by psychomaniac8 · · Score: 1


      Well, I guess this solution is no better than

      {
      answer = 55

      loop over i
      answer -= numbers[i]
      }

      I was thinking of

      {
      answer = 0

      loop over i
      answer += numbers[i]

      answer = 55 - answer
      }

      I guess the xor solution still works on larger numbers, but it is the same number of instructions.

  336. My interview technique (45 minutes and repeatable) by MeerCat · · Score: 2

    Background - I needed to hire 10 solid capable C++ developers for a new product development. I'm gaves candidates a (C++) language test, but not a "sit in a room and do it" test, but a "we'll work thru this together and see where it takes us". I want to cover some solid items, but I'm mostly looking for the ability to empathise, and for a way to provoke conversation about what they've done.

    So my test is more along the lines of a few simple items like "Read this real production code and tell me what it's doing. Do you spot any errors in it?" Then I use these questions to seed the conversation: "How would you write this code differently? Do you understand the problem this is addressing? Does the code fix the problem or not?" I also get an idea of how they read code (hint: given a strange function the good ones ask for scrap paper and walk through the operations by hand almost immediately).

    I really dislike the "put these 4 operators in order of precedence" tests--in fact I want people that say "It's a bad thing to memorise these details, because the person reading the code may not know them, so I always use explicit braces anyway." - but then, that's how I answer the question in an interview....

    I also throw a few syntax errors, style errors, off-by-one errors, resource leak errors, etc. into the code to see how much eye they have for detail, allowing of course for the pressure of an interview. Some things should be in-grained in C/C++ developers, even in an interview. If they mention the typo in the comments...well, it's more about HOW they comment: is it patronising, informative, a throw-away line ("I'll gloss over the typo here.")? If they don't mention it they may be just polite, but by the time you have a dozen of these openings in 10 lines of code it gives at least one chance for a conversation to start, and it gives me an idea of how they operate....

    Similarly for testing Awareness I give them a list of names of people and technologies and ask them what these mean to them. We can then use that to chat further: "So, you've read Mythical Man-Month, tell me what you think of it?", "How much of slashdot do you read then?", "If I was new to OO, how would you describe polymorphism to me in a single sentence?", "What kind of books DO you read then ?".

    None of these are "trick questions", and I tell them that it's not a "you scored 7 / 10" test (I also tell them that I know all the answers because I wrote the test, not because I'm smarter than them), but I find this method useful for helping me be consistent between interviews, for giving a clear plan and structure (and control) of an interview to both sides, and for seeing HOW they address the question even if the ANSWER eludes them, and that's what I REALLY want to know: "How do you react when you don't know the answer (yet)....?"

    It ends with discussuion items including "This interview process sucks/works/is-skewed" where we chat for 5 minutes about how they interview, what the problems of hiring people/accepting a job are etc.

    --
    I spent a lot of money on booze, birds and fast cars. The rest I just squandered. - George Best
  337. Install Linux by anonymous+cupboard · · Score: 1
    That is, of course unless this was the BSOD screen saver, in which case, you just enter a valid username and password to unlock the session.

    Seriously, a BSOD generally does mean something just in the same way as a Kernel panic and a console dump from VMS. It can sometimes point to a particular component that is having problems. I have done a bit of systems programming in my life time so I have triggered more than my fair share of these things!!!!!!

    1. Re:Install Linux by NanoGator · · Score: 2

      BSOD's usually a simple hardware problem and can be troubleshooted by reading which driver that caused it.

      I told them that after I noticed they weren't laughing at the Clippy comment. Heh.

      --
      "Derp de derp."
  338. But what happens when Penthouse is mentioned? by invalid_user · · Score: 1


    ...and what of Victoria Secrets catalogs?

  339. I did a C++ aptitude test by PhilHibbs · · Score: 2

    It was on a computer, and it asked multiple-choice questions, with a score assigned to each answer, so stupid mistakes lost a lot of points, and different "correct" answers were worth different points. If you do well in a category, it starts asking more difficult questions, so the test is always challenging no matter how good you are. I scored very highly, so I consider it an accurate measure ;-)

  340. Knowledge vs. knowing where to look by Anonymous+Brave+Guy · · Score: 2
    I'd much rather someone who demonstrated that they knew how to find out what they need (and then apply it) than someone who has memorised books.

    While I agree entirely with the above, I think factual questions do have genuine merit as well. If someone is an experienced user of Tool X, they will know the basics of Tool X off the top of their head. The more familiar they are with it, the more depth of knowledge they'll have available immediately. Whether or not they're a natural "memoriser", this will be true to a significant degree for everyone.

    You can gauge a lot about a person's experience from that depth of knowledge. If they have to look up some obscure CSS property to get the effect they're looking for, sure, go find a good book or your favourite web site. OTOH, if they don't know the nesting of <HTML>, <HEAD> and <BODY> tags but they're claiming to be a web design expert, they've probably used too much Frontpage without ever learning what it does. That may or may not be a problem depending on why you're hiring them, of course, but it's certainly a legitimate thing to want to know.

    And of course, at the end of the day, if someone can show you a deep knowledge of their subject in interview, you know they know their stuff. If they appear to know where to look and they are efficient at finding what they need, that's great, but it could be hiding a lack of understanding that you won't find out until it's too late. You could take a competent programmer and give him a new language to program in, and after a few weeks, maybe he'll be up to speed because he's good at doing his homework. OTOH, if you hired a guy who already knew the language inside out, he'd be more productive from day one.

    For these reasons, my suggestion (not that anyone ever lets me interview these days...) would be to sit the candidate down in front of a PC, with all the facilities they'd have available doing the job (help, web sites, books, whatever), give them a reasonable task to do, and ask them to talk you through what they're doing and what they're thinking about. That will make clear what their depth of knowledge is, at least in this particular area, and it will also find out if they know when they don't know enough, and they know where to look to fix that.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  341. I wouldn't hire someone who couldn't do it by Anonymous+Brave+Guy · · Score: 2
    So what if I'm the kind of programmer who would have to whip out a book to do this? Does that make me a bad programmer?

    It makes you a slow programmer who doesn't know his subject, and who will have to spend 95% of his time reading books rather than coding.

    I don't have a problem with needing to look up details when it's appropriate, but it's a matter of scale. A professional programmer who can't write a swap function is a contradiction in terms.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  342. The first question should of course be... by jonr · · Score: 2

    Do you play Counter Strike? :

  343. Web of Trust by Anonymous Coward · · Score: 0

    Just like PGP (or should I say GPG?).

    Hire people on recommendation. Trust only the recommendations of people you've worked with before and whose judgement you trust.

    Oh. And if you hire someone who turns out to be a dud....eject them.

  344. chicken or egg?? by tapiwa · · Score: 2

    Is he like that because he got promoted to management, or did he get promoted because he is like that?

    --

    Live today. Tomorrow will cost a lot more!

  345. one bit of advice by Anonymous Coward · · Score: 0

    Undoubtedly, this will be lost in the noise, but I'll feel better if I say it.

    Actually read the prospect's resume. If your selection is based on running it through a buzz-word filter, all you'll get is someone who knows how to get through a buzz-word filter (I dunno, maybe that's what you want....).

  346. There's a simpler way. by dark-nl · · Score: 1

    I also started by thinking about an array or tree based approach, but there's a much simpler algorithm: add all the numbers and subtract from 55. 55 is the sum of the numbers from 1 to 10, so the difference will give you the missing one. This also easily scales to larger ranges, though of course it doesn't scale as well to more than one missing number.

    1. Re:There's a simpler way. by Anonymous Coward · · Score: 0

      Sweet. You're hired.

  347. Ticking my list .... by jotaeleemeese · · Score: 1

    -Playing JS Bach "The well tempered klavier". All the Preludes and fuges. Both volumes. In a real piano. OK.

    -Local chess genius. OK.

    -Crosswords. reluctantly OK.

    -Left handed. NooooooooooooooooooooooooOO!!!!!!

    I have missed the 3ll33t test to detect good programmers.

    --
    IANAL but write like a drunk one.
  348. Oh I see... by jotaeleemeese · · Score: 1

    So you appreciate loosers that after coding all day go home and continue coding.

    Charming.

    --
    IANAL but write like a drunk one.
  349. MOD PARENT UP by Lavos · · Score: 1

    I agree completely.

    I haven't had a true tech job yet, and was kicked out of college so I don't have a degree. What do I have? I do have a cert, but I don't think it was hard to get. I learned SQL within a couple of weeks, visual basic in a day, and I already had the design skills, so a MCSD was pretty easy to accomplish. If I had a degree I'd probably have a job doing development, instead of looking at going back to a factory job or something similar while I work on getting up enough money to go to school again.

    --
    "Tax preparation software eliminates errors your[SIC] may make...." From IRS home page.
  350. Jobs And Stuff by Anonymous Coward · · Score: 0

    ---> First, if the original question came from an employer, perhaps consider whether you are a decent place to work.

    * Some places are already decent places to work and being able to see whether a programmer has the flexibility to fit into this framework would be the main thing. The clever questions are baloney, as mentioned by the zillion previous posters.

    * Some places might be decent places to work if they could drop the seeing the trees for the forrest routine.

    * Some place will always be loosey. And if you're just as bad as your interviewing questions, then you deserve all the misery and the pain of getting the employees you deserve, getting the bad designs, the irrationality, the panic and the constant you deserve.

  351. sexist pig... by mekkab · · Score: 2

    Actually, he's a SHE.

    And she's worked for the NSA and is a PhD doing research. Don't talk to her about production environments...

    But yes, I do understand your comment on clear code and concise comments! And I quite agree. Which is usually why I like having someone who doesn't know my programming language very well at my design inspection. If they can't "get it" from my comments, then my comments SUCK.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
  352. Illiterate twit . . . by pete-classic · · Score: 2

    "He" is the neuter in English.

    Good comments are a poor substitute for clear code.

    -Peter

    1. Re:Illiterate twit . . . by mekkab · · Score: 2

      Hmmm... didn't know about the neuter form in English... and it seems neither does 51% of the population... go figure.

      When you say clear code, what if it is hard to read, but executes fast and clean?

      If I'm writing a communications device driver for Air Traffic control I think the emphasis is on tightly bounded latency. And if I have to use pointers to pointers to function pointers for the speed, then so be it. And if I have my own stack switching algorithm to give the illusion of having a multi-threaded kernel process and I write it in assembly there is no way to make that clear for everyone to read.

      So you write DAMN good commentary.

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    2. Re:Illiterate twit . . . by pete-classic · · Score: 2
      Hmmm... didn't know about the neuter form in English... and it seems neither does 51% of the population... go figure.


      So this supa-fly NSA guru CS prof teaches at a school that doesn't teach English?

      As to the rest of your post, what the fuck are you talking about? How on Earth does a "cute" swap function have anything to do with this new stuff you have introduced?

      Was your major "Women's Studies" and you took a CS class to "round out" your education? You seem to have no logic skills whatsoever.

      -Peter
  353. miles davis by philemon23 · · Score: 1

    I got so tired of interiewing people I finally decided to cut to the chase - in each interview I started asking what their favorite Miles Davis album was. I didn't hold it against them if they couldn't name one, but ff they could name one, they improved their chances. No one ever said "In a Silent Way", but if they had, they would have been hired on the spot.

  354. Logic problem I've found quite effective by bill_mcgonigle · · Score: 2

    When you're interviewing kids out of school, there's not much to go on besides their project work. Grades are misleading, sample code has often been reviewed by others. They have all the raw materials they need from school, but school can't provide them with the knack for figuring out how to structure thier logic, which is essential for programming. Here's a little game I've found that really brings out the winners. If they solve it in an hour, good. 40 minutes, great, 20 minutes, wow!, anything less, they've seen it already. I've had several candidates not be able to solve it, but I was already suspicious of them. Give them paper, and examine how they went about solving the problem.

    Here are the rules:
    There are 5 different houses in 5 different colors.
    Each house is owned by a different person with a different nationality.
    Each person drinks a certain beverage, smokes a certain cigarette, and
    keeps
    a certain pet.
    No owners have the same pet, same cigarette, or same beverage.

    The question you are trying to answer is:
    Who owns the fish?

    Here are the hints. You need these to answer the question:
    1. The Brit lives in a red house.
    2. The Swede keeps a dog.
    3. The Dane drinks tea.
    4. The green house is on the left of the white house.
    5. The green house's owner drinks coffee.
    6. The person who smokes Pall Mall rears birds.
    7. The owner of the yellow house smokes Dunhill.
    8. The person living in the center house drinks milk.
    9. The Norwegian lives in the first house.
    10. The person who smokes Blends lives next to the person who keeps cats.
    11. The person who keeps horses lives next to the person who smokes
    Dunhill.
    12. The person who smokes Blue Master drinks beer.
    13. The German smokes Prince.
    14. The Norwegian lives next to the blue house.
    15. The person who smokes Blends has a neighbor who drinks water.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    1. Re:Logic problem I've found quite effective by kju · · Score: 2

      Really nice quiz. It took me some 22 minutes (including some wrong starts) to finally solve it. I found hardest to "see" the first combination of two hints which led to new information. From that on, it was easier.

    2. Re:Logic problem I've found quite effective by wmspringer · · Score: 1

      After 31 minutes, I noticed that I'd already found who owned the fish and was trying to finish filling in the chart :-p

      Didn't even realize I'd answered the original question...

    3. Re:Logic problem I've found quite effective by bill_mcgonigle · · Score: 2

      That's a great example of why I like to see the work. I'd hire you double fast, because when I ask you to solve a problem and then a few weeks later I ask you to solve another related problem, odds are it'll be a ten minute job, since you did it right the first time (as opposed to doing just enough of a hack to get the job done).

      Some people would interpret the results differently; their names usually end in MBA.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  355. A few disagreements, some agreements too by Anonymous+Brave+Guy · · Score: 2
    DO ask for demos of working apps from previous jobs/schools. If they don't have anything working to show, they can't take a project, even a simple one, cradle to grave.

    Or they actually respect the trade secrets of their past employers. If someone turns up for an interview with a copy of his past project's source code, he's probably ignoring part of his old contract for personal benefit, and that says far more about him than anything in the code will.

    DO NOT discriminate because they haven't programmed in your particular programming language, unless the work is very short term. They're all dialects of the same language. [...] The only exceptions are pointers and object oriented code. Some people just can't get it.

    There are many more exceptions than that. OO and procedural are hardly the only two programming paradigms around, for a start; there are plenty of other, radically different approaches. Someone who's got experience of similar tools and techniques to the ones they'll be using is certainly a potential candidate, but someone who's never done anything at all similar is a different matter. Then again, someone who's picked up three or four different paradigms already will probably pick up a whole new paradigm pretty quickly, too. It's all down to the level of generality they operate and think at.

    DO, for heaven's sake, call their references.

    References are an interesting issue. While they can confirm job history -- probably a good plan -- they are of questionable value beyond that. I volunteered to provide references to my current employer when I was interviewed a few months back, and they said "thanks, but no thanks". They explained that they could gauge someone reasonably well in an interview, they'd soon find out if someone grossly misrepresented themselves on their CV (which would be grounds for immediate dismissal) and you're bound to get a good reference whether you're the best programmer ever or whether the old lot can't wait to get rid of you, so basically it doesn't tell them anything useful. You can see their point...

    I do agree with the rest of your comments, though, particularly getting them to review something in your own style and comment, and looking to see whether they get passionate about their work.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  356. Neglecting the MOST Important Factor by malie · · Score: 1

    An interview for a programmer should be a programming assignment... Short but sweet. Give them at least an hour and see what they come up with. Otherwise, you're looking for a good computer science student, NOT someone who(m)? can get the job done.

  357. The job market sucks by Anonymous Coward · · Score: 0

    This is a good question for the current job market:

    Are you willing to take less pay than the other 250 candidates we have for this job?

  358. Step to me. by mekkab · · Score: 2

    The flaw: your argument is a sweeping generalization. Utilizing the CLASSIC technique of coming up with an exception I have debunked your statement.

    That is you lesson for today. Good day, young grasshopper. Come back when you've shaved, son.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
  359. Re:Ageist dolt by pete-classic · · Score: 2

    You haven't dubunked anything. You illustrated that in a sufficiently contrived circumstance unreadable code may be a necessary evil. I don't deny this.

    The flaw: you set up a false dichotomy. It can be both a poor substitute and a necessary evil. I certainly never said anything negative about good comments . . .

    As far as the age thing goes, I'm 27, and wore a full beard until about five months ago. I've been around the block once or twice, and you haven't shown me shit.

    You're a professional student, I take it?

    -Peter

  360. Interviewing programmers by Anonymous Coward · · Score: 0

    The most amazing interview I had was given a task to do... This is an example of the kind of project we work on you have an account and 3 hours to code a solution to this, you can work with your potential collegues and have full access to the online help, manuals etc..
    Talk crap to your collegues and relax, pretent it is a normal day at work...

    But seriously, I've been at this since 1988 and I can't wait to get out of this industry! It blows.

  361. Re:Ageist dolt by mekkab · · Score: 2
    you wrote:
    The flaw: you set up a false dichotomy. It can be both a poor substitute and a necessary evil


    I think it can only be both in cases where there is an alternative (the all possible worlds case). However given performance criteria, schedules, and the need to build to spec there frequently is no alternative. And a functional yet difficult to understand segment of code is the only option (necessary evil) and there is no substitute. As such, your only hope for future maintainance is commentary. Or a miracle. whichever comes first.

    So maybe we are just arguing symantics (wouldn't be the first time!) but I think that "necessary evil" and "poor substitute" are mutually exclusive .

    re: shaving- what a great guess! I had assumed you had/have some facial hair. Glad to hear you've shaved! (just a personal thing. I find beards difficult to care for and after I shave them off I am amazed how much better I look without one).

    re: ageist: I think I'm 6 months your junior.

    re: professional student: Nah, I'm getting a drive through masters while I work on communication networks for air traffic management.
    Work pays for it, so hey, free sheep skin!
    So when you fly in US or UK air space, think of me.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
  362. Algorithm by Anonymous Coward · · Score: 0

    I counted 4 different kinds of associations.
    Same House Singletons:
    9. The Norwegian lives in the first house.
    8. The person living in the center house drinks milk.

    Same House Pairings:
    1. The Brit lives in a red house.
    2. The Swede keeps a dog.
    3. The Dane drinks tea.
    5. The green house's owner drinks coffee.
    6. The person who smokes Pall Mall rears birds.
    7. The owner of the yellow house smokes Dunhill.
    12. The person who smokes Blue Master drinks beer.
    13. The German smokes Prince.

    Non-oriented Adjacent House Pairings:
    10. The person who smokes Blends lives next to the person who keeps cats.
    11. The person who keeps horses lives next to the person who smokes Dunhill.
    14. The Norwegian lives next to the blue house.
    15. The person who smokes Blends has a neighbor who drinks water.

    Orientated Adjacent House Pairings:
    4. The green house is on the left of the white house.
    [Because of the nature of 9, 14 could also go here.]

    The construction seems to be: Subdivide the Houses into enough same house pairings so that no two houses can be isometric. Then introduce enough singletons and oriented adjacent house pairings to force the houses to line up in a row. Finally, include all but one of the remaining attributes in non-oriented adjacent house pairings. The resulting description will uniquely define your attributes in houses that sit in an oriented row, and you can ask for the location of the single remaining attribute [in this case, "fish"].

    Once you figure out the algorithm, the idea of being asked a question like this by some Human-Resources dweeb is really infuriating.