2021自动驾驶秋招总结

在牛客网上学习了一些东西,来回馈一下大家。

个人背景

  1. 专业方向:本科数学专业,研究生做数学优化,找实习和秋招的时候均没有论文。
  2. 编程方向:从今年年初开始学习C++,面试基本也只问C++
  3. 算法方向:2-3月份的时候为了找实习刷题大概有80道,9-11月份刷到了200道,到现在(11.26)刷到了280道。

实习历程

3-5月份

3月份的时候,和大家一起开始找实习,当时投的主要是运筹优化和机器学习的岗位,但是大家都太卷了。结果自己就啥都没找到,在学校摸鱼也不想干活。在五月份的时候,开始海投,当时就投那些对数学基础有要求的岗位。

6-7月份

6月中旬pdd和商汤突然联系我,开始面试,应该是捞我了。
pdd当时面了三面(算法好像有一个堆排,快排,三面还问了一个概率题目),但是hr面面玩没有了后文,可能是招到了更优秀的同学吧。

商汤面了两轮(第一轮面了两次),第一轮考察了我两道算法题(跳楼梯和合并区间,要求C++写),然后因为当时自己对自动驾驶没有任何了解,让我调研了一下motion planning,然后给他讲一下,相当于学习汇报的一个过程。后面是大leader面,就记得问了一下我多态是啥。

最后商汤是在7月初给我发了实习offer,做自动驾驶。从7月15日一直干到了10月底。

秋招历程

因为我实习开始的比较晚,并且整个8月份都在忙着赶论文实验,所以我正式开始投递简历其实是在9月20号以后。所以基本与提前批无缘。
我在简历上主要写了三个方面

  1. 我的研究方向,但是比较少有面试官会深入问我,一般都会问我应用在哪里,难点在哪里。
  2. 我的实习经历,主要把我在实习期间做的事情总结了一下,提炼三个主要任务
  3. 我的项目经历,大概就是把自己在上课期间捣鼓的项目总结了一下写进来
    其他的还写了自己的技能,比如英语水平,编程语言,linux使用等等就不在赘述。

第一个阶段是10月初到11月初,基本没有任何面试,很慌,就开始疯狂海投,然后这个期间开始疯狂刷题。

滴滴自动驾驶(10.17, 1~3面)

10月中旬的时候,第一次面了滴滴的自动驾驶,这个岗位是找同校师兄帮我内推的
前面三面的具体内容忘记了,反正一个下午面了三面,基本就是问简历然后做一道题反问。感觉也不是很难,然后就了无音讯。直到11月10号才突然通知我面4面。

滴滴自动驾驶(11.11, 4面)

四面的时候,我其实已经不太想面了,比较敷衍。面试官给我出了一道巨难的代码题,题目大概是这样

在一个神奇的小岛上,有红,绿,蓝三种生物,当两种不同颜色的生物相邻时,会合并成第三种颜色的生物,比如绿蓝蓝会变成红蓝,然后现在给你一个这种生物排成序列,问在所有的合并次数后,可能产生的序列里,最短的序列长度是多少。如给定红绿蓝红蓝最后可以变成一个生物,所以就返回1

当时我的思路就是回溯,用栈储存状态,每个生物要么与之前的一个融合,要么不融合,但是没有考虑到可以多次融合,gg。然后就又了无音讯。

hotstar推荐算法(10.25,1面挂)

当时是想投hulu的,结果变成了hotstar。让我选岗位投递,就投了一个推荐算法。面试而话不说就让我先做道题

(Leetcode 1918)给定一个非空整整数组,以及一个正整数k,(1<=k<=(n*(n+1)/2)), 让你输出第k大的子数组和。

当时自己就是用的前缀和+手撕第k大的数,但是撕第k大的数的时候没撕出来。最后面试官让我直接用nth_element。感觉自己还是没有熟悉这些基础的算法。后面面试官提了一嘴说有优化方案,但是我都没做出来,就没心思想了。然后后面问了我AUC是啥,我没咋用过这东西,不会。又问我我专业和推荐算法关系不大,如何证明我有上岗的实力。最后理所当然的挂掉。hotstar的面试体验还是挺好的,但是推荐算法毕竟不熟悉,自己也没写出来代码,挂了也理所当然。

字节的VR部门(10.28)

中间联系我问我要不要做,部门是收购的子公司,叫pico?然后面试就让我手写了一个冒泡排序,对,就是那个经典冒泡排序算法。然后就开始疯狂问我深度学习,计算机视觉的知识等等。我当然不会了,后面面完我就知道我挂了,但我其实不是很放在心上。

驭势科技现场面(10.31)

很气,只要社招,我投的是规划岗,一直在那里问我自动驾驶用什么操作系统,线程进程区别。我都说我是数学系了,还在那里问。面试体验极差。是壁仞科技的一个子公司。

