记一次前端面试


1.前言

被人面试了这么久,这一回,我终于有机会能面试别人。

首先声明来面试的是一个大四的实习生、女孩子,HR和我说笔试成绩还可以,叫我过去面试看看是否真的有实力。

2.从面试看怎么准备

拿着电脑赶忙过去会议室,其实面试不仅被面试者紧张,面试官有时候也会紧张,当然如果你面试的人多了熟练了之后,就会做到心中有数,其实者对面试者同样奏效,前期准备充足,然后多去面试,因为人们对未知都会充满害怕和担忧,所以解决办法就很简单,多去做你担忧害怕的事情,直到你不再担忧和害怕

我先叫她进行自我介绍,我学着以前面试官的样子翻动着别人的简历,其实这个过程我看的东西很少,很多东西都是瞟一眼,所以如果是实习生就需要突出自己简历上的东西,简单粗暴一点,而且介绍自己的时候要注意介绍自己的擅长的部分,如果不突出自己的亮点可能面试官就不会记住你,面试之前最好联系一下自我介绍,这是面试的开场白,是提高自我信心重要环节

我听到她提到css的部分,然后我就通过这一部分作为一个导引去问她,很多面试官也是这样,通过你简历中或者你提高的知识去问你,所以你在写简历或者自我介绍的时候就可以有目的设置一些自己已经准备好的问题。我问她CSS中如何实现垂直水平居中,她说完一种方法,我就问还有没有其他实现的办法。CSS在前端来看算是比较简单的一部分,如果你在准备面试的时候这一部分花得时间不要太多,而且CSS这一部分也不是最能检验面试者的部分,因为HTML和CSS不能算编程语言,因为他们不符合图灵完备,很多时候作为前端最基础的部分来检测面试者,但是正是因为是最基础,所以这一部分无论如何都是需要会的。如果一个前端开发连最基础的部分不懂的话,那么公司肯定是不会录用你的

接着我问了CSS3和HTML5增加哪些新的东西?以及你对大前端的理解。很多问题最能真实地反映开发者的深浅,可能我这个问题也回答不好,这就需要我们有所积累,那么作为一个大四的花两个月来准备面试的人来说,回答好这个问题的关键是,你对前端广度的了解,你知不知道localStorage、sessionStorage,知不知道html5多线程、知不知道服务器推送,知不知道跨域,这些问题可能面试官不会都问,但是我们最好全部都搞懂,这就是检测前端广度的一个很好示例,这对我们提高在面试官心中专业技能印象大有裨益。

我看她有提到HTML5的语义化,我问她了不了解语义化以及HTML5的语义化标签。所以你最好对你所说的每个知识点都尽量搞懂,你不知道面试官会就哪个问题去详细问你。还有你在简历上写的了解、熟悉、熟练、精通等词汇,最好不要使用精通,如果你觉得比面试官还要牛逼那就另说,如果你想突出一项技能可以用熟练掌握,不然很多了解过的就用了解就好了,否则就不要写了,那些你只是知道名字的词汇就不要往简历上写了。

我问她自己认为自己的JS水平怎么样?看她的笔试题目,看到java和c以及SQL的代码,我就问java是否熟悉,“你觉得java和js有哪些异同?”有的面试的时候还会根据你的笔试来问你的,如果是线上笔试的,之后尽量把笔试中的题目也都搞懂,这样不仅有助于你提高自己的信心,而且很多面试也会结合笔试题目来问你

其实对前端开发来说JS是最难准备的一门,这一部分也是面试官最喜欢问的一部分,所以我们需要重点掌握这一门,很多公司都不直接招前端开发而是JS工程师。可见JS生态的繁荣以及JS对前端开发的重要性。然后我问她ES6有没有用过,ES6有哪些新特性?最新的JS标准ES6也是需要重点了解

然后我提到了对小程序开发是否了解过?这是因为招聘信息里有提到这个,其实我觉得不管是小程序、web、andorid、ios,他们只是媒介不同,但是核心思想都是相同的,但是面试之前要仔细阅读招聘信息然后针对里面提到的内容做详细了解。不过这个过程中核心知识是不变的,就是之前提到的HTML、CSS和JS,这些基础知识需要理解透彻

我就简历上写的项目问她,项目中负责什么角色,以及里面提到的表单验证是怎么做的,项目中有没有使用框架?简历中最好是要写2到3个项目,因为检验一个程序员最好的办法就是做项目,上手写代码。而且项目要突出自己做了什么,解决了哪些棘手的问题,并且项目成果是什么。很多大公司都比较看重面试者做过的项目,尤其是如果你做的项目比较大,而且在里面扮演的角色也很重要。简历中项目里面写的东西尽量不要造假,而且写的东西大部分你都需要搞懂,不然面试官一问那就傻眼或者一句“这个项目我很久以前做的忘了”是会在面试官中打负分的。

然后是问了关于JS延伸一点的知识。我问她对react核心思想有没有了解过?其实很多公司有自己的一套框架,所以我们做项目框架求精不求多,这就是触类旁通,对于一些当下热门的框架我们可以做一些使用和了解,最好有个自己经常使用的框架,可以是react,可以是Vue。这样面试官会根据你所擅长问你的时候,就可以完全不慌,这就是面试的信心问题,上面也提到了很多次,做很多事情信心是很重要,但是不可盲目自信,还是需要虚心请教别人的。前端也就是一个圈子,这个圈子可以在网上或者身边多认识一些人,对自己的今后的发展是有好处的?

最后我问了她前端如何优化?对于CSS和JS有什么不同的优化方式?这算是一个前端面试比较热门的问题,几乎每个公司面试时候都会问到,为什么呢?因为在项目中优化确实很重要的一块。写代码容易,优化代码很难,但是面试和实际写代码还是有所不同,面试比实际写代码容易很多,所以花时间去了解优化完全来得及!比如前端雅虎35条军规,但是现在来看可能有的有点过时,因为前端发展太快,不管是框架,还是语言,或者浏览器都更新换代了。

Final Thought

对于一些大公司来说,可能还会问到算法、计算机网络、操作系统等知识,所以在大学上课的时候不要再打瞌睡了,好好利用时间,不管从事什么职业都是这样。