(诺瓦星云)一面:八股文拷打的真实体验

提到诺瓦星云,很多人第一反应就是“嵌入式大厂,面试难度高”。而实际经历下来,的确如此——第一轮技术面试几乎是纯八股文拷打,考察的就是基础是否扎实,回答是否系统。

面试形式

  • 时长:约 50 分钟
  • 面试官:一位研发工程师
  • 形式:视频面试
  • 风格:几乎全程都是问答,几乎没有写代码,偶尔会追问实现细节

面试问题汇总

答案都在专栏了:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

C 语言 & 嵌入式基础

  1. sizeofstrlen 的区别?在什么情况下会出错?
  2. constvolatilestatic 的作用,分别举例。
  3. 内存对齐为什么要存在?对性能有什么影响?
  4. 结构体中位域(bit-field)的作用,编译器是如何存放的?
  5. 指针和数组的区别,函数传参时是如何处理的?
  6. 函数指针的使用场景?写一个简单的声明。
  7. 内存分配 mallocfree 的底层机制?

操作系统相关

  1. 中断和轮询的区别?
  2. 内核态与用户态的切换过程。
  3. 任务调度策略有哪些?实时系统通常采用哪种?
  4. 死锁的四个必要条件,如何避免?

通信与总线

  1. I2C、SPI、UART 的区别与典型应用场景。
  2. I2C 的仲裁机制是如何实现的?
  3. CAN 协议的优点,和 UART 相比为什么更适合车载?

网络与协议(偏 Linux 嵌入式方向)

  1. TCP 和 UDP 的区别,应用场景?
  2. TCP 的三次握手、四次挥手,TIME_WAIT 的作用。
  3. 如果 connect 阻塞,原因可能是什么?

其他高频八股

  1. 常见的内存错误有哪些?如何定位?
  2. Linux 驱动中常见的 IO 控制方式?
  3. makefile 中的隐式规则和常见变量。

追问环节

面试官会根据回答深挖,比如:

  • 我答 volatile 主要用于防止编译器优化,他追问“编译器优化具体会做哪些操作?举一个寄存器变量的例子”。
  • 我答中断和轮询的区别,他追问“那如果一个按键输入既可以用中断又可以用轮询,你会怎么选?为什么?”
  • 我答 TCP 的 TIME_WAIT 是为了保证数据可靠传输,他追问“那为什么是 2MSL 而不是 1MSL?”

感觉就是一层一层把你往深处拷,直到你答不上为止。

我的感受

  • 基础一定要牢固:这类面试几乎不看项目吹水,基础没过关就是白搭。
  • 八股文要系统复习:尤其是 C 语言、操作系统、网络协议、嵌入式总线。
  • 答题要有条理:遇到不会的也别慌,先说思路,再承认不足。

全部评论

相关推荐

评论
1
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务