May 20, 2011 at 11:27 am
I'm being asked, as the DBA, to participate in the technical portion of an interview this afternoon. The candidate is applying to be the manager of our developers, all of whose applications use SQL Server as the data tier. One of our CIO's areas of focus is in improving our development process, with a specific eye towards doing better database development. So she's looking for someone who can help guide the developers away from the old, entrenched practices (cursors, WITH (NOLOCK) being a "best practice", shared SQL logins all having sa permissions, data consistency handled in the application layer, all interactions with SQL Server being EXEC(@sql), etc), and she's asked me to help vet the candidates for SQL Server literacy.
Problem is, I've never been involved in an interview from that side of the desk before, so I don't really know how to go about determining that. I'm trying to put together a "starter" list of questions to give me an idea of how conversant she is with SQL Server, while bearing in mind that she herself won't be doing development work.
What do people think of these questions? Any input on what else I can include, or which of them I should ditch? (These have mostly been drawn from Google digging, including from SSC - so they might look familiar)
* Where do you think business logic should live? Why?
* Where do you think business rules about data should be enforced? Why?
* What's the difference between blocking and deadlocking?
* What does NULL mean? When would you use or not use it?
* What are the differences between INNER, LEFT, RIGHT, and FULL joins?
* When might you use a cursor?
* If you're running a SELECT against a large table, and it's taking longer than you expect, how would you begin to solve the problem?
* What are the differences between DELETE FROM and TRUNCATE TABLE?
* What are the differences between a primary key, a clustered index, and a non-clustered index?
Thanks for any input anyone can provide!
______
Twitter: @Control_Group
May 20, 2011 at 11:40 am
I think that you have good questions.
I have listed some links that may give you some ideas and compliment the questions that you already have.
You may want to ask questions about how do they motivate employees, interact with subordinates, Business Analyst, DBAs, Customers, etc.
How do they handle conflict and ask them what was the most challenging experience that he had to deal with and how he handled it.
Ask them how high they rate themselfs in the skill set them as them tough technical questions.
Find out why they want to work for your company.
For better, quicker answers on T-SQL questions, click on the following...
http://www.sqlservercentral.com/articles/Best+Practices/61537/
For better answers on performance questions, click on the following...
http://www.sqlservercentral.com/articles/SQLServerCentral/66909/
May 20, 2011 at 11:41 am
Those look like reasonable technical screening questions.
Given the position and purpose, I'd probably incline towards:
What are the advantages and disadvantages of stored procedures compared to inline code?
What's SQL injection and what do you do about it?
What's the point of "minimum permissions necessary"?
What are the first steps you take to performance test and tune a T-SQL script/batch/proc?
Those directly address issues you mentioned.
- 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
May 20, 2011 at 11:44 am
Interesting. It seems almost as though some of these questions are at too low a level. I might instead ask more development philosophical type questions:
- How important is it for developers to learn SQL?
- Is it OK for a developer to write a loop that makes multiple calls to the DB if that's the quickest way to build the method?
- Do you think RI should be explicitly created in the database?
- How do you scale out a solution? app layer, db layer, both?
Things that let you determine if someone is more mature/intelligent in how they view the DB as a part of the solution or is it just a dumb store.
May 20, 2011 at 11:48 am
I would also be interested in knowing if the candidate knows
- The differences between the different types of functions; scalar, table valued and multi statement, and how they affect performance.
- Transaction isolation levels (hate it when I see misuse of NOLOCK/READ UNCOMMITTED, and trust me, I see it too often)
- Good understanding of how transactions work. For example how TRY...CATCH can be used with COMMIT and ROLLBACK.
- Proper understanding of triggers. Too many still believe triggers are executed per affected row.
- How NULL affect IN, NOT IN, aggregate functions etc.
- Difference between (NOT) IN and (NOT) EXISTS.
- How indexes can affect performance, both positive and negative.
- How would the candidate solve a multi optional parameter stored procedure, for example a procedure used for searching when one or more parameters can be NULL. Catch-all queries vs dynamic SQL.
These are just a few things that popped out of my head.
May 20, 2011 at 11:53 am
Since they will be a manager don't forget that aspect as well.
How do you learn?
Are you active in/or have you ever participated in User Groups?
How do you encourage others to learn?
What do you think of Certifications?
What kind of training have you been to/participated in?
What kind of training do you feel is most successful?
How do you motivate people?
(really open ended, but you want to make sure the answer isn't fear and indimidation)
Ask them to tell you about a Great Manager they've had in the past, and what was so great about them.
Ask them to tell you about a really bad manager they've had, and what they learned not to do as a result.
Twitter: @SQLBalls
Blog: http://www.SQLBalls.com
Channel: https://www.youtube.com/@Tales-from-the-Field
May 20, 2011 at 11:57 am
Q: Ever heard of nHibernate?
A: Yes
Q: Next candidate!
Those are decent questions, but they lean a bit heavily towards database development and little away from straight-up development. You might want to ask a more open-ended question such as:
On your last project, how did you handle data retrieval and writes from the database?
Get them to discuss their approach and philosophy as much as asking them more grotty details.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
May 20, 2011 at 11:57 am
I somehow failed to see that this is for a manager position. Then I agree with some of the others that there are more important qualifications that pure technical ones.
May 20, 2011 at 11:58 am
Can you describe first and second normal forms?
And/Or What's the difference between first and second normal form and what is the importance/signifigence of that difference?
There is also a list of question posted by Paul Randal that might be of interest:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=53085&whichpage=1
May 20, 2011 at 12:01 pm
Grant Fritchey (5/20/2011)
Q: Ever heard of nHibernate?A: Yes
Q: Next candidate!
+10!
Wayne
Microsoft Certified Master: SQL Server 2008
Author - SQL Server T-SQL Recipes
May 20, 2011 at 12:08 pm
All of the above is good, but there are a few things you're going to want to know from a technical lead standpoint:
- Your web programmer and database developer have different philosophies on a particular task. How do you go about finding the best solution?
- Do you consider clean code or fast turnaround to be more important?
- What do you do if code fails peer review not on accuracy but on technical merits?
etc.
You need to think as much about the interaction as their techncial skills. A manager isn't going to be in the dirt, you are. What you need to find out is both what their skill level is for communication later as well as what they're bringing to the table as the leader of the team you're trying to work with.
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
May 20, 2011 at 12:09 pm
Welsh Corgi (5/20/2011)
I think that you have good questions.I have listed some links that may give you some ideas and compliment the questions that you already have.
You may want to ask questions about how do they motivate employees, interact with subordinates, Business Analyst, DBAs, Customers, etc.
How do they handle conflict and ask them what was the most challenging experience that he had to deal with and how he handled it.
Ask them how high they rate themselfs in the skill set them as them tough technical questions.
Find out why they want to work for your company.
Those are absolutely important questions, but at least in this instance, that's outside the scope of my role. I'm being called in strictly for a technical assessment of SQL Server familiarity in the context of managing developers who work with SQL. The hiring manger - the CIO, in this case - will also be in the interview, and will be handling the "are you a qualified manager" sorts of questions.
GSquared and Steve Jones - thanks for the input. You've both done a better job of getting at the core ideas I want to explore than I did; I've updated a couple of my questions to yours.
Grant Fritchey
Get them to discuss their approach and philosophy as much as asking them more grotty details.
That's definitely what I want to get at, but I'm not sure how. I was trying to elicit some insight into that by way of probing some technical details, but I don't know how well I can do that. I'll definitely incorporate the "on your last project" question you suggest.
Thanks to everyone so far for the input!
______
Twitter: @Control_Group
May 20, 2011 at 12:54 pm
Stay away from 'quote from BoL' type questions, they can be memorised. I like questions where the candidate has to discuss the topic, less chance they swatted up from a book or memorised interview questions.
How would you approach error handling in stored procedures?
What would your approach be if asked to create suitable indexes for a set of tables?
What's your preferred data access methodology and why?
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
Viewing 13 posts - 1 through 12 (of 12 total)
You must be logged in to reply to this topic. Login to reply