@
Clouds42 不客气。我不能替你决定未来。但是,可以分享一下了解的东西。
个人感觉目前由于嵌入式开发相对软件开发而言,迭代缓慢很多,主要是由于近年来软件行业发生翻天覆地的变化。主要是由于算力提升、高端芯片的推动。但是这都不是 MCU 编程层面上的。个人理解你所谓的 MCU 层面的开发应该是围绕 MCU 做应用开发而非 MCU 芯片设计研发。围绕 MCU 应用开发的岗位还是有很多的,物联网智能设备只能是越来越多更新换代,智慧城市、智慧交通、智慧医疗。市场不仅仅是中国大陆,还有世界上很多国家。
然后, 以 c++为基础的 linux 开发方向,只是编程语言。但是还要区分应用方向。例如嵌入式 linux 或者服务器 linux 。而服务器 linux 又分很多种。目前互联网以及人工智能领域使用 linux 主要是工具,不局限于某种编程语言。主流编程语言 c 、c++、c#、java 、swift 、js 、ts 、dart 、rust 、php 、python 、Dolphin 、SQL 、go 、ruby 、lua 等等都在软件应用里面经常出现。适合的语言做适合的事情。某些项目不适合用 java,如果只因为某种编程语言吊死那这份工作可能难以胜任。但是学好某种语言的精髓,应用面就非常广。c++在运行效率也不错,然后全平台,甚至在很多直播软件后台也是用 c++写的流媒体处理操作,运行在 linux 平台或者安卓苹果手机客户端。c++做嵌入式也不错。
看了很多嵌入式开发的 c++代码后,你会发现其实不仅仅局限某种语言,而是领悟作者对某些元器件、MCU 、通信协议、操作流程有深入理解,而非对 c++语言本身的深入理解。而纯软件的开发这块主要是对业务逻辑、性能有要求。
你要想好自己是准备投身嵌入式开发,还是投身互联网软件开发。
很多年前,有人问过我同一个问题。我是这么回答的。如果你对嵌入式和纯软件开发有选择。可以先试一下嵌入式,如果感觉不爽想改行,很容易改到纯软件行业。但是,如果你先选择纯软件,某天再想转到嵌入式开发,几乎不可能吧。因为嵌入式开发需要的知识沉淀太多了,理论知识不是刷两边 leecode 题就能懂得。还要懂物理、电子、理论公式等等。 嵌入式开发目前被 AI 替代的难度高。纯软件的开发比较容易,毕竟试错成本低,迭代快。
再讲一个真实例子。很多年前,本人某朋友劝说下浅尝嵌入式开发行业,然后转纯软件开发。本人某朋友在 M 国做着嵌入式应用开发多年,由于收入相对较低心里比较浮躁,遂又去读了一个夜校 CS Master ,最后进了个软件大厂工作主要因为薪水。但是高位买房后,在 M 国被裁员了。他之前的嵌入式开发比较枯燥但是稳定,当然收入没软件高。他现在再找个嵌入式开发养老也是没有问题的,还是收的,就看他愿意不愿意了。