最近公司由于业务的扩展、技术的延伸需要招一批有能力的小伙伴加入,而我有幸担任“技术面试官”的角色前前后后面试了不下50多位候选人,如同见证了50多位前端开发者的经历一样,在面试的过程中也让我获益匪浅,特此记录。

本文目录:

一: 属于什么级别/应该掌握哪一些技能?

本次的招聘对于级别没有特殊的限制,所以在初,中,高级分别设立三种不同的标准来考察候选人是否真的适合公司的开发工作。

1. 初级前端开发工程师:

      1) 基础扎实,对于HTML/CSS/JavaScript有深刻的理解,能了解闭包,原型,CSS动画等基础的内容。
2) 有一定的项目经验,平时有养成浏览社区,吸收新鲜知识的习惯。
3) 态度上进,对于抛出的问题即使自己没有解决方案,也有讨论的意向。 2. 中级前端开发工程师: 1) 熟悉jquery或者underscore等其他开源框架或库的源码,对于其中一些典型方法的实现原理有些印象。
2) 有丰富的项目经验,分别在移动端和PC端都有过项目经验,能解决移动端或者PC端的兼容问题。
3) 有过项目性能优化的实际经验,除了雅虎军规能说出几条有实际意义的项目优化方向,对打包工具有所使用。
4) 了解或者使用过一门除nodeJS外的后台语言。 3. 高级前端开发工程师 1) 有过主持前端项目开发的经验,对于前端的架构有基于自己的见解。
2) 有过完整的关于Vue/React项目的开发经验,对于前后端分离能给到一个比较友好的解决方案。
3) 有丰富的项目性能优化的经验,能举例出二三种自己以往的项目的优化方案。
4) 熟悉nodeJS的开发,熟悉一门除nodeJS外的后台语言。

因为暂时没有考虑招聘资深的情况,所以在本次的面试候选人过程基本上以上面3个级别作为判断条件以及判断依据,试问现在的我们给自己的大体定位于哪一个层次呢?

二: 面试中的一些事

在面试的过程中认识了很多不同类型的面试者,有独立支撑公司前端任务多年的候选人,也有刚刚进入前端行业只想着三大MVVM框架的候选人;有现在在职晚上9点多来面试的候选人,也有从乐视匆忙脱身的候选人;有长期局限于现在公司业务内容的候选人,也有活跃于各个公司推进技术改革的候选人。

形形色色的人们构成了我们的社会,通过这段时间的面试我也慢慢增加了对于我们前端人的了解,下面简单的介绍几个印象比较深刻的候选人:

候选人小A:

我见候选人小A时小A应该第二次来面试了,前面我们的另一位前端负责人给他做过一面,给我说了下小A问东问西的问题,所以我在面试的时候也提前做好了准备,由于他当时的表现我现在已经忘记他以前的经历是什么了,但是给我印象最深刻的是当我每次做一次提问之后,他总是回答一个大概,当我留给他足够的时间去思考或者回答问题时我等来的基本上是“哥,你多大?”,“哥,你家哪里的?”,“哥,你那毕业的?”这些问题,让人泪目。

面试并非是让你交朋友的,当然我们很多高情商的候选人通过一些比较有情商的做法也可以和面试官交到朋友,但是面试的半个小时更是展示我们能力的时间,并不是唠家常的时候。

候选人小B:

候选人小B和候选人小A相比来说更加的圆滑,小B并不会问类似于小A问的问题,给人的感觉也非常的热情,但是如果进行技术深入的探讨发现基础非常的薄弱,小B能及时的否定自己的观点或概念,如果我抛出一个有歧义的问题他会立即否定自己之前的观点。

虽然技术面试并不会对下多高的定义,但是我们也需要有自己坚定不移的价值观,趋炎附势并不适合一个初中级的技术人的发展,相反他只会将你推入无尽的深渊。

候选人小C:

小C是某家外包公司的前端负责人(负责的也是自己),自从从事前端方面的开发工作开始都是孤军奋战,每次遇到问题都是一阵谷歌/百度,没有几个同行的朋友,对于外面的前端发展方向也没有任何的意向,ES6、nodeJS、MVVM的等概念只能说些大概,再深入的内容都以“工作中没有用到”,"现在的项目不需要"等理由搪塞。

我们很多初级或者中级前端开发人员由于所在公司的技术栈问题可能无法使用很大很全的技术栈或者还需要兼容ie8甚至ie6这些浏览器,但是处于风起云涌的前端更新换代的时代,我们如果晚了一步可能就被这个时代所抛弃,只能被别人远远的落在后面。

候选人小D:

小D的基础可以说比较不错了,为人也是非常的谦和,如果公司最后没有收起前端招聘的口袋的话还是很有培养的价值的。在面试谈话的过程中问了他一下被很多前端人都不在意的关于设计模式的问题,小D也能将说出一些关于js去实现发布-订阅、单例等比较常用模式的原理。

小D还是很有发展的空间的,只需要一些项目的经历来磨砺下,最终还是能最后独挡一面的。

三:我们在面试需要注意什么?

我们去面试更是一个双选的过程,公司选择员工,员工选择公司,我们一天大多数时间都是在公司中度过,所以我们不需要特意的去以取巧的方式来去获得一份工作。

我在面试的过程中发现有很多人的基础特别差,尤其是现在在职的人,所以我们准备换一份工作的话就需要提前一到两周将我们前端的基础知识再拿起来《高程》《犀牛书》这些再去快速的翻一遍,将工作中遗忘的比较偏门的知识再拾起来。

