作為面試官的一些心得

pythontab發表於2016-07-12

以當前的現狀來看,優秀的畢業生會先被知名的大企業刷過一輪,那麼,相對不知名的企業招聘負責人要如何找到適合自己公司的技術人才呢?詢問過一些畢業生之後,我總結了如下經驗。

1. 招聘會上的招聘材料的準備

一場招聘會上公司林林總總,面試者要了解你公司,只有他晃過去的那幾秒鐘,一張意義鮮明的海報,就特別重要。

很多海報自己設計得漂亮,公司介紹得高大上,願景理念口號特別響。坦白說,如果。產品們常說的一個道理,做得好是0,符合使用者需求才是1。

那麼,面試者的需求是什麼?下面列一些關心的點,順序與關注度相關:

a、提供的崗位有哪些

來看看幾個例子,文案一:

Java工程師

必須條件


【必需條件】

(1)清晰的邏輯,深厚的程式設計功底,熟悉設計模式,掌握Java及其相關技術

(2)對技術研究感興趣,有較強的學習能力

(3)熟練的英文閱讀能力,以便迅速掌握最新技術

(4)熟悉Java 多執行緒及網路程式設計

(5)能夠適應中短期出差;



【優先條件】

(1)java 後臺服務開發經驗

(2)熟悉Eclipse外掛體系

(3)擅長JVM之上的其他語言(如Scala,Groovy以及BeanShell等)

(4)學習研究過大量開源軟體的原始碼和架構

(5)豐富的報表開發經驗

(6)熟悉Linux/Unix作業系統

(7)有工作流引擎相關的經驗

(8)有金融行業或者較大專案設計開發經驗

再來看看文案二:

Java軟體工程師


熟悉掌握Java語言及物件導向思想,熟悉運用各種設計模式

初始崗位:執行平臺開發工程師 、圖形化開發工具 IDE 工程師 ,技術支援工程師


這兩份出自本公司同一場地不同期的招聘會,相隔時間不過月餘,後面這份文案的招聘效果,就要好一些。

招聘會上的面試者時間是很有限的,你寫得再長,對方也只會提取招聘文案裡的關鍵字,此其一,如果有個面試者停留下來認真閱讀你的文案了,太過精細的內容會嚇阻他過來面試,就算這上面的每一個要求他都能滿足。

由上,我們可以推論得出,其實,文案二也不夠好,好的職位要求文案只需要關鍵字!

比如:

我們需要:JAVA開發 前端開發 大資料工程師 .Net開發

如果希望加上特定的限制,就應該使用特定的關鍵字,真要考核也不是靠文案排查,最終還是面試官的事情。擔心這樣表述很模糊麼?想想這個問題,如果一個Java開發者不懂其內涵的基本職責,他通過面試的概率也不高吧?


b、福利待遇有哪些

對薪資有底氣的,就放上工資,有年終獎績效獎的,就放上績效獎。

住宿補助,電腦補助,交通補助,電話補助,用餐補助有什麼寫上什麼。對於老員工來說,補助在工資裡幾乎無法覺察,而且,很多補助是你有我有大家有,那有什麼寫上來的必要呢?

可是,這些錢對畢業生來說,很重要,而且人人都不寫,就你寫了,這就是優勢。

就我個人經驗,福利裡最吸引人的,是包食宿。畢竟一線城市房租貴。


c、公司行業和規模

這方面就沒什麼好說的,有一說一,唯有一點要注意:不要灌輸情懷!

真情懷不是靠說的,說出來的情懷就是又累又沒錢給你。

這對於只是看海報來了解公司的面試人來說,是個負面印象,最好杜絕。


2. 一些面試的小小經驗

很多人都經歷過一些奇葩面試官吧?當自己作為面試官的時候,請意識到對面的這個人以後可能是你的同事。不裝逼,防雷劈。

下面提供一套面試的方法論(主要應用在3年以下經驗的招聘),基本能把面試時間控制在5~30分鐘,而且,自採用這套方法以來,沒有失誤過。

一般而言,面試的過程是筆試(可省略)->機試->技術面->人事面。

第一個前提,每一個步驟都要發揮它應有的價值,比如筆試,就應當劃分一個嚴格的分數線,針對招聘目標區分檔次。

第二個前提,你和麵試者的時間都很寶貴,為了照顧對方的面子而進行下一輪面試其實是傷害,雙方都很尷尬的,有這個時間不如提供職業諮詢和建議。


在筆試和機試部分,達不到要求的,可以考慮按分數直接謝絕,如果擔心誤傷(畢竟有些筆試題出題意圖就很詭異),可以考慮把分數線降低。

技術面部分,請確定你的招聘目標,是專研技術的研究者?還是走上市場的現場實施?對於不同的面試者,不要提出和你要求無關的問題。

如何篩選問題?對外包面試人提問spring的aop實現原理,就不太合適,因為你不需要他去研究spring,而應當偏重在問題解決上,比如JVM每隔幾天就會因為記憶體溢位掛掉,要要從哪裡入手解決。我會把我的問題劃分為三個方面:

基礎類,框架原理類,框架應用類。

假如面試的是研發人員,基礎類和原理類就屬於必查,實踐類就屬於加分項。


基礎類問題:

每個型別都可以繼續往下細分,這裡以基礎類作為講解,我會提三個問題:

1、什麼是物件導向

2、說一個你最熟悉的資料結構

3、說一個你最熟悉的演算法

第一題是必須題,後面兩道都是用於加分。

很簡單?說一個事實,在我兩省十多所大學四年的面試經驗中,這三道題能過濾掉八成的畢業生。來看我怎麼提問的:

問題一:

作為面試官的一些心得

該問題的難度以“吃方法”分界。

之前基本是考察語法和封裝性,以及對基本概念的重視程度。在提示之後依然沒有意識到自己錯誤的,堅決不用。

吃方法屬於進階題,看著很簡單,對於很多程式設計師來說就是直覺性就明白的問題吧?其實,這是需要多種能力的:

a、貓吃老鼠,要能理解貓是一個類,吃是一個方法,老鼠是一個類,作為吃的引數;

b、貓吃魚同理,吃老鼠和吃魚這兩個行為,本質上來說,都是吃食物

c、食物是單獨是個介面,老鼠和魚都是它的實現類。


看,物件導向分析理解,抽象能力,繼承和多型的應用,介面和類的理解,具備所有這些,才能快速準確的做好這個吃方法。


問題二:

說一個最熟悉的資料結構,又或者,簡單一點,說一下LinkedList和ArrayList的區別。相信很多面試者都遇到過這道看上去很蠢的題,網上有很多答案,他們說的基本都沒錯,但是,按這些答案來回答,不會給出很高的評價。

這樣提問:為什麼LinkedList查詢會比ArrayList慢?又或者,如果java沒有提供LinkedList,你要如何實現出來?

這裡考驗的能力有兩個,兩者有其一,都可以打出高分。

1、對於需求的理解能力

2、閱讀原始碼的興趣和能力

連結串列的定義是“表由一系列結點(連結串列中每一個元素稱為結點)組成,每個結點包括兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點地址的指標域”。

把這一段話當成需求,那麼,名詞有:表、結點、資料域、指標域。

同時又能得出它們的包含關係,表裡有多個結點,結點裡有資料域和指標域兩個部分。

完成了這一部分分析,自然就能設計出對應的LinkedList類。查詢為什麼會慢呢?查詢對應的是get方法,get(i)自然是要從頭結點的指標域迭代i次,取出對應結點資料域,這個迭代過程導致了慢。

無論是通過自行分析還是閱讀過原始碼懂得這個道理的,都說明具備一定能力或潛力。


問題三:

說一個最熟悉的演算法?

其實這裡考驗的是多個層級:

1、是否有認真準備面試

2、數理邏輯水準

3、演算法水準


拿最常見的排序演算法說事。

能說出任意排序演算法原理,說明至少有認真對待面試。

能說出快排、桶排、堆排等複雜一點的排序演算法,並且能指出得到最差和最優結果的輸入,這一部分,需要面試者能在腦中模擬演算法執行,根據演算法本身的原理,來解釋為什麼快和慢。

有認真學習過演算法,理解時間複雜度本身是什麼概念。

舉個例子,一個演算法的平均時間複雜度是O(1),另一個是O(n),真正執行的時候,前者會比後者快嗎?

答案是不一定,因為我壓根沒提輸入是什麼。

如果不能理解O(n)描述的是趨勢,那麼,對演算法的理解就還未入門。

又比如,如何計算一個歸併演算法,比如T(n)=T(n/2)+n/2的時間複雜度。這一方面考驗了演算法,一方面又考驗了在校時的學習能力。

框架原理和應用類問題:

面試官需要明白,框架問題回答不上來,並不說明對方比你差。

每個人的專精方向是不一樣的,框架這種事,也就是個工具學習和經驗的問題。用業務相關問題問同行的老鳥,能夠理解,來問畢業生和新手,問並不使用該框架的老鳥,就很莫名其妙。

對於這種情況應該如何考察呢?

框架不一樣,思想有相同。

1、詢問對方最熟悉的框架

2、詢問框架使用中遇到的最困難的問題

3、有沒有閱讀過框架原始碼,解釋一下框架某部分功能的實現原理

對於自己最熟悉的框架的瞭解程度,能說明面試者的真實水準。

有些新手使用框架的時間都很短,那麼,可以換個方式出題,比如:“你知道spring的依賴注入吧?假設spring沒有這種功能,讓你來寫這個,會如何寫?”

依賴注入並不是什麼黑科技,瞭解反射理解物件導向的程式設計師,都能答出個一二三四。


總結

公司和員工是雙向選擇關係,應聘者大可不必把自己放到“求”職的低位,面試官也請勿趾高氣揚。

不管招聘還是應聘,無非就是了解自己和對方的需求,然後展現優勢,而已。


文章轉自:http://www.cnblogs.com/anrainie/p/5640208.html

相關文章