面試前端工程師對我來說是一件非常有意思的事,因為面試過程很大程度上也是自我提公升的過程。無論大公司還是小公司,之所以在如何招聘到真正有能力的前端工程師方面會遇到同樣的問題,就是因為負責招聘的那些人不知道自己公司需要什麼樣的人,結果問問題時也問不到點子上。經過這幾年在行業裡的摸索,我總結出了自己的一套很有效的面試前端工程的方法。
有的應聘者說我不好對付,但留給他們這樣的印象也並非我所願。我覺得之所以他們說我不好對付,主要是因為我問他們問題時問得太細了。以前我曾專門寫過一些東西,告訴應聘者怎麼才能通過我的面試(surviving an interview with me)以及優秀的前面工程師應該具備什麼樣的素質(what makes a good front end engineer?),而我的面試可以說完全是按照那兩篇文章的標準進行的。我不會問一些特別偏門的問題,也不認為出幾道邏輯題就能考出人的真實水平。我唯一的想法就是確定你能否勝任我們要招的這個職位。為此,我需要簡單地考察如下幾個方面。
我們生活在網際網路時代,你想知道的任何事情幾乎都能在15分鐘內找到相關資訊。可是,能找到資訊並不等於你會使用它。我認為所有前端工程師至少都應該掌握某些基本的知識,才能有效地完成自己的工作。如果一遇到問題,就停下工作上網四處搜尋解決方案,怎麼可能保證按期完成工作呢?聽聽,還有誰在說「我不知道,但我可以上網搜到。」請這些同學把手舉起來,讓大家認識一下(immediately raises a flag for me.)。下面我列出一些基本的知識點,這些都是我認為一名前端工程師(無論工作年頭長短)在沒有任何外來幫助的情況應該知道的。
重申一下,上述這些知識點都應該是你應該「想都不用想」的東西。我一開始問的所有問題都是想摸清你對所有這些領域知識的掌握程度。雖然上面列出的這些知識點並沒有面面俱到,但我覺得你至少應該掌握這些,才有可能跟我坐到一間辦公室裡來。
我非常贊同面試者問的問題越少越好。反覆問應聘者各種問題既不公平,也很無聊。我在任何一次面試中,通常只問三個大問題,但每個問題又會涉及我所能想到的多個方面。回答每個大問題一般要經過幾個步驟,這樣我就可以在每個步驟中穿插著問一些小問題。比如說:
這個問題牽扯到一組我想要考察的基本知識點:dom結構、dom操作、事件處理、xhr和json。如果我要求你對換一種處理****的方式,或者讓你在頁面中顯示其他資訊,就可以把更多的知識點包括進來。對於經驗比較豐富應聘者,我也可以自如地擴充套件要考察的知識範圍,最簡單像josn與xml的區別、安全問題、容量問題,等等。
我還希望應聘者給出的任何解決方案中都不要使用庫。我想看到最原生態的**,你就當頁面中沒有包含任何庫。你說你對哪個庫了解多少多少,但我不能把關於庫的知識作為評判能力的因素,因為庫是會隨時間變化的。我需要的是真正理解庫背後的機制,特別是能夠徒手寫出乙個自己的庫的人。
做為一名前端工程師,最值得高興的事莫過於解決同乙個問題會有很多種不同的方法,而你要做的就是找出最合適的方法來。我在提問的時候,經常會在應聘者解釋完一種方法後問他們還有沒有第二種方法。此時我會跟他們說,假設你的這個方法由於種種原因被否決了,那麼你還能不能給出另一種方法。這樣做可以達到兩個目的。
首先,可以測試出他們是否在毫無意義地複述書本中的東西。不能不承認,某些人確實有過目不忘的天賦,聽他們在那裡滔滔不絕地講,你會覺得他們什麼都明白。可是,只要一跟這些人談到怎麼查詢方案無效的原因,以及能否拿出乙個新方案來,他們往往就傻眼了。這時候,如果我聽到「我不明白這個方案為什麼不夠好」之類的反問,心裡立刻就明白我的問題已經超出了他們的能力範圍,而他們只是想拿自己死記硬背的結論來蒙混過關。
其次,可以測試出他們已經掌握的(還是那句話,「想都不用想」)瀏覽器技術知識。如果他們對瀏覽器平台的核心知識有較好的理解,想出解決同一問題的不同方案根本沒有那麼難。
對一名前端工程師來說,這絕對是最重要的能力。前端工程師在工作中遇到本該如此卻並未如此的難題(說你啦,ie6),應該說是一件很平常的事。乙個方案無效就無計可施的人,做不了前端工程師。
考核應聘者解決問題能力的另一層原因,與我的個人喜好有關。在搞清楚應聘者知道什麼不知道什麼之後,我就會想著問乙個他們知識領域之外的問題。這樣做的目的,就是想看看他們怎樣運用已有的知識解決新問題。在解決問題的每一步,我也準備了一些提示,以防有人會卡殼打艮(在我面前15分鐘一言不發,對我評價這個人毫無幫助)。我真正感興趣的,是他們能夠從上一步前進到下一步。我希望看到乙個人就在我眼前學到新知識。
注意:所有問題都與瀏覽器技術相關。我不相信出幾道抽象的邏輯題,就能夠考出某人解決web技術問題的能力。在我看來,這無異於讓素描大師畫肖像(或者讓劉翔跟博爾特同場競技),沒有意義,也得不到任何有價值的資訊。
要成為一名優秀的前端工程師,最重要的莫過於對自己做的事要有激情。我們技能都不是從學校中或者從研討會上學來的,因此前端工程師必須具備自學能力。瀏覽器技術的變化可謂日新月異,所以也只有不斷提公升自己的技能才做得到與時俱進。我雖然不能強迫誰必須多看部落格、不斷學習,但想應聘前端工程師的人恐怕還是必須這麼做的。
你怎麼知道誰對這種工作有沒有激情?實際上非常簡單。我只問乙個簡單的問題:「目前你對什麼web技術最感興趣?」這個問題永遠不會過期,而且也幾乎不可能出錯……除非你答不上來。就眼下來說,我希望你對這個問題給出的技術中包括websocket、html、webgl、客戶端資料庫,等等。只有對web開發充滿激情的人,才會堅持不懈地學習新知識、掌握新技能;這些人才是我真正想要的。當然,我會讓他們詳細解釋自己提到的技術,以保證他們不是隨口說了幾個時髦的新詞彙。
電腦科學或者web設計方面的知識當然也有用,但那都是基本知識之外的東西。只要基本知識在那兒了,一切就都有了基礎,想擴充知識面也不難。可是,如果等到正式上班以後,還得從頭學習基本技能,那種難度是不可同日而語的。另外,高階前端工程師與一般工程師相比,肯定需要掌握更多的技能。而面試幾乎沒有經驗大學畢業生,同樣也會有一套完全不同的程式。我在這篇文章裡列出來的都是一些最基本的東西。
對於那些還沒有多少面試經驗的人,我總是喜歡告訴他們,面試完了只要問自己乙個問題就行:你想以後跟這個人在一起共事嗎?如果不管為什麼,回答是不,那就是不。
面試前端工程師對我來說是一件非常有意思的事,因為面試過程很大程度上也是自我提公升的過程。無論大公司還是小公司,之所以在如何招聘到真正有能力的前端工程師方面會遇到同樣的問題,就是因為負責招聘的那些人不知道自己公司需要什麼樣的人,結果問問題時也問不到點子上。經過這幾年在行業裡的摸索,我總結出了自己的一套很有效的面試前端工程的方法。
有的應聘者說我不好對付,但留給他們這樣的印象也並非我所願。我覺得之所以他們說我不好對付,主要是因為我問他們問題時問得太細了。以前我曾專門寫過一些東西,告訴應聘者怎麼才能通過我的面試(surviving an interview with me)以及優秀的前面工程師應該具備什麼樣的素質(what makes a good front end engineer?),而我的面試可以說完全是按照那兩篇文章的標準進行的。我不會問一些特別偏門的問題,也不認為出幾道邏輯題就能考出人的真實水平。我唯一的想法就是確定你能否勝任我們要招的這個職位。為此,我需要簡單地考察如下幾個方面。
前端工程師面試工作分析
1 自學能力強,能夠快速學習新技術並投入工作中使用 2 在某一塊技術領域內有深入的研究 3 基礎知識紮實 包括html css js 4 善於對學習過的知識和工作中遇到的問題進行總結歸納 5 經驗豐富,會的知識多 6 能扛得住壓力,加得了班 7 踏實肯幹 1 每天堅持學習2個小時前端相關知識 2 找...
面試官說 如何面試Web前端開發工程師
近來幾個月,一直在努力尋找前端戰友,未果,一路的招聘經歷下來,心生不少感慨,一直都很小心翼翼的,怕錯失了高人,又更加怕失誤把關不夠招到不合格的同學進來公司,對公司對專案造成某些影響。面試前端工程師對我來說是一件非常有意思的事,因為面試過程很大程度上也是自我提公升的過程。無論大公司還是小公司,之所以在...
前端工程師如何才能不焦慮?
進入2019年,中國網際網路充滿了焦慮的氣息,不斷有各種負面的訊息,年初的網際網路行業的集體大裁員,讓大家真實感受了一下網際網路下半場的變化。外企最近幾年持續的退出中國,裁撤國內研發中心,曾經高大上的代表也逐步褪去了光鮮的外表,不過好在補償並不虧待,加上外企培養的良好個人素質,再出發也許並不困難。但...