高级SQL开发人员面试问题 - 太难了?

Der*_*omm 15 sql t-sql sql-server

警告,这是一个很长的帖子.TL/DR:面试问题我是否过于苛刻?

好的,在申请人总共大约9个月的失望之后,我想确保我们对高级开发人员申请人的期望不高.

背景

我们是一家商业智能商店.但是,我们不希望候选人获得BI知识.如果你有一个坚实的T-SQL背景,那就是我们所需要的.关于Analysis Services,Dimensional Modeling等,我们将为您提供其余的方法.因此,我们所有测试的都是T-SQL技能.一切都发生在SSMS内.

如果考生通过电话筛选,我们会带他们进行编码面试,我们会给他们7个问题和90分钟的慷慨.我在编码过程中出现了各种各样的东西,比如他们如何浏览工具,他们研究的内容等等.应该注意的是,我们非常清楚地知道他们可以使用任何资源,包括互联网,BOL,等等

问题

以下是缩写形式的问题,试图不给予太多分析(因为他们可能会谷歌这个问题:P)

  1. Fizzbuzz - 我想看看他们如何生成行集.如果他们使用变量/循环,我会死在里面
  2. 聚合 - 这个问题基本上迫使候选人使用select语句的全部范围(select,from,where,group by,having)
  3. NULL是如何工作的 - 我给出了一个"棘手"的问题,其中IN子查询由于子查询表中的NULL值而没有返回任何内容.我要求解决方法使查询工作,然后解释为什么它不首先.我想知道他们理解NULL值是什么/意味着什么以及SQL如何评估它们.
  4. 索引 - 没有索引的简单2连接查询.我要求候选人将整个查询子树的成本提高20%.我很快就发现他们之前是否已编入索引.我告诉他们"阅读问题.给我一些我要求的东西".遗憾的是,我认为单个申请人甚至没有注意到子树成本的开始或结束.
  5. 运行总计 - 我给出一个带有PK /日期/数值的表,并要求他们更新每个PK的运行总计的另一列.这并不容易,这是一项奇怪的任务.我不关心他们是否及时完成,但我想看看他们没有做过研究还是一次不错的尝试(即使它效率低下,至少开始编写一些相关的子查询).
  6. XML - 我要求他们从XML类型的列中检索值.我不希望候选人知道如何做到这一点,我告诉他们.这一点的目的是观察他们进行研究等,就像其他任何时候他们在工作中遇到新问题并需要解决它一样.
  7. CTE - 我只是要求他们写一个CTE.而已.奖励,如果它做一些创造性/有趣的事情.

就是这样.所以,我的问题是这些问题有多公平?我们正在寻找有实际经验的人.对我来说不可思议的是,拥有10年SQL经验的人甚至无法得到其中的1或2个问题.我太苛刻了吗?我应该添加/删除这些东西吗?

Cha*_*ana 2

问题。它们仅与您的通过/失败标准一样公平。测试越难,对候选人能力的衡量就越好...所以我认为这组问题没有问题,只要您不这样做期望正确答案的具体分数或百分比...

如果您担心考生对考试公平性的看法,请务必提前告诉他们,考试就是这样,只是观察/衡量他们解决问题的技能和能力的标准。思考他们的脚...

  • 说kewl不酷! (19认同)
  • @Derek - 我专业编写 SQL 代码的时间还不到 2 年,我肯定可以得到 6/7,也可能是第 7 个。如果您正在寻找“高级开发人员”,这绝不是一个太严格的要求。 (4认同)