腾讯微保后台实习面经 - 一面&&二面(已offer)

大三软工,下面部分记录只给出了思路,有不对的地方欢迎大家指出勘误~

一面前准备

  1. 准备自我介绍

  2. 回忆项目经历

  3. 回忆社团经历

  4. 回忆比赛经历

  5. 复习C++常见面试题(深拷贝、虚析构、虚基类、虚表)

  6. 复习Go基础(new和make、反射、内存管理)

  7. 复习算法(海量数据处理、LeetCode)

  8. 复习计算机基础(IPC机制、IO协议栈、MMU、内存技术)

  9. 复习计算机网络(TCP和UDP、握手挥手、滑动窗口、粘包问题)

  10. Python&Django(项目用到了Django)

  11. 准备提问环节(我之前渗透测试,了解了一遍他们后端的对外接口,猜测他们的内部技术实现记录下来)

  12. 行业了解(时间不够,没有执行)

一面过程(25min)

人生中第一次面试,莫名紧张,全程巨难受,讲话舌头居然打结QAQ

  1. 自我介绍

  2. 问了我小程序的那个项目的经历(但是这个项目因为后端用的是云函数,想讲也没什么可讲的,一时紧张没说好,估计这里开始给打减分了)

  3. linux socket编程是否了解(我当时寻思我只知道socket(),bind(),listen(),accept()怎么用,具体深入的底层原理不懂,结果就说了一句不会,事后想想好歹说一下大概是什么吧,被减分)

  4. linux如何获得线程退出返回值(这个面试官似乎擅长系统编程,我印象中是pthread的三个函数去创建、调用和阻塞等待,但是具体是哪些名字全不记得了,又是就说了一句不会,结果可想而知,被减分)

  5. linux如何保证单例运行(文件锁)

  6. C++如何管理内存泄漏的问题(内存池,智能指针)

  7. C++介绍一下智能指针(四种,自动析构的原理)

  8. C++的map的底层原理(答案是RB-Tree,但是这里我突然SB了,没听清楚听成是HashMap,就说了Hash表,他说不对,我愣了一下,又说是数组?链表?尴尬到头皮发麻,预计被大量减分,基础不牢)

  9. C++的Map是否线程安全?并发读是否安全?(否;具体解释)

  10. go和python的切片(序列)如何深拷贝(我说python要么手写要么deepcopy,go的话make一个或者append超过cap,他说还有更直接更简单的。。。我???)
    他说用slice_b := slice_a[:]就可以,然后说我go的基础不行
    (我看了代码半天,他说你不用担心,我给你的答案是不会骗你)
    (emmm,我go的基础不行我是知道的,但是slice_b := slice_a[:]我事后去写程序跑了一边貌似是不能深拷贝的。。。算了)

  11. 100万个数中取最大的10个数(TopK算法,用堆排序,估计是时间快到了,没让我手撕,我讲了思路给他)

  12. 然后给了我一些学习建议。。。(内心崩溃,虽然给我建议很感动,但是我感觉我要凉了)

  13. 然后,然后就没有然后了(我准备的问题也没机会给问)

总结:

  1. 回答概念题的时候,废话多,重点少,应该好好想好了再清晰地回答(语言表达能力,多说多练)
  2. 要先考虑岗位性质,看对方会对你简历的哪部分感兴趣,针对性的准备

二面前准备

本来当作凉了,也以及释怀了心情,结果收到二面通知
怀着当作能力的检验和练习的心情,争取在这次面试中改正上一次的不足,开始准备二面
以前看过《Linux系统编程》,自己对底层只是到了感性的认识程度,所以需要再复习一遍

  1. Linux堆和栈的底层原理

  2. LinuxIPC机制

  3. LinuxIO多路复用(epoll、select、poll)

  4. STL底层容器原理完整详解

  5. go的slice、map、chan底层原理

  6. go的chan用途和实现

二面过程(30min)

  1. 自我介绍(稍微改了一下,复用了一面的自我介绍,着重自己做了什么项目)

  2. 举例介绍自己做的其中一个项目(我做了多个,我选了最有的说的一个)
    我把项目背景,项目需求分析,主要负责工作,遇到的困难和解决方案,项目最后总结介绍了一遍
    面试官着重问遇到的困难和解决方案

  3. MySQL数据库索引的实现原理(介绍B*树索引的方式)

  4. 介绍使用索引时候要注意的细节(索引使用优化、如何防止索引失效,这部分因为太久前学的MySQL了,感觉没说清楚,但是面试官也没深入问,我就没展开讲了)

  5. 是否准备考研

  6. 协程,线程,进程的概念和区别(我顺带介绍了Go的GMP模型)

  7. Go如何进行垃圾回收(我从Go内存池管理、变量逃逸分析、三色标记法展开了讲)

  8. HTTP报文格式(我本来想趁机讲一下HTTPS和SSL的,结果给打断了(施法中被沉默))

  9. 详细说明TCP三次握手和四次挥手以及原因(我猜测重点再四次挥手的状态变化和原因)

  10. TCP和UDP的区别(重点说了一下粘包)

  11. 微服务的架构和原理,使用过哪些RPC介绍(我简历中写道)

  12. 介绍一下分布式锁(当时脑中全是一致性哈希,一下子没反应过来分布式锁是什么来着,没答出来)

  13. 如何负载均衡(我举了Nginx的反向代理和负载均衡作为例子)

  14. 提问环节(终于肯给我机会问问题了,感动,我把当初准备好给一面但是没用上的分析报告拿出来问,他们是如何DevOps和服务端应用热更新的,反正不用白不用)

最后耍小聪明给面试官发现了,给“小表扬”了一下,小尴尬哈哈哈

感悟

目前情况就是这样,也不知最终结果如何,但是总的来说,我个人认为在积极准备后多参加面试是挺好的一件事,哪怕最后失败也没关系,就当作是磨练自己各方面能力的机会。

因为你会发现,面试能让你更加清晰地定位自己,了解自己技术和综合能力上,自己所在的层次,知道自己的差距,这对长远的提高和突破瓶颈是很有效的。我个人认为我经历了几次面试之后,我现在能更好地制定自己的学习计划和阶梯目标。

面试紧张是正常现象,一次比一次改进就好,希望这篇 面/凉 经能给需要的小伙伴帮助,也欢迎大家勘误出错误的地方哈~

结局

今天收到offer

#微保2021暑期实习##微保WeSure##实习##面经#
全部评论
一面第10题hr给的确实不是深拷贝,直接用copy()函数?😂
点赞 回复
分享
发布于 2020-04-23 09:11
楼主有收到HR面吗
点赞 回复
分享
发布于 2020-04-27 21:42
联想
校招火热招聘中
官网直投
楼主是4.14的笔试吗?
点赞 回复
分享
发布于 2020-04-27 21:50
wesure技术栈不是java吗
点赞 回复
分享
发布于 2020-05-25 15:44

相关推荐

8 18 评论
分享
牛客网
牛客企业服务