学好嵌入式的前提是精通C语言。虽然在大学期间可能不需要参加电赛或者与老师合作项目,但C语言的学习却必不可少。如果把切菜比作厨师的基本功,那么C语言就是嵌入式程序员的基本功。因此,很多招聘公司会通过考察面试者的C语言来评判其水平。
另外,数据结构和算法在嵌入式软件中也很重要,尽管不同岗位对其需求有所不同。一些岗位可能很少使用数据结构和算法,只需掌握一些基本语法,如if语句和锁定GPIO口等。然而,了解数据结构和算法对于理解操作系统中的代码非常有帮助,因为嵌入式软件的运行依赖于操作系统的代码。学习数据结构和算法可以让你更好地理解嵌入式软件的运行原理。
此外,嵌入式软件与硬件密切相关,因此具备一定的数字电路和模拟电路基础是必要的。掌握一些基本概念,例如锁相环、与门和或门等,对于嵌入式软件开发至关重要。虽然纯软件开发可能不需要深入了解这些内容,但电子技术背景下,这些基础知识是不可或缺的。
从51单片机开始学习是许多人的选择。虽然一些人直接从ARM开始学习也取得了很好的成果并找到了不错的工作,但我还是建议从51单片机开始学习。学习51单片机并不难,而且可以练习C语言的使用。通过51单片机的裸机编程,可以更好地理解CPU的工作原理,并学习一些通信协议,如I2C和SPI。此外,还可以尝试点亮LED灯,练习中断处理和定时器等,进一步掌握多任务处理。
在学习51单片机之后,可以继续学习STM32,并学习其默认配套的实时操作系统FreeRTOS。一旦对多任务处理有了深入理解,学习嵌入式系统将不再困难。此外,我推荐学习Linux作为分时系统的选择。尽管Linux非常庞大,涵盖应用、驱动和运维等多个方面,但对于从事嵌入式软件开发而非运维工作的人来说,《Linux设备驱动》和《Linux内核设计和实现》等书籍是更合适的选择。
最后,C语言在嵌入式软件面试中是必备技能。虽然我们在大学学到的知识,如果认真学习,完全可以胜任面试题目,然而,面试的放松程度和紧张程度需要不断练习,经验是关键。对于现在的毕业生来说,技术水平差距不大,关键是面试表现和经验的积累。
当然,现在忘得差不多了的话也不要担心,我也贴心的为大家准备了资料包,包括C语言、linux实战、大厂面试真题,点击下方即可免费领取~
点击增加进入大厂机会!