【一二三面经】腾讯CSIG-客户端岗
RT,LZ现在已经是最后的HR面流程了。貌似CSIG的小伙伴很多都是还没约时间,或者约了18号DDL前最后一天面,估计HR得忙死...LZ是还没约时间的那批,希望能早点约HR面,早日进入“已完成”!!许愿!因此也发个面经,攒攒RP。
讲讲LZ的背景,简历上都是机器学习方向的的经历,为了逃避竞争投了后端开发,结果被客户端的捞了🤣 也算是一波三折。不过我想着实习也就是多见识一下,具体做什么并不很有所谓吧,所以也挺期待去做客户端。再加上我投得晚,别的地方都还在慢悠悠一面,就腾讯因为DDL的压力疯狂面试,所以明明我TX投得最晚,结果反而是最先面完...
可能我是个非典型例子吧,因为我对客户端几乎是0经验,最开始被捞的时候,我和面试官反复强调这一点,他一直说没事,只看基础,结果三面的面试官真的全部在深挖基础。手里有项目的同学,可能面试的画风会和我不太一样。不过从我的经历里应该可以看到如果面试官想挖基础,会问哪些问题。
一面二面 4月16号
一面二面重合很大,因此放在一起说了。一个在4月16号下午,一个在4月16号晚上
- 实现类似词典的O(1)查找——哈希表、哈希表的原理
- 哈希表碰撞怎么办?(再探测有什么问题?链表法有什么问题?)我还说了再哈希,结果面试官硬要我说一个查找方式,那就二分(唐突转换话题)
- 二分查找的时间复杂度、二叉搜索树的时间复杂度、最坏的情况、解决的方法(AVL)。面试官还想问红黑树,连忙说不会
- 计网老问题。TCP三次握手四次挥手、TCP和UDP区别、HTTP协议的状态码、从输入url到显示网页,TCP的滑动窗口、拥塞控制......总之是面经里出烂的网络题。
- OS老问题,进程线程的区别,堆和栈的区别,虚拟地址的意义、虚拟地址的实现、页面调度、缺页中断...
- 快排、快排的思想、时间复杂度、最坏的情况
- 代码题——链表快排,从0开始做(提醒老刷leetcode的同学,这种基本的东西别搞忘了...)
感觉总结了一轮下来,还有些遗漏...但是确实,只是面基础的话,真的都是面经里老生常谈的东西。略水。
三面 4月17号11:00
三面是真的让我感觉到冒汗的面试。这个真不是背能应付的了
- 自我介绍、讲解项目(我讲了一个学校里自己做的小编译器和一个玩具文件系统)
- 对文件系统,讲解下具体原理。比如文件名放在哪、文件大小不一样怎么储存(inode的索引)、块和inode的分配等。我还提了一嘴Windows的FAT32.
- 做过面向对象吗?聊聊面向对象的概念、意义、适用场景。(第一次被问崩,之前感觉网上提的那些封装、继承之类的很有道理,自己在做的时候也有感觉,结果面试官跟我说都不对,封装的话C也有封装,然后继承的话其实并不可靠云云,大多数情况下都是自己推翻重写?这里我也没搞懂他是什么意思)
- 上一题勉强答了个GUI。开始问GUI。我之前做过pyqt,他就开始问pyqt,比如onclick是怎么实现绑定函数的,然后从按下鼠标到窗口响应经历了哪些过程?GUI是怎么管理那么多窗口和控件的?(引导下答出了多叉树,此前是真的没关注过这个)
- TCP,三次握手为什么?然后开始细问TCP流量控制,如果我想要尽可能多占流量,需要对TCP做什么样的改进?我说那还不如用UDP,如果能容忍丢包,例如视频会议,结果惨遭面试官怒斥,说视频丢包问题很大...本来想反驳,后来一想这面试官就是做流媒体的,不敢说了,虚心接受教育,最后提了下把拥塞控制的提升速度改得更激进,降低速度改得更慢之类。
- 场景题。百万级单词,要求常数级查询效率。先问了能否允许小概率把不存在判断为存在,回答不允许,排除布隆过滤器。然后那就是分桶然后桶内哈希了。
- 又开始聊哈希,哈希的原理,为什么哈希能O(1)?(线性表连续寻址)。好那线性表在实际物理内存中是连续的吗?然后又开始聊虚拟地址和物理地址的好处了。
- 继续上面的,刚刚说减少内存碎片。那页式结构减少了外部碎片,但是内部也会有碎片,怎么办?这个最后扯了一点优化堆的块的分割和分块策略云云。具体的真没答上来,面试官没深究。
- 算法题,过滤字符串里的多余空格。算法写出来了,忘了字符串常量不能直接修改,丢人。在那调试段错误调试到结束,结果一结束就想起来这回事了。
- 要我注意接听HR电话,说最近巨忙,可能会12点打...
上面就是我的非典型面试经历,全程考基础和业务上运用知识的能力。本来三面觉得凉了的,结果很快进入HR面了。目前(18号0点)依然在等待约时间,再次祈祷HR面早约早拿offer!
#腾讯实习##腾讯##实习##面经##算法工程师#