面试经验总结以及面试项目分享(回馈牛客)
楼主是一个双非二本的LJ,秋招坎坷,深刻体会到了秋招之艰辛,深夜发文只是想帮助还在为秋招努力的伙伴以及正在准备招聘的伙伴,如有大牛路过,千万不要喷喷喔,谢谢啦
按照惯例介绍秋招的结果:
巨人网络:offer
小米sp:offer
腾讯:等oc
美团:面试通过,需要转岗,拒绝
百度:二面完杳无音信
目前准备去小米了
秋招过程中一度想要放弃,但是还是坚持下来了,感谢小米
面试建议:
首推一片比较不错的文章:文章链接
以下仅仅是我认为比较重要的知识,但是不全面,需要大家主动扩充,可在评论区扩充
计算机网络:TCP/IP细节以及HTTP(1.1和2.0)的各种特点一定要明白,UDP的使用场景,以及与TCP之间的区别(TCP是面向连接的稳定的数据流传输,UDP是非面向链接的不稳定的数据报传输这个应该可以帮助记忆)计算机网络推荐文章
操作系统:基本的操作需要熟知,以及一些比较高级的操作(crontab,ipcs,tcpdump等),进程线程之间的操作,死锁,网络IO模型,线程通信,进程通信,虚拟地址空间。目前没有很好的文章推荐,百度上可以多看看,操作系统的面试比较灵活
C++:首先就是STL中的vector(出现频率相当高),然后就是map,set(为什么用红黑树,什么是红黑树,为什么不用平衡树),智能指针,构造析构能否虚函数,怎么检查内存泄漏。链接: 云盘地址 提取码: 2sfc
数据库:目前我遇到的都是Redis和Mysql的问题,Mysql中索引问的比较多,其次是各种日志,以及ACID特性,Redis的持久化方式,以及跳表怎么实现,同样需要自己扩充。数据库推荐文章
项目方面:我做了几个小项目,有需要的同学可以参考,具体的注释我全部都写了,如果有问题可以
,大佬可以自行忽略(狗头保命)(顺便厚颜无耻的求star和follow,如果可以的话推荐自己实现一下,一下项目感觉可以在面试中吹一下)
- 线程池的实现,使用c++11完成,可以帮助同学们理解线程池,实现比较简单可以参考
- Web服务器的实现,目前还没有上传测试结果,准备使用locust进行测试,目前代码和注释已经完成
- 短网址服务,百度的面试题,使用Redis和go语言完成,同学们可参考
面试最后一般会有一个场景题,如果有场景题的话我感觉这个面试是很稳了,场景题一般是入职之后第一个要写的东西,请尽力所答,不要放弃,加油!
以下是面试中遇到的一些问题:
c++:
- vector的底层实现
- map和set的底层数据结构是什么,为什么使用红黑树(腾讯,头条),给我讲一下红黑树的性质(头条)
- 空类的大小(腾讯),线程池写过吗,讲一讲(腾讯)
- 内核态和用户态之间怎么转换的(头条)
- 构造函数可以使用virtual修饰吗(头条)
go: - go的协程怎么实现的与c++的区别(小米)
- 顺序定义defer最后怎么执行
- 讲一下你用go实现的项目
数据库: - 各种索引的理解(头条,小米,腾讯)
- 各种日志的理解(头条,小米)
- 怎么看哪一个查询是慢查询(头条)
- Redis的跳表(头条)
- Redis的持久化(小米,头条)
- Redis和Mem***的区别(小米,腾讯)
操作系统: - 各种奇怪的命令(阿里(文本三剑客),小米(各种常规操作),腾讯(crontab,ipcs))
- IPC方法(谁都问,大家都知道)
- 进程与线程的区别(谁都问,大家都知道)
- Epoll和poll以及select的区别(设计IO模型,腾讯)
- Linux中的网络IO(小米,腾讯)
计算机网络: - TCP三次握手和四次挥手的各种状态(谁都问)
- 四次挥手中的TIME_WAIT状态存在的意义(小米,腾讯)
- TCP为什么可靠(腾讯,小米,头条)
- 滑动窗口是什么(腾讯,小米,头条)
- HTTP和HTTPS的区别(一般都会问感觉)
算法题:
变化多端,头条喜欢动态规划和强思维(leetcode中等偏上),腾讯重思路,小米同样看重思路
头条:
- 最大1矩阵(dp)
腾讯:
- 我现在有两个玻璃球,已知玻璃球在某 一个高度扔下去会摔碎,请用这两个球测试那个临界楼层,尽可能少的测试。
小米:
- 二分
最后祝大家offer++,一定要加油喔。祝福
#腾讯##小米##C++工程师##学习路径##校招##面经#