How To Interview Someone
几条思路
- 题目要考察面试者亮点,可以从一个知识点延伸到另一个知识点,考察知识面、知识深度和知识网络
- 考察对新知识、新技术的理解时,要把握住其所解决的问题,并能掌握同类技术间的优劣势,有自己的识别判断能力
- 对面试者有犹豫,可以过可以不过的话,那就不过,要招聘令我心动的好同事
- 能够系统地描述知识的能力,能否在上层进行归类的能力。比如http 3xx 表示重定向,再看具体的 302 和 304
不同轮次的面试
- 初试 – 工作能力
- 专业基础和原理
- 软件工程/项目管理
- 领域的经典问题和解决
- 团队协作
- 执行力
- 创新能力
- 复试 – 成长潜力
- 对职业的兴趣和热情
- 学习能力
- 抗压能力
- 自我认识
- 终试 – 个人素养
- 专注但又不自我设限,相比于急躁和自我设限
- 自我驱动
- 解决问题,以结果为导向
- 团队融入
- 管理能力
知识链路/网络
- 前后端交互 ==> Ajax ==> JSONP ==> 跨域 ==> 前端安全
- 从 HTTP/Cookie/Ajax ==> JSONP ==> JSON ==> js object ==>js 继承实现和作用域
开始
- 自我介绍,简洁连贯,突出亮点。让面试者放松下来
- 基础知识,包含知识广度 + 知识深度 + 知识网络的联系度
- 常用技术,HTTP、Ajax/Jsonp、Cookie,跨域
- 项目经历和经验
- 项目流程(从需求产生到项目上线的完整流程如何)和前端开发的工作流
- 询问其擅长点和薄弱点,面向简历和面试题考察
- 个人开发环境(操作系统,编辑器,浏览器,常用工具,linux 熟悉等)
- 你还有什么问题要问?控制问题数量
- 面试者的职业生涯是否有一定的想法,以及配合的行动呢
- 面试者说说个人的竞争优势和劣势,如何考虑和对待这些劣势
- 说说印象最深的项目经历,或者最有价值的工作产出
面试者的关注点
- 前端团队的规模与分工方式
- 团队是什么样的氛围,公司是怎么样的文化
考察能力
- 个人学习能力和对工作的热爱
- 理解能力
- 表达能力
- 思维逻辑能力和抽象能力
- 判断能力
Javascript
- 原型和继承,以及 Javascript中的 OOP 如何实现
- 作用域、闭包、this
- Javascript 模块化开发
- Javascript 动画原理
- Javascript 模版引擎
- Javascript 类库
- MV* 框架的认知和理解
- Javascript 异步编程
RegExp
- 量词体系
{}
?
*
+
- char classes
\d
[a-z]
- 贪婪 和 懒惰
?
- 位置
^
$
\b
- 模式
i
g
m
- 分组
()
(?:)
- 环视(决策增强)
(?=)
(?!)
DOM(BOM)
- DOM 常见NODE节点类型
- DOM API(DOM查询、DOM操作、事件、CSS操作、DOM事件)
- Ajax 技术?浏览器提供的以异步方式进行HTTP请求响应的API
- 常见的跨域解决方案(JSONP、后端跨域,HTML5跨域、iframe跨域、domain跨域)
- Form 表单操作
- URL 相关操作
- Cookie 操作
CSS
- CSS 盒模型基础(box-sizing)
-
常用布局:普通(文档)流、浮动、定位、多列、弹性盒模型、IFC BFC FFC - 块级 和 行内元素,display 的可选值
- CSS 规则的权重计算
- CSS3 增强(指令、选择器、属性…)
- 回流和重绘,以及CSS性能优化
- 组件化开发 和 Web Components
Html
- 对HTML中的标签进行总结归类,有何思路
- HTML5 增强了哪些:多媒体、Form表单、语义化标签、HTML API
相关领域
- 新的规范,ES5、ES6、ES7、CSS3、HTML5 API
- 浏览器原理
- HTTP原理和缓存机制
- 性能优化
- 前端安全,XSS\CSRF\HTTPS
- 自动构建,grunt\gulp\fis\webpack
- 文档编写
- 单元测试
- 后端 OR Nodejs,命令行、Express、Koa
- 代码的可维护性
- 系统设计