在10月底,基本都没有面试,有点紧张,就开始在某招聘软件上疯狂海投,大概投了50多个岗位,同学都说我这个招聘软件给我推广费了。然后从11月份开始,可能是有hc了,也或者是海投起作用了,每天都在面试。

AUTOX(11.1 1面,11.11 2面,11.17 3面)

3面面完之后,hr一天问我明天有空不,我说有空。然后了无音讯。。
1面2个面试官,大概就是问简历,做题,问C++基础知识。2面间隔太长据说是面试官安排比较有条理,2面和3面当时太急了,没来得及记问了啥, 问题大概总结如下
1面

code: 第k大的数,可以用数据结构,遂优先队列解之
code: 判断点和三角形的关系,点和矩形的关系,代码实现叉乘。
code:(动态规划,栈和。。三选一,我选栈)有效括号序列,leetcode20

2面

code 邻接矩阵,求起点到终点的最短距离,bfs实现;要求路径怎么办,用parent数组,实现;如何进行优化,双向bfs代替单向bfs,简单讲了一下双向bfs思路,没实现

3面

code 设计shared_ptr类,这个共享指针之前只知道性质,具体可以参考shared_ptr实现

momenta(11.1 1面, 11.4 2面, ×日HR面)

也是2面面玩某一天,HR过来打电话介绍了一下,问了一下我offer情况,说是帮我争取一下。然后争取到了无音讯。momenta其实和面试官挺聊的来的,也想过去那边,但是奈何不给offer
1面

排序链表,用快排没做出来,回来查了一下是merge sort,然后和同学交流了一下发现同学也被考了hhh

2面

匹配不同类型的数组,大概就是有两个数组A,B,比如A=[1,3,2,4,5],B=[B,A,E,C,D],现在告诉你A的元素和B的元素之间的大小关系(A的元素之间的关系,B的元素之间的关系未知),让你将这两个数组匹配起来,用了互相快排的方式做出来了。然后让我介绍了一下SVM和GMM(混合高斯分布)

斯年智驾(11.2 1面, 11.5 2面, 11.6 HR面+offer)

斯年致驾的面试体验也是非常好,老大跟我说自动驾驶的时候,一番diss,然后跟我讲的很明白清楚,后面HR面之后又和老大聊了一番,但是因为我最后还是想做L4,所以拒绝了这个offer。
1面

code: 滑动窗口最大值,没写出来

2面和老大聊天,聊了一下自动驾驶的前景,然后就拿了offer。感觉在港口里面,斯年应该是老大,落地比较快。

海康威视上海研究院现场面(10.27,笔试,2伦技术面,HR面+offer)

这是我第一个拿到的offer,还是很感谢海康威视的,HR后面承诺说上海这边没有大小周,比较自由。我学长也说这些属实。
去研究院之后,先笔试

code: 求一个数的平方根,二分法AC
code: 判断一个平面上的点是否能组成一个凸多边形,叉乘AC 90%,剩下的用力过不去就算了

面试的是感知组,这边没有规划,技术面感觉就是聊天,对着简历挖。然后HR就过来说可以给offer,问了一些我对公司的问题之后就结束了。

寒武纪行歌(11.8 1面,2面拒)

1面面试官之前在商汤干过,直接怼我一脸,给我整不会了,我都以为自己挂了。然后HR通知我2面,结果2面之前,另一个HR过来问其他公司给我开的offer怎么样,又让我做测评。说实话觉得挺恶心的,同学都说还没到谈薪阶段就这里套薪,不像是一家好公司。遂拒。

京东(11.18, 1面挂)

投的运筹优化,面的机器学习,但是很多都忘了。面试完就知道自己挂了

最大子矩阵和,没写出来

一些笔试挂掉的公司就不细说了,基本笔试都是要造火箭:
美团, 文远,pdd,华为
11月中旬以后,我其实就感觉自己面的太多开始出现面不动的感觉了,所以在这个阶段我推了很多面试,包括
笔试有:荣耀,便利蜂
面试有:shopee,小鹏2面,斑马网络2面,轻舟智航(笔试一道都没写出来,后面还是问我要不要面)
这些公司不是不优秀,只是当时精力有限,可能就不考虑其他公司了。

元戎启行(11.3 1面, 11.9 2面, 11.12 3面,offer)

元戎应该是所有公司里问的最专业的,老师也推荐这家初创公司。
1面

code:课程表,leetcode207,面试之前恰好刷了,所以比较轻松,就是debug花了一些时间。追问有环怎么办,答用visited 数组记录访问过的点。结束之后,同学说是并查集,但是一般这种题目无脑bfs就可以了

2面

