前端面試方向
前端的領域是廣泛的,並且它無時不刻都在擴展、更新着生態。在這樣的背景下,做一個跟得上技術潮流的全能型前端幾乎是艱難不可行的。
按技術基礎側重點
根據技術基礎的側重點不同:我們將其分為兩大類:
一類是專注於web標准、w3c標准、側重瀏覽器認知"老派",一類是專注腳本編碼的"新派"。
老派一般更擅長以css核心,瀏覽器解析,原生js等方面進行的基礎技能面試;而對於新派,他們更希望進行有關js應用(如類庫、框架、工具)這方面的面試。
因此,當前面試中常常見到這樣的場景,一個面試者對某門框架原理侃侃而談,但一問到一些很基礎的東西,反而一臉懵逼了。比如:
-“請講一下回流與重繪的根源?”
-“獲取一個對象所有的key值(要考慮到key值被設置了不可枚舉)。”
-“柵格化是屬於瀏覽器的行為還是操作系統的行為?”
-“.a .b .c的css類解析方式?”
-……
諸如此類問題,對於大部分的新派工程師來講,反而比框架原理啥的更難以解答。原因是大多年輕的新派前端工程師,他們沒有經歷過那個灰色的時代,加之當前有了速成的方式(只需熟練掌握某門潮流框架的使用),以及npm與github龐大的生態,讓他們有足夠的方式去面對任何業務開發需求。
然而,我個人認為,如果只是這種程度的新派,或者沒有跟上潮流的老派,都達不到高級工程師的基准。
在這個分類中,我定義的高級標准是: 在兩方的都要有足夠的認知廣度,而在側重點,要有更底層的認識。
按職位專長側重點
而根據個人技能的側重點(或者說是專長)不同,我們大致可以將前端分為以下幾大類;
移動開發工程師
由於混合開發與小程序的興起,17年前將命運賭在移動端的工程師獲得了足夠的回報——大量的移動端開發需求市場突如其來,那一陣子,甚至找個培訓機構隨便學學,出來后都能獲得一份薪資可人的工作。
高級技能面試領域:
扎實的客戶端js + 豐富的安卓ios兼容經驗 + 足夠底層的一門js框架 + 足夠深入的一個混合開發方向 + 自動化開發工程的搭建原理(對四大金剛的認知,目前主要以webpack為主)
- 一門多人協作開發的工具使用(當前以git為主) + 瀏覽器的四大解析機制……
可視化工程師
講真,當前市場上可視化工程師的需求量很大,但高級的可視化工程師很少。
我這里面高級可視化工程師只會面一個問題方向: 矩陣。
這聽起來很不可思議,但事實上,只要搞可視化,你就必須得熟練應用矩陣,而不是簡簡單單的認知幾個可視化類庫。
——因為矩陣可用於表示空間中對象的變換,所以是在web可視化里使用的重要工具。
node工程師
其實從分工的層面來講,node工程師有點偏離前端的方向——然而在當前大前端的時代,node卻是作為一個高級工程師必備的技能。而在node方向上有足夠的探索,就可以搖身一變node工程師。
node工程師並不是簡簡單單地應用過幾個框架(如express,koa,egg,midway…),你應當在chunk、buffer等基礎知識之上,掌握更為基礎的api和相關模塊。 以此能夠按需做工具、應用。
node工程師其實也是個大方向,諸如node開發工程師,中間件封裝工程師,技術支撐等。
我這里高級node工程師的標准,至少你應當展示並解說自己封裝的npm包。
ob工程師
這里我把其他類型統稱為 ob工程師,是因為僅在高級開發這個階層里是很少的。事實上,如果在高級前端工程師的基礎上更進一步,那么大部分都會往ob工程師發展(會很奇怪明明是個前端工程師,但做的卻基本不是前端做的事,原因是其他前端難以做到而你可以)。
技術面試的重點
更新待續。