Interview Cruelty: CPound Would be Proud



  • Today I witnessed the most evil of interviews. I was asked to sit in with my supervisor/technical lead on a candidate interview. Keep in mind, this was for a junior level position.

    The kid comes in looking like he's straight out of college. Innocent and everything. My manager, who has always been a cruel kind of guy, gets this sadistic grin and asks the guy one question: Tell me the difference between an object and a class.

    My mouth dropped when he asked that because on the surface it sounds like an easy question. But the potential minefields are staggering. The candidate proceeds to give a fairly adequate answer, considering his level of expertise, and I actually think he's going to get away with it. That's when my supervisor ripped him a new one.

    He goes on for 30 minutes straight (I'm not kidding) explaining his personal philosophy on objects and classes. By the end of the thing, I was almost snoring. The kid however looked terrified. I wanted to tell the kid to get up and walk out, but I was too chicken to contradict my boss in any way. After my boss's tirade, he says "Thank you for stopping by" and walks the kid out. No "Do you have any questions?" or anything like that. Just one unbelievably cruel trick question posed to the candidate and a walk out. My boss is an asshat. 



  • Did he later get the job? It's the least your boss could do after subjecting him to that.



  • The real WTF is that you clearly have no balls.



  • Would you be able to tell us the particulars of the answer, and how your boss ripped him? (I realize you may need to hide the details.) In most "instances", this would elicit a one or two sentence reply, and you would go on to the next question.



  • IMO there is nothing inherently wrong with the question, especially in the context of a given language, as long as you don't overcomplicate the whole thing like the supervisor/technical lead does.



  • WTF did he talk about for 30 minutes about the difference between Objects and Classes.  I think it's a fine question to see if someone knows anything at all about object orientation, but 30 minutes is 30 times longer than it takes to go over the differences!



  • The real WTF is that anybody would bother lecturing somebody that they don't even intend to hire, on any subject.

    I can understand attempting to educate your own employees. But what on earth do people like this think they are accomplishing? 



  • @asuffield said:

    The real WTF is that anybody would bother lecturing somebody that they don't even intend to hire, on any subject.

    I can understand attempting to educate your own employees. But what on earth do people like this think they are accomplishing?

    Nothing, they just enjoy pontificating and need an audience. 



  • Is the boss always like that?

    Personally I'm not sure the question is even that valid or useful.

    I mean, the "difference" between fruit and apples?



  • @newguy said:

    Just one unbelievably cruel trick question posed to the candidate and a walk out. My boss is an asshat. 

    Not that your boss isn't an asshat - it sounds like he is - but this is in no way a 'trick question'.   The potential minefields are not staggering.   And it's not particularly cruel, either.

    It's not particularly interesting question unless you're going to digger deeper into it like "how does a class get instanced into an object?"   But it is essentially a definition question, the sort that CPound wants to see on his standardized interview tests.  

    The 30 minute tirade was entirely uncalled for, but the question itself wasn't inappropriate, cruel, or tricky.

    -cw



  • @CodeWhisperer said:

    the question itself wasn't inappropriate, cruel, or tricky.

    Ok then. Let's hear what your answer would have been.

    And don't copy/paste something you found on Wikipedia.



  • @CodeWhisperer said:

    The 30 minute tirade was entirely uncalled for, but the question itself wasn't inappropriate, cruel, or tricky.

    It was if it was just asked to provide an opening to espouse some 'personal philosophy' that may or may not even have roots in reality down some poor shmuck's throat.




  • Given the specific wording of the question ("Tell me the difference between an object and a class."), I would have started with "the class is the definition, an object is an instantiation of that definition". 

    That's a different answer than I might have given if he had asked "explain the basics of object-oriented programming and the relationship between object and class", in which case I would have explained what a class was, etc.  

    -cw

     



  • @newguy said:

    @CodeWhisperer said:

    the question itself wasn't inappropriate, cruel, or tricky.

    Ok then. Let's hear what your answer would have been.

    And don't copy/paste something you found on Wikipedia.

    No, please, let's not.  This thread is boring enough already.

     
    I guess one problem with the question is that there doesn't seem to be any standard glossary for OOP terms that  apply to all languages, etc.  There are subtle variations in definitions for some terms (like class and object) that might be language-specific, or simply specific to a certain textbook or school of thought, etc.  And it's not really that useful to ask a candidate to define abstract CS terms, unless you're just trying to weed out the complete  fools.

    For example, the question is OK if you're trying to just get rid of the people who say something like "A class is what I took in college and an object is something you put in a box."  But if someone gives a definition that probably can be justified by some textbook or other commonly accepted thinking, that should suffice even if you don't completely agree with it.

     



  • @shadowman said:


    I guess one problem with the question is that there doesn't seem to be any standard glossary for OOP terms that  apply to all languages, etc.  There are subtle variations in definitions for some terms (like class and object) that might be language-specific, or simply specific to a certain textbook or school of thought, etc.  And it's not really that useful to ask a candidate to define abstract CS terms, unless you're just trying to weed out the complete  fools.

    Well, there is a fundamental definition: if an object is a first-order entity (a "value") in your language, then a class is the corresponding second-order entity (a "type"). Or in general, an N-order entity and the corresponding N+1-order entity, for languages where objects aren't first-order (rare, nobody's found a particularly good use for anything more than the three-order value/type/kind system).

    The thing is that this definition could apply to just about anything, and you need to specifically define either 'objects' or 'classes' in your language. Given a definition of one, the other is precisely fixed. The terms are defined in general in relation to each other, but the rest depends on the language in question. This means it's not a particularly interesting question in the general case.



  • @shadowman said:


    I guess one problem with the question is that there doesn't seem to be any standard glossary for OOP terms that  apply to all languages, etc.  There are subtle variations in definitions for some terms (like class and object) that might be language-specific, or simply specific to a certain textbook or school of thought, etc.  And it's not really that useful to ask a candidate to define abstract CS terms, unless you're just trying to weed out the complete  fools.

    For example, the question is OK if you're trying to just get rid of the people who say something like "A class is what I took in college and an object is something you put in a box."  But if someone gives a definition that probably can be justified by some textbook or other commonly accepted thinking, that should suffice even if you don't completely agree with it. 

    In a job interview, where you apply for a job as Java programmer, C# programmer, whatever, the context is narrow enough to make "correct" answers easily possible.



  • @shadowman said:

    No, please, let's not.  This thread is boring enough already.

    Oh ok, Grover. 



  • @CodeWhisperer said:

    @newguy said:

    Just one unbelievably cruel trick question posed to the candidate and a walk out. My boss is an asshat. 

    Not that your boss isn't an asshat - it sounds like he is - but this is in no way a 'trick question'.   The potential minefields are not staggering.   And it's not particularly cruel, either.

    It's not particularly interesting question unless you're going to digger deeper into it like "how does a class get instanced into an object?"   But it is essentially a definition question, the sort that CPound wants to see on his standardized interview tests.  

    The 30 minute tirade was entirely uncalled for, but the question itself wasn't inappropriate, cruel, or tricky.

    -cw

    Except, from the story, it sounds like the candidate gave the simple, stock answer and got shot down.  The definitions of Class and Object are vague enough that someone who just enjoys being an asshat could easily go on for half an hour to some poor recent grad.

    So while the question may be fine, the way The Boss asked it and responded are pretty good indicators of asshatery.   



  • I'm sorry, but the definitions of class and object are not at all vague. 



  • @newguy said:

    @CodeWhisperer said:
    the question itself wasn't inappropriate, cruel, or tricky.
    Ok then. Let's hear what your answer would have been.

    And don't copy/paste something you found on Wikipedia.

    An object is an instance of a class.  Why is this a difficult concept for you?

     



  • @FredSaw said:

    @newguy said:
    @CodeWhisperer said:
    the question itself wasn't inappropriate, cruel, or tricky.
    Ok then. Let's hear what your answer would have been.

    And don't copy/paste something you found on Wikipedia.

    An object is an instance of a class.  Why is this a difficult concept for you?

     


    Or an object is like and implementation of a theory that is the class. The class is like the blueprints of an object.



  • @Lingerance said:

    @FredSaw said:
    @newguy said:
    @CodeWhisperer said:
    the question itself wasn't inappropriate, cruel, or tricky.
    Ok then. Let's hear what your answer would have been.

    And don't copy/paste something you found on Wikipedia.

    An object is an instance of a class.  Why is this a difficult concept for you?

     


    Or an object is like and implementation of a theory that is the class. The class is like the blueprints of an object.

     Why go to such lengths to come up with these crazy metaphors? Why not just say, "An object is the instantiation of a type defined by a class."  Simple, understandable, correct.
     



  • text book answers are dull.



  • @tster said:

    @Lingerance said:
    @FredSaw said:
    @newguy said:
    @CodeWhisperer said:
    the question itself wasn't inappropriate, cruel, or tricky.
    Ok then. Let's hear what your answer would have been.

    And don't copy/paste something you found on Wikipedia.

    An object is an instance of a class.  Why is this a difficult concept for you?

     

    Or an object is like and implementation of a theory that is the class. The class is like the blueprints of an object.

     Why go to such lengths to come up with these crazy metaphors? Why not just say, "An object is the instantiation of a type defined by a class."  Simple, understandable, correct.
     

    What about structures? Also, I don't like the way Java treats primitives as not being objects.



  • Like the difference between @@IDENTITY and scope_identity() hey ammoQ



  • @milmin said:

    Like the difference between @@IDENTITY and scope_identity() hey ammoQ

    ???

    <trollmode>btw, real men use sequences</trollmode>


Log in to reply