I've been to on a few interviews for middle tier roles. I've gotten a lot of questions about TSQL, indexing, database fundamentals, but not a single question on ADO. Is this a normal experience or is there a reason for this?
views:
138answers:
5I'd say it is because the database fundamentals are more important to the hiring officials. Maybe because so few developers actually have them (or at least my experience as the interviewer would suggest that to me).
The same points as HLGEM. I very often encounter people who "know" ADO, yet have no clue about SQL. In most cases this is because they've used ADO (usually drag and drop with the properties dialog) to create and manipulate their data (for example using ADO tables to be able to step through and update records), but don't really understand how it works "behind the scenes" in SQL.
Concentrating on SQL knowledges helps avoid bringing one of these people on to your team (let them write unscalable VB apps filled with concurrency problems at some other company).
Another point is that ADO is just a means to connect to an SQL database. There where methods before ADO, and there will be methods after ADO (for example LINQ centric frameworks). Understanding the underlying technology, and not just a single "tool" is important to many good employers - Would you hire someone who could only program C++ if they used the Visual Studio IDE? (Actually this is a very real problem I've encountered with some Java programmers, especially with regard to GUI programming)
I agree with HLGEM - an interviewer is more concerned with your understanding of database fundamentals rather than with a specific API for handling database-specific tasks.
Demonstrating that you know how to manipulate data and optimize query and server performance, is likely more valuable in determining whether you will be able to handle large databases than, say, demonstrating that you can build an application that can connect to an existing database and display results in a datagrid.
John Saunders comment nailed it (perhaps it was intentional??) -- the middle tier is really more of a tool and perhaps they aren't using what you think they are (ADO, ADO.Net, homegrown-system ABC, etc.). Also, part of your training will be how to use the middle tier the Company XYZ way. From my experience, there will be a templated way to use it and the real part of your job is getting the data out -- they can teach you how to fill in the blanks their way but want your database knowledge to be exceptional.
In my experience, T-SQL is where you can make the biggest performance increases. If someone has a basic smattering of T-SQL, but doesn't know about SARGable filters, indexes, effective use subqueries, views, and functions, then they will end up with a less-than scalable system.
Not to mention if they're someone who sees solutions in an iterative way, probably involving cursors.
T-SQL is a different way of thinking, and good interviewers need to notice that before hiring someone who's going to be writing T-SQL.
Rob