對于前端開發人員的招聘,面試是非常關鍵的環節,而現實的情況是,很多招聘者是開發出身,不會面試,不知道問什么,問了一些常規問題,又不知道考察些什么。
這里分享一下我在面試過程中常問的一些問題(很多問題不僅限于前端開發),注意很多問題都是開放的,作為一個面試官,不要試圖準備幾個選擇題或填空題應付了事,面試不同與筆試,面試就是要以交流為主,互動討論總是要比直接的答案更能體現此人的能力。
我個人認為,任何時候,考察一個應聘者,綜合素質要優先于他的技術能力,做開發不是做航天飛船,一般智商不低的人通過學習都可以勝任大部分工作,關鍵的是人品、工作態度、分析能力、學習能力,這些都是與生俱來或潛移默化形成的,是很難通過學習獲得的,它們要比現有的技術經驗和技術能力更重要。
今天天氣還不錯,你是怎么過來的?
大概用了多久,離得遠么?
(如果遠的話)是自己的房子還是租的房子?經常這樣遠距離上班可以適應么?
緩解一下應聘者的緊張感,讓他盡快進入狀態,并能了解出行方式、大概的遠近。有時候工作地點遠近還真是大問題,即使應聘者可以接受,但是上班時間超過1個半小時的員工幸福感和工作效率會較低,流失率會比較高。
(用3分鐘時間)簡單做個自我介紹吧?
自我介紹是關鍵的環節,連自我介紹都說不好,說明對待面試和職業的態度很差。可以加上時間限制,或者讓應聘者自由發揮,看看他把握重點的能力和控制時間的能力。自我介紹一般來說應該包含年齡,籍貫,畢業院校、專業和時間,工作過的公司和時間,主要的項目,擔當的職務,用到的技術,擅長的技術等。
詳細介紹一個對你影響比較大的項目?
對于你剛才說的xxx項目,我很感興趣,你能詳細說一說么?
這個項目主要是 解決什么問題/完成什么事情?
你在這個項目里 的職責是什么/做了哪些事情?
這個項目用到了那些 技術/框架?
這個項目中大家是怎樣協作的?
這個項目主要的挑戰是什么?
這個項目遇到了哪些技術難點和問題?
你是怎樣解決的?
你覺得自己的解決方案還有改進的地方么?
這個項目中你學到了哪些?
針對某個(或某兩個,不要多)項目進行深入的提問,首先考察項目的真實性(有的應聘者編造簡歷,或者真假混合,比如把其他人做的事情說是自己做的,通過一系列提問,并在提問中抓住感興趣的點追問,可以很容易識別簡歷造假),還可以考察組織表達能力、技術能力、溝通協調能力、總結能力、攻關能力、學習能力等多方面能力。
為什么要離開上一家公司?
哪方面因素制約了你的發展?
你有沒有嘗試去解決?
如果你是老板,你會怎樣做?
一般人都會回答發展、薪資、出差、離家遠、加班等原因。對于這些原因一定要追問,比如你認為哪方面因素制約了你的發展?你有沒有嘗試去解決?每個公司都有好的和不好的方面,能從大局考慮,看到問題并提出解決方案的應聘者加分,而一味抱怨、不去解決的,永遠是出現困難第一個離開公司的人。
我看你簡歷上寫了不少的技術點,你最熟悉的是哪些?
能說說你對xx技術的理解么?
你最近在關注哪些技術?
平時喜歡玩點什么技術?
為什么要 關注/學習 這些技術?
好的技術人員,聽到問起技術會兩眼放光,尤其是自己擅長的技術,很希望能表達出來。很多東西在簡歷里體現不出來,需要不斷的挖掘。如果沒有興趣也沒有自信的話,要么就是特別內向低調,要么就是技術水平不行。
你喜歡什么樣的開發環境?
你喜歡用什么操作系統、IDE、瀏覽器、調試工具、版本管理工具...?
對于工具和環境的選擇可以看出應聘者的技術傾向和品位。
doctype有什么作用?
HTML5有哪些新增的特性是你很感興趣的?
瀏覽器標準模式和怪異模式之間的區別是什么?是如何觸發的?
HTTP協議是無狀態協議,怎么理解?
GET和POST請求有什么區別?
IE6有哪些兼容性問題?
解釋下 CSS sprites?
使用 CSS 預處理器(如Less、Sass)的優缺點有哪些?
CSS選擇器的優先級如何?
display都有哪些值,他們有什么區別?
響應式設計和自適應設計有什么不同?
有沒有兼容retina屏幕的經歷?
什么是閉包?
什么是事件代理?
解釋一下原型繼承?
什么是立即調用函數表達式?
如何使用原生js實現ajax請求?
如何實現跨域?
解釋一下AMD或CMD?
問一些HTML、CSS、JS的基礎知識,這些問題非常多,就不一一例舉了。注意根據應聘者的技能情況提問,并根據他的回答進一步深入的挖掘。在應聘者不熟悉或斷片的時候,可以給與善意的引導和提示。
如果讓你做一個移動展示頁面,可以上下滑動翻頁并有動畫效果的,你如何入手?
如果有一個網站訪問很慢,你如何解決?
如果讓你寫一個 彈出窗/幻燈圖片展示/tab頁... 插件,你如何實現?
為什么利用多個域名來提供網站資源會更有效?
從輸入 URL 到頁面加載完成的過程中都發生了什么事情?
什么是漸進增強和優雅降級?
問一些綜合性問題,注意考察應聘者知識的廣度和深度。還是那句話,根據應聘者的技能情況提問,并根據他的回答進一步深入的挖掘。
如果今年你打算熟練掌握一項新技術,那會是什么?
你編寫過的最酷的或最有成就感的代碼是什么?
你會業余做一些項目么?做過什么?
你喜歡創業么?你覺得現在哪些方向比較火,你有什么看法?
在技術問題過后,問一些發散性的輕松有趣的問題。
你覺得你和其他前端開發相比,有哪些 優勢/劣勢?
你未來3-5年有什么規劃?
你對我們公司有什么了解?為什么有興趣來我們公司?
了解應聘者優劣勢和職業規劃,看看是不是和公司的文化符合。
你有什么 想了解的/想問我的 問題么?
收尾問題,精明的應聘者應該在這個環節了解一下公司的產品、技術團隊現狀、使用的技術等等,并在其中找到和自己的切合點,表示出可以勝任和對職位的期待等,就不展開了。
一個優秀的面試官,應該對上面以及其他各方面的考察要點了然于胸,最后做到隨心所欲,無招勝有招。
他和應聘者像是朋友,兩個人就像日常聊天一樣,行云流水,從看似不經意的、自然而然的問答中,提取出自己需要的信息,這也是對應聘者的尊重。
最后希望每個公司順利找到合適的前端開發,每個前端開發都能拿offer拿到手軟 :)