提问者显然是一个在嵌入式开发领域有一定经验的人,并且对技术有追求。我也想分享一下我的个人看法。
要回答这个问题,我们首先要了解嵌入式应用和嵌入式BSP(板级支持包)各自的工作类型。
嵌入式应用
嵌入式应用看起来是在进行软件开发,但其本质上是在处理业务需求。开发的软件是根据公司的业务或项目目标而确定的。
一个优秀的业务能够推动应用软件不断发展,变得更加复杂和深入,技术水平也越来越高,团队也变得更加强大。
但是一个拍脑袋的完蛋项目,摸着石头过河式的开发,没什么意思。最后项目黄了,反思一下自己在项目中做了什么,一晃神,发现写了一大堆 if…else 和 switch…case。
嵌入式应用的上限和下限,都取决于其实现的业务,也依赖于业务背后的市场。做应用最大的好处就是直接承接业务,岗位多,需求量大,总是能接触到新的技术,甚至不断接触新的行业,工作相对的更有新鲜感。
相反,和业务联系紧密也是一把双刃剑。试想一下业务在谁手上?业务和逻辑都是属于老板的,工程师就只是工具人,很难有主动权。
一个业务黄了,切换另一个业务,从语言到技术栈很可能是全新的,会觉得自己没有积累,容易感到虚无。
如果身处好的行业,正在开发的业务很稳健,那么做应用层开发一定会更有成就感,更快乐。但是反之,很空虚。
嵌入式BSP
嵌入式BSP,表面上看也是做软件开发,本质上是在做基建。
BSP开发的工作范围,在不同公司和团队之间差异相当大。从最大范围来讨论的话,BSP可以包含:引导、启动、驱动、操作系统内核、中间层、通信协议栈、虚拟机等等等等。
个人觉得做BSP开发没什么乐趣,说白了,就是在搞基建。
比如说,你看到一个城市新地标,造型奇特、外立面贴满玻璃的bulinbuling的摩天大楼建好了。你随便抓一个施工队的人问他做了哪部分?
-
说,高空作业蜘蛛人贴外立面玻璃的。你知道了,可以,是应用软件工程师。 -
说,在建筑物最显眼的位置装巨大的立体LED显示屏的。可以,是做应用软件的。 -
说,装修样板间的。可以,应用软件。 -
说,扎钢筋的。哦,BSP的。 -
浇水泥的。BSP。 -
埋管道电线的,BSP,BSP。 -
帮工地修了个厕所,整个项目周期8个月一次都没堵过。呵,典型的BSP大佬,Respect。
很多时候,BSP干的活就是重复造轮子。但是嵌入式行业它好就好在平台性、通用性太差了,就是需要人反复造轮子。
而嵌入式行业又受限于其商业化的性质,不同公司造的轮子不能给分享,都关起门来自己造。
所以,虽然需求不多,但是BSP的技术人员总是被需要的。做BSP的人换业务或者换工作,大概率是换一个环境继续重复造轮子,也许有些无趣,但是干久了就会有技术积累的感觉,心里会感觉到踏实。
总结
总的来说,个人感觉两个方向的发展前景大体上差不多。更重要的是个人选择,以及选择之后持之以恒的坚持。
应用开发很挑战选择业务的眼光,我承认其中有赌的成分,但是开发出好的业务后,获取到的物质和心理的满足感会相当可观。
BSP开发很看重平台,大的平台需要更精巧的轮子,吸引了更多技艺精湛的轮子手艺人,长久以往会感觉到技艺逐渐精湛,感受到时间逐渐沉淀带来的踏实感。但是,也要耐得住寂寞。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !