关注公众号,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞
文 | 无际(微信:2777492857)
全文约2117字,阅读大约需要 5 分钟
最近我们有一些纯软件转嵌入式的老铁,含泪总结下,从事嵌入式行业十几年的心得体会,以及嵌入式和纯软的区别,该如何选择,尽量说透本质的东西。
其实纯软件工资是不是一定比嵌入式开发高,不能一概而论,因为涉及不同的职业方向,行业以及地区,都有影响。工资虽然是行业当下状态最直接的判断,但不能以此去断定未来,以及你能到达的高度,而是要看到背后的原因和规律,这样可以避免,在入场的时候,不是到了行业末期了。嵌入式开发工资普遍较低,主要原因是大部分嵌入式行业行情不佳,而且还涉及生产成本,回款周期,单品利润低等因素,我自己就经历过几家小公司,每年砸几十,上百万,砸了2,3年还不挣钱的,老板走路都没力的,太多了。嵌入式开发边际成本相对较高,前期需要研发成本投入,好不容易熬到起量了,每个产品通常需要硬件支持,增加生产量意味着增加硬件成本,这限制了嵌入式产品的快速扩张能力,也降低了利润空间,企业不挣钱,自然待遇就不好纯软件边际成本极低,一旦软件开发完成,可以以极低的成本复制和分发,使得纯软件产品能够快速扩展市场,获得规模效应。比如一个应用程序或网络服务可以服务数百万用户,而增加用户的边际成本可能只是增加一些服务器的费用。 但也不是100%,嵌入式行业,也有很多不缺钱的主,比如说最近几年的新能源车企,做手机、还有做无人机的,这种以5-10年为单位建立的壁垒,几乎是稳如老狗的。前段时间,有个老板还来我们办公室,说愿意砸500个,帮他研发一款无人机,遥控+飞控。但是这种,一般我也不敢轻易接,因为自己没做过飞控的产品,这就是涉及嵌入式另外一个恶心的点,就是哪怕做了10年技术,面对新的行业,也是隔行如隔山,哪怕都是用MCU。不同的行业,有不同的选型,方案,算法,标准,生产和测试流程等等,而不是光有技术经验就行了,还有行业经验同样重要,否则做出来的产品,除了稳定性是个问题,在供应链上还不一定有竞争力。所以,为啥嵌入式做到老学到老,而且经验丰富的没有年龄危机,就是在行业内有一定不可替代性,但跨行业也比较困难,需要几年的沉淀周期。相比之下,纯软件开发者的技能更容易在不同行业间转换。在技术含量与成长空间上,纯软技术更新迭代快,涵盖范围广(如Web开发、人工智能、大数据等),有更多机会接触和学习前沿技术,开源社区活跃,资源丰富,有利于持续学习和技能提升 嵌入式表面看起来门槛高,实际上很多工程师都是做着重复性的移植修改工作,如果有熟人指点,入门也并没想象中这么难。但这并不代表嵌入式技术含量低,嵌入式加系统,嵌入式加行业,很多都是很复杂的,做过的自然懂。有些知识学习曲线陡峭,很多是因为信息获取困难,而非技术本身的复杂性。在行业生态与信息获取方面,纯软开放共享精神强,信息流通自由,遇到问题容易在网上找到解决方案,大量免费学习资源和开源项目可供参考。嵌入式,行业普遍存在信息封闭、资源藏匿问题,芯片厂商、硬件供应商往往不愿意公开技术细节。我们在开发过程中就碰到过很多这种问题,特别是小公司研发产品,工程师普遍比较苦逼,芯片厂商能提供的技术支持非常有限,几乎可以说没有。这样学习和问题解决往往需要"猜测-验证"的耗时过程。在市场规模与就业机会方面,纯软市场规模大,应用领域广泛,就业机会多,薪资水平普遍较高,创业和自由职业机会较多,不过这是前几年,现在很多互联网公司也不行了,裁员也是最猛的。嵌入式市场规模其实也很大,天上飞的,地上跑的,水里游的,不过就业机会,比较集中在特定地区或者行业,创业难度和成本也会比较高一点,但是比较容易建立竞争壁垒。嵌入式开发和纯软件开发在就业市场、薪资水平和职业发展方面的一些关键差异。在技能迁移与职业发展方面,就像前面说的,纯软技能易于迁移,可在不同领域和公司之间转换,职业发展路径清晰,如从初级开发到架构师、技术管理等。嵌入式技能相对专一,可能被绑定在特定平台、产品、行业上,职业发展可能受限于特定行业或公司,不过一旦在行业沉淀了丰富的经验,也会大大增加自己的稀缺性,没那么容易因为年龄啥的导致中年危机。在工作环境与压力方面,纯软工作环境通常较好,多在办公室,压力主要来自项目进度和技术更新。嵌入式如果是单片机和驱动方向,需要经常与硬件打交道,工作环境相对复杂,压力可能来自硬件限制、成本控制带来的研发难度等多个方面。看到这里,不知道你是否已经有了答案,如果没有,就看自己兴趣了,我个人觉得这两个都是不错的选择。
end
下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式?
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解
7.手把手教你c语言队列实现代码,通俗易懂超详细!
8.c语言指针用法详解,通俗易懂超详细!