2012-09-03 49 views
1

因为这并没有被要求任何在那里我能找到的SO,因为我可能会雇用一个Haskell开发不久我想我会提起这事..哈斯克尔面试问题

什么是一些详细的口头提问的问题将证明haskell的强大工作知识。我可以想到几个很好的问题和编码项目,但它确实有助于了解其他人的想法。

+6

也许这个问题更适合http://programmers.stackexchange.com – Duopixel

+0

任何语言的一个好问题:“什么是语言X中最糟糕的疣?”。缺点:你必须知道语言X来评估他们答案的质量。 –

+0

我想大多数haskell开发人员不希望工作.... – pyCthon

回答

1

我通常会询问面试问题,从容易开始并努力学习。最终你会遇到一个足够难以让候选人失败或者至少出汗的问题,然后你会看到他们是如何处理压力的。因此,对于哈斯克尔

,你可能会去:

  • 简单:生成素数的列表
  • 介质:编写一个函数,给第n个Fibonacci数
  • 硬:展示使用的单子
+0

我喜欢这种方法和例子是好的。他们表明,他们在网上阅读教程,我猜可能是非常困难,看看他们将如何解决与问题有关的问题试图解决 – pyCthon

1

我最喜欢的是以下几点:

编写一个函数按元素的频率对列表进行排序。最不经常出现在列表中的元素应该先出现,而最常出现的元素应该最后出现。例如,[3,2,1,2]应按[3,1,2,2]排序。

我喜欢这样的问题,因为他们允许申请人提供一个简单的解决方案,并仍然可以讨论更有效的替代方案。

当然,在面试后面你会想问更复杂的问题。

+1

最频繁的应该先去,最频繁的应该去最后?那么一种分裂人格的名单,不是吗? – danr

+0

@danr更像是一个错字:) – aleator

0

“解释你所看到的Monad,ApplicativeArrow的相对优点和缺点。”

“解释你认为使用类型族和依赖类型的相对优点和缺点。”

但是,主要的是,您希望看到一些代码,然后写在那里,您需要提出有关他们如何在各种情况下开发解决方案的问题。

+1

..以及当然一般问题,以找出它们是什么样的: – AndrewC

+1

问“为什么你想离开你目前/以前的工作?”看看他们是不是不能忍受不容忍或脾气暴躁。问“你会遇到很多其他的开发人员,有些非常好,有些是垃圾,是什么让一个真正的开发人员变得更好?”了解他们是否可以与您的团队合作以及他们认为您在寻找什么。问“我们致力于高质量的软件。什么对你很重要,你如何确保这件事发生?“找出他们认为重要的事情,询问”是什么让一个好同事?“了解他们的态度,不要雇用那些利用机会呻吟的人! – AndrewC