2012-09-03 47 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