之前三月初的时候无意中收到深圳腾讯云的电话(对方表明身份后,说看到我的简历,想和我聊聊。当时没有电面经验再加上也没有进来也没有投简历,爽快的答应聊就聊呗。上来就是技术问题,当时蒙了,我简历也不知道啥时候怎么他就知道啦,当时电面后想着估计黄啦),后面就没音讯啦,从那次以后开始踏上2016找实习的征途。之后再内推腾讯互动娱乐,没收收到电面。所以按照正常的实习生流程走下来。经过笔试,一个礼拜后于4月9号夜收到腾讯一面通知(4月10号)。
研发工程师一面(语言基础、算法与数据结构、项目细节)
1、自我介绍
2、c++知识点(c++是如何多态实现机制、和java有什么区别、指针和引用区别、c++内存是如何管理的与java的区别在哪里、const的知识点、类成员的访问权限底层是如何实现的、为什么构造函数不能声明为虚函数、运算符的优先级、c++为什么要在c的基础上添加一些特性的东西)
3、计算机网络 TCP,udp之类的问题
4、算法(如果集群中有上万台机器,如何确定某一台机器出现故障、如何判断论文抄袭、qq用户关系六度分割理论)
5、数据结构 手写代码环节(链表的有环的判断、有环的话环的入口如何确定、二叉树的层第遍历非递归、二叉树的后序非递归遍历)
6、讲讲hadoop的原理,hadoop有哪些不足,自己项目中如何改进这些不足的。
7、提问环节
一面总结:
总体感觉一面还不错。4月10夜晚在微信公众号查询进入复试阶段,在此于4月11号夜里收到短信通知,让4月12号11点50去面试。
研发工程师二面(hadoop,项目,论文)
1、自我介绍
2、推荐系统和小论文那个项目:(感觉面试官是做相关方向的),逮着我的推荐算法狂问,为什么从用户关系入手,为什么从评论入手,CF模型等等之类的推荐算法。而且在面试这个项目的过程中,感觉面试官的关注点不是从学术的角度去考量算法的性能指标,而是问这个项目实际工业中,会不会起作用,后来面试官又说,这一方面他感觉在实际工业中用处不大。因为论文中用到LDA主题模型,面试官又问这个LDA(ps:腾讯的广点通的那个LDA数学八卦),我又跟他扯点这东西相关的,面试官貌似认识那个LDA数学八卦的作者,然后又接着扯,说这么用的这里面的东西。这个阶段感觉持续了20分钟左右。
3、面试官问我的lucene结合hadoop项目,然后我就开始讲怎么做的。这个环节讲的过程中面试官倒没怎么打断我,讲了一会儿。面试官就问我建索引的过程,答的过程中,面试官问我是不是仅仅调用API来做的,我说是的,面试官又问indexWriter内部是如何实现的等原理,此时有点心虚(一直想抽时间读lucene源码,hadoop mapreduce设计模式东西呢,无奈这段时间一直准备手写代码的训练和c++基础知识,给耽搁啦,事实证明,这个教训是惨痛的,为后面的失败。。。。哎!!!)。这点讲的面试官不怎么满意。后续又讲点其他东西。
4、面试官又问了一些我c++后台开发的东西,感觉答的还行。然后面试官话题一转,说你是不是经常用java写程序,我回答说本科之前经常c++,后来项目需要写java偏多,最近忙着腾讯的实习生招聘,补了点c++基础。面试官又说看我简历中的信息量非常大(技术面),然后问我最擅长的是哪些???听到这个问题的时候我犹豫了一下(因为之前就有一个师兄说过我的简历中内容多,而恰恰一面问答环节的时候我让一面的面试官评价我的简历,面试官也给予肯定的回答)。也不知道该说些啥,说算法吧,又有点担心万一出个算法题难住了,估计没戏了,。这个时候我说要不写个快排吧或者树的操作(ps:这是面试官笑啦),然后面试官又说看你hadoop经验挺多的,要不来个mapreduce吧。然后让我写个mapreduce算法,此时我心中有千万只草泥马溜溜飘过,怕啥来啥!!!!之前二面前一天夜里一直担心会让写mapreduce,面试那条早上就看看wordcount的mapreduce怎么写的。然后在面试中还真让我写复杂的mapreduce,而且是表与表之间的操作。心想估计玩大啦,我在纸上装腔作势了几分钟,然后说api往的差不多啦,我写不出来!面试官手你写伪代码吧,能写多少就写多少,可是压根真不会写,就随便写了下交给他,他看了之后说这相当于没写啊。此时我知道,估计这些印象分大打折扣啦。估计也没戏啦。(此时我感觉面试官对我持怀疑态度啦,接着没聊多久,就问我有没有想问他啥的)。
此时的我感觉是没戏啦,当时也有点蒙了,我说你应该是这推荐和搜索的吧,他回答说他什么都做。我就说能不能推荐几本书(问出口后,感觉这个问题太low啦),然后面试官说你们学生啊,有好多共同点之类的话,也不缺书吧。
然后我又说我常常看些infoq上的东西,他说那上面有的时候吹水子类的。本来心想逮着这个机会就和他扯点呗(当时时间已经十二点多啦),看情况也扯不出多少啦。然后我说,经你这么面下来,我感觉可菜了,太low啦,论文和项目都没啥东西啦。面试官也看出我颓废啦,然后说也不是,你刚才回答的已经可以啦。就是感觉你没有什么杀手锏。我就问,你能指导下我的问题所在嘛。他说我简历中东西广,比如就一个lucene就可以深挖好多东西。给我说一定要有自己的拿手东西,还有就是想象如何解决实际问题等等之类的。
二面总结:
这个时候二面挂啦之后,但是也暴露了自身的问题,感觉二面挂,就是应该是我不够深入搜索或者推荐算法层面的东西还有就是让我写的map reduce程序这个时候没有show出来,感觉面试官就应该会失望的。所以二面失败后我感觉写在简历上的东西一定等保证面试官深挖三次以上不会难倒你,否则,就要慎重这个点是否要往简历上堆。还有准备的不充分的话,面试的时候运气成分也很大。现在算是明白以前看的面经中老是有说面试成功运气成分也很大。另外貌似面试通知时间太赶啦,准备的时间也不多,关键还往往夜里通知,所以更需要在平时积累啦!本来对腾讯的实习生招聘一直期望值蛮大的(百度的实习生招聘不疼不痒的,阿里的自从去年拥抱变化后今年照样火爆,各种轮次的内推电面,就腾讯貌似规模还大点)。昨晚查询挂啦后着实不爽啦一晚上。可是还得继续往前走,查缺补漏,试着去腾讯的其他城市找机会霸面。
一个月多月的找实习总结:
由于在读学校(广东工业大学)非955、211【每到这个时候,都会想当时考研时是多么的欠缺考虑,心高气傲,一战北航,二战还是北航,现在想想多么SB,选一个一般的985该多好。也注定调剂到广工来注定走一条不平坦的路】。正式因为这些,所以前期内推的时候被鄙视了好多次,打击还不小的。当时内推群里推蘑菇街因为学校被刷,后来又找人内推蘑菇街,对方给推的java研发,填写详细信息的时候,私自做主改了大数据研发。后来收到邮件岗位不匹配。多么痛的领悟!!!。总的来说前期内推也就面了阿里支付宝、腾讯互动娱乐、微店。其他的没收到电话面试。所以感觉对于那些一般学校出身,没有NB的项目、竞赛的童鞋,还是要基础扎实,走正常的网申、笔试、面试靠谱点。虽然面试失败啦,以上这些也算是对自己这一个多月来的总结吧!!!
软件测试开发工程师一面
1、介绍一下你自己
2、OSI模型有几层?
3、说说C++的多态?为什么使用虚函数比非虚函数耗费的时间更多?
4、有一个全局变量int a=0,现在两个线程各自循环执行100次a++操作,问最后a的值是多少?
5、对于海量数据,用什么数据结构存储用户搜索的高频关键词比较合适?比如,当用户输入“黄”字,输入框要自动显 示“黄晓明”,“黄蓉”,“黄山”,“黄鹤楼”等提示,但是能存储的量很有限,所以需要选择恰当的数据结构。(我先后说 了数组和堆,似乎都被否决了)
6、智力题:一片草地的草每天匀速地长,m只羊花p天能吃完,n只羊花q天能吃完,问现在k只羊花多少天能吃完?( 记不清m,p,n,q,k的具体数值了,总之是根据已有的两个条件列出二元一次方程组来求解)
7、手写快速排序程序。快排的复杂度是多少?给定1组数1,4,5,5,8,9,7,在快排过程中这两个5是否会被交换?
8、简述怎样用两个栈实现一个队列的功能?只需实现入队、出队。
9、你想打开电视看世界杯,结果发现电视黑屏完全没反应,应该怎么检测故障?
软件测试开发工程师二面
1、写一个函数判断一个字符串里的小括号、大括号是否匹配。例如,输入为"(){}"时输出为true,输入为“{(aa)}”时输出为true,输入为“({)}”时输出为false。
(我用一个栈来存储,对字符串从左往右扫描,遇到左括号就压进栈里,遇到右括号就判断是否跟栈顶元素匹配,如果不匹配就让整个函数直接返回false,如果匹配就取出栈顶元素。注意右括号始终不会进栈。扫描完后如果栈不为空就说明还有多余的左括号,返回false;否则返回true。)
2、如果AB*C=DE,DE+FG=HI,其中从A到I这9个字母代表9个不同的数字,求这9个数字分别是多少。
(我写了5重循环,A,B,C分别从0到9循环,用一个布尔数组记录每个数字是否使用过,筛掉有重复数字的情况,然后可以直接根据AB*C=DE求出D,E,再筛掉有重复数字的情况,然后这个内层循环里再让F,G分别从0到9循环,可直接得出H,I,检查是否符合。最后面试官跟我说第2题他本来想让我用数学方法求解的,没想到我直接就写了代码了,他嫌麻烦了。)
最后问了一下个人的学习和生活情况。这位面试官搞并行处理,我到房间的时候他正在给另一个同学面试,他就拿来两张纸让我站在门口写代码,相当于把每人半小时的面试时间压缩了一半……
欢迎大家留言讨论!