前言
说起深圳腾讯面试,只有2个字坑爹,晚上投腾讯的python云平台开发,早上收到人事的电话,问还看机会不,这边有后台开发岗位,因为在路上有点吵,而且昨晚投了简历,所以我以为就是要我去面试云平台,结果去到那里笔试(题目都是c++,还好过了),第一轮面试完才知道弄错了,面试的岗位是qq后台,是他们在前程无忧搜到我简历,才打电话要我来面试的。。不过因为读书和刚毕业就是做到c++,第一个公司又是做路由器的,所以还好,不过2年多弄了有点生疏
面试过程
腾讯的面试流程,说实话会把你耐心耗尽
- 笔数
- 第一轮面试
- 第二轮面试
- 等候安排
腾讯的面试安排很正规,打电话通知你面试后,会给你发短信面试邀请短信(短信上面有时间,地点和邀请码)
我面试时间是下午2点半,地点是腾讯的万利达大厦,面试部门-即通平台部
我两点到了,在前台自己打印面试涵(需要输入短信的邀请码),然后上去,到他们部门的楼层,需要身份证登记,然后打电话给负责你面试安排的人事(短信上面有)
笔试
进去后,人事后给你一个笔试题,2小时之内做完
笔试题:
- const int *const method(const int *const ¶m) const;
上面所有const的作用
- 一个位图数组,unsigned int BIT_MAP[MAXSIZE],写一个宏,判断其中第x位是否为1.
- 定义一个返回值为float,参数为int的函数指针
- 程序改错题,程序记不得了,错误就是关于内存泄漏的
- 程序结果输出题,考察字节指针,系统大小端,程序大概如下
int main() {
int a=1;
char *b = &a;
short *c = &a;
print("a=%x, b=%x, c=%x", *a, *b, *c);
a = 256;
print("a=%x, b=%x, c=%x", *a, *b, *c);
a = -1;
print("a=%x, b=%x, c=%x", *a, *b, *c);
}
- 有个字符串,写一个函数,去掉字符串中的空字符,并返回空字符的个数,不能重新申请内存
- 写出一个二叉查找树
- 假设电信每分钟登录次数是60w次,现在要提醒5分钟内重复登录的用户,如何设计程序缓存和查找算法?
笔数题写完,给了人事,没等多久,就来个面试官,貌似是他们的组长,开始第一轮面试
第一轮面试
- 自我介绍
- 讲下笔试题最后一题的缓存设计
- 介绍之前的项目,问了项目的问题
- 多线程,多进程,协程
- 进程间通信
- 设计一个数据库结构,用来存储用户位置,用于获取微信附近的人列表
- Linux系统和一些命令
- 有什么想问的(这里我才知道我的岗位是c++后台,😓)
- 。。问的太多记不清楚了
这个面试官不错,说我最近工作都是做python,如果后续还有面试我需要好好复习下,后面就是回去等消息。
晚上九点的时候,我收到人事的电话,说我通过第一轮面试,约时间参加下一轮,我约的是第二天下午4点
第二轮面试
约的四点,但是我三点半就到了,准备休息下上去的时候,就收到他们的电话说面试官准备好了,如果到了可以提前上去。
不过我上去后,等了大概半小时面试官才来,😓,面试官好像是他们的项目经理,不过普通话确实不敢恭维
- 自我介绍
- 问了tcp/ip协议
- tcp连接过程(三次握手)
- 服务端调用accept()之前,如果服务端sleep(),客服端connect()是否成功
- 服务端调用accept()之后,如果服务端sleep(),客服端connect()是否成功
- 客户端连接成功后,如果服务器sleep(),客户端发送send(),是否可以成功
- 如果服务器主动关闭连接,那么客户端关闭连接过程
- 进程间通信有哪些
- 共享内存的地址是否连续,物理内存什么是时候分配的,如何通知另一个进程内存更改
- 数据库记录了用户的登录和退出,如何通过这些数据画出时间段之内,在线用户数
- 写出一个快速排序法
- 写出一个算法讲句子反序,入“i am ABC” 反序成“abc am i”, 记住空格也要返回,如果abc后面有2个空格,则反序后空格在abc前面
大概面试了半个多小时,面试官说今天的面试到这里,后面等候通知
等候安排
大概过了2天,第二天晚上收到短信,说我第二轮面试评估为进入下一轮,人事经理给您安排,恭喜你离鹅厂又近一步
不过我等了大概一周也没有收到电话,我打电话问之前的人事,他说帮我查下,不过估计敷衍我,我觉得他估计我的名字都没有听清楚,我就呵呵了,后面我直接不等了,因为刚到深圳,实在耗不起,而且岗位也不是喜欢的。所以应了那两个字——坑爹**