首页 > 笔经面经 > 更新一下希望能拿到腾讯LinuxC++后台开发的暑期实习机会

更新一下希望能拿到腾讯LinuxC++后台开发的暑期实习机会

头像
dxgzg
编辑于 2021-03-08 17:52:11 APP内打开
赞 7 | 收藏 38 | 回复6 | 浏览3005
/***
*    更新一下,坏消息是天美三面挂了,好消息是腾讯云又捞我了,下午面试。2021-3-8
*
*    在更新一下,腾讯云一面完了,直接进入复试了,希望能有个offer,感觉自己又可以了。如果不想看我在天美被虐的场景和我的一些废话,可以下翻直接看腾讯云的问题(个人感觉腾讯云答得还行)。2021-3-8 17:11
***/

这篇面经可能不同别的技术面经,因为我很菜,我只能去分析在面试当中我存在着那些不足。我是一名双非普通大三本科学生,不像别人面试可以吊打面试官,我是被面试官花样吊打的小菜鸟。我是一个普通人,从小到高三开学都没怎么好好读过书,我能考一个一本大学真的还知足了(毕竟牛客啊、知乎啊(我还真从知乎学到不少东西)、C++交流群好多都是985、211本硕博),我还记得那会初中老师还说我要是能考上个高中都是奇迹了哈哈哈估计她做梦也没想到我还能考上大学呢。面腾讯前感觉自己的技术还可以,直到面试完我才意识到其实自己在编程上并没有什么特别的天赋,意识到自己菜啦那就更要好好学学习咯。在之前面寒假实习腾讯就把我挂过一次了,这次一面是电话突击面(没任何预约直接就打来了)是很激动的,腾讯又给了我一次机会,但是答的不是很理想边答边想这真是反复鞭尸,时而一问就答上来了秒回答案,时而卡壳,卡了5分钟不知道怎么答。一面面试官说回答的还行,基础还行(一面1个小时10分钟)。二面上来就给我问蒙逼了,开局五分钟我就想完犊子这凉了啊,聊了会别的教我一些新知识,气氛逐渐缓和了起来。又开始怼了下我的小项目,心里想这会是彻底完犊子了,收拾收拾准备去世了,面试官又教我应该再学些什么,又聊了很多,说我还可以觉得我人挺好的、说你才大三学的还可以吧,本来二面是30分钟,聊到1个小时了,最后还推荐了两本书(程序员的自我修养和深入理解计算机系统)。就这样当晚终于进入复试状态了。第三天三面(今天),因为从寒假实习的公司回来,旅途奔波差不多8个小时消耗一大堆脑细胞了(有些话没过脑子弱势项都坦诚相告告诉面试官了),晚上三面回答还行(只要面试官问的我基本都答上来了),后面面试官问我算法和其他课程学的怎么样(可能是因为我只在简历上写Linux和C++、网络编程这一块,没写计网、操作系统、数据库那些东西?),我当时也没多想我真的实话实说了,说我算法还是蛮菜的,在leetcode上有个400多道题,但还是感觉算法能力还是一般,三面面试官有点无奈看了下正好面了半个小时了,说先这样吧,我又强调了次我很想去腾讯,三面面试官说再和同事再商量商量吧。为啥当初能说出不过脑子的话呀,可能聊了也20分钟是真把面试官当好朋友了,我还忘记我已经在 第三面,传说中第三面就是压力面我也把这茬忘记了,我跟他聊的还是很欢乐的,他不搭理我就是了。说一些内心真实的想法,可我是真的菜啊,脑子够用的时候还记得扬长避短,脑子不够用的就实话实说了。尽管我很菜但我还蛮希望能拿到暑期实习的机会。我一共被面试过5次,4次是腾讯(第一次是因为菜、寒假实习只能干2个月就挂了),三次是这三面,还有一次是我寒假实习的公司。面试这东西有时候确实是靠缘分一面和二面面试官很开心的把我放过去了,三面面试官似乎对我不感兴趣,三位面试官都很nice,各有各的风格,我在面试过程确实发现了我自身很多不足的地方,亡羊补牢为时不晚。这三次面试机会还是要多 给自己一些自信,一面、二面、三面都感觉给面试官一种很不自信的感觉,平常我也蛮自信的谁知道面试这么怂了, 自信是真的蛮重要的。

C++的知识
STL:vector、map、unordered_map
static作用
std::sort有没有遇到过问题

计网
超时重传、快速重传、黏包

Linux
问了问shell
gdb
g++
是否查看过内存泄露?

项目,追问我的仿的muduo网络库的细节,阻塞IO非阻塞io异步io同步io那些,回调函数作用。

各式各样的场景题
也有许多让你设计一个服务器的例子

二面面试官还问了一个用写C++最爽的地方是哪里

======上面是天美的问题,下面是腾讯云的问题 ==========我是可爱的分割线==========

自我介绍一下吧

项目这个聊天室广播消息为什么用tcp,有考虑别的吗?我说udp不怎么写,就知道udp可以用作广播消息

tcp和udp有什么区别呢?我答得是tcp有三次握手、四次挥手、可靠,tcp是字节流的、udp是数据包,字节流是为了防止ip分片。udp尽管不可靠,可以设计服务端和客户端把他变成可靠的

那你说说看你对于重载、多态的理解,我答的有静态多态和动态多态、override这个关键字、子类继承虚函数不要修改默认参数、子类继承父类no-virtual函数会被屏蔽,需要使用using来操作一下、重载编译器内部是如何做的、虚函数指针和虚函数表

我看你这个muduo用了LRU和二叉堆作为定时器,那你可以讲讲吗?我答得是我这是跟libevent的定时器一样,有两种策略,LRU适用于定时时间相同的,二叉堆适用时间不同的,又讲了下LRU内部的实现机制,自己也写了个二叉堆最后还是用的优先级队列

那你能介绍一下muduo库中是线程是如何通信的?进程中要怎么通信?muduo网络库源码懂啦就ok。我们现在还在学操作系统我不太懂进程通信,但我有了解,进程我一般就用套接字,也了解过管道、消息队列、共享内存,但是如果是分布式的系统,不在一台主机都是用的套接字,所以我基本用的都是套接字。

那你聊天室用的是select,muduo用的epoll,他俩有什么区别吗?select他只有1024,可以修改,不过没有必要因为poll就是他的升级版,他轮询的复杂度是O(N),epoll是红黑树,他的时间复杂度是O(1)。我看过其他博客有介绍在少量且都活跃的连接时候,select可能比epoll更好,但是我没做过实验。

那你在实习期间都干嘛了呀?改bug,这个bug不难,上来读源码就比较难,我就会有打断点的方式来看程序如何执行的。你们公司用的什么编译器,我说vs10。那你在linux用过调试吗?用过用过,我用过gdb,比如调试正在运行的程序,先用ps -ef获取pid,然后使用gdb attach pid。调试多线程,我会先list看看在哪行源码,或者在那个cpp文件,break可以 xxx.cpp:30,在某个文件上第30行打个断点,然后run跑起来,info thread左上角的星号是正在执行的线程,可以用thread id来切换线程,还可以用set scheduler-locking来设置只让一根线程执行。

那你在我们游戏部门那边是怎么挂的?emmmm我旅途奔波有点疲劳。。。。

还有什么想问我的?

差不多把我的答案也写上来了,写答案也不一定全对,目的是如您发现有错误,可以指出,我好知道自己存在哪些不足!

更多模拟面试

6条回帖

回帖
加载中...
话题 回帖

推荐话题

相关热帖

笔经面经近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