挖掘项目的深度
项目经验也是面试中比较重要的一个环节,为了对面试者有一个全面的认识,所以我会花一些时间聊聊面试者做过的项目。
当然,不会有人只写一个项目,所以我的问题就变成了:能看出来你做过不少项目,有没有哪个项目是你做的最好,值得骄傲的?
这样,我就可以从最好的项目入手,省去了人为过滤的麻烦。
当面试者开始讲自己项目的同时,作为面试官,我有几件事情需要确定:
首先要确定项目是否是自己做的,即确定项目的真实性;
举个例子:你的项目是 React 搭建的,能告诉我搭建项目的过程和需要注意的地方吗?
这时候有人就漏底了,除了 Create-react-app 之外,什么都说不出来。难道你不用 Router 吗,难道不需要处理静态资源吗,难道不需要构建吗?
细问之下,告诉我项目是其他同事搭建的,自己只负责开发业务。
项目的缺陷
我们在架构项目的时候,想的太多会过度设计,想的太少则可能会出现随着业务增长而来的种种问题。很多企业都在探索某个技术领域的最佳实践,其实并没有行业通用标准,只是思想可以借鉴罢了。
当然,你如果经验丰富,并且能不断重构,是可以修复一些项目缺陷。嗯,所以我的问题又来了:在项目中有没有碰到过一些问题,你是如何解决的?
这里主要考察面试者实际处理问题的能力,以及是否有独立思考的过程,这个很重要。
项目的深度
项目做到一定规模以后,一定会去深挖原理,甚至原本的架构或者插件都无法满足。举个例子:如果没有扩展过 Webpack Loader 的项目,基本可以肯定是一个小型项目,中型或大型项目以及业务复杂的项目都或多或少有一些方向的扩展。
项目深度的考察其实比较难,总会有一些行业通用问题需要去解决,这也就是 BAT,TMD 这些公司经常会去制定一些行业标准,开源一些技术方案的原因。
当然,很多公司还是达不到这个层次,所以项目深度也是因人而异,并没有通用标准。
所以考察方向就成了对这个项目的持续开发,垂直领域以及深度思考。
05 程序基础、手写代码、算法
看到过这样一个问题:面试要求手写代码的面试官是不是都很 Low?
显然不是,通过写代码可以看出一个人的编程功底和思想。另一方面,我们很多时候都在阅读别人的代码,所以能迅速的看出你代码问题的人,在我看来,能力是在你之上的。
一般手写代码都集中在:数组操作、原生 JS、算法实现、以及数据结构这几方面。部分前端有可能会有一些 CSS 布局要求。
06 技术热情
我们来举几个问题实例:
问 1:HTML5 的地理定位你用过的场景是什么?
问 2:有没有遇到过定位不准的情况,浏览器定位的原理究竟是什么呢?
问 3:webpack 你最常用的 loader 都有哪些?
Loader 使用注意事项:
执行顺序:Loader 从右向左(或从下到上)执行,例如 [sass-loader, css-loader, style-loader]。
Webpack 5+ 资源模块:替代 file-loader/url-loader,直接配置 type: 'asset'(自动选择内联或文件)或 asset/resource(始终输出文件)。
性能优化:通过 thread-loader 启用多进程构建,或 cache-loader 缓存结果加速 rebuild。
问 4:Babel 的作用是什么?
问 5:有没有了解过 Babel 的原理,它是如何做到的呢?
相信以上问题也能提醒你,如何准备回答和精准满足题目背后的认知需求 , 技术热情决定了你在这行的成就,也决定了你是否能走得更远。
07 个人规划
你一定很奇怪,为什么会考察个人规划?
当我陆续面过很多工作 10 年之久的行业前辈的时候,我会发现有些人之后的几年毫无进展,完全是在混资历,技术一塌糊涂。
不要因为千篇一律的工作或是管理岗位而疏于技术的继续学习,IT 行业的发展迅速,更新的模块和技术点使得现有工作更加便捷,注意去繁从简,以新换旧,而原地踏步的你如何斩落头角?学无止境,是这个行业必备的程序员素养。
08 有什么问题想问我?
问这个问题主要有以下几个缘由?
确定面试反馈;
给面试者一个沟通的机会;
看看面试者对应试部门的了解或者是对公司的兴趣;
不同面试官套路不尽相同,但都有一个评判标准,在简历准备和面试技巧提升的同时,专业硬实力不可忽视。百战程序员的前端课程涵盖企业刚需知识点、项目经验(实操演练)、面试题集和秘籍,入职 TIPS 等。
最后更新于
这有帮助吗?