从事嵌入式或者音视频开放方向
1.基础知识
- leetcode
- C++11线程池
操作系统
- 虚拟内存和物理内存之间的关系
- 进程和线程的区别和关系
- 线程调度原理
- 磁盘调度算法
网络原理
- tcp
- udp
- mqtt
- 原理、区别、应用场景
- 数据库(嵌入式和音视频开发不用关注)
linux编程
- 多线程开发
- 多进程开发
- 网络编程
2.方向
音视频开发
播放器
- FFmpeg
- 拉取直播流
- 录屏推流
嵌入式
- 驱动开发
面试主要问什么
问技术
C++多态、新特性、进程通信、线程同步、网络IO、内存池、线程池等 高级特性: C++对象模型、C++多线程的互斥和同步、精通libevent算法、myspl的线程问题、手撕内存池、线程池、手写Qt的线程槽框架
问项目
项目的用处、项目的效果、项目的技术架构、项目技术亮点、开发的时候遇到的最大问题、怎么解决的、添加某个功能怎么做、源码能不能看下、高并发项目 高级: 良好的开发模式、完善的日志系统、代码风格、模块划分合理、类的构建合理
C++八股文的回答
- 回答不要刻板,结合自己的项目来讲
不要犯的错误
- 不要犯低级错误:多态、互斥、同步等基础概,错一个就是致命的,Linux设备模型等高级问题不懂没有负面影响
- 不要不懂装懂,但是对于不会的问题,