从不同的角度看面试,你能学到更多

前端如何面试

2020.5.31 前端早早聊第八期 前端聊面试

候选人角度

如何梳理结构化体系知识?

每个人的经历和基础水平是不一样的,可以借鉴下面分类来梳理自己的知识体系

  • 常规前端基础知识
  • 遇到业务问题而做源码解析
  • 奇怪问题的集合
  • 社区优秀问答收集
  • 工程架构:书籍摘抄、软工类
  • 进阶规划

项目亮点如何深挖?

简历中项目的知识点,自行审视之后对比其他方案。
这个知识点背后利用了什么算法?
举例:React 的 diff 算法,先做个标准回答,然后对比其他 diff 场景,不同 diff 算法各有什么优缺点,为什么使用这种算法,除了 React dom 之外,这个算法能不能用到其他地方,横向比较。

面试前准备

抛开裸辞的大佬,面试前我们都会有一个准备跳槽阶段,而大部分人现状:临时抱佛脚,到面试前才开始准备。那么怎么抱佛脚?

  1. 自我介绍:准备个草稿,然后多读,最后浓缩自己的话说出来
  2. 基本功:懒得刷就算了,毕竟主要靠平时积累的。
  3. 算法题:刷力扣
  4. 历史负责的项目回顾(重点)
  5. 调整好心态


基本功不说了,面经太多了。看看后面几点:
算法常见考点:

  • 冒泡/快排 - 排序类
  • LRU/排列组合 - 应用类
  • 链表/堆/栈/树/图
  • 分治/动规
  • 深度优先/广度优先

如何找到合适的题?在面试前可以刷下面几道题来找找感觉,掌握相关的知识点:

  1. 图算法 200 岛屿算法
  2. 数据结构 622 设计循环队列
  3. 排序:自己写
  4. 分治/动归 53 最大子序和
  5. 排列组合 39 组合总和

项目回顾的点:

  • 项目背景/复杂度。我的角色和价值
  • 既往对业务的推动,为什么这么做
  • 过去工作中对团队/他人的影响


抛开技术人的角色,像老板一样思考
列出之前参与过、负责过的项目,思考项目在公司层面的意义。
项目的业务域考虑:客户是谁?诉求是什么?有没有做过使用场景的考察?为何替代原有方案?
技术域考虑:技术选型时是否考虑过学习成本、可维护性、团队接纳程度?对技术人员有哪些成长?


如何审视自己在工作经历的成长
首先,想想学会了哪些技术点,这些技术点对项目的意义是什么?React Hooks? 数据可视化或者是微前端?
其次,考虑设计了某种架构体系,这种架构的演变是由于什么因素产生的

面试心态的调整

核心要素: 自信但不自负,在于平等交流

不要把面试官当成是监督你考试的人,他们是你以后的同事,想象是和你一起讨论如何解决某个问题。
基础知识:HTML5、JS、CSS,还有三大框架取其一,设计模式、前端性能优化,计算机网络基本知识
源码阅读:主要关注框架核心实现
建立个人标签风格:爱捣鼓、积极主动、钻研精神、寻根问底等等
算法:无法取巧,重点在走心。刷完题之后多做总结。

面试官角度


先放一张贵重大佬的图,以钉钉为例,来看看前端招聘的全流程:

从不同的角度看面试,你能学到更多_第1张图片

面试原则

  • 面试是双向选择的过程
  • 切忌和候选人比拼知识技能
  • 招聘是找未来合作的同事,找未来的合作者。 在候选人可过可不过,你比较犹豫的时候,你要考虑要不要根他合作

JD 分析

我们总是能看到一些公司招人对候选人的要求,下面来分析下我们能从这些描述中提炼出我们想要的信息。
岗位描述分析

从不同的角度看面试,你能学到更多_第2张图片


岗位要求




候选人考察点

一般第 1、2 轮为技术面,偏向技术基本功、主流框架能力、原理性掌握、个别算法知识;及过去的业务相关主导内容,聊的多是技术细节及岗位细节。⼀般到了 3、4 轮会更综合维度的考察候选人,包括业务理解、项⽬管理、具体的技术解决方案,看技术认知、⽅案沉淀,除了专业技能的考察外还会看职业能力和性格,判断能⼒和潜⼒。P7 以上及管理,还会聊聊⾏业理解、团队管理与协作。


特质上考察人是否聪明、自省、乐观皮实


