前端HR告訴你—如何面試Web前端開發

 

分享一篇HR前端面試心得:前端

 

面試前端工程師對我來講是一件很是有意思的事,由於面試過程很大程度上也是自我提高的過程。不管大公司仍是小公司,之因此在如何招聘到真正有能力的,前端工程師方面會遇到一樣的問題。面試

 

面試前端工程師對我來講是一件很是有意思的事,由於面試過程很大程度上也是自我提高的過程。不管大公司仍是小公司,之因此在如何招聘到真正有能力的 前端工程師方面會遇到一樣的問題,就是由於負責招聘的那些人不知道本身公司須要什麼樣的人,結果問問題時也問不到點子上。通過這幾年在行業裏的摸索,我總 結出了本身的一套頗有效的面試前端工程的方法。數據庫

 

有的應聘者說我很差對付,但留給他們這樣的印象也並不是我所願。我以爲之因此他們說我很差對付,主要是由於我問他們問題時問得太細了。

瀏覽器

1、基本知識安全

咱們生活在互聯網時代,你想知道的任何事情幾乎都能在15分鐘內找到相關信息。但是,能找到信息並不等於你會使用它。我認爲全部前端工程師至少都應 該掌握某些基本的知識,纔能有效地完成本身的工做。若是一遇到問題,就停下工做上網四處搜索解決方案,怎麼可能保證定期完成工做呢?聽聽,還有誰在說「我 不知道,但我能夠上網搜到。下面我列出一些基本的知識點,這些都是我認爲一名前端工程師(不管工做年頭長短)在沒有任何外來幫助的狀況應該知道的。服務器

[list][*]前端工程師

DOM結構——兩個節點之間可能存在哪些關係以及如何在節點之間任意移動。學習

[*]測試

DOM操做——怎樣添加、移除、移動、複製、建立和查找節點。設計

[*]

事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差異。

[*]

XMLHttpRequest——這是什麼、怎樣完整地執行一次GET請求、怎樣檢測錯誤。

[*]

嚴格模式與混雜模式——如何觸發這兩種模式,區分它們有何意義。

[*]

盒模型——外邊距、內邊距和邊框之間的關係,IE 8如下版本的瀏覽器中的盒模型有什麼不一樣。

[*]

塊級元素與行內元素——怎麼用CSS控制它們、它們怎樣影響周圍的元素以及你以爲應該如何定義它們的樣式。

[*]

浮動元素——怎麼使用它們、它們有什麼問題以及怎麼解決這些問題。

[*]

HTML與XHTML——兩者有什麼區別,你以爲應該使用哪個並說出理由。

[*]

JSON——它是什麼、爲何應該使用它、到底該怎麼使用它,說出實現細節來。

[/list]

重申一下,上述這些知識點都應該是你應該「想都不用想」的東西。我一開始問的全部問題都是想摸清你對全部這些領域知識的掌握程度。雖然上面列出的這些知識點並無面面俱到,但我以爲你至少應該掌握這些,纔有可能跟我坐到一間辦公室裏來。


2、少許提問

 

我很是贊同面試者問的問題越少越好。反覆問應聘者各類問題既不公平,也很無聊。我在任何一次面試中,一般只問三個大問題,但每一個問題又會涉及我所能想到的多個方面。回答每一個大問題通常要通過幾個步驟,這樣我就能夠在每一個步驟中穿插着問一些小問題。

好比說:如今有一個正顯示着Yahoo!股票價格的頁面。頁面上有一個按鈕,你能夠單擊它來刷新價格,但不會從新加載頁面。請你描述一下實現這個功能的過程,假設服務器會負責準備好正確的股票價格數據。

 

這個問題牽扯到一組我想要考察的基本知識點:DOM結構、DOM操做、事件處理、XHR和JSON。若是我要求你對換一種處理股票價格的方式,或者 讓你在頁面中顯示其餘信息,就能夠把更多的知識點包括進來。對於經驗比較豐富應聘者,我也能夠自如地擴展要考察的知識範圍,最簡單像JOSN與XML的區 別、安全問題、容量問題,等等。

