软件工程师如何在自动驾驶行业中发展

最近疫情加速了大众对无人化概念的接受程度,自动驾驶行业变得热门了许多,很多公司都开始涉足这一领域。但又不那么火热,目前大多数人的判断是要到2025年前后才能真正出现一些比较成熟的商业化自动驾驶产品,所以还有较长时间的潜伏期。整体来看自动驾驶行业似乎是一个还能养活自己10年左右的行业。既然是个长线事业,如何让自己在技术领域持续增值,厚积薄发,坚持到胜利的那一天呢?

这个问题也不是今天就能想明白的,把它作为一个topic,希望能够逐步总结,实现思想上和技术上的同步成长。

目前所谓的软件工程师在自动驾驶领域承担着除了算法建模和实现之外的几乎所有工作,所以各种方向的人才都可以加入这个行业,只不过目前这个行业比互联网行业还是“穷”很多的。总体来看,自动驾驶软件对性能要求较高,所以核心的东西都是c++实现的,但诸如仿真、OTA、云端建设、工具链也都是必不可少的,这些对于前端、后端等各方面的人才都是有需求的。

我不是“全栈”工程师,在这个topic中也只想反思通用的认知,不会具体到如何在具体技术栈上的成长。不管哪个方向,在这个行业待上2-3年基本就是核心了,为什么很多工程师没法在这个行业持续成长,直到将来收获行业红利?自认为可能是因为受不了外部的诱惑、工作的强度和迷茫的感觉。外部的诱惑和工作的强度自不用过多解释,为什么强调“迷茫的感觉”?有三个方面的原因:

  1. 软件工程师的自卑;
  2. 自动驾驶方向的探索特点;
  3. 软件研发周期特点;

算法工程师的工资似乎比软件工程师更高一些,经常逛脉脉的工程师很容易和别的方向的工程师进行对比,然后感觉自己是不是选错了方向。尽管算法在自动驾驶中是非常核心的技术,但量产离不开优秀的软件工程,好比房子设计得再酷,如果没有坚实的土木工程,是不可靠的。软件工程师的能力决定了量产软件的质量、效率和成本,这才是商业化最关注的的问题。即使我们自己有这样的认知,但也不能让别人都有同样的认知,也许你的老板对算法更重视,你的算法同事表现得趾高气昂,也容易让年轻的工程师们产生心理的波动,这种情况下更要坚定自己的信念,人生中要想获得更大的成功,都是需要厚积薄发的,正所谓“吃得苦中苦方为人上人”,扎实地做好做深自己的工作,终究是会成为一个无法替代的人,到时候价值自然随之而来。

自动驾驶商业化方案和路径还不成熟,目前仍然处于探索期,也许今天你在做这个业务,明天可能得换成一个新的业务,硬件在换、业务在换,一遍又一遍的适配就足以让人烦躁不堪。这是现状,也是这个行业的试错之路,能够在这个试错过程中成长其实是一种幸运,你能知道一切都是为什么要做成那样子,这就是经验,攒多了就是价值。而且这些看似重复低级的工作在不同的人手里会有不同的方式去做,最终表现出不一样的效率和质量,这也是软件工程各种设计思想和算法的意义所在,如果在这种“折磨”中都没能理解这些深意,也没能充分利用这些技术,那么也只能说你的磨砺还不够。另外也不能让那些已经足够优秀的工程师一直做这种事情,所以一定要有一个有梯队型的团队,这样才能让优秀的同学不至于深陷高级重复工作中,同时也能给新人一些锻炼的机会。

软件研发过程中,工程师们一般都喜欢设计一个新框架或做一个新功能,却不喜欢写testcase、持续性能优化、解bug。有些工程师一旦天天在做这些工作就会觉得自己一天天的都没什么产出,因为没怎么写代码。其实,深刻认识到这些事情的重要性,并且知道怎么把这些事情做好的,都是资深以上的工程师了。计算机相关知识的功力在这些事情上能够得到充分的体现,这也是为什么大家会看到专家级别的工程师在公司里面可能不怎么写代码,但是疑难杂症也只能找他们解决。

总结一下(略有些草率,相信今后还会有更多深刻的认识能够分享出来),调整心态,耐得住寂寞、把冷板凳坐热,不断做深做精,逐渐组建自己的团队,增强自身能力的同时扩大自己的影响力,就是软件工程师在自动驾驶行业的成长之道。

你可能感兴趣的:(软件工程师如何在自动驾驶行业中发展)