特定轮次考核点:P6 为例
初轮技术面,技术基本功、常用框架掌握、常用方案掌握
二轮技术面:基本的职业能力考察、综合深度考察、技术基本功
三轮现场面:体系型还是体系内(离开环境后是否能自建体系),认知段位及落地能力(技术和业务之间,业务之间的优先级),长短板、匹配度、管理成本及风险评估。 考察是否有很强的偏执型人格,比如讨论需求大声拍桌子、严重降低团队士气的。


蚂蚁招聘流程
时长每轮 20-50 分钟, 2 周内完成全部流程

  • 一面 前端基础
  • 二面 更考察实际运用能力,考察前端技术素质、上升潜力、沟通能力
  • 三面 总监终面,总体考察技术素质,编码能力
  • 四面 hr,综合素质,「味道」价值观、匹配度
  • P7、P8 可能加一面


淘系

  • 前三面技术 业务理解、专业知识、技术实现能力、技术价值和业务判断
  • 四面交叉面 加强综合素质考察
  • 主管终面
  • HR面 注重阿里文化的契合度


聊项目的面试方法,先最深刻的项目入手,询问候选人下面问题:

  • 业务目标
  • 方案选型
  • 技术细节
  • 最终结果是否有数据能证明
  • 学习思辨能力

主要是为了考察候选人前端综合能力


举例:
基础知识:const 定义的变量编译成 ES5 后如何保持块作用域的特性,90%的人能答上来,但很少有人去探究到V8引擎层面
其他问题:工作中的亮点、为什么会有这份产出(考察最原始需求分析)、剖析技术方案的细节(是否具备健壮性和通用性),如果变得更复杂如何解决(知识面广度深度以及逻辑思维)、如何学习新知识(一贯方法论)

候选人优势

下面有几点是有重复的,它们是全选或。毕竟人无完人,所以这些都是加分项:
1.基本功扎实: 良好的技术基本功,良好的开发流程理解,对负责业务的理解,API 之外原理的探究,加分项-技术品味(追求细节,追求极致)
2.独特亮点:核心竞争力

  • 技术深度-内部实现、底层原理,在性能方面能从浏览器和网络方面考量)
  • 广度
  • 领域亮点:WebGL、NodeJS
  • 业务:业务阈值有自己的思考

3.要强性:良好的主动性、主动探寻更多方案、对平庸的低忍耐,抓机会和落地能力
4.如何证明自己? 主导过的业务,推动过的建设、解决过的复杂问题、个人作品如个人项目、博客
5.较好的认知:非被动执行思维、对技术的嗅觉、非二元类认知(即对立面之外的认知,而不是非黑即白)
6.热情上进

  • 爱钻研、折腾
  • 爱学习
  • 爱总结

7.充满要性(做一件事追求极致的心态)

  • 能够积极主动
  • 善于思考,为什么做这件事?
  • 推进力强

没有通过的原因

  • 基本功不行,7 年时间 2 年经验、4 年销售自学2年前端、面试沟通一直外围绕圈(说关键字、背面经,没有实践过),动手能力弱,偏科严重
  • 职业能力:3 年 4 跳(稳定性问题),基本沟通能力堪忧,业务经验差、被动执行,综合深度浅,只是想做完。(不知道自己在做什么,只能看到最近两周自己做的东西,也只想赶紧做完)
  • 技术发展问题: 知其然不知其所以然/知识面窄/项目实践少
  • 潜力问题:学习总结少/不善于思考/埋头执行/思路单一
  • 性格问题:偏执性人格(后面会再提到)
  • 简历造假(诚信),匹配度(双向匹配,可能比较优秀,但实际不匹配),背调、口碑(在之前公司的口碑不好等),只是背面经(过度包装自己)

简历渠道

  • 内推是主要方式之一,猎头面向专家级
  • 成功率最高的是熟人内推和 BOSS、拉勾为主
  • 也有一些求职者对外输出文章,托关系内推或者在求职平台自荐
  • 技术大会及社区

岗位剖析

层级及关键能力,可以查看先前文章前端规划
以 P6 能力拆解
自驱力
专业能力: 对常见框架的库、规范、联调能力与他人沟通能力,一定的 Nodejs 和服务端语言能力
职业能力:良好及时的沟通,独立的前端业务接入能力、领导跨部门项目的 PM 能力,理解业务优先级,有效管理业务预期,能跳出前端看问题,寻找最优(不局限于前端)解决方案
场景方案:通过一个问题能解决一类问题,考虑必要的投入产出比
推动及落地能力:是不是只会说不会用,能不能推动产品落地,影响到别人和团队


