腾讯面试总结3

2024-06-22 22:18
文章标签 面试 总结 腾讯

本文主要是介绍腾讯面试总结3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

爆炸一面一面是第一天的早上九点,记得那天很早就起床了,和同学一起去的酒店,本以为我们已经算来的早的了,到了酒店才发现整个大会议厅都是人。然后就是排队签到,没等几分钟就叫到我去一面了...一面面试官貌似一直在等我,可能我是他第一个面试的。我一进去就叫我把简历给他,然后让我自我介绍了下,不到一分钟就介绍完了(主要自己觉得没什么好介绍的),这时面试官还在看我的简历。等了一会,面试官开始问我:枪简历中哪个项目是我最熟悉,最能体现我能力的项目?然后我就把实验室做的一个项目介绍了下,包括项目背景,架构,自己负责的模块等等,在介绍过程中面试官根据我说的提了一些关于系统并发量,效率的问题。问完前面的项目之后接着问了:枪实习项目做的情况。我就啪啦啪啦的说了实习部门所做项目的一个架构图,然后他就开始针对这个架构提问题。枪怎样在增加了节点的情况下使得所有机器的负载都均衡的降低?之所以会问这个问题是因为实习那个项目架构并没有考虑这个问题,然后我就说用redis集群那种多个slot的机制或者用一致性hash的机制来解决。问完项目之后还问了两道大数据的题目:枪在10亿个整数里面找出最小的100个数?给定几百万个IP段(如10.0.0.1 -- 10.0.0.100),不重复,不交叉,现给你一个IP,求IP所在的IP 段。(不计IP段数据的预处理时间)。第一个说了两种方法,一个是用大根堆,一个是用了bitmap。第二个直接用二分,将IP转换为整数。爆炸二面一面结束后大概晚上10点左右接到二面通知,明天下午三点到酒店面试,到酒店发现人依旧爆满,不知道今年腾讯招多少个啊!!!签了到后很快就轮到我了,一看到二面面试官,就感觉面试官很随和,很有礼貌的叫我坐里面,不用给他简历,他已经有了什么的。等我坐好后,他并不是问我问题,先介绍了下他们部门是干啥的,然后问我对他们部门感兴趣不,他还说如果不感兴趣那我们就到这里。这种时候我也只能说感兴趣了~~,要不然就game over了。看我点了点头后他就说那我们开始面试吧,然后在纸上写了个函数叫我实现。枪int atoi(char *str)看到这函数,我就想这个应该主要考查各种异常处理情况吧,然后就在脑子里想了一下各种异常情况,当我准备动笔写的时候,面试官却说只考虑是正整数的情况,不考虑溢出什么的,听了这话我就纳闷了,心想这还有什么好写的啊,都不考虑异常处理,难道有什么陷阱?结果面试官又来一句我就看看你写程序的一个思路,习惯!好吧,这我才放心开始写,差不多写了五分钟,他看了之后点了点头说那我们继续。后面他大概问了三道题目:枪一个文件有100w行,每行是一个长度为20的字符串(由a-z中的字符组成),内存大小为8Mb,问重复次数最多的字符串是哪个?第一个题目我先将文件通过hash分到10个小文件中,然后用hash_map来统计各个字符串出现的重复次数。面试官说可以,然后说我现在只要找出重复次数最多的那个字符串的重复次数,不需要找出具体是哪个字符串。问我有没有更好的方法。然后我想了想,如果不要保存字符串的话,直接将每个字符串都hash到整数空间,然后进行统计次数,内存差不多是8Mb,面试官听了说可能会出现冲突的情况的一些细节。

枪一个正方形,去掉左上角的1/4后余下的图形怎样均分成4个大小,形状相同的图形?第二道题目想了一会没想出来,后面面试官提示说这次是技术面试,不是要你瞎蒙,要分析,分析可能更容易找到答案。我再想了想还是没有想法,然后面试官就说算了。回到学校后想了想,和同学讨论了下,其实很简单,当时面试时没有把思路放开啊!

枪后台服务器每分钟会给客户端发送总共约10w个心跳检查包,每个心跳包的往返时间在0-100ms之间,求每分钟内这些心跳包的八十分位数(将往返时间从小到大排序,排在第80%的数,这个中位数的概念类似)?第三道题目我特意跟面试官确认了心跳包的往返时间是在0-100ms之间,有了这个信息这个题目就好解决了,只要开大小为100的数组a来做计数器,对0-100ms之间的每个时间都统计对应的心跳包的数量。求八十分位数只需要从头遍历数组a,找到对应的第80%个位置的往返时间就ok了。上面三个问题问完之后,面试官直接就说我这边你已经通过了,说我是他今天最后一个面的了,有时间,就开始和我啪啦啪啦聊他们部门,然后要我好好考虑是去他们部门还是去我实习的公司。爆炸三面果然和二面面试官说的一样,我很快就收到了三面通知,去面三面时候明显感觉现场的人数锐减,会议厅也换成了一个小的。三面面的很轻松,就是聊人生聊理想啥的~~~爆炸总结腾讯这次面试总的来说还是比较的轻松,没遇到什么大的麻烦,也许是自己运气好,碰到的面试官人都比较的好,也许是因为我实习过吧。就是二面那道题目没有想出来有点可惜,本应该能做出来的。

