高级前端工程师面试总结

前端面试方向

前端的领域是广泛的,并且它无时不刻都在扩展、更新着生态。在这样的背景下,做一个跟得上技术潮流的全能型前端几乎是艰难不可行的。

按技术基础侧重点

根据技术基础的侧重点不同:我们将其分为两大类:
一类是专注于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工程师发展(会很奇怪明明是个前端工程师,但做的却基本不是前端做的事,原因是其他前端难以做到而你可以)。

技术面试的重点

 更新待续。
原文地址:https://www.cnblogs.com/sanchang/p/11387969.html