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