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?

345 of 976 comments (clear)

  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 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.
    6. Re:Good question by Matthew+Weigel · · Score: 2

      Poetry is vague.

      Ever tried explaining why the sky is really blue poetically?

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

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

    3. 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."
    4. 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.
    5. 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.
    6. 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.

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

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

    6. 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
  4. 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 cnvogel · · Score: 2

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

    2. 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.
    3. 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!
    4. 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".

    5. 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.
    6. Re:One simple little function... by gorilla · · Score: 2

      This fails if you have overflow.

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

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

    11. 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.
    12. 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 ]
      - ...

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


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

      And there are languages with arbitrary precision arithmetics ;-)

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

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

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

    19. 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.
    20. 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"
    21. 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
    22. 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.

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

      --
      <^>_<(ô ô)>_<^>
    26. 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.

      --
      <^>_<(ô ô)>_<^>
    27. 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
    28. 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

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

    31. 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.
    32. 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
  5. 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 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.
    2. 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.

  6. 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 kubrick · · Score: 2

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

      --
      deus does not exist but if he does
  7. 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.

  8. 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 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.
    2. 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.
    3. Re:The ultimate way. by Alomex · · Score: 3, Funny

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

      I'm a frikin' genius!!

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

  9. 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 brer_rabbit · · Score: 4, Funny

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

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

    4. 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.
    5. 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.
    6. 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...
      ;-)

      --
      <^>_<(ô ô)>_<^>
  10. 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' !

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

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

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

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

    11. 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... ;-)

    12. 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); }
    13. 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.
    14. 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.
    15. 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.

    16. 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."
    17. 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.
    18. 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"
    19. 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.

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

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

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

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

    24. 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?
    25. 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
    26. 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?
    27. 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.

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

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

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

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

    34. 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?
    35. 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.

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

    37. 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.
    38. 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
    39. 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. :-)

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

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

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

    43. 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"
    44. 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.

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

    46. 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.
    47. 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.
    48. 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.

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

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

    51. 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.
    52. 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.
    53. 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.

  12. 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 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 ]
    4. 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.

    5. Re:easy by zCyl · · Score: 2

      Interviewer: Hmm. What do you look for in a woman?

      Is that a windowmaker app?

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

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

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

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

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

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

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

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

  19. Opener by Picass0 · · Score: 2

    You start off with "Can I get you a soda or something with caffeine?"

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

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

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

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

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

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

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

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

  27. 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 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
    2. 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.
  28. 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!?
  29. 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

  30. 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
  31. 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
  32. 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 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.
  33. 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!

  34. 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?".

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

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

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

  38. 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 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."
    3. 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.
    4. 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. :)

  39. 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.
  40. 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!

  41. 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> ;))

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

  43. 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)'
  44. 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 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"
    2. 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.
  45. 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?

  46. 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
  47. 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.
  48. 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/)

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

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

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

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

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

  54. 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
  55. 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
  56. 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.

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

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

  61. 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.
  62. 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?

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

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

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

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

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

  68. 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 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.
  69. 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?
  70. 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.
  71. 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?
  72. 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....
  73. 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.

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

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

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

  78. 'Is friendship inherited? How would you find out?' by WhaDaYaKnow · · Score: 2

    You can start with having sex with your dad's second wife.

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

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

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

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

  83. 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. :)

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

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

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

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

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

      --
      <^>_<(ô ô)>_<^>
  90. 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
  91. 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"
  92. 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
  93. 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.
  94. 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?

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

  96. 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.
  97. 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.
  98. 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"
  99. 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)

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

  101. 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.
  102. 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."
  103. 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...
  104. 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.
  105. 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.
  106. 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 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.
    2. 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.
  107. 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!

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

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

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

  112. 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
  113. 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)

  114. 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?
  115. 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...

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

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

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

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

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

  122. 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!
  123. 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.

  124. 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
  125. Re:Check there referances by tmarzolf · · Score: 3, Funny

    Check there spelling.

    --

    This Sig has been depreciated.

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

  127. 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
  128. 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?"

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

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

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

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

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

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

  137. Hire two. by blair1q · · Score: 2

    But first tell them there'll be only one of them still working after three weeks.

  138. 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
  139. 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 ;-)

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

  141. 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.
  142. 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.
  143. The first question should of course be... by jonr · · Score: 2

    Do you play Counter Strike? :

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

  145. 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."
  146. 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.
  147. 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
  148. 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 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)
  149. 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.
  150. 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.
  151. 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.
  152. 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.
  153. 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

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