我還但願應聘者給出的任何解決方案中都不要使用庫。我想看到最原生態的代碼,你就當頁面中沒有包含任何庫。你說你對哪一個庫瞭解多少多少,但我不能把 關於庫的知識做爲評判能力的因素,由於庫是會隨時間變化的。我須要的是真正理解庫背後的機制,特別是可以徒手寫出一個本身的庫的人。


3、解決問題

 

作爲一名前端工程師,最值得高興的事莫過於解決同一個問題會有不少種不一樣的方法,而你要作的就是找出最合適的方法來。我在提問的時候,常常會在應聘 者解釋完一種方法後問他們還有沒有第二種方法。此時我會跟他們說,假設你的這個方法因爲種種緣由被否決了,那麼你還能不能給出另外一種方法。這樣作能夠達到 兩個目的。

 

首先,能夠測試出他們是否在毫無心義地複述書本中的東西。不能不認可,某些人確實有過目不忘的天賦,聽他們在那裏口若懸河地講,你會以爲他們什麼都 明白。但是,只要一跟這些人談到怎麼查找方案無效的緣由,以及可否拿出一個新方案來,他們每每就傻眼了。這時候,若是我聽到「我不明白這個方案爲何不夠 好」之類的反問,內心馬上就明白個人問題已經超出了他們的能力範圍,而他們只是想拿本身死記硬背的結論來矇混過關

其次,能夠測試出他們已經掌握的(仍是那句話,「想都不用想」)瀏覽器技術知識。若是他們對瀏覽器平臺的核心知識有較好的理解,想出解決同一問題的不一樣方案根本沒有那麼難。

 

對一名前端工程師來講,這絕對是最重要的能力。前端工程師在工做中遇到本該如此卻並未如此的難題(說你啦,IE6),應該說是一件很日常的事。一個方案無效就機關用盡的人,作不了前端工程師。

 

考覈應聘者解決問題能力的另外一層緣由,與個人我的喜愛有關。在搞清楚應聘者知道什麼不知道什麼以後,我就會想着問一個他們知識領域以外的問題。這樣 作的目的,就是想看看他們怎樣運用已有的知識解決新問題。在解決問題的每一步,我也準備了一些提示,以防有人會卡殼打艮(在我面前15分鐘一聲不響,對我 評價這我的毫無幫助)。我真正感興趣的,是他們可以從上一步前進到下一步。我但願看到一我的就在我眼前學到新知識。
4、有激情

要成爲一名優秀的前端工程師,最重要的莫過於對本身作的事要有激情。咱們技能都不是從學校中或者從研討會上學來的,所以前端工程師必須具有自學能 力。瀏覽器技術的變化可謂突飛猛進,因此也只有不斷提高本身的技能才作獲得與時俱進。我雖然不能強迫誰必須多看博客、不斷學習,但想應聘前端工程師的人恐 怕仍是必須這麼作的。

 

你怎麼知道誰對這種工做有沒有激情?實際上很是簡單。我只問一個簡單的問題:「目前你對什麼Web技術最感興趣?」這個問題永遠不會過時,並且也幾 乎不可能出錯……除非你答不上來。就眼下來講,我但願你對這個問題給出的技術中包括WebSocket、HTML、WebGL、客戶端數據庫,等等。只有 對Web開發充滿激情的人,纔會堅持不懈地學習新知識、掌握新技能;這些人才是我真正想要的。固然,我會讓他們詳細解釋本身提到的技術,以保證他們不是隨 口說了幾個時髦的新詞彙。

 

5、最後一點

 

計算機科學或者Web設計方面的知識固然也有用,但那都是基本知識以外的東西。只要基本知識在那兒了,一切就都有了基礎,想擴充知識面也不難。可 是,若是等到正式上班之後,還得從頭學習基本技能,那種難度是不可同日而語的。另外,高級前端工程師與通常工程師相比,確定須要掌握更多的技能。而面試幾乎沒有經驗大學畢業生,一樣也會有一套徹底不一樣的程序。我在這篇文章裏列出來的都是一些最基本的東西。

 

對於那些尚未多少面試經驗的人,我老是喜歡告訴他們,面試完了只要問本身一個問題就行:你想之後跟這我的在一塊兒共事嗎?若是無論爲何,回答是不,那就是不。

相關文章
相關標籤/搜索