搜狐前端岗一次失败的面试经历记录
带迦起舞
首先声明一下,就像提前声明一个函数那样:搜狐前端技术二面,挂。
前言
最近是春招的时节了,正好我也赶上了研二这个特别的时期。一般,大家都是这个时间段找找实习,最好能去一些IT大厂实习,能多锻炼自己,掌握更多更新的技术,这对自己提升无疑是最大的,更重要的是,一个好的实习经历,能够带给自己更宽广的视野,跟独自一人闭门造车比起来,要好特别多。
虽然身边的人并不是每个人都会积极地去争取这些,因为并非所有人都准备走工作这条道路,只有少数的人在搞,所以我也没有太上心。大概复习了不到一个星期的JS基础吧,我也把自己勉强算做其中的一个,但是真正进入找实习这个领域,我才发现: 你周围的,并不代表所有,你没见到的,会有更多的竞争。
我学的跟计算机沾边,也想着能够进各种IT大厂学习锻炼一下,所以目前投了一些,什么阿里、美团、搜狐都有尝试,但真正走了提前的,只有搜狐。因为有个学长在那边做前端嘛,我也想着能够做一些前端的事情,毕竟以前也算有点经历,但是前端入门简单,竞争激烈,变化快,我对自己的选择还是有些疑惑的。抱着这种想法,我还是投了一些,但是都没有音讯。通过走关系,进入了搜狐某部门的提前,接下来我记录一些自己两次面试的经历:
经历
第一次,3月19日下午2:30,当天早上开完会,中午确实有点累了,休息了一小下,一睁眼,就是一个电话,可谓是打的措手不及。这也提醒我,有电话面试,一定要提前准备,尤其是思想要准备好,这样才能不紧张,不断路。
第一次技术面感觉还好,问的问题都不太深入,主要是针对你的简历上的内容逐条进行盘问,可能是为了确认你是否真的做过这些内容,其次要了解你到底对这些内容的了解程度。这次的问题如下:
1、 自我介绍
2、 我看你有C语言证书、用过python、现在又学前端JS,那么给我介绍一下这三门语言(我分别从语言特点:指针引用、和语言领域:前端、底层、机器学习两个方面介绍了一下)
3、 请讲一下JS中的原型以(原型链)(这个当时电话有延迟,把原型链听成原型了,结果没让面试官问出继承之后的问题,把原型和原型链讲解了半天)
4、 请讲一下JS如何删除数组最后一个值(略)
5、 请讲一下变量声明提升(脑子短路了,当时只记得函数声明提升,没反应过来其实这俩差不多)
6、 看过JQuery源码吗?介绍一些$符号的后面可以跟什么类型的东西?$.noop函数听说过吗,介绍一下(这个真的难到我了,除了$类选择器,其他的我真的不会)
7、 讲解一下异步加载与延迟加载(还好这个背过,也用过一些,没什么大问题)
8、 ES6语法了解吗,讲解一下解构赋值(ES6我就只看过前3章。。。还正好问到了,我就说跟模式识别、正则表达式比较相似,balabala)
9、 Python里面list类型如何实现一个栈?(栈不就是先进后出嘛,我就说了pop方法,结果脑子短路,把JS里面的push当成python里面了,还是面试官提醒我才说 了append)
10、Python你用的2还是3,我回2,你知道range函数吗(返回一个指定范围的数组)你知道xrange吗?(懵逼。。。。答案:返回一个迭代器。。。。)
11、除了BS4库,你还用过什么爬虫库(Scrapy ,我就说了个名字,面试官就没再让我说别的了,虽然Scrapy我不怎么会用,就是照着填空。。。)
12、HTTP协议了解嘛?203状态码是什么意思?除了状态码,你对HTTP协议还了解什么东西(我说了HTTP状态码还有Header和Response的一些东西,但是这个203我平时没遇到过,只说了2开头表示成功了。。。最后还是面试官给我解释了)
13、你项目里面用的Vue,主要用来干什么,Jquery-mobile又用来干什么?(老实回答,Vue不熟,照着别人搭的写,主要实现了数据双向绑定;Jqm主要是用他的一些class来布局)
14、你在项目里面如何优化了你的代码(将公用的ajax封装成了一个函数,由于后台只接受一个参数,只返回状态,但这个ajax到处使用,所以单独封装起来到一个JS 脚本)
15、你说你上个项目还写了后台,用的什么语言(Java,他想听到node),之后没问什么后台的
16、最近看什么书,关于HTTP的书看了没有
17、最后介绍一些你的研究方向吧(滴滴打车数据处理,分类balabala。。。)
18、期望实习时间说一下,等通知
面试总时长43分钟,当天我面试完就找了学长问了情况,学长说,讨论后可以技术二面,但是我的实习时间定的有点晚,他们部门有项目,急需一个招之即战的。我突然有种不太好的预感。。。不过学长还是安慰我多看看JS的基础吧,我突然就很疑惑,实习生面试。。。需要掌握很多吗。。
果然,在我很紧张的看了两天JS基础后,3月21日下午2点45,第二个面试官加我微信,并进行了面试。我在面试前提前看了一下面试官朋友圈,本科毕业刚一年,大学阿里实习生。当时感觉这就是个厉害的人物,果然:
1、 好从JS基础开始吧,介绍原型、原型链、继承(轻车熟路)
2、 如何用JS实现数组的去重(用最笨的方法说了,还是面试官提醒了indexof方法,而且也没想到数据结构的东西)
3、 Jquery里面Promise函数讲解一下(懵逼,突然想到自己看过的一篇文章讲解的,说了一些主要用途:分离异步加载的操作与逻辑,使代码更加清晰,具体的append,reject,resolve大概提了一下是干嘛的,心里很虚)
4、 Bootstrap布局的原理(只是用过,完全不会)
5、 那CSS里面如何根据手机端进行适配(答非所问。。我说了一些lg/sm/md的区别。。。)
6、 讲解一下Vue的原理,特点(跟上次回答差不多,中途被打断)
7、 ES6的某个语法,不记得了(因为我压根儿就不会)
8、 学过数据结构吗?(考研考过)讲解一下排序算法有哪些(简单选择、冒泡、插入、快排、堆排序、归并排序)挑一个讲一下:(我讲了冒泡),讲一下快排的思想(选中轴点,比他小放左,比他大放右,左右两段再分别按照此算法进行递归)
9、 Webpack用过吗?glup用过吗?Babel用过吗?(听说过没用过。。。。)
10、TCP协议了解吗?讲解一下(心态爆炸,只是大概讲了一下三次握手)HTTP状态吗了解吗?304什么意思?(内容未更新,用了缓存)
11、Node.js会吗?(????)
12、好,面试到此结束
面试总时长30分钟,我闻到了死亡的气息。。。果然,过了不久问了学长,回答道,经过讨论,我项目经验缺乏,由于部门只能招一个,所以被拒绝了,可以再试一试其他的部门。前端变化很快,要跟得上时代,多接触最新的技术,而且要实践,实践后再学习加深理解。比如,至少熟练掌握一个前端框架Vue或者react,掌握ES6,并学习ES7,学会前端的打包构建工具。哎。。。说得我心里哇凉哇凉的。。
总结
总结下来,第一次面试,面试官可能不是技术大拿,问的东西比较杂,比较浅,所以我回答的还好。第二次面试问的程度很深,我不会也没办法,技术性的东西,不是靠短时间内背书就能解决的。还得多看书,多实践。要多看前沿的书,多上github和国外的网站,掌握最新资讯,任何行业都是如此。被技术潮流吞没,就没有未来了。
突然萌生了换工作方向的想法,继而产生了不想找工作的想法,继而又想读博了。。。。但是逃避终究不是办法。看牛客网上别人的各种技术面试问题为什么感觉那么简单呢。。算了,继续投别人家的吧。还有项目也要继续,还有生活要继续,多看书,多动手,总没错的。