「始」前沿

有幸在5月31号参加了《第八届前端早早聊大会》主办的《前端跳槽的新起点|前端如何搞面试》。在这次大会中从早上9点半一直到下午6点多结束,大会含金量超高,我此次受益匪浅,屁股坐到起茧都是超级值得的。本次大会一共有15位来源于各大厂公司的高级前端工程师和技术专家,每个讲师都给我带来了精彩绝伦的知识与干货。

这次大会的内容不只给我的技术生涯中带来了冲劲,让我认知到自己还有很多的不足与未知。同时也让我认知到了优秀的技术人才与团队的能力模型,讲师们有说到他们的经历和三观,引发了我对自己“保安式”的灵魂拷问。

听完本次大会后,真的让我重新认识了自己,也重新找到了前进方向与目标。最后还收获了许多知识与秘诀。下来我来总结一下我在这个大会上吸收到的知识精华。

文章大纲

  • 「始」前沿
  • 「一」候选人视角看待面试
    • 「1.」面试准备
      • 「1.1」 重新认识自己
        • 性格与心态 —— 深入了解和懂得自己的性格,会对我们在面试和工作中有很大的帮助
        • 自我审视,重新思考 —— 挖掘自己的优势与劣势
      • 「1.2」明确梦想公司与团队
      • 「1.3」准备简历
    • 「2.」面试技巧
      • 「2.1」岗位职级
      • 「2.2」形象建设
      • 「2.3」面试流程
      • 「2.4 」面试技巧
        • 面试模拟
        • 沟通技巧
        • 面试节凑
        • 面试后加微信
        • 面试复盘
  • 「二」面试官视角说招聘
    • 「1.」简历来源渠道
    • 「2.」对候选人的要求
      • 「2.1」优势特征 - 能通过的候选人
      • 「2.2」共性问题 - 未通过的候选人
    • 「3.」岗位剖析
    • 「4.」面试必要准备
    • 「5.」面试官的面试方法
    • 「6.」应聘建议
  • 「三」Q&A - 问答环节
  • 「四」推荐书籍
  • 「终」总结
    • 重新认识自己
    • 推荐专栏

「一」候选人视角看待面试

首先我们从候选人(面试者)的角度来剖析和分析一下面试者应该怎么从准备到面试成功,最后拿到心仪的Offer。

「1.」面试准备

我以前准备面试的时候都会非常慌张,不知道自己需要复习什么,或者做什么准备工作。甚至还有在某宝,某猫,某东买下了一堆的书籍开始刨书。还有就是下了几个TG的视频,然后天天晚上熬夜刨视频学习。这种方法其实作用真的不是很大,而且前端那么多知识,要全部都会,都能深入了解,是并不可能的。更重要的是我们平时每天的累积和沉淀。

那应该怎么准备呢?通过大会中各位优秀的候选人的分享,其实我们第一步应该是重新认识自己

「1.1」 重新认识自己

在大会中我认识到如何深度剖析自己,从性格和心态、优点与缺点、思维、技能与知识、项目经验等维度开始剖析。

每位讲师都有重点提及到,在优秀的团队中更看重的是一个人的自我修养,包括积极乐观面对挑战的态度,自信但保持谦虚的心态和突破瓶颈的魄力。如果在技术中没有,那在生活中我们有没有这样的修养,如果都没有那肯定是有待提升的。

性格与心态 —— 深入了解和懂得自己的性格,会对我们在面试和工作中有很大的帮助

  • 自卑不自信 —— 谦虚但不自卑

    • 很多小伙伴如果没有强大的学历背景和经历,往往会内心很自卑,不自信,在面试前中后都非常紧张、害怕和焦虑;
    • 如果我们是有一些自卑不自信的,那我们是需要去调整和克服的;
    • 但是每一个人的缺点也同时是他的优点,拿内向来说,自然会特别敏感,但是同时也具有洞察和感知他人情绪的能力;
    • 在面试之前,先平复自己的内心,给自己心理暗示(我们是可以的!)
    • 面试的过程中,多使用我们的洞察力来看清面试官当前的情绪从而做出调整,让自己在面试中表现的更好;
  • 自信 —— 自信但保持谦虚
    • 自信是我们的优点,那同理也会是我们的缺点;
    • 自信很容易让我们自大,过于自信时就会忘记谦虚;
    • 我们要时刻保持着谦虚的心,自信而不自大,谦虚而不自卑
    • 自信更多要来源于我们的准备和硬实力,而不是空虚无力的自信;
  • 积极乐观 —— 阳光正面面对挑战
    • 我们可以问问自己是喜欢在一个积极乐观的团队中,遇到问题大家都积极面对,共同寻找解决办法,还是遇到挑战都会一起刷屏“我太难了”?
    • 个人心态会影响身边的人,一个团队的环境更会影响着大家的效率和工作激情;
    • 所以优秀的团队都会选择积极乐观,勇于挑战,有主见,有想法,有自信的人来加入;
    • 注意以下两种消极心态的自己:
      • 二元轮认知 - 解决问题的态度要正面,找到成功的可能,不是站在对立项目的问题;
      • 偏执型人格 - 不要为自己的失败辩解找理由,只为成功找办法;

