姗姗的更新:该年面试已与6月中拿到hr面资格,由于疫情以及家庭原因,未去。长风破浪会有时,多面几次也就有经验了。 = =,比较悲催的是,考研凉了。

大致流程如下:

面试用的是腾讯会议,推论一:面试官和给你面试资格的人不是一个人,都是随机分的,理由:在面试的时候面试官让我写算法题的时候,吐槽腾讯会议没有专门写代码的地方,(类似牛客可以那种在线编译的oj),而我的面试链接早就定了,故作此推测。

第一步:介绍自己,这个过程每次都有,建议提前想好自己要说些什么,我是xx学校xx专业的大x学生,我在大学期间(大一、大二、大三)做什么样的事情,有怎样的经历,其实他根本没怎么认真听你在说些什么,他只是想趁这个机会看看你简历,了解一下大致情况,大致构造一下面试思路。为下一步的发问做铺垫。

第二步:强调:简历是面试官面你的根本要点,但我那个简历太老了,我自己都不记得写啥了,而且我那个简历是在附件里面,我自己没记得!两天时间准备,我根本没留心那个pdf,但面试官扒拉出来了,我的败笔就在于,我的准备只是单纯的按照面经的问题走,并没有与我自身的简历相结合,导致我有些问题答的比较片面,一定要提前想想面试官会怎样问,自己需要怎样回答,我一向看不上面试技巧,但有时候,尤其实在这种对方对你根本不了解的时候,这些技巧反倒会是决定你true or false的薛猫。没有强大的实力,就不要太轻信自己的能力。

果不其然,由于简历写过一个渣渣项目,这个项目目前正在申请一个水专利。。。真jier没啥用。我前两天想着换成select换成epoll机制,实现是实现了,但面完我才意识到,有些事情,你说你做到了,你做到了,但别人觉得你没做到,如果那个人决定着你的走向,那你就是没做到,没错,你做到也是没做到,所以说,做人不要太自我,这里我也再反思,我有时候是不是太过自我了,但现实却就跟黄晓明那样似的,面试官:“我不要你觉得你知道了,我要我觉得我觉得你知道了”至于你知不知道,做没做过,都是后面的事情。

推测二,我觉得有时候你得会吹牛批,会说真的很重要!原因:因为面试时间是60-90分钟,时间紧,问题多,难道他会让你的项目部署上线吗?我有那改代码的闲工夫,不如好好看看epoll的好处。(其实我看了,不看也肯定不会想到用epoll,但没有体系化,东说一嘴,西说一嘴)问题很大。

做完自我介绍,就开始项目介绍,其实这个时候我就已经慌了,这和我想象中的面试官问我答的形式根本不一样。

总结:无论遇到什么,心态一定不能崩。一崩就全完了。

面试正式开始

面试官:项目的用到了SSL机制是自己实现的吗?

我:我是参考了ssl机制的过程,进行的合理的修改参数。(我都替我一年前的我无语,改几个参数都把你能耐了,写那玩意干啥)

面试官:那你了解ssl吗?

我:ssl协议主要有 SSL握手协议、SSL密码参数修改协议...( 应用数据协议和SSL告警协议 后两个没想起来,就是从这个时候就开始崩了,开局两连跪,说的都不对)。

面试官:那说说你这个项目是怎样实现的吧?

我:babababba...

面试官:你说你再项目总用到了epoll,你是怎样用到epoll的?

我:我最开始用的是while 轮询的方式去请求,后来修改实现方式用到了reactor模式,实际上项目是用不到的,但是考虑到连接请求的数量可能会不断增大,所以选择了epoll。(后来才明白,我答非所问了,他想听的是怎样用的epoll)

面试官:既然用到了epoll,那么epoll的好处在哪呢?

我:在linux的同步通信中(没错 select poll epoll都是同步的)主要有select poll epoll三种机制,epoll的效率最高。我从历史的角度来说说吧,(临时给自己加戏,没加好)select是最开始出现的,由于计算机性能上升,导致select不能满足需求,select的连接数最大是1024,可以进行修改到65535,后来出现了poll机制,这个过程其实和select相似,只不过不在受连接数的限制,到这的时候,我卡了,我大脑突然就空了,突然就紧张了,木了。

