2026年金九银十,我面了22个前端

0 阅读11分钟

金九银十的前端面试

九月是传统的招聘旺季,我们团队扩编,我参与了前端岗位的全部技术面。HR初筛后到我手里的有三十来份简历,前前后后面了二十二场,最后发了 3 个 offer,入职了 2 位。面完之后挺多感慨的,想把这些真实的观察写下来,不管是正在找工作的同学,还是同行的面试官朋友,应该都能有点共鸣。

一、面试者画像

这批面试的同学里,3到6年经验的占了绝大多数,比我之前面的批次要年轻一些。学历背景分布挺广的,有科班出身的,也有转行过来的,行业背景也杂——有一直在互联网公司的,有从外包跳出来的,还有从传统软件公司往互联网转的。

先说说一个挺明显的趋势:TypeScript 已经成了标配,但"会用"和"用好"之间差了十万八千里。几乎所有人的简历上都写了"熟练使用TypeScript",但真正能把泛型、条件类型、映射类型这些讲清楚的,不到三分之一。很多人所谓的"熟练使用TS",其实就是给变量加个 : string、: number,稍微复杂一点的类型推导就搞不定了。有一场面试我让写一个 DeepReadonly 的实现,工作四年的同学憋了十分钟也没写出来,这其实就是TS基础不牢的典型表现。

然后是框架层面的问题。React 和 Vue 两大阵营各占一半左右,但不管是哪边,深入理解的人都不多。React这边,很多人说自己"精通React",但问起 Hooks 的原理、useEffect 的依赖数组为什么重要、React 18 的并发模式到底解决了什么问题,就含糊其辞了;Vue这边也差不多,Composition API 大家都在用,但有多少人能说清楚 ref 和 reactive 的底层区别、nextTick 的实现原理?更有意思的是,很多人框架的API记得很熟,但一涉及到浏览器原生API就懵了——比如 MutationObserver、IntersectionObserver,不少人连听都没听过。

工程化能力的差距最大。有的同学对 Vite、Webpack、Rspack 这些构建工具如数家珍,能讲清楚打包原理、Tree Shaking 的条件、代码分割的策略;但也有很多同学,工程化这块几乎是空白——脚手架是公司现成的,配置不用自己改,出了问题也不知道怎么排查。还有CSS方面,很多人就是"能用就行"的水平,BFC、层叠上下文、Flex布局的细节、CSS变量和@property,这些问倒了不少人。现在很多同学觉得CSS简单、不重要,但实际上,CSS功底往往能看出一个前端工程师的基本素养。

项目经历方面,低代码、可视化、AI前端这几个方向的项目明显多了起来,但水分也最大。很多人简历上写着"参与低代码平台开发",细问下去就是做了几个组件、拖了拖拽;说自己做过"AI对话应用",其实就是接了个API、做了个打字机效果。不是说这些项目不好,而是如果只是停留在"用"的层面,没有深入到核心逻辑,那价值就很有限。

二、面试现场的众生相

二十二场面试下来,各种情况都遇到了,有的让人惊喜,有的让人惋惜,还有的让人哭笑不得。挑几个印象深的说说,也给大家提个醒。

先说**"框架党"的困境**。有好几位同学,框架用得特别溜,React Hooks 写得飞起,Vue3 的各种 Composition API 信手拈来,但一离开框架就不行了。我问了一个很基础的问题:"不用框架,用原生JS怎么实现一个响应式的数据绑定?"结果好多人答不上来。还有的同学,连 document.querySelector 和 document.querySelectorAll 返回的东西有什么区别都不知道。框架是工具,不是全部,底层的东西搞懂了,用什么框架都能快速上手。

然后是**"背题选手"的翻车现场**。这个真的挺多的,有的同学回答问题特别流畅,流畅到不像是在思考,更像是在背诵。但你只要换个问法、或者追问一层,马上就卡壳了。比如我问"什么是事件循环?",他能把宏任务微任务说得明明白白,但我接着问"那 requestAnimationFrame 属于宏任务还是微任务?它和事件循环是什么关系?"他就不知道了。还有更绝的,有一位同学,我问的问题他答不上来,他居然反过来给我讲另一个知识点,明显是想把话题往他背过的内容上引。其实真的没必要,会就是会,不会就是不会,诚实一点比什么都强。

实战能力的差异也特别大。我面试的时候喜欢出一道手写题,不是那种偏门的算法题,就是日常开发中可能会遇到的问题,比如实现一个防抖节流、写一个深拷贝、或者封装一个通用的请求函数。就这么简单的题,通过率不到一半。有的人写出来的代码,逻辑漏洞一大堆;有的人思路有,但写得磕磕绊绊;还有的人直接说"我平时都是用lodash的"。我不是说不能用库,但至少得知道原理吧?万一哪天需要自己实现一个定制化的版本呢?

还有少数同学,面试准备得太不充分了。有一位约的下午两点面试,两点十五了还没上线,发消息也不回,快两点半了才急匆匆进来,说忘了有面试。还有的同学,简历上写的项目,自己都说不清楚——做了多久、几个人做的、自己负责哪块,说的和简历上对不上。态度决定一切,连面试都不认真对待,工作态度可想而知。

三、聊聊现在的前端市场

面试了这么多人,我对现在的前端人才市场也有了一些新的认识。不管是求职者还是招聘方,可能都需要调整一下预期和策略。