在面试中发现很多人笔试题答得不错,但是实际经验经不住推敲但是自己却不承认。可能面试了不少的培训班出身或者工作相对轻松的人一开口就是三大框架,但是如果去问项目部署,公司怎么联调的等问题基本上都会卡壳。面试并非单单是考察你对三大框架的理解,更需要说下为什么使用它,主动的分析利弊会给面试官比较好的印象。

综上所述,我们来总结下我们去面试需要准备什么?

1. 扎实的基础知识
2. 对于自己的以往项目能分析利弊
3. 总结自己在做项目中踩过的坑
4. 对于自己现有/上家工作的工作流程分析优缺点
5. 有能体现出学习能力强的案例
6. 积极向上的姿态

写的不算多,也不算少,举得也都是真实的例子,跳槽或者面试都需要一个准备的过程,所以当你投简历的那一刻问一下你已经准备好了吗?

作者:一半水一半冰

出处:http://www.cnblogs.com/jingh/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

聊一聊FE面试那些事【原创】的更多相关文章

  1. 聊一聊FE面试那些事

    聊一聊FE面试那些事 最近公司由于业务的扩展.技术的延伸需要招一批有能力的小伙伴加入,而我有幸担任"技术面试官"的角色前前后后面试了不下50多位候选人,如同见证了50多位前端开发者 ...

  2. .net面试那些事

    2014-3-30这天从昆明来到了江苏无锡,一周时间,不同地方不同感触. 在经过长达35小时的火车,在上海南见到了我弟,在经过两小时汽车到了无锡.回想起来....在坐汽车途中,虽然自己已很累,但从上海 ...

  3. Java面试那些事

    网址链接:https://mp.weixin.qq.com/s/BkiDwyjua4iwws7gWHwK9Q 引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试 ...

  4. 阿里面试官让我讲讲Unicode,我讲了3秒说没了,面试官说你可真菜

    本文首发于微信公众号:程序员乔戈里 乔哥:首先说说什么是Unicode.码点吧~要想搞懂,这些概念必须清楚 什么是Unicode? 下图来自http://www.unicode.org/standar ...

  5. Steve Yegge:Google面试秘籍

    我憋了很长时间想写点关于去Google面试的秘籍.不过我总是推迟,因为写出来的东西会让你抓狂.很可能是这样.如果按统计规律来定义"你"的话,这文章很可能让你不爽. 为啥呢?因为啊- ...

  6. Spark面试相关

    Spark Core面试篇01 随着Spark技术在企业中应用越来越广泛,Spark成为大数据开发必须掌握的技能.前期分享了很多关于Spark的学习视频和文章,为了进一步巩固和掌握Spark,在原有s ...

  7. BAT大厂面试流程剖析

    在当今互联网中,虽然互联网行业从业者众多,不断崛起的互联网公司也会很多,但如BAT等大厂,仍然是很多同学想要进入的企业.那么本篇文章将会为大家很直白的讲解大厂的面试流程以及侧重点. 首先闲聊一下,为什 ...

  8. 面试时面试官想要听到什么答案(关于一些vue的问题)

    前言 自己也只是一个前端的小白,因为公司大佬都比较忙,面试这种事就落到了我这小白身上,第一次叫我去的时候我是百般拒绝的,因为自己还是有自知之明的,但是别人实在抽不开身,没办法只能去了,他们开玩笑说就按 ...

  9. 【性能优化】面试官:Java中的对象都是在堆上分配的吗?

    写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...

随机推荐

  1. Python之paramiko模块和SQL连接API

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: i ...

  2. 「Vue」过滤器

    #全局过滤器要写在var vue之前<td>{{item.time | ctime }}</td>Vue.filter('ctime'(过滤器名),function(data( ...

  3. java基础-Arrays类常用方法介绍

    java基础-Arrays类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Array类的概念 此类包含用来操作数组(比如排序和搜索)的各种方法.需要注意,如果指定 ...

  4. 转:UIViewController中各方法调用顺序及功能详解

    UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear ...

  5. 科学计算三维可视化---Traits(Property属性)

    Property属性 使用Property函数为类创建Property属性,Property属性用法和一般属性相同,但是他在获取值和赋值时会调用相应的方法 traits库也提供了Property属性 ...

  6. Linux入门,这七大习惯得有!

    对于很多Linux初学者来说,在刚开始使用Linux系统时会感到很多不适.这里为大家整理了自己以前Linux入门时别人告诉我的七个习惯.我相信如果你运用了这七个习惯,在你使用Linux时你会感觉更安全 ...

  7. memset函数使用详解

    1.void *memset(void *s,int c,size_t n) 总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c. 2.例子#include void main(){cha ...

  8. Git之初始化及提交操作

    Git 的配置文件有三个: Git 把管理的文件分为了两个区域四个状态: 工作区: 当前开发程序所在目录称为工作区,该区域的文件会有状态的变化且状态由 git自动检测,程序中文件做任何操作(增.删.改 ...

  9. [php]php总结(2)

    18.数组$arr[null] = 20; //array([]=>20)$arr[] = 20;//默认为下一个下标赋值unset()可以删除数组元素,但不会重建索引array_values( ...

  10. Python练习-迭代器-模拟cat|grep文件

    代码如下: # 编辑者:闫龙 def grep(FindWhat): f=open("a.txt","r",encoding="utf8") ...