問:面試的時候,面試官突然冒出一個之前沒有聽過的概念,請問我可以問面試官讓他把題目說清楚嗎?如果問的話他會不會覺得我很傻? 答:面試和筆試最大的區別是:面試是一個注重溝通交流的過程,而且溝通是雙向的。因此面試官可以問應聘者問題,同樣應聘者也可以問面試官問題。 通常在面試環節面試官的一個很重要的任務就是考察應聘者的學習愿望以及學習能力。學習能力怎么體現呢?面試官提出一個新概念,應聘者沒有聽說他,于是他在已有的理解的基礎上問進一步的問題,然后掌握了這個概念。這就是學習能力。通常學習能力強的人具有主動積極的態度。因此建議在應聘過程中碰到不明白的地方多提問,這樣面試官覺得你態度積極,求知欲望強烈,這樣會給面試結果加分。 舉個例子,google曾經有一道面試題:找出第1500個丑數。很多人都不知道丑數是什么。不知道怎么辦?面試官就坐在對面,可以問他啊。面試官會告訴你只含有2 、3、5三個因子的數就是丑數。你聽了后,覺得聽明白了,但不太確定,于是可以舉幾個例子并讓面試確認你的理解是不是對的: 6、8、 10、12都是丑數,但14就不是,對嗎?當面試官給出肯定的答復,你就知道自己的理解是對的了。問題問的是第1500個丑數,與順序有關。可是哪個數字時第一個丑數呢,1是不是第一個?這個你可能也不能確定,怎么辦?還是問面試官,他會告訴你1是或者不是丑數。題目是他出的,他有責任把題目給你解釋清楚。 有些面試官甚至故意一開始不把題目描述的清楚,讓題目存在一定的二義性。他期待應聘者能夠一步步通過提問來弄明白題目的要求。這就是在考察應聘者的溝通能力。為什么要這樣考察?因為實際工作也是這樣,不是一開始項目需求就定義得很清楚了。程序員需要多次與項目經理甚至客戶反復溝通才能把需求弄清楚。如果沒有一定的溝通能力,當程序員面對一個模糊的客戶需求時,他就會覺得無處下手。 比如最近很流行的一個面試題,面試官最開始問:如何求樹中兩個結點的最近公共父結點。此時面試官對題目中的樹的特點完全沒有給出描述。他希望應聘者在聽到問題后會提出幾個問題,比如這棵樹是二叉樹還是普通的樹。 如果面試官說是二叉樹,應聘者可以繼續問該樹是不是排序的二叉樹。面試官回答是排序的。聽到這里,應聘者才能確定思路:從書的根結點出發遍歷樹,如果當前結點都大于輸入的兩個結點,則下一步遍歷當前結點的左子樹;如果當前結點小于輸入的兩個結點,則下一步遍歷當前結點右子樹。一直遍歷到當前結點比一個輸入結點大而比另一個小的時候,此時當前結點就是符合要求的最近公共父結點。 如果應聘者問樹是不是二叉樹的時候,面試官回答是任意的樹。此時應聘者可以接著提問在樹結點中有沒有指向父結點的指針,面試官將會給出肯定的回答。由于樹的結點中有指向父結點的指針,因此從輸入的結點出發,沿著指向父結點的指針一直到樹的根結點,可以看做是一個鏈表,因此這個題目的解法就和求兩個鏈表的第一個公共結點的解法是一樣的了。 我們可以看出面試官給出不同的條件,將是兩個兩個完全不一樣的題目。如果一開始應聘者沒有弄清楚面試官的意圖就貿然動手解題,那結果很有可能是離題千里。從中我們也可以看出在面試過程中溝通的重要性,當覺得題目的條件、要求不夠明確的時候,一定要多提問來消除自己的疑惑。 作者:何海濤 |