从事嵌入式或者音视频开放方向

1.基础知识

  • leetcode
  • C++11线程池
  • 操作系统

    • 虚拟内存和物理内存之间的关系
    • 进程和线程的区别和关系
    • 线程调度原理
    • 磁盘调度算法
  • 网络原理

    • tcp
    • udp
    • mqtt
    • 原理、区别、应用场景
  • 数据库(嵌入式和音视频开发不用关注)
  • linux编程

    • 多线程开发
    • 多进程开发
    • 网络编程

2.方向

音视频开发

  • 播放器

    • FFmpeg
    • 拉取直播流
  • 录屏推流

嵌入式

  • 驱动开发

面试主要问什么

  1. 问技术

    C++多态、新特性、进程通信、线程同步、网络IO、内存池、线程池等
    高级特性:
    C++对象模型、C++多线程的互斥和同步、精通libevent算法、myspl的线程问题、手撕内存池、线程池、手写Qt的线程槽框架
  2. 问项目

    项目的用处、项目的效果、项目的技术架构、项目技术亮点、开发的时候遇到的最大问题、怎么解决的、添加某个功能怎么做、源码能不能看下、高并发项目
    高级:
    良好的开发模式、完善的日志系统、代码风格、模块划分合理、类的构建合理

C++八股文的回答

  1. 回答不要刻板,结合自己的项目来讲

不要犯的错误

  1. 不要犯低级错误:多态、互斥、同步等基础概,错一个就是致命的,Linux设备模型等高级问题不懂没有负面影响
  2. 不要不懂装懂,但是对于不会的问题,