从求职者这边看,竞争确实比以前激烈了。以前前端招人,能干活、基础还行就差不多了,现在不行了,投简历的人多,选择余地大,公司自然会挑挑拣拣。而且现在出来找工作的,很多是被动离职的,整体水平参差不齐。再加上AI的影响,很多简单的前端工作——比如写静态页面、调样式、做简单的交互——AI都能做了,企业对前端工程师的要求自然就提高了。以前"会写页面就能找到工作"的时代,真的已经过去了。

但我也想说一句,市场没有大家想的那么差。真正有能力的人,从来都不愁工作。我们这次招聘,前后面了二十多个人,真正觉得合适的也就两三个——不是人少,而是符合要求的少。只要你基础扎实、有项目深度、学习能力强,机会还是很多的,甚至手里能拿好几个offer。

从招聘方的角度,也想说说我们平时带新人遇到的一些共性问题,这些可能也是大家需要注意的方向:

  • 代码规范意识弱:很多新人写代码,怎么方便怎么来,变量命名随便起、函数写得又臭又长、注释基本没有。代码是写给人看的,不是写完就完了。一个团队的代码质量,决定了这个团队能走多远。

  • 排错能力差:遇到bug就慌,不知道从哪下手。看报错只看最后一行,不会往上追堆栈;控制台报错了,不知道怎么定位到具体代码;甚至有的同学,console.log 都不会用,调试全靠瞎猜。排错能力是前端工程师的基本功,这个能力只能靠多练。

  • 沟通协作能力有待提升:有些同学喜欢闷头干,有问题也不说,等到 deadline 了才说做不完;还有的同学,描述问题说不清楚,半天讲不明白自己遇到了什么。前端是和产品、设计、后端打交道最多的岗位,沟通能力真的很重要。

四、为什么会出现这些问题?

面完之后我一直在想,为什么大家基础不牢?为什么工程化能力普遍偏弱?是大家不够努力吗?我觉得不是,这里面有更深层的原因。

第一个原因,"框架先行"的学习路径。现在很多人学前端,一上来就学React、学Vue,框架学完了就去找工作,HTML、CSS、JS的基础反而没打牢。这样学出来的人,做业务开发可能还行,但一遇到框架解决不了的问题,就束手无策了。而且框架更新换代快,今天学Vue2,明天出Vue3;今天学React类组件,明天又出Hooks。基础不牢的话,学什么都是浮在表面,换个框架就又得从零开始。

第二个原因,业务开发的"舒适区陷阱"。很多前端工程师,每天的工作就是接需求、写页面、调接口、改bug,日复一日,年复一年,做的都是差不多的事情。不是大家不想提升,而是工作中根本接触不到更有挑战性的内容——公司的项目就那样,不需要你做性能优化,不需要你搞工程化,能跑起来就行。时间长了,人就废了。等你想跳的时候,才发现自己除了写业务页面,什么都不会。

第三个原因,知识的碎片化。现在获取知识太容易了,B站有视频,掘金有文章,公众号有教程,但这些都是碎片化的。今天看一篇"十分钟搞懂闭包",明天看一篇"一文说透Event Loop",看完觉得自己懂了,其实根本没消化。知识体系是要靠自己搭建的,不是靠看几篇文章就能建立起来的。

第四个原因,AI带来的"虚假进步感"。现在AI写代码确实方便,遇到问题问AI,代码直接生成,复制粘贴就能用。但用多了,人就变懒了,不愿意自己思考了。看起来效率提高了,但实际上能力并没有提升。等哪天面试的时候,不让你用AI,你就原形毕露了。AI是工具,不是拐杖,该自己掌握的东西,还是得自己掌握。

五、一些真心话

最后,想结合这次招聘的经历,给前端同行们提几个建议,都是真心话。

  1. 把基础打牢,比什么都重要。 这句话可能听腻了,但我还是要说。HTML、CSS、JavaScript,这三样是前端的根,根不牢,上面盖得再高也是空中楼阁。框架可以学,但别把框架当全部。框架会过时,但基础不会。这次最终入职的两位同学,共同点就是基础扎实——问到底层原理也不慌,遇到新问题能快速上手。基础,才是前端工程师最核心的竞争力。

  2. 项目做深,比做多重要。 很多同学喜欢在简历上堆项目,七八个项目列出来,看起来很厉害,但每个都经不起问。与其做十个平庸的项目,不如把一两个项目做深。什么叫"深"?就是你能讲清楚这个项目的来龙去脉:为什么做、怎么做的、遇到了什么困难、怎么解决的、效果怎么样、还有什么可以改进的。能把一个项目讲到这个程度,比你列十个项目都管用。

  3. 要有自己的"技术长板"。 前端的范围太广了,什么都学一点,最后可能什么都不精。不如找一个自己感兴趣的方向深入下去——可以是工程化,可以是可视化,可以是性能优化,也可以是跨端开发。有一个能拿得出手的长板,比什么都会一点但什么都不精通,要有竞争力得多。

  4. 动手写,别光看。 前端是一门实践的学科,看再多的书、刷再多的视频,不如自己动手写代码。学了新东西,找个项目练手;遇到了问题,自己动手排查;看到好的开源项目,读读源码。纸上得来终觉浅,绝知此事要躬行。

  5. 别焦虑,按自己的节奏来。 现在网上各种"前端已死"、"35岁危机"的论调,看得人心慌。但我想说的是,每个行业都在变,不止前端。与其焦虑,不如把时间花在提升自己上。你真正有能力了,就不怕任何变化。

最后想说一句:前端这个行业,正在经历一次洗牌。低水平的前端会越来越难混,但高水平的前端,永远稀缺。愿我们都能在这个行业里,找到自己的位置,持续成长,不负热爱。