昨天晚上,實(shí)驗(yàn)室某研一師弟加了我微信,咨詢我找工作的事情。聊了一番,發(fā)現(xiàn)師弟對(duì)于自己的未來還是有些迷茫和擔(dān)憂的,他想等研三秋招的時(shí)候找一份自動(dòng)駕駛控制算法的工作,但是卻又不太知道自己該從現(xiàn)在做哪些準(zhǔn)備,該去學(xué)些什么。
了解了師弟的情況,我發(fā)現(xiàn)他的問題基本上就是這幾個(gè):第一,幾乎所有的公司對(duì)于自動(dòng)駕駛控制算法工程師的要求都寫著“熟練掌握C++、數(shù)據(jù)結(jié)構(gòu)等知識(shí)”,是不是公司對(duì)于編程能力要求很高?是否有必要搞題海戰(zhàn)術(shù)?第二,公司里面做開發(fā)都是基于ROS嗎?是不是應(yīng)該提前做些準(zhǔn)備?
自動(dòng)駕駛控制算法
首先說第一個(gè)問題,公司對(duì)于應(yīng)屆生的C++水平要求是怎樣的?只要是做自動(dòng)駕駛控制算法,那么C++功底是必須的。至于說是否采取題海戰(zhàn)術(shù),不停地刷題,我倒是覺得沒有必要。因?yàn)榫幊棠芰Φ膶W(xué)習(xí)是循序漸進(jìn),而且是在不斷練習(xí)中得以提高的。當(dāng)然,如果是為了應(yīng)對(duì)秋招中的各種筆試題目,那么刷題也是有效的。其實(shí)融合、定位以及地圖,都會(huì)用到C++,但是又不僅僅是C++,而是C++和Python的結(jié)合。
再來說說第二個(gè)問題。在業(yè)界,我們都把ROS當(dāng)做是一個(gè)中間件,在公司量產(chǎn)的流程中,中間件未必就是用ROS,雖然現(xiàn)階段大部分公司的確用的是ROS。當(dāng)然對(duì)于研究生來講,用ROS或者是LCM、ZCM都可以的,能做到會(huì)用、理解的程度就可以了,沒有必要太過深入的。因?yàn)槲磥?,ROS會(huì)被替代,會(huì)有低延時(shí)去中心的系統(tǒng)出現(xiàn),但即使被替換,其思路還是那樣。
現(xiàn)階段,我國(guó)的自動(dòng)駕駛控制算法的水平放在國(guó)際上來看,只能說是一般水平。在大多數(shù)公司里,感知、定位、決策、規(guī)劃,這些似乎都是分開的,而在整車系統(tǒng)中,這幾個(gè)模塊又怎么可能做到絕對(duì)的獨(dú)立呢?所以,真的想找自動(dòng)駕駛控制算法的工作,不僅要對(duì)單一模塊非常熟悉,其上游和下游的模塊也要去多多了解。
自動(dòng)駕駛控制算法
這個(gè)師弟對(duì)自己的未來還是有所規(guī)劃的,這是研究生應(yīng)該有的狀態(tài)。但是,我覺得也不必過于著急,在研究生入學(xué)之后確定下自己想從事的方向,并且踏踏實(shí)實(shí)地努力就好了。對(duì)于真的想從事自動(dòng)駕駛控制算法相關(guān)工作的研究生來說,把該學(xué)的都學(xué)明白了,找工作就是水到渠成的事情。