面试准备:

  • 表述清洗的简历,真实勿造假,倒序、提炼,避免“万字文”,PDF 格式优先,避免空洞的关键词堆砌
  • 必要的基本功复习
  • 复盘既往工作的价值:过去一段时间最大的成长,重点在个人产生的影响。有结构性的认知,体系化的思维
  • 后续的职业规划: 目前长短板,后续成长方向,个人需要的成长空间如何


团队看重的能力

  • 业务支撑 能力,拿钱就该干的或
  • 推动改变 能力,能主动发现问题
  • 学以致用 能力,持续的输入输出

应聘建议

校招看潜力,社招看价值
第一印象:有诚意的简历
明确意向: 明确个人诉求(希望能往哪个方向发展,技术上哪些领域),确定目标团队
回顾总结: 过去的工作经历、沉淀成长和收货
自我认知:有哪些核心竞争力和不足
面谈技巧:STAR ( Situation、Tast、Action、Result )
举一些例子:

从不同的角度看面试,你能学到更多_第3张图片

同时根据候选人的经历/背景来设计 STAR, 过程中可以加新的 STAR,通过完整的 STAR 了解候选人的能力


面试复盘:总结面试中的表现、经验教训
个人思考:思考需求背后的场景、切实际的“YY”所能产生的价值,不断积累技术以外的项目经验。因为市场上从来不缺技术厉害的人。
误区:

  • 死记硬背概念、知识速成、海量刷题
  • 新技术盲目追捧
  • 面试过程一问一答、不问不答、话唠、东拉西扯,希望有举一反三,但能明确问题的目标
  • 不知道自己是谁、自己有什么、自己要什么、该去何处(没有考虑过自己的核心竞争力,离职原因)
  • 诚信问题


面试技巧和方法
面前:分析 JD、分析团队状况,而不是每次都想着碰运气,到处投一下。尤其是在大厂多个BU,每次投递都有记录,可能会影响你的下一次面试。内推时也不能让朋友随便投。
面中:不要不懂装懂,将重点、思路讲出来,对面试官有疑问 不要辩解,不然是无休止的。不要止于现状,寻求更优方案。
尾声:不要错过咨询面试官的机会,可以补充自己的亮点,冷静下来咨询要进入的目标团队情况,技术特点,如果可以的话主动加面试官微信在面试完以后交流加深第二印象。


Offer 的选择
收到 Offer 之后和面试官多聊一聊,以了解团队是否适合你的发展。
技术好的还是钱多的?都不对,要选择团队、业务成长性更强的


入职之后

  • 不断学习、适应、成长,在业务中磨练
  • 拥抱变化、不要拘泥于自己的技术栈


学习方法:
可以每天进公司开始工作之前浏览下一些科技型网站,对于新的框架/知识点,看看业界对这个东西的评论,有个大局观,看到大家对这个事情的理解是怎样的。然后记住一些关键词,在学习这个领域的知识时,找对应的书籍去学习就行。

问题参考

  • 你离职后团队会有什么影响?
  • codereview 你最看中什么?如何保障
  • 你的朋友或同事怎么评价你的?
  • 你怎么激励你的团队成为更好的团队?(面向TL)
  • 分享一次团队任务陷入僵局或遇到困难,你如何扭转局面、推动进展(P7)
  • 分享一次最让你印象深刻的受批评的事件?在这个过程中具体经历了什么
  • 目前为止,你坚持做的最久的事情是什么?

推荐书籍

《JavaScript 设计模式》 张容铭
《超越 CSS》老书,库存书,但非常经典
《重构 改善既有代码的设计 第 2 版》
《贝叶斯思维 统计建模的Python学习法》 建立更优秀的数学逻辑思维
《为什么 -关于因果关系的新科学》 同样是思维方式
《系统之美:决策者的系统思考》
《影响力》打造团队、组织、个人的影响力
《刻意练习》意识和专注,对焦和反馈,思考和精进
《深度理解计算机系统》
《横向领导力》不是主管,如何带人成事
《授权:如何激发全员领导力》如何激发全员领导力 领导者-追随者 -> 领导者-领导者
《金字塔原理》


总结

一直在做候选人,所以对候选人的面试技巧就不多说了,简单记录一下。比较奇怪的一点是小卡讲师的分享,候选人的角度分享如何拿到 P8 Offer, 看起来好像跟我没什么关系,但讲话的逻辑和思考的方式非常值得学习。之后视频下来了再去看看,学习一下。
正所谓知彼知己,这次主要是从面试官的角度来考虑要招怎样的人,如何招人,整个流程、考察点以及一些建议。
两天下来过的也很充实,接下来继续沉淀。感谢主办方和讲师。

你可能感兴趣的:(前端)