STM32与Linux两者都是属于嵌入式,而后者比前这更高级,目标可以订在Linux,STM32只是一个过渡,两者的相关理论都是有所系系,初始阶段可以先通过STM32来搞明白常用的一些外设,STM32搞明白了,自己的编程能力那也就提升了,再入手Linux也就简单多了,如果你一开始就入手Linux的话估计会比较难而且复杂。
就我自己来说,刚实习的时候找了一份搞STM32的硬件开发工程师的职位,这也是找了一个多月才找到的一份工作,这也是因为我拿出了我画的不咋地的一份PCB设计才被录用下来的。
录用我的公司是一家小公司,一开始就是做一些设备的组装和画一下PCB这些工作,因为我的C语言编程能力实在是太差了,在大学学的是8051的单片机,而且学的也不怎么样。所以看到STM32程序项目的程序那么多看明白的就没几行。后来我通过stn32开发板提供的配套视频教程了解了整个程序项目的结构和作用后,就看得懂了,那时就可以改改程序了。后来来就不单单是搞硬件了,什么都要搞。最后公司所使用的产品性能要升级,就用到了Linux,一开始老板安排工作直接叫我在Linux上用qt开发一个软件,当时我就愣了一下,因为我都没搞过C++。而且还说没完成要追究责任。没办法只能硬着头皮开干了。用了两天去了解QT项目工程的结构。最后搞了两个多月算是完成了,过程中搞过Linux内核编译,底层驱动移植,驱动添加等等,感觉在这段时间学到了很多。
所以说STM32到Linux只是一个过程,是一个由浅入深的过程。如何抉择先看你自己现在能力在那个阶段。
STM32软件工程师和linxu软件工程师,都是使用C语言进行程序开发,但linux可以分为linux驱动开发和linux应用开发。
linux比STM32难度大
linux开发比STM32软件开发要复杂,从事linux开发,需要学习linxu gcc和shell指令,makefile编程,系统移植,文件系统,linux驱动,QT等等相关知识,门槛比stm32开发难度高。需要掌握的知识点更多更复杂。学习难度非常大。
linux就业前景
学习stm32的工程师,等到工作年限,一定会遇到职业瓶颈,这个时候,如果你会linux开发,操作系统,那么职业道路将会走的很宽,二则,工作待遇来讲,普遍linux开发会比STM32开发的福利待遇要好一些。
选择linux或者STM32,是分情况来选择的
如果本身有一定的linux系统基础,那么强烈建议选择linux,因为linux整体工资要比stm32开发要高。学完linux后,如果项目需要stm32单片机,那么再去做STM32,会觉得十分简单。
如果没有任何的linux基础,公司没有师傅带着做linux的话,或者公司对linux项目有较高的要求和时间限制,那么不建议转linux,先将STM32学好,再过半年一年后,自学合作参加培训linux。不至于打击学习的自信心,二则对于后续找工作也有一定的好处,至少有一项技能能够在毕业后找到工作。
总之,因为处在即将毕业的时间点,先要根据自身条件,结合自己的兴趣爱好,保障毕业能够找到好工作为前提