一面
很早就投了腾讯的简历,后来找学姐内推,但是没有面试的机会,所以只能笔试,有幸笔试过了然后从南昌到武汉去面试。
我本身是一个往全栈方向发展的web开发者,平时前端后台还有网络编程都有接触,但是面试就只有1个小时(平均每个人40分钟上下,看自己有没有那么多干货能说那么久)。
首先自我介绍:这个还是要打一下腹稿,我是提前写好在onenote上面的,然后直接背一下就好了(我以为上来就是叫我手写代码的)
我遇到的这个面试官比较注重前端的基础,先把基础知识问了遍
从css 开始,一些基本的css属性,display 之类的(简单 ),然后就是js的基础语法了,比如变量提升,this作用域, es6的新特性 promise let关键字,class ,原型链等等。
因为前面自我介绍提到了angular.js ,所以免不了要问一问这些,数据的双向绑定, 必问的,比如什么时候绑定值啊,数据的脏检测的原理啊,个人建议是找个好点介绍angularjs原理的文章,花个把小时好研究一下,面试很有帮助,然后会问一下react.js,基本的框架思路之类的, 框架并没有问到各种api之类的。
后面提到了jquery , ajax原理(就是XMLHttprequest这些知识),jquery的委托原理, event对象包括哪些东西。
浏览器跨域问题是我这次一面回答的最不好的地方,前端基本都会问这个问题看那么多面经, 先讲了jsonp的原理,jsonp有什么技术缺陷,能不能用post提交,还问了多个请求同时调用同一个callback函数会不会有问题。 随后提到了postMessage,往深入问了一下,具体的api忘记了,面试官跟我说只要花个把小时去了解一下就可以回答的很好的,最后 还问了一个问题 如果在腾讯网站上调用一个京东的页面 ,你会怎么实现 , 我第一反应就是用iframe,具体的我没有做过我就直接说这个技术点我暂时不会,next。
面试官问我有么有什么可以直接在线上跑的网站,从我简历中挑了个出来,chrom打开开发者面板,叫我用最快的速度定位到某个按键的对于的js方法,我说能不能直接看源码,直接在源码里面找,问我有没有什么更好的工具或者是方法,我不知道,后面叫我把chrome浏览器开发者面板上各种功能说了个遍,其中还是有很多东西不知道怎么用,跳过。 后面直接抓了个包,叫我解释http协议的头部的各个属性是什么,好几个都不会,(也算是这个面试的败笔之一,不难,大家可以花点时间看看)
谈完跨域,应该聊聊基本的xss攻击和csrf,时间已经过去40分钟了,面试官叫我直接说就是了,我就把基本的原理说了一下,然后还有一半的防御措施,提到了html转义字符,叫我最少说四个出来,随便说了四个<>&",到这里面试就基本差不多了
后来面试官问我有什么地方是我擅长但是他没有问道的,因为我写了满满的两页简历,4个项目, 所以我挑了个最近写的python小的后台框架拿出来说一说,基本就是epoll,socket,多线程,异步队列,redis等内容,因为个人比较擅长这个方面,但是面试官好像没有什么兴趣所以就没有问什么。
之后面试官问我还有什么想问他的,我就直接问他我这次面试表现如何。 他说总体还不错,处于中上水平,但是不能马上给我答复,因为要参考后 面的面试者水平比较。他面试的过程中忘记叫下一个人了,所以距离下一个面试同学上楼的时间还有几分钟,就问我有没有什么想跟他聊的,我就聊聊我一些技术的观点,还有创业的一些经历,还有以后的个人发展。 最后,他主动给我安利了他的部门,部门很缺人啊,然而我简历选的是无意向啊,就是搞不懂这些部门是怎么分配的才选无明确意向的。考虑到我是外地来武汉的,临走的时候跟我说叫我在武汉多玩两天等二面。晚上简历状态就变成复试状态了。
最最后:不得不说腾讯的面试官真的很敬业啊,很nice,一天大概面十几个的样子,平均一个45分钟,11点之后还要写一天的面试分析然后评估应聘者,整个面试过程很轻松愉快,聊天似的。
祝今天前端的小伙伴面试顺利(一半运气,一半实力,心态放好)
昨天晚上半夜12点多才收到二面的通知短信,导致我一晚都没有睡好,确切的说来武汉的三天我基本就睡了7个小时。毕竟是第一次现场面试,所以特别的紧张。
二面面试官竟然没有和我握手,不开心,不过还是挺和善的(二面面经 不具有参考价值,主要看你简历写了什么)
自我介绍
2 . 介绍一下主流的框架吧,angular 和react,原理,实现。 我把angular的watch digest这些讲了个遍,也问了关于react的虚拟dom,为什么要这么做,优势在哪里? 使用这些前端的框架的优势是什么,劣势又是什么 。 (看我把原理讲的差不多,问我是不是在网上看了很多的这方面的文章,卧槽竟然别发现了,这些东西都是我面试前一天看的,我立马意识到不对),其实呢,框架对于我来说并不是要熟悉多少它的api,而是要研究它的设计思想,这样对自己以后的编码也是有帮助的哈(成功避开话题)
3. 既然你简历里面提到你后台主要用python,php,java, 说说你的对python php java等语言的理解吧,大概的说完之后, 又问对于动态语言和静态语言的理解,还设了个坑给我跳(谈谈你对静态语言解释器的理解,这明显是挖坑),静态语言需要啥解释器啊,不过后面我巴拉巴拉一大堆关于jit的东西
4. 算法题: 设计一种算法可以求出 某个数字是否 在10亿个数中出现过, 一开始我就是说直接用O(n)复杂度的直接遍历就是,但是不满意,我就说:把这些数字分成N组吗,然后在每组中查找,还是不满意后,算了,跳过,我认输
5 . 又是一个很老题目,浏览器地址栏输入一个qq.com,发生了什么,讲出你所知道的所有的内容。 因为是面的前端,我在tcp层下面就没有详细讲了,主要讲了dns,三次握手,四次挥手,服务器接收请求,路由,逻辑控制代码返回response,浏览器接收到返回,解析,渲染。。。既然是面的前端,面试官叫我着重讲一下浏览器的渲染过程,比如js代码什么时候运行啊,css代码上面时候渲染啊,js代码运行阻塞页面渲染之类的,勉强解释过去。我看了那么久的网络编程竟然不问我不甘心啊,我就在后面补了补关于tcp udp的知识概念,主要讲了区别,优缺点,就是那种百度一下就知道的几个概念。
6. 因为项目中用过很多redis,难免要去解释一下redis的底层实现,首先说了说底层6大的数据结构,链表,字符串,字典,跳表,压缩列表等,redis是一个基于epoll的单线程模型,redis的应用举例,在你的项目中如何使用,说到设置expire时间的时候,我给自己挖了个坑,面试官问我如何实现定时器,redis中有没有定时器这个概念(其实是没有的)我入坑了, ,后来发现不对劲,赶紧说自己好久没有研究这个底层了,有些概念可能有些模糊了。后来面试官提醒我是用epoll注册事件的方法来实现expire的。自认为redis应该是自己的加分项,没有想到是减分项。
7. 介绍一下你的项目,用了哪些技术,遇到什么困难,这个问题我早就知道他会问,所以提前就把简历上面所有的项目全部准备好,基本就是背书似的,当然不能显得多么厉害,只要讲清楚自己的遇到问题是如何解决的,面试官比较在乎你是怎么解决问题的
8. 谈谈前端页面的优化,雅虎34军规,随便提了几个,还有图片的延时加载啊,最后竟然忘记了最重要的cache
9. 为什么你决定做前端,因为(省略1000字)
有啥想问我的
有,我面试表现的怎么样
还可以,总的来说还可以,就是算法不怎么样
算法不怎么样就是因为刚才那个题目没有答好么?
是的,
可是我平时都有在刷题啊,刚才是紧张而已
理解,本科生嘛
那么面试结果什么时候出来,我是外地的
我看看能不能帮你联系hr下午面试
短信通知时下午四点,但是貌似我一点就在等了,前台好像不忍心,因为我晚上要赶车回南昌,就把我笔试提前到2点,算是比较早的一批了
原来以为hr都是那种打扮很精致的女生,没想到是个很年轻秀气的男生和一个中年boss,就这样我参加了一个有两个hr的面试
问题没有参考意义,但是我还是要说:
自我介绍
创业经历,叫我把上线的项目给他看看
失败总结,现在其他的团队成员都在干啥
有么有女朋友
业余爱好,喜欢看什么书,除了技术书还喜欢看什么书(我说我以前喜欢看点鸡汤书,因为需要动力,当自己开始写鸡汤的时候就不看了)
技术观,说说你对技术热爱到什么程度
对腾讯有什么看法(我说了我高中的时候很笔试腾讯,但是后来做技术的时候开始慢慢尊敬仰慕腾讯了)
假如你以后要创业,但是你这么热爱技术,你怎么办?
你班长叫啥,你班长是哪里人,你班长有没有女朋友,你和你班长一起经历过什么事情或者合作,你和你班长。。。。。。。。。
你家庭状况
遇到过什么让你很挫败的事情
腾讯阿里你选哪个?
面了我40多分钟,最后我 嘴巴都干的说不动了,回去等吧
(小插曲,我晚上在高铁上的时候接到武汉的电话,叫我回去面试,吓死我了,我赶紧打电话给我二面的面试官,后来hr又打电话过来,来个电话面试吧,先自我介绍一下吧,我就巴拉巴拉的背了一下自我介绍,后面我说我下午已经hr面试完了啊,当时有两个面试官在9楼,“哦,那不就是我么”, 面试官哈哈一笑,表示自己忘记了已经面过我了。)
总的来说,武汉的三日之行还是值回票价的,热干面千万不能打包或者叫外卖啊,不然就干了。
牛客网—程序员必备求职神器
点击下方阅读原文查看更多精彩内容~~