查看原文
其他

腾讯SNG-IMWeb前端工程师 电话远程面试记录

Tycho丶 程序人生 2018-10-29

点击上方“程序人生”,选择“置顶公众号”

第一时间关注程序猿(媛)身边的故事


前言

2018 年 1 月 18 日,突然接到一个来自深圳的电话,对方说从拉勾网上看到我投递腾讯 SNG 部门的 IMWEB 团队前端,简单询问了一下我的具体情况,包括前端的就职年限,过去的工作经历。其中有一点比较有意思的是,对方问我为什么 2016 年 7 月毕业直到 2017 年 2 月入职中国 XX 网,这之间的简历是空缺的?


我回答他说因为刚毕业没有太好的就业选择和机会,错过了很多校招,所以在毕业的时候去一个艺术培训学校当了半年的吉他老师,因为觉得和前端的职业经历没有关系,因此没有把这段经历写在简历上。对方说,我觉得你应该把这段经历也写在简历上,我说好的谢谢。


接着问了他招聘的是什么职位,对方说是前端工程师,我说主要负责什么工作?他说主要负责腾讯课堂的一些前端工作,我跟对方说,我目前还在老家,可能无法及时的去深圳那边面试,问了他可不可以远程面试,遂对方跟我说,可以采用电话面试,并且约定了电话一面的时间,2018 年 1 月 23 日。


面试的过程及结果:


从接到电话直到第一次面试的这段时间,我在网上大量的检索了关于腾讯电面的经验,并且深入的针对一些常用的考点,进行梳理和总结,例如:闭包、原型、作用域链、Ajax、http 协议、盒模型、兼容问题、xss/csrf 攻击、浏览器渲染(重绘重排)等。


在 1 月 23 日的当天,5 点多回家,还一直在看复习资料,饭也顾不上吃。


7 点,从深圳打来了一个熟悉的电话。整个电话持续了 40 分钟之久,基本上问的都是基本的原理,而后可能我的回答让面试官也比较满意,之后是 1 个半小时的远程监控编程环节,三道程序设计题,给一个半小时的时间,腾讯面试官远程 QQ 协助监控你的桌面,只允许用浏览器的 console 以及本地编辑器,不允许查询资料,在编程过程中,面试官还会试图针对一些有问题的地方给予提示。


最后,我还是很遗憾的没有通过,因为三道编程题目,我磕磕巴巴基本上没做出来,所以挂了,把文件打包发送给面试官后。我问面试官,像我这样经历不丰富,简历不突出的,为什么会考虑我呢?面试官说,我们什么阶段的人选都会考虑,你入行前端一年,基础还是不错的,就是编码能力需要提高...


面试完以后,大概有几个小时,一直沉浸在刚才的面试里,晚饭也忘了吃了,一直在反思自己哪些地方答的不够好,这几天的复习哪些地方有疏漏。


我的互联网公司处女面就以失败告终了。但是回头想想,这次失败的经历是一面镜子,让我清楚的认识到自己几斤几两,督促我在今后的学习中一步一个脚印,脚踏实地,再去仰望星空。


电话里问到的题目

接下来,根据我当天的通话录音

来对所问到的题目进行穷举:

1. 接你现在的工作主要是偏前端还是偏后端?我看你大学的课程主要是偏后端一点?

A:大学课程修完以后,出来没找到工作,干了半年吉他老师,对自己就业比较迷茫。回 到老家以后,干前端、运维都有,但是主要是前端。


2. 接触前端多久了?接触/学习的渠道是什么?

A:满打满算一年。刚开始是同事辅导,慢慢入手以后,在 W3CSCHOOL、网易云课堂、腾讯课堂、慕课网学习。


3.Ajax 发送请求的步骤?

3.1 xhr.open()

3.2 xhr.send()

3.3 callback()


4. 浏览器里面的事件都会按照一定的规则去传递,这个规则是什么?


5. 事件代理,事件委托是什么意思?


6. 闭包是怎么回事?用在什么场景?

6.1 变量常驻内存会带来什么问题?

6.2 如何避免这种问题?

6.3 怎么销毁?


7.CALL 和 Apply 是干嘛的?


8. 在平时开发中,遇到过跨域的问题吗?如何处理跨域呢?

8.1. 如何进行 CORS 跨域?需要什么条件?

8.2 对服务器来说,返回 json 数据和 JSONP 数据有什么不一样?

8.3 还有其他跨域方式吗?


9. 简单说一说盒模型,W3C 和 IE 怪异盒模型。


10. 简要阐述 XSS 和 CSRF 攻击及防范

10.1 XSS 脚本劫持,如何截获?(ps. 这里居然把 CSRF 的概念当做 XSS 的来回答….)

10.2 CSRF 域名劫持


11. 强类型语言有继承,在 JS 里面如何做到继承呢?(proto 和 prototype)

11.1 例如构造函数有一个 test() 方法,prototype 上也有一个 test(),这两个方法有区别吗?


12. 页面性能优化有哪些方式?

12.1 文件、脚本合并是如何优化的呢?

12.2 重绘,重排是怎么回事?有什么区别?

12.3 请举例说明重绘,什么情况下会重绘?

12.4 你认为样式是会引起重绘的吗?什么样式会引起重绘/重排?什么属性会引起重绘/重排?


13. 浏览器如何知道一个文件资源是否需要缓存?


14.HTTP 状态码 304,502,503

14.1 1,2,3,4,5 开头的状态码都表示什么?


15.Node、Vim、angular 简述

15.1 Node 上如何处理异常情况?(Ps. 我回答的是开发调试。。。找 js 文件)

15.2 已经上线的项目,出问题,怎么样去处理异常?


16. 构建工具除了 Webpack,还接触过其他的吗?

16.1 Webpack 的优点和应用场景?


编程大题:


1、页面内有一个正方形元素 A 以及一个待放置区域 B,实现对其拖拽和放下到 B 区域内,并且改变 B 区域背景颜色 (不可用 html5 原生事件)。


2、实现超出整数存储范围的两个大正整数相加 function add(a, b)。

注意:参数 a 和 b 以及函数的返回值都是字符串。


3、页面内有一个 input 输入框,实现在数组 arr 查询命中词并和 autocomplete 效果。


这个环节基本上就知道自己 GG 了。。。


第一题考基本功,DOM、事件、定位、jsAPI


第二题考算法,基本逻辑


第三题考原理,基础


不得不说面试官的技术确实比较全面,腾讯的远程面试也是好狠,直接远程监控写代码的...鼠标和界面都不敢静止,静止可能就会被认为作弊(不知道他们是不是这样来判断的,反正我没有停下来过)。


分享内容先写到这里,希望能给大家提供一些有价值的思路~如果有任何问题和见解,也欢迎留言讨论~


点击图片get往期内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存