面试官:没事没事,不用太紧张,我们做到算法题冷静一下。

我:两秒中左右,脑子好使了,接着说epoll和另外那两个相比,从用户态切换到内核态的次数要低的多,epoll只需要一次,而另外两个则是每次有时间发生都会请求,进行一次切换,切换会引起中断,系统每次开中断都是需要时间的。然后我画了一个图,做了三者的比较。(面试的时候不要给自己加戏,其实epoll能说的很多,LT,ET触发,底层红黑树(fd)+双向链表(就绪fd)利用fd的变化)而且这个时候算法题已经发给我了,我在往下说,也不合适。

项目总结:一定要根据自己的简历上的知识点,进行模拟的预演,想想怎样能够全面的说出自己项目的亮点,不要向我一样,想秀没秀起来,还被自己拽趴了。简历上的每一点可能是你的坑,也可能是offer的入场券。

数据结构部分

面试算法题:(3.18面的题,我稍微改一改样子,如果我现在泄题,万一撞上了,我怕会对面试官有风险,面试官是个好人,是我心态崩了)

对打问题:一群拳手打架,有生命值,如果x拳手的生命值==y拳手的生命值,则为0,同归于尽,如果x!=y,则x-=y。请问撑到最后的人还剩多少生命?

我:主要思路:装入链表,利用快排进行降序排序,然后进行遍历减法,前一个比较大的数,减去后面的数,再将得到的差插入链表中,如果为0,就删除节点。一直进行下去,直至最后只剩下一个节点。

面试官:你刚刚说使用排序,介绍下快排?

我:(太简单了,不想打了)看客自己百度,看我博客也行,写了伪代码。

面试官:快排的时间复杂度是多少?

我:nlogn,为什么是nlogn 呢?我用代码和一组数来给您分析吧,首先选一个标志位......

我:快排有两种实现方法,一种是分支的思想来使用递归,第二种则是利用迭代模拟一个栈的进出....

我:快排的优化,随机数,三数取中等等,如果存在大量相同的数,还可以考虑双路甚至三路快排。快排在数量比较低的情况下可以考虑掺杂插入排序进行优化。

面试官:快排的缺点呢?最差复杂度是多少?

我:快排的缺点其实没我们大家相信的那么多,(事实就是如此,stl还是别的sort 几乎都是quick_sort),最差复杂度是O(n^2)。

面试官:什么情况下,快排是会退化到O(N^2)呢?

我:因为快排是有一个基准元素的,最好的情况是基准元素刚好在中间,这样就是最完美的时候,如果每次都很不凑巧,每次划分只能分为一个元素与其他元素两部分,就变成了冒泡。但从概率的角度来考虑,这种概率实在太低了,是n的阶乘分之一,几乎可以忽略,所以不需要太担心这个。

面试官:如果数量很大呢?

我:这个数量是和内存相比吗?如果没有比计算机内存大的话,我觉得快排完全可以胜任,可以说是最划算的选择。

面试官:没说话。

我:如果数据量确实比内存大的话,可以考虑,以二分为策略,以归并为操作的做法,进行二路归并,来去进行外部排序。然后我花了示意图,讲解了一番。(凭心而论,我觉得这里有个坑,但我选择绕过这个坑,而且我也搞不懂为什么要问这个?前后好像逻辑不太融洽啊)

面试官:嗯,好,为什么你选择使用链表而不是数组?好处在哪?

我:这样的话,如果差为0,因为本身就是求最后的剩余量,不求具体编号,就可以直接删除了,比较方便。

面试官:链表和数组的区别有哪些?

我:太尼玛简单了(实际没敢这么说)babababa....

面试官:STL有没有了解?

我:我了解的不是很多,但迭代器,容器还是了解一些的,dqueque ,vector,map 等等

面试官:没啥反应,换成网络了。

我:(应该说会的,我不是不会,我只是了解不是很多...)