找到自己的性格,可以从而先解决自己性格上的缺陷,这个也是我们内心最基本的素养。一个优秀的技术人员首先就要有一个优秀的内心素养。良好的素养可以提高我们的面对困难,面对挑战时的心态,也是能让我们在技术道路上走的更远的基本功底。

自我审视,重新思考 —— 挖掘自己的优势与劣势

讲师们讲到的认识自己也包括挖掘自己的优势与劣势。那有哪些是要在面试前要挖掘自己的呢?

深入思考后发现能自我探索,找到自己的能力和缺陷所在,才能让自己持续的成长,让每一件事情下一次做都能做的更好。有一句话“失败是成功之母”,其实这句话里面还有更深层的意思,如果我们失败后不总结,不找出自己失败的原因,无法自我挖掘自己在这件事情中做的好与不好的地方,那再去尝试总归还是会失败的。

每一次失败都是一个学习的过程,重点不是我们失败的结果,而是我们在失败的过程中得到了什么,然后我们应该怎么去改变做的更好。

在开发或者是工作中无非就是从失败到成功,从做的不够好到做的更好的过程。所以我们要善于总结自己,找到自己的优点与缺点,扬长避短,不断提升改变自己,才能让自己越来越优秀,越来越成功。

认识自己是一个很漫长的过程,持续的自我探索本身也是一种能力。只有发现自身的优势与劣势才能更好的让自己持续突破瓶颈往前迈进,也是一种发现自信的过程。

那么我们具体要挖掘自己哪些东西呢?

从古到今:

  1. 学习到的知识
  2. 工作中参与过负责过的项目;
  3. 在每个项目中的角色和做的事情
  4. 最终我们得到了什么“量化”的效果结果

首先讲讲知识:

具体剖析自己懂得哪些,哪些是自己的强项,哪些是自己的弱项。强项就深挖学习,弱项就刻意学习。

  • 需要我们懂什么知识

    • 基础知识

      • JavaScript, HTML(5),CSS(3),HTTP,浏览器等
      • 要懂方法实现和工作原理
    • 框架能力
      • 3大框架必须至少熟悉到精通使用其一;
      • 并且深耕到框架底层实现和工作原理;
      • 重点复习React和Vue;
      • 还有每个框架的周边产品的运用和原理;
    • 常见设计模式
      • 不能就准备如何实现;
      • 更多的需要知道设计模式如何在项目中如何应用与实现;
      • 作用是什么?为了什么?
    • 前端性能优化
      • 4个层面资源优化,请求优化,渲染优化,JS优化;
      • 每一个优化知道1-2种优化;
    • 数据结构及算法
      • LeetCode刷题量(每天1-2题),有较强的逻辑思维与能力;
      • 以简单到中等难度为主,偶尔练一练高难度的题目;
      • 常用数据结构:树、栈、队列等;
      • 运用了数据结构及算法解决了什么复杂的业务问题;
    • 源码阅读
      • 熟悉的技术栈关键源码;
      • 源码的实现逻辑;
      • 懂得为什么这么实现,有什么好处,可以列举出来;

