最近一年又面了一两百人前端,按照结构化面试进行评分,总结出了一些特点和问题。
自研与外包的能力差异
自研候选人与外包候选人,整体评分差距不大,自研略好于外包,但高分者几乎全都是自研 ,而极低分全部来自多年外包工作者。
工作年限与能力
整体上年限越久,能力越强,但年限与能力的适配常见于三四年经验的年轻候选人中。之后年限越高,工作能力越平庸且思维越僵化,工作8年的与6年的能力上差距不大。当然有一些特殊个例,有些10年左右的前端组长,综合能力很强,另外遇到的水平最高的是一个工作14年的一线开发大佬,目测该大佬能干到退休。
前端整体水平呈下降趋势
过去10年,前端随着工程化的萌芽和发展、各种新规范和新框架的落地,涌现了很多技术热点,比如脚手架、流水线、微前端、低代码、混合开发、性能优化、可视化、PWA、web components、webRTC、WASM等等。然而随着大规模前端基建的结束,绝大多数前端开发都将精力专注于业务开发上,很难再有机会深入这些技术,甚至终其整个职业生涯也只能接触上面的两三样。
非常典型的例子就是微前端。可能很多人都接触过,甚至写过微前端项目,问起api都能讲一些,但是几乎没有人能站在微前端平台的角度讲如何设计子应用的上报注册与更新。
除了全面性外,对项目的整体理解也比多年前差不少。问起项目,几乎都是局限于页面或组件怎么写,没有一个人会提到数据结构怎么设计,前后端怎么交互 ,根本get不到什么是主要矛盾和次要矛盾 ,抽象能力几乎为零。现在相当多的前端,不理解业务,甚至在后端给的接口出来前都不知道怎么写代码(还有在给了接口后也不知道如何写的)。
另外编程能力也下降不少。过去还能问出五六个设计模式,现在大多数只能回答出观察者和发布/订阅。至于架构,也就部分八九年经验的人能回答上来(因为他们也经历了前端突飞猛进的时代)。
结构化面试失效
过去评估一个前端,我会采用结构化面试,分布考察基础/框架/设计/项目亮点/软技能模块,然后每个模块设置若干条题目,每条计分,最后算各模块的平均分。回答全面得10分,掌握基本则6分合格,可以根据亮点酌情加分。然而大多数前端只能回答出自己掌握的一些常见api。es\ts不熟,原理不通,项目讲不清,有单模块得到6分的人都很少。
可能更适应当下的前端面试题
我一直在思考应该出什么样的面试题,能够筛选出有潜力的前端。因此问的各种题目,背后都对应了我期望他应该具备哪些能力。比如问基本数据类型,背后的是考察js的基础;问框架,背后是api的熟练度;问项目则是考察业务理解和设计。可现在的前端都答不上来。
所以我想不如退而求其次,优先保证其编程能力和理解能力,比如考一些简单的算法题和智力题 。并且通过复杂的题干来考察阅读理解能力,看看是否能很快抓住其中关键要点。
考考读者
如果有读者的话,我来考考你,package.json中设置入口文件的有哪些字段,什么时候生效?能答出来你就能超过七八十的前端了。