数据结构部分的自我批评:我想想都觉得我很蠢,面试官都说了给我十五分钟让我写这道题,我两分钟亮思路,写了伪代码。(当时心态比较着急,特别想挽回形象)实际上这道题我根本没见过,leetcode做了30道就扔那了,事后我想想,这样会不会被认为是做过这种类似的题。面试是我一个人的事情吗?面试不是让你秀的时候,他想看的是你思考的过程,面试的目的是你需要让面试官觉得你是一个基础扎实,冷静稳重,具有培养价值的可塑之才,可我在刚刚十分钟不到的时间里,给别人展现的却是手忙脚乱和凌乱不堪。

网络部分

面试官:三次握手四次挥手知道吧?

我:知道,这个我拿手,(这句话我真的说了...)我给你画出来具体流程吧。

(败笔:我居然真的只是稍微画了画简单的样子,syn ack 已经server client各种状态都没有说)

面试官:四次挥手呢?

我:(我接着画)稍微说了下。

面试官:tcp为什么需要三次握手呢?

我:其实在谢希仁的计算机网络上,也曾说过,三次握手本质上是也是四次握手,只不过在server第二次发送的时候将syn 和ack一并发过去了,所以才是三次握手 bababba.....

(这里我会错意了,他想让我说的应该是网络是不稳定的,tcp是稳定的连接,三次握手是为了建立稳定的通信机制......)

面试官:四次挥手有time_wait()是用来干什么的

我:关闭连接的过程中是半连接(嘴贱啊,半关闭状态)是tcp用来保障tcp 连接的稳定释放。

面试官:在这个过程中,为什么需要等待两倍的时间?

我:您说的是MSL吧,max segment lifetime,这是因为主动关闭一端发送的ACK包可能会延迟,导致被动关闭一方会有RST重传信号,重发FIN包,这样一来一回的情况正好是2MSL,所以需要等待2MSL的时间。这样的就是为了确保TCP的稳定关闭。

面试官:你写了SYN Flooding攻击?

我:常见的攻击有DDOS攻击和Flooding攻击,Flooding攻击,主要是在Tcp的第二次连接,由于client已经想=向server发送connect请求,此时server处于SYN_RCVD状态,之后client便会停止向服务器发送确认连接的确认包,但server仍等待确认的阶段,这个过程如果有大量的类似请求,就会导致占有server大量的资源,从而导致瘫痪。

我:在linux中,现在针对这种攻击可以进行内核参数进行修改,或者是利用tcp cookie。可以使用netstat 命令进行查看Tcp连接的状态,来进行判断是否遭遇flooding攻击(这个时候其实我向往linux方向去靠拢,但没想到不止没有靠拢上,还点到了我的死穴,我的败笔之处,也源自我的自作聪明)

面试官:再然后呢?

我:修改内核文件,是在/etc文件夹下吧,我不太清楚了。(我投的不是运维,为啥问我配置文件名呢。。。。其实应该说的,肯定是conf相关,但我记得不知谁说的,宁可说不知道,也不要说没把握的事情,我说句老实话,我觉得就是这句话把我害惨了)

数据库篇  我的死亡之章 从这里开始,几乎打的都是我的软肋。

面试官:我看你看过redis 和leveldb的源码 ,对数据库应该有了解吧。

我:(我就记得三种集群方式 常见策略 和一些蛋疼的代码,要不不说了吧)我这个看的太久了,现在就记不太清了

面试官:mysql有了解吧。

我:有的。

面试官:mysql的两种引擎是哪两种?

我:innoDB和Mylsam  mylsam不支持事务管理,我记得mysql是支持的。(到这里我开始死了,一上来就问我最不熟悉的引擎和区别,我对数据库的了解是对leetcode 的sql语句的那种了解啊 = =)

我:抱歉 面试官,我对这引擎这方面的了解有限。(已经开始不想面了)

面试官:了解b+树吗?说说b+树有什么优点?

我:画了b+树的样子,讲解了b树(balance tree)和b+树的结构,b+树主要是指针不止只指向root节点,同时指向叶子节点,叶子节点 最后一层会存储大量的数据,减少了树的遍历的时间,同时由于是多叉多个node的结构,使得一个节点存储大量的数据,让树变得更加矮胖,适合io的读取。

