文远知行 WeRide 校招笔试纯干货!!(内容超硬核)
文远知行2020年的秋季校招已经启动啦!也即将迎来第一场在线笔试!
小编之前特意邀请了2019年校招的3位同学
给大家分享他们是如何为秋招做准备的!
这些简单文字的背后
是他们无数的积累和沉淀
希望以下3位来自不同技术岗位同学的经验分享
会对你们打好秋招这场战役有所帮助
01无论应聘过程是如何曲折,内心始终要相信自己,相信现在的付出将来一定会以各种形式得到回馈。@GFS.高 PnC 组规划工程师
应聘准备我是从研二下开始的,整个过程分为三个阶段。
第一阶段主要是简历的准备:我会将我的项目经历、项目成果以及参加科研竞赛获得的奖项作为主体,用简洁明了的术语描述,展现一个具有良好科研能力的形象,并针对这些经历去准备面试官可能会问到相关问题(打个小草稿整理一起)。纵观整个应聘过程,面试官都会参考简历提出一些很有深度的问题,如果事先没有相关准备一时很难能够答得上来。
第二阶段主要针对笔试面试基础知识的复习:准备的时间较长(应该有3-4个月时间)。首先确定自身想从事的领域或方向,对我而言,我想在顶级的团队中去从事机器人相关领域的工作(机器人、自动驾驶、无人机)。参考往届进入大厂的师兄师姐的经验,根据自身确定需要复习和巩固的内容(我认为核心思想还是提高自身的代码能力),然后在完成实验室项目的基础上利用课余琐碎的时间去阅读相关书籍,并做些笔记为第三阶段的面试做准备。这里列出部分我阅读的书籍:《Effective modern C++》、《Effective C++》系列书籍、《Effective STL》、《剑指Offer》、《STL源码分析》、《大话数据结构》、《大话设计模式》。上述有些书籍可能相对较老,但其中的设计原理和思想还是值得学习和体会。除了看书,当然也少不了刷题啦!牛客网、Leetcode 前前后后刷了200多道编程题和将近2000道选择题,我认为如果有时间可以集中1-2个月的时间刷题,培养编程的感觉。
第三阶段主要是制定面试的策略:无论自己准备得多么充分,一开始一定会紧张,容易语无伦次或思路不清晰。建议多参加一些面试,通过不断地参加面试去锻炼自己,跟优秀的面试官沟通和学习,发现自身的问题和不足之处,然后总结出一些面试规律(有些时候不同公司问的问题是一样的),不要只准备想去公司的面试。
总之无论应聘过程是如何曲折,但是内心始终要相信自己,相信现在的付出将来一定会以各种形式得到回馈。
*图片来源于网络
02有“积累”才能有所谓面试前的“准备”,要避免无“积”之谈,肚子里总归是要有点墨水的。@小JIA 数据组全栈工程师
面试文远之前其实我准备了将近两个月。个人观点认为算法跟数据结构是一个程序员必备的基本素质,对于一些基本的算法跟方法肯定要很熟练掌握的。比如排序、二分、 尺取、搜索、递推等。还有一些常用的数据结构:树、表、图等,需要了解其有关的专业术语以及一些基本的性质。其他方面的比如:动规、数论、高级数据结构等都需要涉猎一些。
不管是上述哪个方面,个人感觉是要做到"多而精"。
在算法方面:准备的最好的方法当然是刷题。刷题的技巧就是:多动手,多思考。在做题方面,"多"跟"精"的侧重呢,个人会偏向于"精"。每道题都要力求甚解(当然也有自己不能理解的境界)。不是为了做题而做题,对于一道题目,最好的做法是独立思考解决,而不是轻易寻求题解(有时可能一道题会思考几天),这样也能有自己的解法跟标准答案做比较。然后是思考总结,比如题目的数据范围,考察的知识,运用到的算法跟数据结构解决问题的共同点或者题目的扩展等。有比较好的算法知识准备才能在 Coding 方面有亮点,因为我认为面试官如果出一道题能够单纯简单的解答,可能只是想让我签个到吧。
在基础能力方面:包括语言、基础课程知识跟一些课外认识等,比如操作系统、数据库、网络、或者其他专业相关的方面。这些方面个人觉得在“多”跟“精”方面会侧重于“多”。广泛的涉猎终归不是坏事,先做广度再做深度。
在实践方面:这个主要是准备了自己大学期间做过的一些实践和小项目。个人认为对于大多数应届毕业生来说,大学期间所做的东西并不能决定面试的结果,因为通常所做的东西都还比较简单。所以我这方面主要是去思考项目上运用的知识,设计独到的地方,项目设计管理方面的考虑等。如何做,为何,何为对,何为错,何为好,何为坏等。对自己所做的东西要有自己的一些见解,从这些方面体现大学期间的所学以及展示自身的学习能力而不是过大夸大自己所做的东西。
这几个方面比较重要的一点还是靠平时的积累。有“积累”才能有所谓面试前的“准备”,要避免无“积”之谈,肚子里总归是要有点墨水的。
书籍方面跟大家分享的是对我帮助比较大的两本:《数据结构与算法分析》 、《大话数据结构》
03很多在学校实验室里容易解决的问题, 放到了自动驾驶这个复杂的系统中, 会变得完全不一样。@DA捷 感知组算法工程师
在这里工作的一个同学推荐我来文远知行的,准备面试阶段我主要从三个方面入手:一是基础知识, 二是白板编程, 三是项目经历。
基础知识:要对自己学过的一些课程中常见且重要的知识有充分了解。假如你是电子自动化计算机相关专业, 那么你应该复习一下比如图像处理中的双边滤波、Poisson editing、线性代数中的仿射变换、矩阵分解、最优化中基于一阶/二阶微分的方法等等这些知识。
白板编程:有 ACM 背景的同学对于编程可能会比较熟悉。对于没有 ACM 相关背景的同学, 很建议去看一下 Leetcode 上 math / array / greedy 等类型的题目。对于代码, 一是要注意时间复杂度,避免重复的计算。二是要注意符合 C++ 编程规范。比如至少要熟悉 STL 的基本操作。 三是要有 Debug 的能力。在没有 IDE 的情况下, 能够写出正确的逻辑。 可能你的代码写出来逻辑是错的, 或者有些边界条件没有考虑(这在面试中很常见), 但是面试官给个提示之后, 你要能够迅速改正。 不光是面试, 感知组日常的工作也会对这几件事要求比较高。
项目经历:对感知的岗位而言, 如果有图像、点云处理或者深度学习相关的项目会是一个加分项。 注意一定要清楚了解自己项目的所有细节, 在项目中使用一些方法的原因, 以及它们的优缺点。
举个常见的例子, 如果你的项目中用到了最小二乘法来做数据拟合, 那么你应该能够推导最小二乘法的矩阵表示。 更进一步地, 对于线性系统的求解, 什么条件下可以使用最小二乘, 以及不能的时候应该怎样做。 再进一步, 这个方法要如何编程实现, 以及它与理论推导有何区别(比如实际上, 我们常会用 SVD 或是梯度下降来做, 而不是直接求一个伪逆, 原因是时间复杂度太高且数值可能不稳定)。 这就需要你对自己所学的知识, 所用的方法有一个充分完整的了解, 否则你可能会架不住面试官的追问。
此外,在书籍方面给大家推荐的是《Effective C++》、《STL源码分析》这两本。
*图片来源于网络
不积跬步无以至千里
每一份收获的背后都是无尽的付出
自动驾驶事业
是一项有重大社会价值和经济价值的伟大事业
WeRide 期待更多优秀队友的加入
一起铸造更安全更高效的出行方式