code:迷宫升级版,从走一步变成了只有撞到墙或者障碍物才能转向,中间不能停止,问能否从起点到达终点。其实写的有点问题,应该是bfs,但是题目没显示清楚,写成了dfs。然后追问路径怎么求,还是parent数组了,或者队列也可以。

3面
三面应该是个C++优化大佬,以上来就给我将多线程的知识,目的是向我展示C++多线程存在的一个问题,结果因为做题网站的原因失败了,感觉属于装逼失败hhh,不过并不影响他的大佬身份。。。

code: 接雨水,这个问题太久没刷了,就给忘了,面试官笑着问我刷了多少道题,然后就给过了

图森(11.3 1面,11.9 2面, 11.18 3面, offer)

1面电话聊简历项目,会针对具体问题创建情景让你想解决办法,但是我对很多情景不是很了解,所以答的不太好,但是还是让我过了。

2面做题加C++基础

code: 给一个数组,从左边开始连续取一部分,从右边也连续取一部分,问两部分最大和是多少(两部分不相交,可以不取)。这个之前恰好也做过类似的题目,就是leetcode918的类似做法,就是吧这个问题转化成求最小连续子数组和,然后用整个数组和减掉这一部分就是答案了。
code: 一群小怪,每次攻击对主目标造成A伤害,对其他所有小怪造成B点伤害,问需要几次攻击能杀死所有小怪(A>B),输入是一个数组,代表每个小怪的数量,以及A和B的值。一开始没思路,面试官提示可以检验一个给定的攻击次数对不对,然后想到可以用二分法来做,然后就写出来了。思路就是,其他所有小怪掉血可以看作不掉,主目标掉A-B的血,然后忽略所有血量在B以下的,这样就可以检验给定攻击次数的正确性了,那么这个时候就可以用二分法来找到最小所需要的次数了。关键还是这个其他所有小怪不掉血的转换比较巧妙,但是leetcode上面好像也有类似的i题目,就是给某个数加一,问需要多少次操作能让所有数相同。

题目写完之后,问了几个C++的八股文问题结束

3面是乃岩大佬
被逮这一顿狂问,都快给我问抑郁了,末了建议我转岗。

面完我都以为是我被挂了。结果我学长说我过了。。不得不说,图森给的是真的多。。

上海人工智能实验室(11.4 1面, 11.10 2面, 11.14 3面, 11.17 HR面,offer)

1面

code:求根,现场推导了一下牛顿法,面试官说我是地一个用牛顿法的。。(小trick,牛顿法迭代10次精度基本就掉打二分法了)
SVM,MLE,MAP介绍一下

2面
是做车路协同的,主要问了一下我对自动驾驶存在的问题。

code: leetcode 64, 2分钟写了出来,但是忘记初始化边界条件,多花了2分钟。

3面
3面就是未来的老大面,主要介绍了一下实验室的情况,以及问了一下我个人的生涯规划等等。

C++主要涉及的知识点和学习方法

我学习C++主要是看了北大郭炜老师的C++课程,做了些课后作业,但是没有严格做完。然后4月开始,看了C++ Primer的1到13章,这个时候就开始了解C++的整个逻辑了,以及一些细节等。同时在刷题的过程中,也知道了如何去用C++。然后10月份的时候,又看了侯捷老师的C++面向对象设计,了解了一下面向对象的思想。
我觉得,最好还是能踏踏实实学一门课,比如郭炜老师或者mooc其他老师的课程都行,按时完成作业,完整的学下来肯定比自己瞎捣鼓要好的多。同时,C++ Primer的很多细节也需要了解一下,后面面试被问到的时候可以回来查漏补缺。

接下来是我被问到过的一些问题,无先后次序之分

  1. C++ struct和class的主要区别,关键是权限区别
  2. C++ 三种权限(public,protected,private)的区别是什么
  3. static关键字的作用?四种用法
  4. const关键字和#define的区别
  5. const关键字的用法
  6. 传值与传址的区别,什么时候用传址(参考侯捷老师课程)
  7. 面向对象的三个特性
  8. vector的扩容机制,resize和reserve区别,emplace_back和push_back的区别,哪个更慢
  9. map和unordered map的底层实现是什么,分别在什么情况下使用
  10. 类型转换用过吗,讲个例子
  11. 如何访问一个类的私有成员,应该是想问friend关键字
  12. 堆和栈的区别
  13. 介绍一下智能指针
  14. 多态的实现原理,构造函数可以是虚函数吗,析构函数可以是虚函数吗。

