漫长的腾讯后台开发暑期实习面经(WXG,PCG)

4.16 更新:已完成
4.16 更新:offer call
---
从 3 月 8 日开始投递简历,跌跌撞撞走完了颇具故事的流程,一个 WXG 师兄的内推,在这之前还投了 ACM 专项,为整个扑朔迷离的流程奠定了基础。

神秘部门 3.10

约了 3 月 10 日上午 11:00,放了一个牛客的链接,第一次面试比较紧张,所以坐在电脑前,手机静音了面试官提前打了 3 个电话都没接,到点了面试官又打了个电话才知道是有事要推迟,BG 是什么也没问,过一会儿官网流程灰掉了。

WXG 小程序一面 3.12

(3.10)期间一个神秘的 hr 加了我,说是 ACM 专项的,简历被 CSIG 的部门捞了,我以为 WXG 没戏了。

(3.12)结果一个亲戚的朋友也是在 WXG,在找实习生,于是我发了简历过去,安排了组内面试(不经官网),这是我的第一场正式面试,虽然回答的很差,但是为后面一系列面试有非常积极的作用。

(1 h 50 mins)

做题(给了 60 mins 写代码,写完讲思路)

问问题:

  • C++ 从编译到链接发生了什么 ?extern C ?(不会,第一次确实没准备好)
  • 讲一下 TCP 三次握手?
  • http 了解吗?https 了解吗?讲一下 https。
  • TCP/IP 的协议是啥?(知道是啥但是忘了哪两层是合在一起的)
  • 什么时候会用到 IO 多路复用?select 和 epoll 的区别?除了 epoll_wait 是 O(1) 还有什么优点吗?
  • 协程了解吗?(不了解)进程和线程的区别?

好像问题也没问,后面没有消息了。不过发现了自己许多问题,总而言之还是收获满满。

PCG 一面 3.19

(40 mins)

问问题:

  • 讲一下 ACM 经历吧。
  • 面向对象的几个特性,C++ 继承讲下。
  • C++ 的内存分配(malloc 啥的)?
  • 问了下面试官如何评价 ACMer 应聘者,还有是什么 BG(面试官:“PCG”,我:震惊)

一面氛围比较轻松,CSIG 没有发起面试所以被 PCG 捞了?

WXG 一面 3.20

师兄把我推到开放平台小程序了,然后还发起了一面(简历还在 PCG 那,震惊)

(1 h 46 mins)

笔试(给了 40 mins 写代码,写完讲思路)

问问题:

  • 讲下 ACM 经历,遇到最深刻是哪道题(19 南京几何 _(:з)∠)_ ),如何解决。

  • C++ 虚函数的运行过程(讲了多态虚表指针啥的)。

  • 讲一讲进程线程协程。

  • 讲下进程通信吧

    • 我讲到共享内存,并且说了解 mmap 的一些底层原理,引导到自己比较会的方向
    • (讲了一半被打断了)
  • 问了下如何评价 ACMer 应聘者

    • 感觉面试官讲的很好:一些 ACMer 代码功底不错,但是一些开发相关的,或者说计算机基础差了点,这在面试的时候比较被动,而且这个比赛是个结果导向的东西,没拿到好一点的奖就更加吃亏了。

面试完感觉还行,五成把握。

PCG 二面 3.27

让我 30 mins 写个 put get 都是 O(1) 的 LFU,把我打发走了 233。(本来应该让面试官 30 mins 写个给我看的)

面完秒灰。

WXG 二面 3.31

简历又被其他部门捞了,不过师兄给力解锁了,这才有继续二面的机会。

(24 mins):

问问题:

  • 问了我一些课设(震惊)

  • 操作系统课设?磁盘文件管理系统?(小组组长在中期直接重构了代码,自己摸鱼了所以没什么好讲赶紧蒙混过关)

  • 其他课设呢?局域网文件同步?

    • Q:你们怎样同步的?
    • A:利用 MD5 码去比较,不存在的就同步?
    • Q:假设文件量很大呢?
    • A:可以用布隆过滤器(讲了下原理)
    • Q:还有什么可以优化的吗?
    • A:。。。
    • Q:文件大小很大怎么办?
    • A:把文件分块,每个块标上序号。
    • Q:文件有有些小块丢失了怎么办?
    • A:TCP 实现可靠传输,服务器可以用 bitmap 记录 1 表示到了 0 表示丢了,丢了就请求重传。
    • Q:接受到的文件很大怎么办?
    • A:。。。(面试官跟我说可以直接写入磁盘,我以为写入磁盘会很影响效率啥的,因为可能会有很多不连续的小块)
  • 还有吗?订票系统?_(:з)∠)_

    • A:我用了二叉排序树还有双向链表。
    • Q:用这个做啥?
    • A:二叉排序树每个节点存储每个用户,key 是用户名 value 是双向链表,存的是这个用户订的票?
    • Q:用户做 key 值?
    • A:字典序嘛,中文***去好像也是可以排序的。
    • Q:这也可以(震惊)
  • 最后问了下技术栈什么的。