一面

一面是第一天的早上九点,记得那天很早就起床了,和同学一起去的酒店,本以为我们已经算来的早的了,到了酒店才发现整个大会议厅都是人。然后就是排队签到,没等几分钟就叫到我去一面了...

一面面试官貌似一直在等我,可能我是他第一个面试的。我一进去就叫我把简历给他,然后让我自我介绍了下,不到一分钟就介绍完了(主要自己觉得没什么好介绍的),这时面试官还在看我的简历。等了一会,面试官开始问我简历中哪个项目是我最熟悉,最能体现我能力的项目?然后我就把实验室做的一个项目介绍了下,包括项目背景,架构,自己负责的模块等等,在介绍过程中面试官根据我说的提了一些关于系统并发量,效率的问题。问完前面的项目之后接着问了关于实习做的项目情况,我就啪啦啪啦的说了实习部门所做项目的一个架构图,然后他就开始针对这个架构提问题,记得问了:怎样在增加了节点的情况下使得所有机器的负载都均衡的降低?之所以会问这个问题是因为实习那个项目架构并没有考虑这个问题,然后我就说用redis集群那种多个slot的机制或者用一致性hash的机制来解决。问完项目之后还问了两道大数据的题目:

  • 在10亿个整数里面找出最小的100个数?
  • 给定几百万个IP段(如10.0.0.1 -- 10.0.0.100),不重复,不交叉,现给你一个IP,求IP所在的IP 段。(不计IP段数据的预处理时间)

第一个说了两种方法,一个是用大根堆,一个是用了bitmap。第二个直接用二分,将IP转换为整数。

二面

一面结束后大概晚上10点左右接到二面通知,明天下午三点到酒店面试,到酒店发现人依旧爆满,不知道今年腾讯招多少个啊!!!签了到后很快就轮到我了,一看到二面面试官,就感觉面试官很随和,很有礼貌的叫我坐里面,不用给他简历,他已经有了什么的。等我坐好后,他并不是问我问题,先介绍了下他们部门是干啥的,然后问我对他们部门感兴趣不,他还说如果不感兴趣那我们就到这里。这种时候我也只能说感兴趣了~~,要不然就game over了。看我点了点头后他就说那我们开始面试吧,然后在纸上写了个函数叫我实现。

int atoi(char *str)

看到这函数,我就想这个应该主要考查各种异常处理情况吧,然后就在脑子里想了一下各种异常情况,当我准备动笔写的时候,面试官却说只考虑是正整数的情况,不考虑溢出什么的,听了这话我就纳闷了,心想这还有什么好写的啊,都不考虑异常处理,难道有什么陷阱?结果面试官又来一句我就看看你写程序的一个思路,习惯!好吧,这我才放心开始写,差不多写了五分钟,他看了之后点了点头说那我们继续。后面他大概问了三道题目:

  • 一个文件有100w行,每行是一个长度为20的字符串(由a-z中的字符组成),内存大小为8Mb,问重复次数最多的字符串是哪个?
  • 一个正方形,去掉左上角的1/4后余下的图形怎样均分成4个大小,形状相同的图形?
  • 后台服务器每分钟会给客户端发送总共约10w个心跳检查包,每个心跳包的往返时间在0-100ms之间,求每分钟内这些心跳包的八十分位数(将往返时间从小到大排序,排在第80%的数,这个中位数的概念类似)?

第一个题目我先将文件通过hash分到10个小文件中,然后用hash_map来统计各个字符串出现的重复次数。面试官说可以,然后说我现在只要找出重复次数最多的那个字符串的重复次数,不需要找出具体是哪个字符串。问我有没有更好的方法。然后我想了想,如果不要保存字符串的话,直接将每个字符串都hash到整数空间,然后进行统计次数,内存差不多是8Mb,面试官听了说可能会出现冲突的情况的一些细节。

第二道题目想了一会没想出来,后面面试官提示说这次是技术面试,不是要你瞎蒙,要分析,分析可能更容易找到答案。我再想了想还是没有想法,然后面试官就说算了。回到学校后想了想,和同学讨论了下,其实很简单,当时面试时没有把思路放开啊!

 

