美团4/10自动驾驶系统工程师一面凉经

第一志愿投的嵌软,和我目前做的(mcu和无人机)也比较契合,结果给我挂了。后面被自动车配送部的自动驾驶系统工程师捞了约面试。这个是我第三志愿,当时纯属看到里面有个传感器方向的比较偏硬件才选的,而且本身也没报多大希望,我也一直以为对方是kpi面所以基本没准备。好了直接开始。

面试官人挺热情的,上来先向我介绍他们部门主要的业务和具体的工作内容,主要是把其他算法部门设计的自动驾驶算法部署到实车上然后根据特定的场景做优化(比方说算法部门设计的算法是针对通用场景,但实际车跑的路可能没有红绿灯,也可能是土路所以甚至连交通指示线都没有,就需要对这些特定场景做优化)。

然后我稍微介绍了自己的情况。我做的项目是UWB定位在无人机上的应用,用的stm32和freertos,主要的内容还是偏硬件的,算法上就是复现了uwb的tdoa定位算法。然后面试官以为我是做的控制算法,我和他说了是做定位算法,他应该不熟这块,后面就再也没问我项目相关的内容了。

之后大部分都是问的C++的内容,C++11标准新加了哪些内容,我回答多加了几个智能指针、列表初始化更加通用、新加了一些数据结构之类的。

然后问我智能指针的作用,我回答了智能指针是用类对指针做封装,可以在作用域结束的时候自动调用析构函数释放内存从而避免内存泄漏。然后又问我新标准的智能指针有哪些,我没用过不知道。

之后问我堆和栈的有什么作用和他们的区别,这个我只知道堆用来存放动态申请的变量,栈用来存放临时变量和函数参数之类的。

问我new和malloc这些用得多吗,我在rtos上用队列之类的比较多,基本不用动态内存共享数据。

问了几个数据结构的问题,vector和array的区别,没用过array答不出来;queue和dqueue的区别,没用过dqueue但是瞎编了一些。

让我手动实现vector,我不会,之后就只让我实现int类型的vector,成员函数只让实现push_back(),写得磕磕绊绊,面试官一直提示我,就差手把手教我敲代码了,最后我还是犯了很多低级错误(数组边界溢出、内存泄漏)现场手撕代码确实心态很不一样,平时不会犯的错误全犯上了

之后问数据结构,我说vector、map和unordered_map这些用得比较多,就问我map和unordered_map区别和底层实现,一个排序一个不排序,map用红黑树,另一个用哈希表。然后问我红黑树插入一个值的时间复杂度,我说没了解过红黑树的具体实现不知道。

之后问我操作系统,进程和线程这些。我只把背的概念答上了,又问我有没有做过多线程编程。我说只用过rtos,里面任务的概念和linux的进程线程这些类似,面试官应该也不太懂freertos就没接着往下问了。

又问了我代码管理工具有没有用过,我就说用过gitbash,只会常用的几个简单的指令add、commit、reset、clone、push、checkout这些。面试官问我如果commit了一个有bug的版本,后面修复后不想重新commit,因为这样会把有bug的那个版本留在仓库里,这个时候要用什么指令,我没用过不会。问我merge的作用,我忘了就没答上来。

之后问我对深度学习熟不熟悉,我说本科时候做过一些图像识别之类的。之后问我python,我说以有写过一些脚本做数据处理之类的,但是已经好久没写过python了。就让我用python写使用迭代器访问一个数组,我凭着仅剩的记忆写的也不知道对不对。

最后我问了他们对应届生怎么培养的,他说他社招进的也不太清楚。然后我说我之前只做过mcu和rtos的嵌入式开发,基本没怎么用过linux,他说他们部门主要还是在linux上做开发所以还是需要掌握的。

总的来说,因为本身是想投mcu方向的嵌软,再加上这个时间约面基本都是kpi面,我就完全没有准备,而且也是我的第一场面试,最近老板催得紧,八股什么的也没怎么背。结果没想到面试官特别特别热情,我答得特别烂也会很耐心教我,完全没有说因为kpi面就随便草草了事,全程面了一个多小时(也许他当时想合理摸鱼不上班吧),让我产生他好像真的想把我招进去的错觉,不过我目前做的和他们可以说完全不对口所以本来也没抱啥希望

#美团23春招24实##美团##美团2023面经##美团一面#
全部评论
玩原神玩的
2 回复 分享
发布于 2023-04-18 20:43 广东
但是我觉得mcu的貌似工资到一定程度后就上不去了
点赞 回复 分享
发布于 2023-04-11 09:06 江苏
捞你的这个岗位是不是就是用c++的
点赞 回复 分享
发布于 2023-04-11 09:03 湖南

相关推荐

04-29 20:44
已编辑
西北大学 Java
美团一面4.25  (70min)### 介绍部分1. 自我介绍2. 选择一个项目进行介绍3. 项目的背景### 提问部分1. 把项目涉及的表都列出来,并设计ER关系图2. 把项目的订单表具体的每个字段写出来3. 查询订单表中,某个消费者(id)在某一个时间段(startTime, endTime)的订单状态为已完成(1)的订单信息4. 如果现在有一个联合索引:消费者ID,订单号ID、订单状态,这个查询语句可以命中几个索引?5. 怎么分析这个语句是否命中6. EXPLAIN关键字的key_len表示的什么7. MYSQL的InnoDB采用的是什么结构?有什么优点### 编码部分编写一个订单类,由消费者ID,订单ID,农产品ID这三部分,怎么去重?1. 介绍代码的设计思路2. 详细介绍equals和hashCode3. 为什么有了hashCode还要设重写equals4. hashset的底层原理是什么### 八股问题1. ThreadLocal为什么会内存泄漏?2. AOP的执行具体在哪部分?3. 如果给你一个新的技术栈,如何学习?### 反问1. 我们部门是Saas软硬件部门,那我们需要有一些嵌入式的背景知识吗?2. 我目前想要继续学习,请教一下是比较建议去在现有项目的基础上学习一些新的功能,还是去再做一些新的项目?美团二面4.29  (65min)### 介绍部分:1. 自我介绍2. 项目介绍(Java项目   1. 项目中主要负责了什么3. 你的优点4. 你的缺点### 面试官业务介绍:### 项目具体场景问题:1. ThreadLocal介绍一下具体是怎么使用的?   1. Threalocal的值可以同时被多个线程访问吗?   2. 子线程可以访问到Threadlocal的值吗?   3. 那有什么方法可以让子线程访问吗?2. 介绍一下 WebSocket实时通信 和 前端轮询通信方式 各自的优缺点   1. 有遇到过WebSocket断开的问题吗?(没有   2. 那你有做什么防止WebSocket断开后重连的策略吗?(心跳检测3. Redis是怎么保证数据和DB内的数据一致性的?   1. 介绍一下缓存穿透、击穿和雪崩,并有什么策略来解决?4. SpringTask如果限时1分钟,在59秒时用户发起支付,由于一些接口调用导致用户支付完成,但是SpringTask异步订单取消,这个差异怎么解决?(支付前二次验证5. LRU是啥,底层原理?   1. 对于限制容量为5,并按照123456123456的顺序,LRU有啥问题?   2. 怎么解决?(说结合LFU,但最后还是没有说出来)   3. WebSocket连接,有1台服务器和3000台用户端,如果需要断开一些WebSocket连接来保证实时通信的效率,应该怎么解决?(LRU和LFU结合,但其实具体细节说的不对)### 手撕1. 指定范围内翻转链表(力扣92题,头插法)
点赞 评论 收藏
分享
评论
14
60
分享

创作者周榜

更多
牛客网
牛客企业服务