原本学校就是双非,若是再没有些亮点,是很难进大厂的。程序员
我比较幸运,曾在网易实习过一段时间,很感谢这段经历,让我有幸经过腾讯HR们的简历筛选。面试
对于腾讯春招,其实我是没有参加网申(2.28-3.31)、提早批(2.28-4.1)以及在线笔试(4.5-4.7),我属于常规批(4.13)中的晚期,我记得是4月18日投的简历,一直没动静,等到了5月14日更新了简历后,5月15日安排了当天晚上7点的面试。算法
面试官是最守时的,说7点就7点来电。一面刚开始就说明所在部门是微信支付,并且没有用Java,后台全是C++,询问我能不能接受转语言,我表示彻底没问题,且不说语言只是工具,C/C++我也是上过专业课的,虽然说到如今已经几年没写过C++代码。数组
还问我打算如何去学习C++语言,个人回答是看书学语法、基本类库,最后学习流行框架。而后继续聊了聊在校期间作过的一些事,包括比赛经历,创办工做室的经历等,又问了问与语言无关的基础知识,最后让我在线作3道题,发给我一个连接,题目包含以面向对象的思想模拟编写签到机程序,UTF-8编码的校验,64匹马8个赛道跑几回能选出前5名。微信
我作到9点后,面试官给我打来了电话进行一些题目上的询问,就这样,一面终于结束。腾讯一面给个人感觉是严谨、认真和细致,涉及的面很是广,基本能把你的状况所有摸个底。网络
5月17日,也就是一面结束后的次日,腾讯发来了二面。二面问了我不少不少的基础知识,包括计算机网络(TCP、HTTP等),操做系统(Linux),尤为是在进程、线程的问题上问了我很久。多线程
最后问了我,你以为单进程好仍是多进程好,说句实话,这个问题把我问懵了,不过幸亏我看过一些Redis方面的书籍,想起来Redis的RDB快照是经过fork出一个子进程来进行保存的,若是不这样的话,RDB操做将阻塞主进程,就这样回答了这个提问。架构
而后面试官又提问了我,你以为单线程好仍是多线程好?个人回答依旧是借用的Redis的例子,单线程如何如何好,多线程如何如何好,究竟用哪一个?要看具体的业务需求。问到这里,面试官意识到你小子挺懂Redis的呀,由于个人一个分布式限流项目用到了Redis,因而面试官开始对我进行狂轰滥炸,说一说,Redis如何保证高可用?集群、主从复制,我记得还有个哨兵。回答了这几个关键词面试官并不太满意,我只能硬着头皮解释了下主从复制的流程。框架
最后面试官问了我一道算法题,典型的海量数据TopK问题,这里就再也不叙述。二面结束,面完后感受差强人意。分布式
5月19日,微信收到了三面面试官的好友申请,询问得知是复试加面,看到这里我深吸一口气,嗯,好吧,二面表现的确实不算太好。
当时正在坐高铁返校,就礼貌的推迟到下午5点。我是4点多到济南的高铁,下午5点微信面试官打来电话时,我刚从学校附近下了地铁,没办法,就在大马路边面吧,虽然来来每每的都是大学生。
此次面试,重点是聊作的分布式限流项目,这个项目毫无疑问被面试官揪着分布式场景下的一系列问题问,我先是解释了该项目前期的方案是基于Redis作分布式令牌桶,这样不存在令牌数量在多个实例中的不一致问题,可是后来我舍弃了,由于这种作法在主线程中涉及网络请求,网络请求起码是毫秒级吧,对业务的影响太大,因而为了避免影响业务,我将分布式限流最大限度的作到本地化。虽然请求不均衡会形成令牌数量的偏差,但在实际的系统流控中,是彻底能够实行的,而且,作架构自己就是一个取舍的过程。
接着,面试官又给了我一次freestyle的机会,若是让你设计俄罗斯方块,你会怎么作,要具体到详细的每一步。面试官问完这个问题,个人脑海中立马浮现出我弟弟小时候常常抱着5块一个黑白屏游戏机玩俄罗斯方块的场景。我回答说,我会先用面向对象的思想创建实体类,每一种方块一个类型,这里能够考虑是否使用抽象类,其次须要游戏布局,能够考虑二维数组,不断的往下掉方块,当方块到顶后,游戏结束,这时候统计二维数组中的0-1分布状况,得出游戏结果。这个问题真的是想到啥回答啥了,emmmm。还有一些其它的,都是老生常谈的问题,这里再也不叙述。三面结束,面完后的感受,随缘吧。
三面结束后,我当天就看到个人面试进度是等待HR面试,开心到爆了。这一等,就等了3天,到5月22号下午4点,我收到了腾讯HR面的通知。腾讯HR面迟到了十分钟,解释是在面其它候选人,让我感受竞争者仍是蛮多的。
HR面问的问题很是多,刚开始就问,拿了很多offer吧,都有哪些。我说拿了百度,不过只能走外包流程就不去了,还有新浪微博,面的是业务部门,一是作的不感兴趣,二是转正但愿也不大就没去。为何不面阿里,我耿直的说我挂了。而后继续问大学的经历,团队比赛,参加工做室,最后还问个人家庭对个人影响。你以为你的三个优点是什么?体如今哪里等。HR面结束后,个人面试进度是已完成全部面试。
HR面结束后的次日上午,我就收到了腾讯HR小姐姐的电话,首先告知我已经经过面试拿到offer,而后向我核对个人我的信息。没多久,就收到了offer邮件。
说一下本身阿里三连败和腾讯面试的感想。阿里面试我经历了三个部,每一次都是一面二面容易过,惋惜每次交叉面都挂掉。阿里交叉面给个人面试感觉是“我很是忙,我们尽快结束”,个人交叉面基本都是不超过20分钟的。
吐槽归吐槽,从客观事实上说,被挂的确是面试官的问题我没有回答上来,这也是能够接受的,你不能期望人家面试官给你下降门槛吧。再说一说腾讯,从上面的面试过程当中,相信你们均可以感觉到,腾讯面试官是多么的无微不至,每次面试的时间都是在1个小时及以上,HR面也是20-30分钟,这种对候选人进行全面了解再互相对比得出结论的操做我以为很是对面试者以及对所在公司负责。
其实思考一下也不难想到缘由,阿里招聘号称无学历门槛,这就致使出现大量求职者的面试安排,面试官着急结束彷佛也无话可说。
若是你想要继续了解我,欢迎关注个人微信公众号“程序员柯南”。