1982吃貨一枚
近來幾個月,一直在努力尋找前端戰(zhàn)友,未果,一路的招聘經(jīng)歷下來,心生不少感慨, 一直都很小心翼翼的,怕錯失了高人,又更加怕失誤把關(guān)不夠招到不合格的同學(xué)進(jìn)來公司,對公司對項目造成某些影響。面試前端工程師對我來說是一件非常有意思的事,因為面試過程很大程度上也是自我提升的過程。無論大公司還是小公司,之所以在如何招聘到真正有能力的 前端工程師方面會遇到同樣的問題,就是因為負(fù)責(zé)招聘的那些人不知道自己公司需要什么樣的人,結(jié)果問問題時也問不到點(diǎn)子上。經(jīng)過這幾年在行業(yè)里的摸索,我總 結(jié)出了自己的一套很有效的面試前端工程的方法。有的應(yīng)聘者說我不好對付,但留給他們這樣的印象也并非我所愿。我覺得之所以他們說我不好對付,主要是因為我問他們問題時問得太細(xì)了。以前我曾專門寫過一些 東西,告訴應(yīng)聘者怎么才能通過我的面試(Surviving an interview with me)以及優(yōu)秀的前面工程師應(yīng)該具備什么樣的素質(zhì)(What makes a good front end engineer?),而我的面試可以說完全是按照那兩篇文章的標(biāo)準(zhǔn)進(jìn)行的。我不會問一些特別偏門的問題,也不認(rèn)為出幾道邏輯題就能考出人的真實水平。我 唯一的想法就是確定你能否勝任我們要招的這個職位。為此,我需要簡單地考察如下幾個方面?;局R我們生活在互聯(lián)網(wǎng)時代,你想知道的任何事情幾乎都能在15分鐘內(nèi)找到相關(guān)信息??墒?,能找到信息并不等于你會使用它。我認(rèn)為所有前端工程師至少都應(yīng) 該掌握某些基本的知識,才能有效地完成自己的工作。如果一遇到問題,就停下工作上網(wǎng)四處搜索解決方案,怎么可能保證按期完成工作呢?聽聽,還有誰在說“我 不知道,但我可以上網(wǎng)搜到?!闭堖@些同學(xué)把手舉起來,讓大家認(rèn)識一下(immediately raises a flag for me.)。下面我列出一些基本的知識點(diǎn),這些都是我認(rèn)為一名前端工程師(無論工作年頭長短)在沒有任何外來幫助的情況應(yīng)該知道的。DOM結(jié)構(gòu)——兩個節(jié)點(diǎn)之間可能存在哪些關(guān)系以及如何在節(jié)點(diǎn)之間任意移動。DOM操作——怎樣添加、移除、移動、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)。事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。XMLHttpRequest——這是什么、怎樣完整地執(zhí)行一次GET請求、怎樣檢測錯誤。嚴(yán)格模式與混雜模式——如何觸發(fā)這兩種模式,區(qū)分它們有何意義。盒模型——外邊距、內(nèi)邊距和邊框之間的關(guān)系,IE 8以下版本的瀏覽器中的盒模型有什么不同。塊級元素與行內(nèi)元素——怎么用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應(yīng)該如何定義它們的樣式。浮動元素——怎么使用它們、它們有什么問題以及怎么解決這些問題。HTML與XHTML——二者有什么區(qū)別,你覺得應(yīng)該使用哪一個并說出理由。JSON——它是什么、為什么應(yīng)該使用它、到底該怎么使用它,說出實現(xiàn)細(xì)節(jié)來。重申一下,上述這些知識點(diǎn)都應(yīng)該是你應(yīng)該“想都不用想”的東西。我一開始問的所有問題都是想摸清你對所有這些領(lǐng)域知識的掌握程度。雖然上面列出的這些知識點(diǎn)并沒有面面俱到,但我覺得你至少應(yīng)該掌握這些,才有可能跟我坐到一間辦公室里來。少量提問我非常贊同面試者問的問題越少越好。反復(fù)問應(yīng)聘者各種問題既不公平,也很無聊。我在任何一次面試中,通常只問三個大問題,但每個問題又會涉及我所能想到的多個方面。回答每個大問題一般要經(jīng)過幾個步驟,這樣我就可以在每個步驟中穿插著問一些小問題。比如說: 現(xiàn)在有一個正顯示著Yahoo!股票價格的頁面。頁面上有一個按鈕,你可以單擊它來刷新價格,但不會重新加載頁面。請你描述一下實現(xiàn)這個功能的過程,假設(shè)服務(wù)器會負(fù)責(zé)準(zhǔn)備好正確的股票價格數(shù)據(jù)。這個問題牽扯到一組我想要考察的基本知識點(diǎn):DOM結(jié)構(gòu)、DOM操作、事件處理、XHR和JSON。如果我要求你對換一種處理股票價格的方式,或者 讓你在頁面中顯示其他信息,就可以把更多的知識點(diǎn)包括進(jìn)來。對于經(jīng)驗比較豐富應(yīng)聘者,我也可以自如地擴(kuò)展要考察的知識范圍,最簡單像JOSN與XML的區(qū) 別、安全問題、容量問題,等等。我還希望應(yīng)聘者給出的任何解決方案中都不要使用庫。我想看到最原生態(tài)的代碼,你就當(dāng)頁面中沒有包含任何庫。你說你對哪個庫了解多少多少,但我不能把 關(guān)于庫的知識作為評判能力的因素,因為庫是會隨時間變化的。我需要的是真正理解庫背后的機(jī)制,特別是能夠徒手寫出一個自己的庫的人。解決問題做為一名前端工程師,最值得高興的事莫過于解決同一個問題會有很多種不同的方法,而你要做的就是找出最合適的方法來。我在提問的時候,經(jīng)常會在應(yīng)聘 者解釋完一種方法后問他們還有沒有第二種方法。此時我會跟他們說,假設(shè)你的這個方法由于種種原因被否決了,那么你還能不能給出另一種方法。這樣做可以達(dá)到 兩個目的。首先,可以測試出他們是否在毫無意義地復(fù)述書本中的東西。不能不承認(rèn),某些人確實有過目不忘的天賦,聽他們在那里滔滔不絕地講,你會覺得他們什么都 明白??墒牵灰桓@些人談到怎么查找方案無效的原因,以及能否拿出一個新方案來,他們往往就傻眼了。這時候,如果我聽到“我不明白這個方案為什么不夠 好”之類的反問,心里立刻就明白我的問題已經(jīng)超出了他們的能力范圍,而他們只是想拿自己死記硬背的結(jié)論來蒙混過關(guān)。其次,可以測試出他們已經(jīng)掌握的(還是那句話,“想都不用想”)瀏覽器技術(shù)知識。如果他們對瀏覽器平臺的核心知識有較好的理解,想出解決同一問題的不同方案根本沒有那么難。對一名前端工程師來說,這絕對是最重要的能力。前端工程師在工作中遇到本該如此卻并未如此的難題(說你啦,IE6),應(yīng)該說是一件很平常的事。一個方案無效就無計可施的人,做不了前端工程師。考核應(yīng)聘者解決問題能力的另一層原因,與我的個人喜好有關(guān)。在搞清楚應(yīng)聘者知道什么不知道什么之后,我就會想著問一個他們知識領(lǐng)域之外的問題。這樣 做的目的,就是想看看他們怎樣運(yùn)用已有的知識解決新問題。在解決問題的每一步,我也準(zhǔn)備了一些提示,以防有人會卡殼打艮(在我面前15分鐘一言不發(fā),對我 評價這個人毫無幫助)。我真正感興趣的,是他們能夠從上一步前進(jìn)到下一步。我希望看到一個人就在我眼前學(xué)到新知識。注意:所有問題都與瀏覽器技術(shù)相關(guān)。我不相信出幾道抽象的邏輯題,就能夠考出某人解決Web技術(shù)問題的能力。在我看來,這無異于讓素描大師畫肖像(或者讓劉翔跟博爾特同場競技),沒有意義,也得不到任何有價值的信息。有激情要成為一名優(yōu)秀的前端工程師,最重要的莫過于對自己做的事要有激情。我們技能都不是從學(xué)校中或者從研討會上學(xué)來的,因此前端工程師必須具備自學(xué)能 力。瀏覽器技術(shù)的變化可謂日新月異,所以也只有不斷提升自己的技能才做得到與時俱進(jìn)。我雖然不能強(qiáng)迫誰必須多看博客、不斷學(xué)習(xí),但想應(yīng)聘前端工程師的人恐 怕還是必須這么做的。你怎么知道誰對這種工作有沒有激情?實際上非常簡單。我只問一個簡單的問題:“目前你對什么Web技術(shù)最感興趣?”這個問題永遠(yuǎn)不會過期,而且也幾 乎不可能出錯……除非你答不上來。就眼下來說,我希望你對這個問題給出的技術(shù)中包括WebSocket、HTML、WebGL、客戶端數(shù)據(jù)庫,等等。只有 對Web開發(fā)充滿激情的人,才會堅持不懈地學(xué)習(xí)新知識、掌握新技能;這些人才是我真正想要的。當(dāng)然,我會讓他們詳細(xì)解釋自己提到的技術(shù),以保證他們不是隨 口說了幾個時髦的新詞匯。最后一點(diǎn)計算機(jī)科學(xué)或者Web設(shè)計方面的知識當(dāng)然也有用,但那都是基本知識之外的東西。只要基本知識在那兒了,一切就都有了基礎(chǔ),想擴(kuò)充知識面也不難。可 是,如果等到正式上班以后,還得從頭學(xué)習(xí)基本技能,那種難度是不可同日而語的。另外,高級前端工程師與一般工程師相比,肯定需要掌握更多的技能。而面試幾 乎沒有經(jīng)驗大學(xué)畢業(yè)生,同樣也會有一套完全不同的程序。我在這篇文章里列出來的都是一些最基本的東西。對于那些還沒有多少面試經(jīng)驗的人,我總是喜歡告訴他們,面試完了只要問自己一個問題就行:你想以后跟這個人在一起共事嗎?如果不管為什么,回答是不,那就是不。
食尚峰匯
想要通過前端面試順利進(jìn)入一線大廠成就高薪前端夢。那么首先,我們得知道前端面試中,社招和校招究竟有啥區(qū)別?
對于前端開發(fā)來說,如果說社招更看重對前端技術(shù)體系的深入理解,以及解決問題的能力話,那校招更看重的其實是基本功和學(xué)習(xí)能力(或者說是潛力)。
但其實,無論是社招還是校招,面試的時候都會問到一些曾經(jīng)操作過的項目,尤其是大廠,或者熱門高薪部門,面試官除必問的技術(shù)經(jīng)驗外,也會對技術(shù)深度進(jìn)行一個基礎(chǔ)的考核,那在這種情況下如何hold住大廠面試呢?
前端面試三要素:簡歷、個人介紹、技術(shù)能力。下面,就來分別聊一聊。
1、簡歷篩選關(guān):
HR一般會去看簡歷中所提的技術(shù)棧是否匹配,怎么看呢?我們可以抓住簡歷中的技術(shù)名詞,一般來說如果一點(diǎn)技術(shù)名詞都沒有提到,那么大概有以下幾種可能:很水、很牛但概率很小、不會寫簡歷。所以,一部分人可能會因為簡歷的問題沒有了面試機(jī)會,這點(diǎn)是需要非常注意的。
2、個人介紹關(guān):
通過了簡歷篩選階段,就真正到了面試環(huán)節(jié)。這時候一定要準(zhǔn)備好一段最多3分鐘的個人介紹。請注意,最多3分鐘!言簡意賅的說明自己的工作時間,擅長技術(shù)棧和自己的工作預(yù)期。
3、項目經(jīng)驗表達(dá):
對前端開發(fā)學(xué)習(xí)者而言,JS并不陌生,但大廠的JS面試題卻總是顯得很“陌生”,怎么樣能夠真正做到深入理解與高級應(yīng)用?這不僅是面試過程中對前端求職者的要求,也是大多數(shù)前端開發(fā)者的痛點(diǎn)。
大廠面試中,面試官除了關(guān)注你的項目經(jīng)驗外,還往往喜歡和面試者深入探討前端某些技術(shù)領(lǐng)域成體系的前端知識。比如:模塊化、異步解決方案、網(wǎng)絡(luò)、框架及原理、線程等,但在與面試官的正面battle中,求職者總會敗下陣來。
所以,建議大家在Web前端面試前一定要注重這三個方面的內(nèi)容。注重了這些想找找到一份適合的Web前端開發(fā)工作并不是難事。
pinkyoyo0403
有。前端這個職業(yè)是包含初試和復(fù)試的,初試一般面試你的都是HR,復(fù)試一般就是項目經(jīng)理親自面試了,為了多方面考核個人能力,前端工作是有復(fù)試的。前端即網(wǎng)站前臺部分,運(yùn)行在PC端,移動端等瀏覽器上展現(xiàn)給用戶瀏覽的網(wǎng)頁。
月想月樂
隨著時代的發(fā)展,很多新興的就業(yè)職位隨之產(chǎn)生。前端工程師將就是隨著互聯(lián)網(wǎng)的快速發(fā)展而產(chǎn)生的。其實在很多人的觀念里,前端工程師也就是一個切頁面的而已,他們也就是會html、css、javascript這些沒有任何技術(shù)含量的網(wǎng)頁制作而已。然而隨著技術(shù)飛速發(fā)展,人們對這些技術(shù)的要求也是越來越高,如果只憑著一個人來把所有的事情都解決是很困難的,所以這個時候前端工程師就開始發(fā)揮著他們很大的作用了。
那我們應(yīng)該如何來面試前端工程師呢?
首先我們要了解到一般關(guān)于工程師的面試都是被分為問答面試和代碼面試的。當(dāng)然也有很多公司會增加一些其他的面試。不過這就主要看公司的情況而來。一般前面一二輪的面試都是主要是技術(shù)方面為主。后面幾輪就是你的老板要和你聊聊你的待遇和規(guī)劃的問題了。接下來就讓我們來聊聊面試前端工程師的一些技巧吧。
如果你想成為一個優(yōu)秀的前端工程師你就必須要有一些基礎(chǔ)工程師所必需的具有的扎實的理論基礎(chǔ)。這些扎實的理論基礎(chǔ)是你面試前端工程師的前提。如果你不具備這些理論上的知識想必你連面試的資格都沒有。所以想面試成功你就需要掌握這些有關(guān)的理論知識。
關(guān)于這個前端工程師的面試,考察能力時候很重要的。一般呢,我們可以總結(jié)為前端工程師是有關(guān)基礎(chǔ)理論和能力的綜合。而這個里面的能力就包含這個考察能力這個考察能力呢一般就是指工程師的編程能力。
一般面試官都是通過案例問題來檢驗每個人的考察能力的。這個所謂的案例問題就是在編程上的一些算法題。這一般有些小復(fù)雜所以就需要你較強(qiáng)的考察能力來配合了。
在我們在面對面試官時我們千萬不要緊張。在進(jìn)行自我介紹時我們要努力做到自信大方、吐字清晰。我們在自我介紹時要用簡明扼要的話語來介紹自己,突出自己的優(yōu)點(diǎn)表明自己的求職意向。你要通過寥寥數(shù)語把自己的優(yōu)勢都向面試官介紹清楚。記住不必要的話語要少說。
好了關(guān)于如何面試前端工程師這個話題我就聊到這了。希望我的回答能對你有所幫助。
小雨后噠晴天
前端工程師不一定需要懂設(shè)計方面。倘若有這等要求,前端工程師豈不是一項除其本身特征性工作外還包含用戶界面設(shè)計、視覺設(shè)計、業(yè)務(wù)邏輯及交互動畫設(shè)計師等工作的職稱了么!前端工程師,主要工作內(nèi)容與用戶界面的表現(xiàn)緊密聯(lián)系,但均為在圖形上或以其為基礎(chǔ)通過某種實現(xiàn)方式去正確、準(zhǔn)確呈現(xiàn)什么。之所以以“主要工作”修飾,是因為 / 的出現(xiàn)與發(fā)展致使前端被引入服務(wù)器端性質(zhì)的工作內(nèi)容。在能力方面:對 HTML / CSS / JavaScript 具有專家級別的知識;有較熟練使用 AngularJS / / jQuery 或者其它類庫的經(jīng)驗;較熟悉第三方組件(插件)生態(tài)環(huán)境及具體案例;有較熟練使用 Jade / Swig / Handlebars / Mustache 或者其它模板引擎的經(jīng)驗;有較熟練使用 SASS 或者其它 CSS 預(yù)處理器的經(jīng)驗;有較熟練使用 CoffeeScript 的經(jīng)驗;對 CSS / JavaScript 設(shè)計模式有很好的認(rèn)識及應(yīng)用;對常用數(shù)據(jù)結(jié)構(gòu)和算法熟悉;有使用 GruntJS / GulpJS 任務(wù)運(yùn)行器的經(jīng)驗;有使用 Yeoman 生成器的經(jīng)驗;有諸如 Bower / Volo / JSPM 等前端靜態(tài)資源包管理器使用經(jīng)驗;熟悉本地及遠(yuǎn)程(真機(jī))調(diào)試操作;有 Git 的使用經(jīng)驗;意識驅(qū)動行為,所以:有自己的技術(shù)信仰;有渴望嘗試新技術(shù)的強(qiáng)烈愿景及較強(qiáng)的主觀學(xué)習(xí)、客觀探索能力;擁有令人難以置信的關(guān)注細(xì)節(jié)的精神;在諸如 Github、Sitepoint 等這樣的技術(shù)社區(qū)活動;因為你不是一個人工作,并且要對一個產(chǎn)品付之責(zé)任心,所以:有良好的編程風(fēng)格和文檔習(xí)慣;對模塊化開發(fā)及相關(guān)標(biāo)準(zhǔn)有很好的認(rèn)識及應(yīng)用;有對網(wǎng)頁標(biāo)準(zhǔn)和標(biāo)準(zhǔn)制定機(jī)構(gòu)重要性較深刻的理解;建站過程中考慮其它諸如UI、安全性、高性能、SEO、可維護(hù)性以及技術(shù)因素等方面;有跨瀏覽器(主:兼容性)、跨設(shè)備(主:響應(yīng)式)開發(fā)并測試頁面的經(jīng)驗;對網(wǎng)格在WEB設(shè)計中的應(yīng)用有深刻的理解,以及具備系統(tǒng)(有組織)地實現(xiàn)出來的能力;能夠獨(dú)立工作并做出正確的抉擇;能夠適應(yīng)不斷變化的更新 / 擴(kuò)展 / 改版需求,同時處理多個項目;能夠提供準(zhǔn)確的定時估計工作(適應(yīng)準(zhǔn)時交付管理法則);有與服務(wù)器端程序開發(fā)人員協(xié)同工作的經(jīng)驗;能夠(熟練)閱讀英文資料;有一定的工作壓力承受能力;然后再為自己從長遠(yuǎn)打算及加分:有 NodeJS Web / 服務(wù)器 / 客戶端應(yīng)用程序設(shè)計、開發(fā)、優(yōu)化經(jīng)驗;有 MangoDB / Redis 等No SQL 數(shù)據(jù)庫設(shè)計、實現(xiàn)、維護(hù)經(jīng)驗;有使用 PhoneGap / Apache Cordova 進(jìn)行移動應(yīng)用開發(fā)經(jīng)驗;有瀏覽器 Addon 擴(kuò)展(以擴(kuò)展的形式添加一些為提高用戶體驗的附加功能)開發(fā)經(jīng)驗者;
優(yōu)質(zhì)工程師考試問答知識庫