分析出我们懂得哪些知识和有哪些我们需要加强的,我们应该怎么学习和加强呢?讲师们给到以下意见:

  • 学习与加大知识库

    • 形成知识体系

      • 知识点
      • 理论
      • 体系
    • 学习 - 输入知识
      • 看书 - 技术书籍、技术以外的书籍
      • 看文章 - 博客、官方文档
      • 源码 - 通过看懂看透底层原理
      • 看视频 - 报课程
    • 构建关系
      • 思维导图 - 牢固的知识是从有树干到树杈到树叶,都是一环扣一环的
      • 5个Why - 构建知识脑图时的5大重点
        • 背景 - 技术诞生的背景以及迭代史是什么?
        • 原理 - 技术原理是什么?
        • 场景 - 有哪些应用场景?
        • 比较 - 横向比较同类技术,各自的优点,缺点是什么?
        • 未来 - 未来会支持哪些新特性?
    • 稳固 - 费曼技巧(以教为学)
      • 提取压缩 - 写成自己的笔记,脑图等等,抽出知识的重点与精华
      • 转为语言 - 明确任务、拆分知识、清理关系
      • 列举例子 - 新例子、新视角
      • 能教能传授 - 能教会一个不懂这门知识的人,这个知识你才是真的达到精通水平

然后我们来讲讲项目:

各位讲师都反复强调,在面试的过程中我们要习惯使用STAR法则来剖析我们的项目经历和经验:

  • Situation - 场景
  • Target - 目标
  • Action - 行动
  • Result - 结果

具体表述时使用以下部分,一步一步来讲述自己的项目经验:

  • 背景:项目背景,是什么情况下发生的
  • 角色:我当时承担了什么角色
  • 职责:负责工作的哪一方面,协调/开发/等等
  • 难题:遇到了什么难题,怎么解决的,为什么这么解决
  • 结果:项目结果如何,有数据支撑更有说服力
  • 沉淀:做完这个项目沉淀了什么,给别人带来了什么
  • 复盘:如果重新让你做这件事,你会怎么做,有什么更好的方案
  • 评价:项目中的表现,你周围小伙伴怎么评价的,上级怎么评价的

梳理“关键”经历和经验:(阶段性需要回顾经历和经验,以项目或者半年为周期)

  1. 梳理2-3个亮点项目,并能通过STAR法则描述

    • 让面试官了解,我们做了这个项目不只是为了KAI,我们是有思考,有主动思辩思维
    • 这个也能体现出Owner精神
    • 在项目中的角色和起到的价值
    • 工作中对团队/他人的影响(不只局限于做好自己)
  2. 梳理人生的失败经历,传递看法、描述行为、获得成长
    • “项目黄了=没有受益”?❌❗️,不是的
    • 通过失败的经历,传递你面对失败的态度
    • 并且能够反思自己,并加以改变,最后获得了成长
    • 反面例子:遇到失败就堕落,抱怨,退缩,这样反而让面试官觉你逆商不够
  3. 梳理人生的高光时刻,传递你的价值观和需求层次
    • 首先问自己:这件事情为什么让你觉得是人生的高光时刻?
    • 当前处在《马斯洛》的《需求层次》的那个层次呢?
  4. 梳理职业规划方向,思考未来想成为一个什么样的人?
    • 在面试中都是一个高频的问题

最后再多想想我们自己的经历,过往的人生中做过成功的事情和失败的事情,在这些事情当中多问自己“为什么”。为什么会成功为什么会失败?做了什么让事情得到了好的结果,又做错了什么导致自己的失败。这个过程其实是很有趣的。

「1.2」明确梦想公司与团队

在大会中讲师们也有重复强调一个点“找到合适你的公司/团队/项目”非常重要。

这个也是为什么我们第一步先要剖析自己,重新认识自己,因为只有了解自己的能力和自己是怎么样的人,才能更好的找到合适你的公司,团队和项目。

  • 何为合适?

    • 公司

      • 企业文化
      • 企业价值观
      • 企业规模
      • 企业发展方向
    • 团队
      • 团队文化
      • 团队价值观
      • 团队使用的技术栈
      • 能否让你成长
    • 项目
      • 业务是否是你感兴趣的
      • 项目的发展方向
      • 价值观相同
      • 能否让你成长

