一、面试前准备
1.1 什么是面试
面试是经过组织者精心设计,以交谈和观察为主要手段,来考察候选者知识、能力、经验、综合素质等多方面。
面试流程
- 一面:以基础知识为主(没那么资深,但技术比较扎实的一线工程师)。
- 二面(交叉面试):以基础知识开始,然后到框架原理、计算机原理,再到业务场景的考察。二面始于基础知识,终于项目经验或项目解决方案(通常是比较资深的工程师)。
- 三面:基本不会问太多技术问题,有可能会问项目经验。通常会问些角色定位、做什么产品、对产品的思考、未来的技术规划。
- HR面试:表现阳光积极的心态,如实回答。
校招和社招区别
- 校招看中基础知识和能力,主要在一面;
- 社招看中经验,主要在二面(基础知识要过关);
- 社招,工作时间越长,越偏重经验;
1.2 如何解读 JD
JD是什么
- JD 是用人单位发布的招聘信息
- 职位描述
- 岗位要求
从JD中能看到什么
- 工作内容
- 技术栈
- 经验要求
不要过于在意JD
- JD 是 HR 发布的(可能不懂技术)
- HR 和技术人员可能会沟通不及时
- 不能完全相信 JD 的要求
1.3 如何投简历
- 员工内推(最为靠谱)
- 猎头推荐
- HR 收集(主动搜索、接收邮件)
1.4 面试准备
面试前准备
- 看JD,是否需要临时准备一下
- 打印纸质简历,带着纸和笔
- 最好带自己的电脑,现场可能手写代码
面试注意事项
- 要有时间观念,如果迟到或者推迟,要提前说
- 衣着适当,不要正装,也不要太随意
- 为何离职? - 不要吐槽前东家,说自己的原因
- 能加班吗? - 能!除非特别自信,能找到其他机会
- 不要挑战面试官,即便他错了
- 遇到不会的问题,要表现出自己积极一面(会给个提示或者给个答案回去补下知识盲区)
二、前端面试
针对不同级别的工程师,技术考察面不一样:
- 基层工程师:基础知识
- 高级工程师:基础知识 + 项目经验
- 架构师:解决方案能力
具备扎实的基础很重要。
- 工程师的自我修养:基础知识
- 扎实的基础能够让你高效学习新技术
2.1 思考
- 拿到一个面试题,你第一时间看到是什么?
- 如何看待网上搜出来的永远做不完的题海?
- 如何对待接下来的面试题?
示例
typeof
能判断哪些类型?- 何时使用
===
,何时使用==
? window.onload
和DOMContentLoaded
区别?- JS 创建10个
<a>
标签,点击的时候弹出对应的序号? - 手写节流throttle、防抖debounce?
- Promise 解决了什么问题?
2.2 如何搞定所有面试题
- 拿到一个面试题,第一时间看到的 -> 考点
- 如何看到做不完的题海 -> 不变应万变(题可变,考点不变)
- 如何对待接下来的题目 -> 题目到知识点,再到题目
示例
typeof
能判断哪些类型? -> 考点:JS 变量类型- 何时使用
===
,何时使用==
-> 考点:强制类型转化 window.onload
和DOMContentLoaded
区别?-> 考点:页面渲染过程- JS 创建10个
<a>
标签,点击的时候弹出对应的序号? -> 考点:JS作用域 - 手写节流throttle、防抖debounce -> 考点:性能、体验优化
- Promise 解决了什么问题? -> 考虑:JS 异步
三、前端基础知识体系
3.1 什么是知识体系
- 高效学习三部曲:找准知识体系;刻意训练;及时反馈;
- 知识体系:结构化的知识范围;
- 涵盖所有知识点:结构化、有组织、易扩展;
从哪些方面梳理
- W3C 标准
- ECMA 262标准
- 开发环境
- 运行环境
3.2 前端基础知识体系
CSS基础知识
- 布局:盒模型、BFC、float、flex
- 定位
- 图文样式
- 移动端响应式:rem、media query、vw/vh
- 动画/渐变
JS 基础语法
- 变量类型和计算:值类型和引用类型、类型判断、逻辑运算
- 原型和原型链:class、继承、原型、原型链、instanceof
- 作用域和闭包:作用域、自由变量、闭包、this
- 异步:单线程、callback、应用场景、Promise、Event Loop、async/await、微任务/宏任务
- 模块化: ES6 Module
JS Web API
- DOM:树形结构、节点操作、属性、树结构操作、性能
- BOM:navigator、screen、location、history
- 事件:绑定、冒泡、代理
- ajax:XMLHttpRequest、状态码、跨域
- 存储:cookie、localStorage、sessionStorage
开发环境
- git
- 调试
- webpack和babel
- linux命令
运行环境
- 页面加载:加载、渲染
- 性能优化:加载资源优化、渲染优化
- 安全:XSS、CSRF
HTTP协议
- 状态码
- method
- Restful API
- headers
- 缓存策略
四、简历正确格式
简历就像高考作文,阅卷时间非常短。简历应当内容简洁、直接重点,可表现出自己的优势。简历需包含以下内容个人信息、教育经历、专业技能、工作经历、项目经历、博客和开源。
基本信息
- 必备:姓名、性别、电话、邮箱、籍贯
- 年龄可不写(能从教育经历评估出来)
- 头像无所谓
教育经历
- 写上最高学历即可
- 学校、专业、入学和毕业时间
- 不要写上高中,显得很不专业
专业技能
- 表现出自己的核心竞争力
- 内容不要太多,3、5条即可
- 太基础的不要写,例如会用vscode
工作经历
- 如实写
- 写明公司、职位、入职离职时间即可,多写无益
- 如果有空窗期,如实写明即可
项目经历
- 写2-4个具有说服力的项目(视工作时间)
- 项目描述、技术栈、个人角色
博客或开源
- 有博客或者开源作品,会让你更有竞争力
- 切记:需要真的有内容,不可临时报佛脚
- 可以从现在开始,慢慢积累
注意事项
- 界面不要太花俏,简洁明了即可;
- 注意用词,“精通”、“熟练”等慎用;
- 不可造假,会被拉入黑名单;