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



警告,这是一个很长的帖子。TL/DR:我的面试问题是不是太苛刻了?

好吧,在经历了9个月的失望之后,我想确保我们不会对资深开发者申请人抱有太高的期望。

我们是一家商业智能商店。然而,我们并不期望应聘者具备BI知识。如果你有扎实的T-SQL背景,这就是我们所需要的。接下来,我们将介绍分析服务、维度建模等方面的内容。所以我们测试的是T-SQL技能。一切都发生在SSMS内。

如果候选人通过了电话筛选,我们会让他们参加编码面试,我们会给他们7个问题和90分钟的宽裕时间。我在编码过程中在场,观察各种事情,比如他们如何使用工具,他们研究了什么,等等。应该指出的是,我们非常清楚地表明,他们可以使用任何资源,包括互联网,BOL等。

以下是问题的缩写形式,以避免泄露太多信息(因为他们可能会谷歌这个问题:p)

  1. Fizzbuzz -我想看看他们如何生成他们的行集。如果他们使用变量/循环,我死在
  2. Aggregation——这个问题基本上强制候选者使用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道这样的问题都答不出来。我是不是太苛刻了?我应该添加/删除这些东西吗?

问题多多。他们的公平程度取决于你的及格/不及格标准。考试越难,考生掌握的语言能力就越好。所以我认为这组问题没有问题,只要你不期望一个具体的分数或正确答案的百分比……

如果你担心考生对考试公平程度的看法,那就提前告诉他们,考试就是这样,只是一种观察/衡量他们解决问题能力和独立思考能力的语言……

最新更新