曾经被面试,被拒绝了,很不解,自己觉得明明表现得还可以的,怎么就被拒了呢?
如今,当角色转换为面试官之后,站在面试官的角度,再思考问题,应也会拒掉当初的自己。
昨日,HR小姐姐突然通知,今天要面试15个候选人,19届的校招儿,每位15分钟左右,而且只有一个是现场面,其他都电面。
说实在的,那一刹那是有点慌了,虽然前不久现场面过两个人,但还一直懵懵懂懂地不知道怎么评判一个候选人。
就当是一个历练吧,先去学一下老人家们是怎么面试的。本文就总结一下今天的面试(校招初面),各位看官看看就好哈
一. 面试官需要做到三件事
1. 自己复习好或去学一下相关技术点
没错,面试官也是需要准备的。要防止理解不来候选人的技术,也为了能够hold住现场。
2. 想一些要问的问题,想好怎么评判候选人
问题的选择还要有连贯性,更进一步地,还要预先想到候选人可能会怎么答,自己要怎么接。作为面试官,最好提问要思路清晰不要断。
3. 想好怎么在面试过程中记录重点的讨论,用以佐证面试结果
二、怎么考察校招候选人
在我们这边,初面一般会限制在15分钟左右,要在这么短时间内考察一个人是有点难的,所以要抓好关键点。
对于应届校招生来说,我个人会从这四个角度考察
1. 计算机基础
对于在校生来说,会比较看重基础,数据结构、算法、网络、操作系统 这些还是会涉及的,但不会太难。
社招有另外的玩法,另外,在校的暑期实习生会降低一些要求
基本都会从以下抽几个来问问,前端基础和项目经验失分的话,这里就是得分点了
数据结构:栈和队列的区别,JS里面的栈和队列,二叉树的几种遍历方式(高级)
算法:二分查找,冒泡排序,插入排序,快排(高级),深度/广度优先搜索(高级)
网络:OSI七层模型,HTTP/TCP在哪一层,HTTP和HTTPS区别,HTTP三次握手和四次挥手,常见状态码和首部字段,GET和POST区别,HTTPS连接过程(高级),了解HTTP2么(高级)
操作系统:进程和线程的区别
2. 前端基础
虽然对在校生看重基础,也不代表不看重前端的专业基础。毕竟你是要做前端的,就应该有所准备。
问题首先会选前面三个基础的,然后会根据候选人用过的技术、框架来调整,一般都会问为什么要用XX技术,XX技术相比起来有什么优点。
HTML:怎么理解语义化标准化,HTML5新增的特性(别只会说新标签,我希望你能说出新的API)
CSS: 垂直居中的实现,position属性值的区别,浮动的问题和解决,怎么用CSS画圆画三角形,Flex布局用过没,rem是什么以及和em的区别(高级),BFC(高级),内联盒模型(高级),CSS动画的简单使用
JS: 闭包是什么以及特点,怎么继承举个栗子,作用域是什么举个栗子,setTimeout/setInterval区别,了解过哪些事件(很多人把双击事件说成是doubleclick),原生获取DOM元素(希望能说出新的API)、获取元素宽高方式,clientHeight/offsetHeight/scrollHeight区别(高级),在元素后面放元素(高级)
ES6:用过哪些新特性,let和var区别,Promise状态及为什么用它,箭头函数this指向
jQuery: 链式调用怎么实现,有看过源码么(说一下知道有哪些实现),它有什么缺点
bootstrap: 为什么用它(希望能说出响应式),简单说几个用法,自己可以实现栅格化么(高级)
NodeJS:它有什么特点,为什么不用其他后台语言
Webpack:有自己配置过么,loader和plugins的区别,和gulp/grunt的区别
综合:前端安全的认识,前端优化的方法,强制缓存/协商缓存相关,cookie和session,websocket和http区别(不用它则怎么实现实时),url从输入到页面渲染的过程(dns解析过关,DOM构建过程加分,浏览器进线程加加分)
框架:为什么用Angular/React/Vue/Redux/Vuex(说出特点,它们解决了什么问题),生命周期,setState不保证同步,组件间通信
其他: ...
3. 项目经验
项目经验主要考察候选人的实践,以及解决问题能力。一般来说一个项目太少了,列2-4个比较好,太多也看不了那么多
做过的最好的项目是什么,这个项目里面用到什么技术(期间会从关键词展开问技术点)
在项目里面遇到过什么棘手的问题没,怎么解决的(希望不要只说百度搜索)
如果让你优化这个项目,你觉得可以怎么改进
这个部分也包括过往在公司里面的实习经历
实习期间做的是什么,有什么收获
实习期间的开发流程
如果前面技术基础和前端基础答得不错了,这个部分就不会问太多了,因为时间不够用,且一般也会放在下一轮面试中细问。
如果前面都答得不好,如果项目经历这个部分有优势,还是有希望的。
4. 综合能力
态度,有没有迟到
会稍稍关注专业课的成绩(不一定)
学前端多久了,怎么学的,看过哪些书,有没有技术总结
个人优点/缺点
关注技术热情,职业规划有没有
沟通顺不顺畅(要注意反应不要太迟钝,自己注意什么时候该收口了),思维条理清晰与否
上面列举了这么多想要问的问题,问题是列举不完的,时间限制也不允许问那么多,也没必要,所以会从各方面抽取几个问题来问。
首先,我会点几个计算机基础,然后着重问前端基础,如果前端基础挺好,就再过一下项目经验,不出差错基本就通过了。
如果前端基础和项目经验这块挺一般的,就会再回去问一些计算机基础,结合专业成绩考察,如果计算机基础还不错,从第四点综合能力判断值不值得培养,如果面试人数很多的话会放到备考虑,一般会放到通过(看我人多好~)
如果计算机基础,前端基础都挺一般,那肯定是不通过了。
最纠结的是评判备考虑,某些点好某些点又不好的难以抉择,所以希望候选人不要有“突出”的短板,为自己也为面试官。
三、面试官是怎么记录面试过程的
面试过程只有十几分钟,面试官在和候选人沟通的同时需要记录相关的关键词,用以佐证面试结果。
我们这里面试记录有候选人阐述和面试官评价两个部分,下面就列一下我某条“通过”的记录,
候选人阐述
在校期间成绩还可以,奖学金,大赛获奖
大三开始学前端,看视频,看书,在自己博客总结记录
JS比CSS好一些
实习前自己做了三个项目
去stackoverflow,github,官方文档解决问题
规划:先深入基础,后面会做一些NodeJS相关的,走入全栈
面试官评价
osi七层模型,http/s区别,http四次挥手
进程和线程区别 不了解
前端优化方法 ok 前端安全 一般
语义化 ok
url -> 页面渲染过程 中等(dns查询,网页渲染流程)
垂直居中,使用position, flex布局
js闭包,继承 ok 原生js操作dom 一般
看过jq源码 只知道无new式对象的实现
session和cookie区别
react比jq优点,虚拟dom,setState,组件间通信(props回调,发布订阅)中等
二分查找 熟悉
反应较快,沟通顺畅,话稍多
技术基础:中等
前端基础:中等
综合:中等
这个“通过”的关键词有点多,有时也不会列举辣么多。
通过的时候会着重列举好的地方,不通过的时候一般多为不好的
虽说一天之内面了那么多人,也只能说是面试菜菜,还需要多多改进练习,参与主宰一个人的工作机会,这种感觉很特别呀~
希望各位前端儿,能够尽快巩固好自己的基础,包括计算机基础和前端基础。
其一,它是敲门砖;其二,工作之后会懒得去学,也没那么多时间去学基础了。