上面这些只是常见的问题,但是自己在学习的时候,肯定不能拘泥于这些固有的问题,肯定还要多多学习,比如vector的底层实现是什么?智能指针是如何实现的?这些都需要自己多钻研,面试官问你八股文答出来了不算什么,关键是你要接住他八股文后面那一句,”那如果balabala怎么办呢?“这个问题你能答出来才是真的牛,能加深面试官对你的印象。所以,平时得多积累,读书学课要多去搜索这个问题。比如说,为什么有了指针还要用引用? 这个问题是别人问C++之父的,并且的到了他的亲自回答。你在学习的过程中,可能也需要思考这些问题。

有关实习经历的问题

我的实习经历是在简历的正中间,且占比非常大,所以面试官一般都会问我实习经历。我觉得比较重要的一点,写的东西一定要自己非常熟悉,比如我写自己读过apollo planning部分的源码,我是自己写过整个代码的逻辑分析的。所以面试的时候,涉及到这部分的问题我基本都能答出来。并且,要多去思考,想想自己做的工作有那些不足,有哪些亮点。我觉得面试官最反感的就是一问三不知,基本被挂。
对我来说,很感谢在商汤的这段实习经历,让我学到了很多东西,并且组内的氛围很自由(想对于实习生来说),后面也是自己尝试着捣鼓了一些东西,尽管没有成功,但是leader还是跟我说没问题。后续大家可以关注一下商汤的自动驾驶部门。

写在最后

不论如何,千万不要气馁。焦虑是不会有任何正面作用的,多提升自己,多刷刷题,多投一些公司,多提升自己的能力。肯定会有公司要你的。机会往往留给那些有准备的人,怕就怕机会来的时候,你没准备好:)

最后,拒绝任何打听个人情况或者offer情况的问题。谢谢。

#秋招#
全部评论
请问元戎启行三场面试就只是做题?
2 回复 分享
发布于 2022-03-01 11:47
求问老哥,对目前商汤的自驾怎么看呢?
1 回复 分享
发布于 2022-03-08 21:36
求分享c++八股
1 回复 分享
发布于 2022-02-03 18:03
问下老哥,你投的是自动驾驶企业的什么岗位呢?cpp开发吗?
点赞 回复 分享
发布于 2022-04-19 20:07
有C++视频课分享一下吧😂
点赞 回复 分享
发布于 2022-01-24 21:47
大佬最后打算去哪家呀
点赞 回复 分享
发布于 2021-12-09 20:14
老哥真的强!现在我还是0offer!希望能够和你一样强!
点赞 回复 分享
发布于 2021-11-27 09:12

相关推荐

感觉面完人都通透了,还是太菜了,下去沉淀一下1.redis和lua实现库存防超卖和一人一单,redis用lua的方式和使用2.redis本身的事务特性的方式的区别是什么?为什么不用redis本身的事务特性做防超卖?3.redis的set、get是原子性操作吗?用redis的set已经是原子性的了,为什么还需要使用lua脚本4.lua脚本过长会导致阻塞吗?5.怎么解决实际生产环境中防超卖导致的并发的吞吐量的问题呢?lua会阻塞,那怎么解决既要保证不重复下单又要保证吞吐量6.如果下单的时候,有一个单子在lua中判断秒杀资格卡了很长时间,其他人操作点都点不了&nbsp;,会出现这种情况吗7.如果lua脚本中某一步出错异常了会怎么办8.lua脚本写了哪些功能9.布隆过滤器是怎么拦截无效查询的10.volatile关键字作用11.Lock锁的实现原理12.AQS原理13.spring的AOP原理是什么?14.如果是分布式系统,怎么解决分布式系统的事务一致性15.如果用消息队列,如果有一条消息没有及时处理,可能是对堆积了也可能是消息发送给系统但是系统繁忙给丢弃了,你会怎么做16.如果服务器处理任务有上限,不能及时处理新的消息,从消费者来说应该做什么处理17.如果系统繁忙,支付消息丢失了,客户没付钱,但是订单创建成功了,应该怎么后续弥补18.如果lua脚本中有abc三步操作,如果a成功b失败,工程层面上来讲系统应该怎么设计,怎么保证系统的鲁棒性?19.生产环境中抢一笔订单,抢到了但是因为系统的问题内部要做abc三个操作,在做b的时候可能网络抖了一下导致b操作异常,这时候要让客户重新点击一次吗?20.智能客服,使用redis支持会话记忆,agent中会话记忆有几种记忆管理?21.向量数据库中怎么保证获取到的数据是尽量有效且准确的,而不是一些无用的数据22.用向量相似性完成rag召回一般用什么算法23.你了解skill吗?自己写过吗?24.有prompt,为什么引入skill处理25.Ai&nbsp;coding用过吗?ai&nbsp;coding现在有个spec&nbsp;coding,sdd的研发模式,这是一种什么样的概念26.你现在用的ai&nbsp;coding工具有哪些
查看25道真题和解析
点赞 评论 收藏
分享
评论
33
265
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务