面试官:我看你对虚拟内存有了解,你说一说?

我:画了程序的分区图,告诉面试官虚拟内存在程序的那个地方,相关的数据结构,指针,映射的方式,原理(还刻意的说了下C++的五个分区,提醒面试官,语言类的问题一点点都没说呢,然而徒劳无功)

面试官:那这样就结束吧

我:好的,面试官。你能对我的表现做出评价吗?

(说句老实话,我觉得真的很突兀,但却又无可奈何,我其实很想聊聊进程通信,锁,互斥方面的事情的)

面试官:有些地方需要了解他的边界,知道事情的应用范围。

我:我其实懂了,他说的是epoll方面的事情。心里也有几分苦涩,如果最开始心态能够稳下来,如果epoll放到最后再说该多好?epoll的实现还憋着一个红黑树没说, 但没有如果。有些地方并没有回答,不是我不知道,等着他来问,因为一般面试官都会一直往问到你不会为止,然而有些地方并没有问。。。。

面试结束

面试上的漏洞

1、紧张,还饿 中午没吃饭

2、过分自信 准备不够充分,说句实话,我准备期间在看hr面该回答什么。。。膨胀了。

3、语速过快,自己语言有些地方没有组织清楚,没有留意面试官是否真的听清。

4、心态问题,给面试官留下的整体印象不太好。

5、明显对数据库我觉得我点到死穴了。我平时确实很少关注这些。书架上那本InnDB的书,回不了学校,也没法看。可能我还想再往算法方向靠一靠吧,也是考研的目标动力之一。

6、有些问题明显就是需要网上的套话,我可能更偏向于想说些自己的理解,就比如网络的几个问题和数据结构。嗯,我觉得面试官network和DS应该不太好,不然,我应该很有话说的。可以没搞头。。。但腾讯系的人 网络应该很强啊。 = = 反正我是菜鸡就对了,还是春招第一波被水浇的菜鸡 。唉。

7、我觉得最大的败笔就是自己过快了,要给他看到思考的过程,但我觉得很做作,你说有些东西,你确实知道,你藏着掖着干啥呢,有些东西,你确实不知道,那就算了呗。我不知道不代表我学的不够快,不够好。我觉得最好的面试,应该是一场探讨的过程,这个过程你我都有收获,能够让别人全方位的了解你的学习能力 领悟能力,相比之下,还是更倾向国外的招聘可能会更好一些。

我很郁闷,与前几天的面试相比,我花了大量的精力准备在C++的语言结构方面,准确的来说,全部时间都在看语言。语言与语言之间的比较,数据结构的话,复习了RB-Tree和AVL树,算法导论那一章的题我都做完了,打算用大量篇幅去说这个。但都没有给我展示的机会。

伤心的话,倒也没太多伤心,确实没做什么准备,不过说句良心话,我觉得如果我稍微不那么紧张一点,应该是还可以接着往下面的,起码也能去旅个游啥的,考研时间也很宝贵啊,又浪费了小一周。就当作是次教训吧,毕竟,失败是成功他妈。祸福相依,不一定不是好事。

