Analytical Interview Questions

  • Jeff Moden (4/3/2011)


    GilaMonster (4/3/2011)


    Please note: 3 year old thread.

    It doesn't matter on such timeless subjects.

    I post those as a notification as to the original age so that people don't start addressing questions to the OP (who hasn't visited in a year) expecting answers.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Ah... got it. Thanks, Gail.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

  • GilaMonster (4/3/2011)


    Jeff Moden (4/3/2011)


    GilaMonster (4/3/2011)


    Please note: 3 year old thread.

    It doesn't matter on such timeless subjects.

    I post those as a notification as to the original age so that people don't start addressing questions to the OP (who hasn't visited in a year) expecting answers.

    Apart from that, you also can ref more resources at: Analytical thinking interview questions[/url]

    Best rgs

  • mrngorickets (6/21/2011)


    GilaMonster (4/3/2011)


    Jeff Moden (4/3/2011)


    GilaMonster (4/3/2011)


    Please note: 3 year old thread.

    It doesn't matter on such timeless subjects.

    I post those as a notification as to the original age so that people don't start addressing questions to the OP (who hasn't visited in a year) expecting answers.

    Apart from that, you also can ref more resources at: Analytical thinking interview questions[/url]

    Best rgs

    The problem with those questions is that anyone and everyone with little or no actual skill in SQL can BS their way through those kinds of questions. If you want to find out if someone is capable of analytical thinking, give them a problem to solve and I'm not talking about some oolie that no one could solve without prior knowledge. I'm talking about a nice, down to earth, real SQL problem.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

  • What do yall think about giving the interviewee a "broken" database to analyze? Script out one of your databases except remove some indexes, rewrite a basic update statement to use a cursor, rewrite a trigger to be mal-formed, remove some table contraints, etc., etc. Stick that database on a laptop and give the interviewee a couple of hours to play. I think the response from that would give you a very good measure of the guys experience. Anything like "it all looks just fine except you should should put SET NOCOUNT ON on your proc to improve performance" would be auto-eject while a thought out "here are the 12 things wrong and the ways to fix them" would be serious consideration.

    ______________________________________________________________________________
    How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.

  • Loner (7/11/2008)


    There are two rooms separating by a wall, one room has three lamps, the one one has three switches, can you tell how to find out which switch is for which lamp if you only allow to look at other room once. (Question from Bill Gates, he said if anyone can answer this question in five minutes, he would hire that person.) So far I asked many people this question, only one guy could answer this question within 5 minutes, he was a geek though.

    The version I've heard involved turning one light on for a while, then off, then turning another one on. The lightbulb that's off but warm is the one you left on for a while, the others are identified by their current state after eliminating that one.

    It's a dumb question though. It doesn't show problem-solving skills or anything like that. It shows ability to memorize riddles, really, since the answers are publically available.

    If I had to come up with questions to determine a person's analytical abilities, I'd stay away from riddles and stick to, "Tell me about the most urgent software problem you ever ran into and how you solved it". That aims at ability to think under pressure. Switch to "the most complicated" and you get that ability. Watch body language while they're thinking and answering, because somebody will try to BS his way through it, and body language will almost always give that away if you know what to look for.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon

  • That's a wonderfull idea. A very practical way of analyzing the skills of the candidate. I will try and use it in my organisation for conducting interviews and finding the right database guy.

  • toddasd (6/21/2011)


    What do yall think about giving the interviewee a "broken" database to analyze? Script out one of your databases except remove some indexes, rewrite a basic update statement to use a cursor, rewrite a trigger to be mal-formed, remove some table contraints, etc., etc. Stick that database on a laptop and give the interviewee a couple of hours to play. I think the response from that would give you a very good measure of the guys experience. Anything like "it all looks just fine except you should should put SET NOCOUNT ON on your proc to improve performance" would be auto-eject while a thought out "here are the 12 things wrong and the ways to fix them" would be serious consideration.

    Exactly. Throw in a backup/restore, partitioning a table,

    a couple of whacko database configurations, and an overgrown log file and you do much better finding someone who can actually do the job than using cheesy questions like "Tell us about a job or setting where great precision to detail was required to complete a task. How did you handle that situation?" My response would be (and has been), "Am I the only one in this room that thinks there isn't anything that a DBA or SQL Developer should do that doesn't actually require attention to detail?" 😉

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

  • Jeff Moden (6/21/2011)


    toddasd (6/21/2011)


    What do yall think about giving the interviewee a "broken" database to analyze? Script out one of your databases except remove some indexes, rewrite a basic update statement to use a cursor, rewrite a trigger to be mal-formed, remove some table contraints, etc., etc. Stick that database on a laptop and give the interviewee a couple of hours to play. I think the response from that would give you a very good measure of the guys experience. Anything like "it all looks just fine except you should should put SET NOCOUNT ON on your proc to improve performance" would be auto-eject while a thought out "here are the 12 things wrong and the ways to fix them" would be serious consideration.

    Exactly. Throw in a backup/restore, partitioning a table,

    a couple of whacko database configurations, and an overgrown log file and you do much better finding someone who can actually do the job than using cheesy questions like "Tell us about a job or setting where great precision to detail was required to complete a task. How did you handle that situation?" My response would be (and has been), "Am I the only one in this room that thinks there isn't anything that a DBA or SQL Developer should do that doesn't actually require attention to detail?" 😉

    One comment about this method. Make sure to put in the job opportunity going out that this is part of the interview process, and enforce the idea in the recruiters' minds. Will weed out 90% of the poor choices before you start. Only do this if you're going for very high level DBAs though, it'll scare the heck out of mid-levels. 😉


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • On the "give them a database with known problems and see what they say and do", that's my prefered interview/screening method.

    I actually posted a couple of such database in a thread on this site, but don't remember where.

    You can add in obvious problems, like tables named "A01F" or "Exec xp_CmdShell 'format c:'" (yes, you can name a table that if you use square-brackets around it), medium problems like Simple recovery on an OLTP database, and subtle problems like synonyms that point to user objects in tempdb (which will go away if you restart the SQL service). Judge based on what they find, but don't expect even a top-flight DBA to find everything in the first few minutes.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon

  • Craig Farrell (6/21/2011)


    Jeff Moden (6/21/2011)


    toddasd (6/21/2011)


    What do yall think about giving the interviewee a "broken" database to analyze? Script out one of your databases except remove some indexes, rewrite a basic update statement to use a cursor, rewrite a trigger to be mal-formed, remove some table contraints, etc., etc. Stick that database on a laptop and give the interviewee a couple of hours to play. I think the response from that would give you a very good measure of the guys experience. Anything like "it all looks just fine except you should should put SET NOCOUNT ON on your proc to improve performance" would be auto-eject while a thought out "here are the 12 things wrong and the ways to fix them" would be serious consideration.

    Exactly. Throw in a backup/restore, partitioning a table,

    a couple of whacko database configurations, and an overgrown log file and you do much better finding someone who can actually do the job than using cheesy questions like "Tell us about a job or setting where great precision to detail was required to complete a task. How did you handle that situation?" My response would be (and has been), "Am I the only one in this room that thinks there isn't anything that a DBA or SQL Developer should do that doesn't actually require attention to detail?" 😉

    One comment about this method. Make sure to put in the job opportunity going out that this is part of the interview process, and enforce the idea in the recruiters' minds. Will weed out 90% of the poor choices before you start. Only do this if you're going for very high level DBAs though, it'll scare the heck out of mid-levels. 😉

    Nah... you can make some serious extra money by filming for "Candid Camera". 😛

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

  • I think a lot of IT interviewers get caught up in the game of "how can I give them a gotcha questions".

    I have observered some of my co-workers gloating about how tough they are on people. It is almost sadistic and doesn't really accomplish the goal of finding someone that can do the job. It seems that it is more a way of asserting dominance or IT superiority over the new person.

    At the end of the day, we need to find qualified people. So don't make your interview questions insanely obscure in an effort to trip up the person. If you had to look up the answer before you posed the question, is it really fair to expect your target to know the answer off the top of his head?

    .

  • When I've interviewed people, I've presented them with a brief overview of a problem, which I then ask them to create a database design from (normalised or not - I'm reasonably loose on normalisation as long as the reasons for not implementing it fully can be proved, e.g. speeding up queries with a "total" column rather than constantly aggregating totals using a JOIN).

    Simple (and classic, at least to me!) example (annotated):

    You have been hired to design a new stock control computer system for Baby Clothes Inc. Items are purchased from multiple suppliers, and the same item may be supplied by more than one supplier. Customers can purchase items immediately if they are in stock, or order items that are not in stock. The system must support invoicing and should generate paper and e-mail invoices as PDF files, which must be stored. The system should support searching for individual items. It should also alert system administrators when a stock level falls below a certain level.

    Create a database design and outline the screens required to implement the above system as a Web site. Mention how you would maintain the speed of the system and how you would keep the system secure.

    I also present them with some ERDs and ask them how they could be improved. The ERDs are not necessarily incorrect, but there are potential improvements that can be made.

    Finally, I ask how they would create a couple of queries based on the sample ERDs given, how they would implement them (e.g. using sprocs/UDFs etc), and why.

    The first two allow me to see how they can assess a problem and resolve it, whilst the query questions give me an indication of their knowledge of both SQL and SQL Server objects.

    The one thing I have learnt from the interview process is MAKE THEM WRITE SOME CODE. I never used to do this and made some bad hires because of it. If I ever interview in the future I plan to present people with a problem, give them two hours and a laptop, and see what they have managed to put together.

    Mike.

  • mike.mcquillan (6/22/2011)


    The one thing I have learnt from the interview process is MAKE THEM WRITE SOME CODE. I never used to do this and made some bad hires because of it. If I ever interview in the future I plan to present people with a problem, give them two hours and a laptop, and see what they have managed to put together.

    While I don't doubt that your process would be very effective at rooting out unqualified people, I suspect you would also simply be annoying the people you are trying to attract. 😛

    In my last interview (3rd) which was face to face (after the two phone interviews) I had about 90 minutes available because it was the weekday and I took the afternoon off to interview. Frankly I spent the 90 minutes interviewing the company to determine if it was really the place I wanted to work and risk resigning from my (then) current position. If someone had asked me to go through a 2 hour scenario, not sure how I would have responded. If it was really to resolve their DB issues, I might have sent them a bill for the time. :w00t:

    I guess it depends on the position you are hiring for. Is it a mid-level or senior position? How much verification do you have already on their professional history? Would you really put an MCM through all of that? If the person had 3 years of experience at Microsoft, would you really be that worried about their tech skills?

    The tech interview should be by phone. By the time you schedule a face to face, you should have confidence that is not an issue.

    The face to face final interview should be determining if the person is a good fit with the team/company.

    I am sure there are many different opinions about this. This is merely my opinion on the process.

  • james.morrison 19355 (6/22/2011)


    Would you really put an MCM through all of that? If the person had 3 years of experience at Microsoft, would you really be that worried about their tech skills?

    Abso-friggin-lutely! Have you ever looked at the crap code in the Master database? I've also had some Microsoft "pros" tell me that deadlocks (up to 100 per day, IIRC) was a perfectly acceptable and normal thing. How about a Phd in Mathematics that couldn't do a simple numbering system conversion (1416 to base 10) People with letters behind their name better bloody well be able to demonstrate that those letters actually mean something and that includes MCM's!

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

Viewing 15 posts - 46 through 60 (of 66 total)

You must be logged in to reply to this topic. Login to reply