这次面试很短,面完有点慌,不过状态光速更新了,等三面,显示的是复试。

简历上没有写课设,问课设其实也是可以问出一些设计上的思路,面试官想看面对问题你怎么思考。

其实问问题环节可以问一些没回答上来的问题。问了内推的师兄关于局域网文件同步的优化,可以用 UDP 实现可靠传输,局域网的网络质量高,UDP 基本不会丢包,比 TCP 快很多;还有压缩存储,断点续传啥的(多利用内推人)。

WXG 三面 4.3

约了之后官网居然没有更新显示面试时间。

(1 h 30 mins)

笔试(给了 40 mins 写代码,写完讲思路,发了个类似腾讯文档的东西,不给在 IDE 上写)

问问题:

  • 又是问课设(震撼我心)
  • 过程有点类似二面
    • Q:如果我要广播怎么办,就从一台同步到局域网中其他电脑上?
    • A:(稍加思索)同步那台作为服务器,被同步的作为客户端,建立 socket 连接,这样就能实现广播了。
    • (后来问了其他师兄说可能是经典的异步问题,把连接存起来,有就挨个通知,不知道是不是叫 feed 系统)
    • Q:其实用另外一个作为服务器比较好,像一个中转的东西。
    • A:确实。
    • Q:你说的那种要建立很多个连接吧,那。。。
    • A:噢~,IO 多路复用是吧?
    • Q:是。
    • A:讲了下 IO 多路复用是啥,然后讲了下 epoll。
    • Q:那具体要怎么做呢?
    • A:(把 epoll 源码实现大致过程讲了一遍)
    • Q:怎么管理 epoll?
    • A:epoll 本质也是一个 fd,都是可以放在等待队列中挂起的。
    • Q:那 epoll 的 fd 和它监听的那些时间的 fd 你要怎么管理?
    • A:用一个 fd 用一个线程管理。
    • Q:你想用多线程是吧,那么如果有多个 call_back 相应的话。。。
    • A:噢,惊群效应是吧?
    • Q:哈,我没问到你这个,那你既然提到了就讲一下吧(笑)。
    • A:balabala(讲了是啥,怎么解决之类的)
  • 你说对 C++ STL 有点了解,问你个简单的问题,讲一下 vector 和 list 的区别?
    • 优缺点,存储表现如何,还有迭代器
  • 提问环节(感觉问的太飘了)
    • 微信有这样一句口号:做一个伟大的产品,取悦自己,我对微信的产品背后的技术很好奇,所以我想知道开发哥如何把产品思维运用到开发中去?

WXG HR 面 4.15

可算等来了,期间简历多次更新了状态,但就是没约面试 QAQ,最后问了师兄才来了(还是要跟内推人多交流跟进进度)

(35 mins)

  • 做了个跟技术面不太一样的自我介绍,不过技术要素还是有点多 233
  • ACM 经历
    • 印象最深刻的时候?
    • 有没有比较困难的时候?
    • 如何克服的?
  • 你觉得你是个怎么样的人?(好像挖了个坑)
  • 父母工作?
  • 实习时间?
  • 职业规划。

总结

整个流程非常漫长,碰上了挺多奇妙的事,不过师兄还是非常 nice 的,要多跟内推人交流,跟进进度。面试不仅仅是面试,更是学习、挑战自己的一个过程。

期间流程没走完的时候虎牙 offer call 就来了,感觉很两难,许愿已完成 + oc。


#实习##面经##腾讯##C++工程师#
全部评论
可能是因为么啥项目?acmer大多都只有课设8
1 回复 分享
发布于 2020-04-16 01:53
LZ要去小程序实习了吗
点赞 回复 分享
发布于 2020-04-18 00:11
666
点赞 回复 分享
发布于 2020-10-31 19:44

相关推荐

12 45 评论
分享
牛客网
牛客企业服务