找到自己合适,有共同价值观,共同努力目标的公司和团队是完全不一样的体验。在大会中好几个候选人都分享了进入团队后的感想,这里也分享一下他们的感悟:

  • 见识到阿里工程师最基本的职业素养

    • 既要有过硬的前端基础技术能力打底
    • 也要有ONWER意识,团队推动力,跨团队协作能力,沟通能力非常重要
    • 优秀人才多,互相吸引,互相敦促成长,共同进退
  • 真-海量知识
    • 进来的第一周感觉知识像洪水一样涌入,技术产品和业务沉淀齐飞
    • 有非常多的优秀知识在内网
    • 无论是软实力还是硬实力都在压力下极速成长
    • 完备的基础设施和工作流
  • 终于在国民级应用上大展拳脚
    • 爽,刺激,有成就感,能让很多亲朋好友都见到自己亲手写的代码
    • 同时也面临着更大的挑战,千万级流量下更严苛的性能挑战,线上稳定性保障
  • 为何要选择阿里巴巴
    • 大平台、大公司、大机会
  • 为何选择淘系技术部
    • 稳定成熟业务体系
    • 不缺乏创新点

经历过这次大会,我发现人生中最重要的两个选择,也是会陪伴我们最长的,那就是梦想公司/团队终身伴侣

「1.3」准备简历

一个好的简历就像等于一块3级敲门砖,为我们敲开进入大厂的第一扇门。

简历中需要注意的

  • 书写原则:

    • 排版清晰,技术的简历模版不要“标新立异”(导出PDF)
    • 挑选重要、突出的优势表达
    • 无关次要的不要表达
    • 适度包装、不能造假
    • 用量化指标去说明
  • 职位JD:
    • 挑与岗位匹配的内容
    • 岗位职责、硬技能、找差距、不齐差距
  • 内容排版:
    • 基本信息(要全面:包括邮箱、联系方式等基本信息)
    • 专业技能(专业技能按掌、熟悉、了解程度依次罗列)
    • 项目经验(亮点项目详细写,附带数据描述成果更具说服力)
    • 教育背景
  • 简历模版
    • WonderCV、五百丁
  • 多份简历
    • 不同岗位
    • 不同公司
    • 不同等级
    • 以上不同的都需要针对的去调整简历内容

「2.」面试技巧

任何事情要做好,首先我们要先了解清楚这个事情的来龙去脉。那面试也是一样的。

「2.1」岗位职级

这里主要讲说的是阿里巴巴的技术岗位职级。很多时候去面试失败怀疑自己是不是哪里表现的不好,往往有可能是自己对自己的能力认知有误差。能力在P6时,去投了P7等级的岗位面试,这样结果很大可能会失败。所以首先要找到对标的岗位职级

  • P5 级别

    • 独立执行既定的任务,寻找更优解
    • 培养潜力巨大,较强学习能力
  • P6 级别
    • 独挡一面,能负责多个业务模块
    • 能团队协同做项目,担任项目PM
  • P7 级别
    • 专家,一杆到底的系统性思考
    • 技术方案可被复制

注: 详细的岗位职级会在“面试官视角看面试”的部分详细讲说

「2.2」形象建设

在面试之前,我们要整理好自己的形象。一般来说在我们首次与陌生人相见,第一形象和眼缘是会给别人带来很大的吸引力。

  • 声音形象 —— 通常第一轮面试都是电话面试,所以我们都是通过声音来交流

    • 语速

      • 反面例子:语速过快导致听不清,语速过慢会让面试官失去耐心
      • 正面例子:保持均匀的水平(一分钟大概200字左右)
    • 语气
      • 反面例子:语气上扬太高会显得你很轻浮,不够稳重
      • 正面例子:心平气和,温和的语气,外显的是平和、尊重与体贴
    • 语调
      • 反面例子:语调太低,语调微弱,会给人感觉胆怯懦弱
      • 正面例子:用胸腔偏下的位子发声,这样发出来的声音是雄浑有力的,不会显得很沉闷反而会有一些磁性
  • 外在形象
    • 简单、干练、不邋遢
    • 头发洗一洗
    • 头发鼻毛剪一剪
    • 胡子剃一剃
    • 穿着干净简单大方
  • 内在形象
    • 人格上吸引力
    • 自信、踏实、皮实、乐观

「2.3」面试流程

根据各位候选人的总结,阿里面试基本上都是5-6轮。一般在1-3周左右完成。

