C语言/C++
自学的话,先从C语言学起,这个是嵌入式软件一切的基础。它相对于汇编语言和高级语言来说是承上启下的,而且涉及到底层硬件编程的时候大部分还是用C语言写的,所以它真的非常重要。C语言里比较难的就是指针了,如果你张口能讲清楚指针和地址的区别,那我觉得你就入门了。
还有C++,顺便说一句,我人生的第一桶金就是在QQ群里帮一个人做了2道C++的题赚了块钱,老实说,这也是第一次让我认识到原来我学的知识是真的可以赚到钱的。
单片机
学完C语言,就可以玩单片机了。学校里一般教的是51单片机,确实很经典,工作中用的多的就是STM32,建议你看看郭天祥的教程啊,达尔闻的视频啊,做一些实战小项目,把串口、中断、定时器、IIC、SPI过一遍,再上块触摸屏,玩玩GUI。
STM32裸机学完后,就去学习实时操作系统,像ucos,freeRTOS等。这个系统是可以运行在单片机上的。实时操作系统相比windows、linux而言还是一个比较小、比较简单的操作系统,适合作为你入门操作系统的起点。
Linux应用
stm32熟悉了之后,可以玩玩linux系统,先学linux应用,也就是用户程序,俗称APP。
linux应用从系统命令到shell脚本、makefile,从文件操作到多进程多线程等等,知识很多。像我做linux应用的时候,最常用的就是网络编程了,比如使用TCP、UDP协议控制仪器设备,或者使用ssh协议连接远程服务器,或者使用