第三道题目我特意跟面试官确认了心跳包的往返时间是在0-100ms之间,有了这个信息这个题目就好解决了,只要开大小为100的数组a来做计数器,对0-100ms之间的每个时间都统计对应的心跳包的数量。求八十分位数只需要从头遍历数组a,找到对应的第80%个位置的往返时间就ok了。

上面三个问题问完之后,面试官直接就说我这边你已经通过了,说我是他今天最后一个面的了,有时间,就开始和我啪啦啪啦聊他们部门,然后要我好好考虑是去他们部门还是去我实习的公司。

三面

果然和二面面试官说的一样,我很快就收到了三面通知,去面三面时候明显感觉现场的人数锐减,会议厅也换成了一个小的。三面面的很轻松,就是聊人生聊理想啥的~~~

 

总结

腾讯这次面试总的来说还是比较的轻松,没遇到什么大的麻烦,也许是自己运气好,碰到的面试官人都比较的好,也许是因为我实习过吧。就是二面那道题目没有想出来有点可惜,本应该能做出来的。


  4月份折腾了一个月,本来打算一周更新一次的设计模式也没有更新,完全让给了春招的实习招聘。那就总结一下我的春招吧。

  我的春招只能用一个词来形容:惨不忍睹。好几个公司的笔试都过不了,不过这不怪我啊,笔试出的题太抠细节了。唯一笔试过了的公司就是腾讯,估计是笔试的要求比较低。

  3月28日腾讯内推截止,本来有同学在腾讯可以内推的,但是估计自己的简历筛选都没有过,连一个内推的面试都没有。这样的话只能安安静静的按照春招的流程来了。

  4月3日笔试,不得不吐槽,虽然腾讯公司用C++比较多,但是也招Java岗啊,我投的Java后台开发,可是笔试中的30道选择题竟然绝大多都是关于C++的,只有一两道关于Java的,而且题目还特长!还好开学的时候啃了一本《C++面向对象高效编程》,大学前三年也一直使用C++编程,对C++还有一些了解。没想到笔试竟然过了。

  4月11晚上八点多给了通知,让13号上午去面试。终于松了一口气,本以为自己的笔试都没有过呢。

  4月13日:一面

  我是上午10点半面试的,面试官很好,首先是自我介绍,两分钟的时间。下面是具体的问题:

  1. 知道跳表么?答曰知道。好,把跳表写在这张纸上。呃,我只知道跳表是什么,不会写,orz。然后这个问题就过去了。

  2. 介绍自己的项目。

  3. 手写代码,判断两个树时候相同(结构相同,内容相同)。很简单,两分钟之内就写完了,这个问题也过去了。

  4. 看我的简历。你以前一直使用C++啊,为什么后来转Java了?答曰Java是自学的,后来越学越感兴趣,就继续深入下去了。问那既然C++用了那么久你怎么写的是了解呢?答曰相比于Java,对C++了解的程度不如Java。

  5. 那你再写个代码吧,实现冒泡排序。很简单,两分钟内写完了。面试官很细心,自己手动按照我的代码走了一遍,确定没问题了才继续。

  6. 知道cookie和session的区别吗?

  7. 你都知道哪些设计模式?

  估计面试官是比较熟悉C++,而对Java不太了解,就没什么问题了。面试官说,现在还有点时间,我们再说说别的吧。你读过什么书吗(我说看过《深入理解Java虚拟机》和《并发编程的艺术》)?阅读过什么源码吗(我说阅读过jdk的一些源码,还有Disruptor的全部源码和spring的部分源码)?(这些问题我的回答面试官都记下来了。)

  接下来的半个小时我和面试官一直在讨论关于Disruptor的问题。这样一面就结束了,一共52分钟。 之后面试官就问了一些实习时间,和我有什么问题吗。关于我问的问题以及面试官的回答会在后面介绍。

  感觉一面还是很简单的,没有没答出来的问题。

  4月15日:二面

  一面结束后直到晚上9点多微信的状态才由初试变为复试。并在第二天的上午通知15号上午进行二面。

  下面是主要的问题:

  1. 自我介绍。

  2. 介绍项目。

  3. boot loader知道么。

  4. 画出进程的状态转换图。

  5. 进程间通信的方式。

  6. 内核态和用户态的区别,为什么要这样划分,如果不这样划分你觉得理由是什么。

  7. 说说你知道的几种设计模式。

  8. 问了一个实际的问题,现在有1000万张像素个数相同的图片,要么是白色要么是黑色,其中白色图片很少,找出所有的白色图片。(其实就是遍历一次就够了)

  好像就这么多问题,感觉也不是很难,只有boot loader那个真的不知道。之后和面试官就像聊天似的聊了起来,比如高考多少分啊,家是哪里的之类的。

  二面一共40多分钟,然后面试官说你先到楼下签到的地方等一下。我也不知道要干嘛,就去楼下等着了。

  4月15日:HR面

  等了将近一个小时,就来了个通知,要我去面试,原来状态已经变成HR面了。就这样莫名其妙的通过了二面。

  HR并不是漂亮小姐姐,而是一个男生。问的问题也都是生活中的问题,这里就不细说了。不过有个问题我觉得还挺难回答的,就是你对于BAT这三家公司怎么看。之前没有想过这个问题,就对三家公司都夸了一遍。当然,重点要突出腾讯的好。

  HR面试之后直到第二天状态才变成“你已完成所有的面试”。放下心了。 之后就是漫长的等待,每天都会好几次查看微信的状态,也会刷牛客网的讨论区,看看有么有什么新进展。

  直到4月27号,别的部门比如SNG和TEG等都发offer了,我的OMG才发了一条短信,说我已经进入offer池,会在五一假期前后给最终的结果,感觉像是进了备胎池。

  第二天(28号)陆陆续续的收到了offer,而我竟然错过了下午的HR的电话!气!

  第三天(29号)上课,课上收到了HR的电话,直接冲出去了,说我通过了所有的面试。终于收到了offer。

  就这样,我的春招结束了。其实还没有,但是既然有了腾讯,别的就无所谓了。

  那么接下来就做一下总结吧。

  1

  项目没有你想的那么重要

  简历上最好不超过一页,这样算来其实能写上的项目没有很多,也就两三个。但是没有必要写太多。

  我有个同学为了让简历好看一些,写了从大二实习到课程作业到毕设的一共四个项目,涉及到病毒分析、Android开发和Web开发的方方面面,这样给人的一个感觉就是没有专一。一次面试的时候面试官就说,看了项目经历感觉你没有找到自己的方向。所以第一个要注意的问题就是,简历上所写的项目经历最好是同一个技术路线上的。

  二面的时候,面试官问我有什么问题,我问的是,作为一个学生如何在学习和项目之间找个平衡。面试官说不需要平衡,作为学生你们只需要好好学习就成,项目经历将来工作了有很多机会让你们接触。

  所以,第一个感觉就是,好好学习,项目经历其实没有你想象的那么重要。

  2

  语言重要吗

  由于腾讯基本上使用的是C++,而我熟悉的是Java,面试官也问过这个问题,说你能转C++吗。我说我大学前三年使用的都是C++,转过去没有问题。面试官也说,语言没有那么重要,不一定就会Java只能投Java岗。

  其实语言是相通的。比如有个同学面试被问到了Java中的多态是怎么实现的,这和C++中的多态实现方式很相似。所以,其实语言也没那么重要,只要花一段时间,可以很容易掌握一门语言的使用。

  但是需要注意的是,在面向对象编程语言中,至少要有一个语言能够达到深入了解的程度。只有这样,才能在学习另一个语言的时候举一反三,触类旁通。还有就是,对于专业技能来说,不管你掌握到什么程度,最好不要写“精通”。有个同学面试的时候简历上写的是精通C++,结果面试官用“我用了10年C++也没敢说自己精通”一句话给怼回去了。

  如果真的很了解的话,写“熟练”就可以;如果不是那么了解,写“了解”即可。

  3

  一条深入的技能树很重要

  一面的时候我问的问题是,作为一个过来人,您对我们这些即将毕业进入社会的学生有什么建议吗?

  面试官想了一会说,好好学习。后来补充说,你们现在作为学生,对于某个方向要深入了解,先深度,再广度。

  其实这是一个很中肯的建议。想想看,现在好多同学的简历上写了做过什么什么东西,其实学生做的东西在面试官看来大多数就像玩具一样,没什么技术含量。哦对了,有个同学就是因为项目的原因挂了二面。是这样的,面试官二面的时候一直在问同学的项目方面的问题,本来是很好的,项目的话自己能说的就比较多。但是当面试官对同学的项目提出一些质疑的时候我这个同学就和面试官争执起来了(其实就是回怼了),卒。

  感觉最重要的就是点好自己的技能树。既不能什么方面都不懂,又不能任何方面仅仅浅尝辄止。所以,想好自己真正感兴趣的地方,只对这一个山头进行攻击,深入下去,比每个方面都知道但不深入强太多。

  暂时想到的就先这么多,以后有补充的话就继续更新,大家可以点击“阅读原文”访问作者博客。

程序人生

移动一小步,视界大不同!

更多程序员技术交流,奇闻轶事

这篇关于腾讯面试总结3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085563

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解