这篇文章是在我历经了2个月左右的腾讯远程面试的折磨下才酝酿出来的,面试结果最终也是凉凉。写这篇文章主要目的是为了给观看本文章的读者一些面试经验。关于这篇文章的内容总结为测试开发2面技术面+HR面、2面web前端1面技术面
测试开发(腾讯应用宝)
- 技术一面(视频面)
- 自我介绍(自我介绍基本是每个面试官都会问的一个问题。这个问题主要是为了了解你的学历、专业、毕业院校、工作经历、项目经历、技术栈等)
- 为什么会出现跨域?跨域的目的?跨域的手段?jsonp原理?(这个问题并非所有人都会面试到,我投递简历时投递的是web开发岗位,结果接到面试官的面试邀请后,他跟我说web开发招的其实是测试开发,然后我就只能一路走下去了。这部分是因为我简历上写了有web全栈开发的经验才问的)
- 从浏览器访问一个url开始,都做了哪些事情?(计算机网络的知识)
- 你有做过性能优化吗?
- 你对哪些语言比较熟悉?(我回答的是Java、Javascript、node,所以下面面试官开始围绕这些技术展开进攻)
- java的抽象类和接口的区别?
- vue的特性或者优点?双向数据绑定的原理?(这部分是因为我的简历上写过有vue开发经验)
- 你平常是如何测试web?使用过什么工具测试?
- 谈谈你做过的项目中,你遇到了什么问题?怎么解决的?(这个问题也是大部分面试官挺喜欢问的问题,目的是为了了解你是否真的有过项目经历)
- 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒叙(从右向左)读都是一样的整数。e.g. 123321。(围绕这道题展开的问题:你会怎么测试这道程序?边界测试你会怎么取值?这道程序怎么优化?你写的程序有什么缺点?你写
的程序是牺牲空间换时间还是牺牲时间换空间?) - 1000瓶无色无味的液体,其中一瓶为毒药,其他皆为清水,毒药只取一滴与清水混合为一瓶也可以毒死兔子。
现在有10只兔子,当兔子喝下毒药两个小时死去,请设计一种方案,能够在24小时内找到这瓶毒药?
(升级问题:当兔子喝下毒药20小时死去呢?这个升级版本的问题真是有毒,20个小时我想破脑袋也想不出,所以这道题我放弃了) - 你JavaScript是自学的吧,你平常怎么学习?
- 你有什么问题问我吗?(这个应该也是面试官的必问问题之一)
总体来说,一面我感觉还是挺满意的,百分之90以上的问题都能回答上。测试开发一面主要是考察基础以及思考方式。一面过了差不多一周的时间后便接到了二面的邀请
- 技术二面(电话面)
- 自我介绍(果然又是这个问题)
- 谈谈你过去的项目中遇到什么问题?怎么解决?(额,又来这个问题)
- mysql、redis、mongodb的应用场景(问这个问题其实是有原因的,我改了投递的岗位,所以面试官问我你熟悉前端还是后端?我回答前端,然后面试官开始了后端的拷打,这个有毒)
- 做过redis与mysql数据同步吗?mongodb与mysql数据同步呢?
- mysql优化做过吗?怎么做?
- 统计一个字符串第一个出现重复的字母(遍历、二分查找、Java HashMap)
二面简单粗暴,短短的几个问题,用了半个小时时间。二面我感觉也是不错的,于是一周多后便有了后续的HR面
- HR三面(电话面)
- 自我介绍(老样子)
- 考研吗(这个问题我可能回答的不好,所以这个问题希望广大读者要好好琢磨琢磨)
- 除了技术以外的兴趣?
- 读什么书?
- 对你拿到的offer进行排序。
- 有什么问我吗?(套路满满)
HR面来的突然,我刚忙完突然就接到了HR小姐姐的电话,然后便开始了面试。。。。。。面完了HR面后,就突然给我转到了Web前端一面去了,于是测试开发便结束了(这部分应该是我跟HR说了我对前端比较感兴趣)
Web前端
- 第一次技术一面(腾讯看点电话面)
- 自我介绍?(无论什么岗位,都逃不过这个问题)
- 你的前端技术栈?(这个问题是面试官展开攻击的手段之一,一定要回答好,不要回答一些自己不熟悉的东西)
- 你对mvvm原理了解多少?
- 通过除了Object.defindProperty以外的方法,例如es6、es7的方式来实现数据双向绑定(这部分我当时不知道,我平常用的vue2.x版本,后来才知道vue3.x是通过es6 proxy来进行代理)
- diff算法(这个我不懂,后来才想起来这是数据结构中关于树的知识)
- Component的规范(这个没有固定回答,就是为了看你是否有真是的工作/实习经历)
- 使用过版本控制吗?
- webpack的打包流程(这部分我也回答不上,虽然有用过,但是没去了解底层,当然现在我已经知道了)
- loader和plugins的区别?
- 状态码(304、301、302)
- 缓存(http缓存)?缓存的手段?
- DNS如何解析的
- https了解多少
- 跨域知道吗?跨域手段?jsonp实现原理
- js事件(事件代理、事件冒泡、事件捕获)?事件捕获的流程?捕获先还是冒泡先?
- js有什么声明变量的方式?let、var、const的区别?const声明常量对象,能不能修改属性?const实现原理
- cdn的原理(这部分我也不懂啊啊啊啊啊啊,后来才补上的)
- 虚拟dom的实现原理?(vue源码相关的)
- 重绘和重排
- 你有后台开发经验,说说mongdb、redis、mysql的区别?
- 使用的是什么后台语言?使用过node吗?使用过node什么框架?谈谈node直出(SSR服务端渲染)?
- 你有什么想问我的吗?(套路问题)
关于腾讯看点的面试,我是很崩溃的,由于对网络知识、原理知识的匮乏以及很多基础性知识忘记了的原因,最终这轮面试便不了了之
- 第二次技术一面(电话面试)
- 自我介绍(肯定有的问题之一)
- 项目遇到的问题?如何解决?(你懂的,老铁)
- 双向数据绑定的原理?(每个用过vue的前端开发者的必问问题)
- computed和watch的区别
- vuex的数据结构有哪些
- 如何触发mutation
- 在不同的模块中触发对应的action(这个问题问的为不明不白的)
- 插槽的实现(原理性问题)
- vue组件的理解?
- es6箭头函数的指向
- js继承?js函数、数组的原型?
- gc的原理?(???,小朋友你是否有很多问号,小朋友我表示一点不懂gc原理)
- http缓存(这个经过了上一次腾讯看点面试后,我专门补了网络这一块的知识,所以没大问题)
- 缓存字段的设置?
- 有什么问我的(老样子)
总之,这次的面试是我掌握的基础不牢固而导致了机会的丢失,呜呜呜,不说了,小朋友我去补基础知识去了,平常太注重工程的知识而忽略基础知识,再加上没时间准备面试。gc的原理啊啊啊啊啊啊啊啊,我恨你。