昨天晚上,实验室某研一师弟加了我微信,咨询我找工作的事情。聊了一番,发现师弟对于自己的未来还是有些迷茫和担忧的,他想等研三秋招的时候找一份自动驾驶控制算法的工作,但是却又不太知道自己该从现在做哪些准备,该去学些什么。
了解了师弟的情况,我发现他的问题基本上就是这几个:第一,几乎所有的公司对于自动驾驶控制算法工程师的要求都写着“熟练掌握C++、数据结构等知识”,是不是公司对于编程能力要求很高?是否有必要搞题海战术?第二,公司里面做开发都是基于ROS吗?是不是应该提前做些准备?
自动驾驶控制算法
首先说第一个问题,公司对于应届生的C++水平要求是怎样的?只要是做自动驾驶控制算法,那么C++功底是必须的。至于说是否采取题海战术,不停地刷题,我倒是觉得没有必要。因为编程能力的学习是循序渐进,而且是在不断练习中得以提高的。当然,如果是为了应对秋招中的各种笔试题目,那么刷题也是有效的。其实融合、定位以及地图,都会用到C++,但是又不仅仅是C++,而是C++和Python的结合。
再来说说第二个问题。在业界,我们都把ROS当做是一个中间件,在公司量产的流程中,中间件未必就是用ROS,虽然现阶段大部分公司的确用的是ROS。当然对于研究生来讲,用ROS或者是LCM、ZCM都可以的,能做到会用、理解的程度就可以了,没有必要太过深入的。因为未来,ROS会被替代,会有低延时去中心的系统出现,但即使被替换,其思路还是那样。
现阶段,我国的自动驾驶控制算法的水平放在国际上来看,只能说是一般水平。在大多数公司里,感知、定位、决策、规划,这些似乎都是分开的,而在整车系统中,这几个模块又怎么可能做到绝对的独立呢?所以,真的想找自动驾驶控制算法的工作,不仅要对单一模块非常熟悉,其上游和下游的模块也要去多多了解。
自动驾驶控制算法
这个师弟对自己的未来还是有所规划的,这是研究生应该有的状态。但是,我觉得也不必过于着急,在研究生入学之后确定下自己想从事的方向,并且踏踏实实地努力就好了。对于真的想从事自动驾驶控制算法相关工作的研究生来说,把该学的都学明白了,找工作就是水到渠成的事情。