我从几个优秀的候选人的面试经历,总结出的大概面试流程:(因为不同部门,不同团队,会更具部门要求有所差异,只供参考)

  • 技术一面 - 同岗研发/直属主管(30分钟左右)

    • 考察重点:基础和知识广度(专业80% + 软素质20%)
    • 内容:
      • 计算机基础:算法、数据结构
      • 前端基础:JS/CSS、前端框架、Node、浏览器原理、网络、安全、跨端能力(后端或客户端)
      • 编码能力:逻辑是否清晰、辩解是否考虑到、思维是否活跃、设计模式能否应用、方案设计与细节
      • 技术视野: 行业技术现状、新技术的了解和实战
  • 技术二面 - 部门主管/前端负责人(40分钟左右)
    • 考察重点:工程能力、设计能力、规划能力(专业60% + 软素质40%)
    • 内容:
      • 工程能力:效率、质量、性能、定义标准、产出规范
      • 设计能力:抽象能力、拆解能力、健壮性、扩展性
      • 规划能力:做事的思路是什么
      • 沟通和推动力:是否有一套自己的项目推动方法和成功案例
      • 产品意识:事情的目标是什么?存在哪些问题?如何解决?价值体现在哪里?规范?共建(也就是项目STAR讲述过程)
      • 其他软实力:聪明程度、学习能力、责任心、价值观等。
  • 技术三面 - 部门TL/总经理(100分钟左右)
    • 考察重点:技术格局和视野、人生规划、软技能考察
    • 内容:
      • 沟通表达能力
      • 工程架构能力
      • 业务/行业思考理解
      • 综合能力与成长性
      • PS:这一轮有可能出现笔试
  • 技术四面 - 交叉面(20分钟左右)
    • 考察重点:项目经验、价值和解决问题能力
    • 内容:
      • 方案选型与设计细节
  • 技术五面 - 大BOSS/HRG(60分钟左右)
    • 考察重点:项目中的亮点技术方案、业务能力、抗压能力
    • 内容:
      • HR更注重软实力
      • 综合能力与成长性
      • 人才调性与匹配度
      • 发展与薪酬待遇

如果面试官觉得还需要深入了解或者确定候选人的能力,还会加多一轮交叉面试。主要还是为了能对候选人有一个公平公正的评估,让候选人能拿到与能力相配比的岗位职级。

「2.4 」面试技巧

这次大会中候选人提出了很多不同的面试技巧,这里我总结了我觉得最实用的技巧分享给大家。

面试模拟

  • 自我模拟

    • 讲给自己听
    • 讲给朋友听
    • 找一个在你水平之上的前辈模拟面试
  • 实战模拟
    • 收集反馈
    • 分析问题
    • 自我调整
    • 反复实战

沟通技巧

  • 沟通原则 ——

    • 客观描述事实,不做主观臆断
  • 三说 ——
    • 知道的知识-自信说
    • 模糊的知识-假设说(分情况说)
    • 陌生的知识-诚实说(比如说我的知识还没有接触到这一块,“但是”我知道什么什么,我可以跟你聊什么什么,把不擅长的话题往你知道的带)
  • 三不说 ——
    • 不说谎话
    • 不说抱怨的话
    • 不说轻浮的话

面试节凑

  • 引导对方

    • 每个面试官会问的问题都是无法预测的
    • 所以我们可以引导面试官问我们擅长的问题
    • 知识点A引申出知识点B、C,预埋问题坑位,引导对方提问
    • 注意重点还是要在回答A上,顺带B和C来做引导下一个问题的主题
  • 渲染情绪
    • 在面试的时候要多感知对方的情绪
    • 感知对方情绪,判断策略,引发对方的共情
    • 特别是我们有高光时刻,这些是很容易让别人产生共情的
  • 反问阶段
    • 如果在这个阶段不知道问什么的时候,有一个保守的问法
    • 了解对方团队、技术栈、痛点问题、组织定位

面试后加微信

  • 夸赞对方 —— 夸赞对方在技术领域的专业性
  • 承认不足 —— 勇敢承认自己当前的不足
  • 询问建议 —— 询问从面试官视角给予你未来的建议
  • 建立人脉 —— 弱关系,未来关键时刻能帮上你

面试复盘

  • 复盘结果 —— 梳理答的好/不好的知识点,记录,找差距,反复实践
  • 复盘情绪 —— 回忆面试那种情绪占比多,紧张、开始、严肃、调整心态

「二」面试官视角说招聘

站在候选人(面试者)的视角,我们总是会去思考面试官会怎么面试我们,需要我们具备什么技能和能力,拥有哪些人格魅力与高光点。这一次大会有一半讲师都是从面试官的视角来讲招聘。我们一起来学习,会对我们求职的过程中有很大的帮助。

「1.」简历来源渠道