2020.5.31 前端早早聊第八期 前端聊面试
每个人的经历和基础水平是不一样的,可以借鉴下面分类来梳理自己的知识体系
简历中项目的知识点,自行审视之后对比其他方案。
这个知识点背后利用了什么算法?
举例:React 的 diff 算法,先做个标准回答,然后对比其他 diff 场景,不同 diff 算法各有什么优缺点,为什么使用这种算法,除了 React dom 之外,这个算法能不能用到其他地方,横向比较。
抛开裸辞的大佬,面试前我们都会有一个准备跳槽阶段,而大部分人现状:临时抱佛脚,到面试前才开始准备。那么怎么抱佛脚?
基本功不说了,面经太多了。看看后面几点:
算法常见考点:
如何找到合适的题?在面试前可以刷下面几道题来找找感觉,掌握相关的知识点:
项目回顾的点:
抛开技术人的角色,像老板一样思考
列出之前参与过、负责过的项目,思考项目在公司层面的意义。
项目的业务域考虑:客户是谁?诉求是什么?有没有做过使用场景的考察?为何替代原有方案?
技术域考虑:技术选型时是否考虑过学习成本、可维护性、团队接纳程度?对技术人员有哪些成长?
如何审视自己在工作经历的成长
首先,想想学会了哪些技术点,这些技术点对项目的意义是什么?React Hooks? 数据可视化或者是微前端?
其次,考虑设计了某种架构体系,这种架构的演变是由于什么因素产生的
核心要素: 自信但不自负,在于平等交流
不要把面试官当成是监督你考试的人,他们是你以后的同事,想象是和你一起讨论如何解决某个问题。
基础知识:HTML5、JS、CSS,还有三大框架取其一,设计模式、前端性能优化,计算机网络基本知识
源码阅读:主要关注框架核心实现
建立个人标签风格:爱捣鼓、积极主动、钻研精神、寻根问底等等
算法:无法取巧,重点在走心。刷完题之后多做总结。
先放一张贵重大佬的图,以钉钉为例,来看看前端招聘的全流程:
我们总是能看到一些公司招人对候选人的要求,下面来分析下我们能从这些描述中提炼出我们想要的信息。
岗位描述分析
岗位要求
一般第 1、2 轮为技术面,偏向技术基本功、主流框架能力、原理性掌握、个别算法知识;及过去的业务相关主导内容,聊的多是技术细节及岗位细节。⼀般到了 3、4 轮会更综合维度的考察候选人,包括业务理解、项⽬管理、具体的技术解决方案,看技术认知、⽅案沉淀,除了专业技能的考察外还会看职业能力和性格,判断能⼒和潜⼒。P7 以上及管理,还会聊聊⾏业理解、团队管理与协作。
特质上考察人是否聪明、自省、乐观皮实
特定轮次考核点:P6 为例
初轮技术面,技术基本功、常用框架掌握、常用方案掌握
二轮技术面:基本的职业能力考察、综合深度考察、技术基本功
三轮现场面:体系型还是体系内(离开环境后是否能自建体系),认知段位及落地能力(技术和业务之间,业务之间的优先级),长短板、匹配度、管理成本及风险评估。 考察是否有很强的偏执型人格,比如讨论需求大声拍桌子、严重降低团队士气的。
蚂蚁招聘流程
时长每轮 20-50 分钟, 2 周内完成全部流程
淘系
聊项目的面试方法,先最深刻的项目入手,询问候选人下面问题:
主要是为了考察候选人前端综合能力
举例:
基础知识:const 定义的变量编译成 ES5 后如何保持块作用域的特性,90%的人能答上来,但很少有人去探究到V8引擎层面
其他问题:工作中的亮点、为什么会有这份产出(考察最原始需求分析)、剖析技术方案的细节(是否具备健壮性和通用性),如果变得更复杂如何解决(知识面广度深度以及逻辑思维)、如何学习新知识(一贯方法论)
下面有几点是有重复的,它们是全选或。毕竟人无完人,所以这些都是加分项:
1.基本功扎实: 良好的技术基本功,良好的开发流程理解,对负责业务的理解,API 之外原理的探究,加分项-技术品味(追求细节,追求极致)
2.独特亮点:核心竞争力
3.要强性:良好的主动性、主动探寻更多方案、对平庸的低忍耐,抓机会和落地能力
4.如何证明自己? 主导过的业务,推动过的建设、解决过的复杂问题、个人作品如个人项目、博客
5.较好的认知:非被动执行思维、对技术的嗅觉、非二元类认知(即对立面之外的认知,而不是非黑即白)
6.热情上进
7.充满要性(做一件事追求极致的心态)
层级及关键能力,可以查看先前文章前端规划
以 P6 能力拆解
自驱力
专业能力: 对常见框架的库、规范、联调能力与他人沟通能力,一定的 Nodejs 和服务端语言能力
职业能力:良好及时的沟通,独立的前端业务接入能力、领导跨部门项目的 PM 能力,理解业务优先级,有效管理业务预期,能跳出前端看问题,寻找最优(不局限于前端)解决方案
场景方案:通过一个问题能解决一类问题,考虑必要的投入产出比
推动及落地能力:是不是只会说不会用,能不能推动产品落地,影响到别人和团队
面试准备:
团队看重的能力
校招看潜力,社招看价值
第一印象:有诚意的简历
明确意向: 明确个人诉求(希望能往哪个方向发展,技术上哪些领域),确定目标团队
回顾总结: 过去的工作经历、沉淀成长和收货
自我认知:有哪些核心竞争力和不足
面谈技巧:STAR ( Situation、Tast、Action、Result )
举一些例子:
同时根据候选人的经历/背景来设计 STAR, 过程中可以加新的 STAR,通过完整的 STAR 了解候选人的能力
面试复盘:总结面试中的表现、经验教训
个人思考:思考需求背后的场景、切实际的“YY”所能产生的价值,不断积累技术以外的项目经验。因为市场上从来不缺技术厉害的人。
误区:
面试技巧和方法
面前:分析 JD、分析团队状况,而不是每次都想着碰运气,到处投一下。尤其是在大厂多个BU,每次投递都有记录,可能会影响你的下一次面试。内推时也不能让朋友随便投。
面中:不要不懂装懂,将重点、思路讲出来,对面试官有疑问 不要辩解,不然是无休止的。不要止于现状,寻求更优方案。
尾声:不要错过咨询面试官的机会,可以补充自己的亮点,冷静下来咨询要进入的目标团队情况,技术特点,如果可以的话主动加面试官微信在面试完以后交流加深第二印象。
Offer 的选择
收到 Offer 之后和面试官多聊一聊,以了解团队是否适合你的发展。
技术好的还是钱多的?都不对,要选择团队、业务成长性更强的
入职之后
学习方法:
可以每天进公司开始工作之前浏览下一些科技型网站,对于新的框架/知识点,看看业界对这个东西的评论,有个大局观,看到大家对这个事情的理解是怎样的。然后记住一些关键词,在学习这个领域的知识时,找对应的书籍去学习就行。
《JavaScript 设计模式》 张容铭
《超越 CSS》老书,库存书,但非常经典
《重构 改善既有代码的设计 第 2 版》
《贝叶斯思维 统计建模的Python学习法》 建立更优秀的数学逻辑思维
《为什么 -关于因果关系的新科学》 同样是思维方式
《系统之美:决策者的系统思考》
《影响力》打造团队、组织、个人的影响力
《刻意练习》意识和专注,对焦和反馈,思考和精进
《深度理解计算机系统》
《横向领导力》不是主管,如何带人成事
《授权:如何激发全员领导力》如何激发全员领导力 领导者-追随者 -> 领导者-领导者
《金字塔原理》
一直在做候选人,所以对候选人的面试技巧就不多说了,简单记录一下。比较奇怪的一点是小卡讲师的分享,候选人的角度分享如何拿到 P8 Offer, 看起来好像跟我没什么关系,但讲话的逻辑和思考的方式非常值得学习。之后视频下来了再去看看,学习一下。
正所谓知彼知己,这次主要是从面试官的角度来考虑要招怎样的人,如何招人,整个流程、考察点以及一些建议。
两天下来过的也很充实,接下来继续沉淀。感谢主办方和讲师。