21届实习腾讯面试的经验贴(已凉)相关推荐

  1. 2019届校招腾讯面试经历---iOS/macOS开发实习

    一.介绍一下你自己 二.说一下你做的项目 0.项目的设计. 1.项目的精华点. 2.你做该项目遇到什么技术难点. 三.你看过什么iOS书籍 (回答的:<iOS性能优化>.<iOS数据 ...

  2. 阿里巴巴/招行信用卡中心21届实习面试知识点汇总

    基础 JDK1.8的新特性(阿里) ①引入了lambda表达式,可以简化匿名内部类的代码,允许将方法作为参数.②方法引用,可以进一步简化lambda表达式的书写,可以引用类的构造方法,静态方法,特定类 ...

  3. 海康威视 2020届实习+秋招面试 分享

    岗位:嵌入式软件工程师 2020年毕业,已经是19年的面试情况了,简单记录一下提供参考,4月左右实习面试和9月左右秋招面试都参加了,分别介绍一下情况. 公司概况 我们了解的海康是以安防著称的,安防方面 ...

  4. 招商银行信用卡中心21届实习笔试编程题

    第一题 镜像字符串 给一个序列x,如果x和它的逆序列y的每一位都是镜像关系,则输出"yes"否则输出"no" 1镜像1,2镜像5,3镜像8,4镜像7,6镜像9. ...

  5. 【阿里巴巴】数据开发暑期实习生面试面经 技术面 已凉凉

    目录 总结 技术面 提问 自我介绍 讲一下之前实习的工作内容 讲一下之前做的项目 讲一下排序算法 python的数据结构 python的list python的有没有内置的栈,怎么实现 python怎 ...

  6. 腾讯/字节/华为/旷视 2022届实习面经—计算机视觉方向

    腾讯/字节/华为/旷视 2022届实习面经-计算机视觉方向 作为2022届3月毕业的学生,现在开始找实习,主要目的是为之后的秋招积累一些面试经验和工作经验,如果能通过实习转正也算是为秋招找到了一个基础 ...

  7. 在蚂蚁实习的笔试面试经验全公开,也拿过鹅头多offer

    一.笔者情况 笔者是四川人,本硕均毕业于成都某末流985,非科班,目前在蚂蚁成都大财务团队智能结算组,主要从事蚂蚁财务结算系统平台开发和日常维护. 笔者20年毕业,在19年3-4月参加实习面试,由于想 ...

  8. 腾讯IEG面试失败经验总结

    如果这是一次成功的经历,估计浏览量不会低.无奈本人能力有限,而且一直在实习,准备时间与面试经验有限导致此次失败,不过,失败也是一种宝贵的经验,我希望也相信这里能给大家一些比较珍贵的经验,废话不多说,上 ...

  9. 闻泰通讯手机软件测试笔试内容,中科方德软件测试面试笔试经验

    中科方德软件测试面试笔试经验 发布时间:2017-07-12 中文题目: 三角形用例设计. 给出一个函数,写程序判断当月总天数. 黑盒.白盒.单元.集成.系统.验收测试的区别和联系. 缺陷记录应包含的 ...

最新文章

  1. 递归/归并:count of smaller numbers求逆序数
  2. JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数
  3. 用netty实现zcool_《Netty官方指南》把Netty当做一个通用的库
  4. ant安装过程,配置过程
  5. Centos 6.0/ Nginx 安装与配置
  6. java set 取第一个_set集合取第一个元素的几种方法
  7. [备忘] Automatically reset Windows Update components
  8. Yarn将用TypeScript重写,Flow惨遭亲爹抛弃!
  9. Performance Metrics(性能指标1)
  10. Python中获取当前日期的格式
  11. LeetCode 一题多解
  12. js 小数自动补0_JS自定义保留小数,并支持补零(四舍五入)
  13. 工程学导论1---3章习题与思考题
  14. 测试一下你真的理解数据库左连接了吗?
  15. 网站等保三级怎么做?手续是怎样的?
  16. 贪心算法-大整数乘法/加法/减法
  17. ZYNQ Vivado address editor
  18. LSI阵列卡查看SSD寿命
  19. python中文分词介绍
  20. sql数据库教程百度云_SQL菜鸟入门教程(基于SQLITE数据库)(D1)

热门文章

  1. uac管理员程序_在Windows 10中创建没有UAC提示的管理员模式快捷方式
  2. btcpool之Stratum协议
  3. 芝士满满:TikTok快速吸粉视频技巧
  4. 在Anaconda下创建一个新的环境并安装tensorflow
  5. python 零代码快速开发平台_企业如何选择开源的零代码开发平台
  6. 数学建模之灰色关联分析
  7. 安兔兔排行榜提取和搜索
  8. Placeholder_2:0 is both fed and fetched
  9. css画横线箭头_css 画带边框的箭头的问题
  10. python高考加分_Python将纳入浙江省新高考,你知道了吗?