美团嵌入式暑期实习面试经历(已接offer)

说明

时间线:3月14号投递 —— 3月16号笔试 —— 3月20号一面 ——3 月25号二面 —— 4月2号发offer。

部门和岗位:优选部门的嵌入式软件开发岗(base深圳)

说明

1、每个问题后面会有一个数字,表示自己对回答质量的评分,满分5分

2、面试官会根据每个人的技术栈来问问题,我的简历在上一个动态有发,大家可以自行判断哪些是常规问题哪些是个人问题

3、有些题目我会在下面加上自己认为的答案

一面(3月20日,时长50分钟)

1、自我介绍(4)

2、讲一下Linux的启动过程,从芯片上电开始到最后的系统启动(4)

我:刚好面试前几天写了一篇这个的博客:CSDN文章

3、要在Linux启动之后自动执行一些服务的话,能通过什么方式来弄(4)

4、为什么要使用Uboot,直接启动Linux内核不就好了吗(1)

当时:我说自己对系统移植和Linux内核了解得不算多,因为自己想偏向应用层。(然后面试官就开始问我应用层的问题)

答案:看了一些文章,我的理解是把Linux内核加载进内存之前,是需要初始化一些必要硬件比如内存等。但BIOS(ROM内置的启动程序)很小而且是固定的,很难完成不同板子的硬件的初始化,所以需要有专门的初始化内存等基本硬件的代码,然后才能把Linux内核加载进内存。所以Uboot就是充当这个角色

5、select和epoll的区别(针对网络聊天室项目)(2)

6、epoll的性能具体为什么比select高(2)

7、TCP和UDP区别(5)

8、什么叫面向连接和面向非连接(5)

9、TCP的拥塞控制机制(2)

10、慢启动和快恢复什么意思(3,答了慢启动,不太了解快恢复)

11、说一下自己熟悉的排序算法,讲一下其中一个的时间复杂度(5,讲了快排)

12、二叉树、平衡树、红黑树怎么理解(3,红黑树没说清楚)

13、树的平衡有什么用(1,快排那里说了复杂度和递归树的深度有关,但这里却没答出来,挺不应该)

答案:为了搜寻的速度,减少搜寻的层数

14、图论的最短路径(1,说自己还没学图论)

15、红黑树和哈希的检索速度都很快。所以实际中什么时候用树比较好,什么时候用哈希比较好(1)

答案:主要就是红黑树是有序的,哈希表是无序的。红黑树可以按照键值的顺序来遍历,能查找最大最小值。而哈希表是无序的,不能按照键的顺序去遍历,也不能查找最大最小值,而且不能做范围查询。但哈希表的查询和增删效率是O(1),红黑树的效率是O(logn),所以如果需要快速地查询和增删就用哈希表,需要元素相邻就用红黑树

16、堆和栈的区别(5)

17、进程和线程的区别(5)

18、手撕代码(5)(写完加代码讲解,一共用了22分钟左右)

题目:调换单词顺序,并进行大小写转换。例如 Hi Hello World 转换成 wORLD hELLO hI

我的做法:先反转整个字符串,然后反转每个单词。不算难,主要就是要想到两次反转的做法,然后一些边界判断要注意一下。题目那里说进阶解法是时空复杂度为O(n),但我这个空间复杂度是O(1),最优了。

19、反问环节(5分钟)

我:进去后能负责什么

我:大约什么时候出结果

二面(3月25日,时长45分钟)

1、个人介绍(5)

2、问1面的算法题有没有更好的实现方式(当时已写出最优解)

3、讲一下自己的项目(4,讲了网络聊天室)

4、你说自己经常看书和视频学习,讲一下让你印象最深的视频或者书(4)

我:先说自己看黑马程序员的视频,然后说自己觉得《操作系统导论》很好。但这里给自己挖坑了,因为这本书我是上学期看的,而且跳过了一些比较复杂的代码部分,后面几个问题问到很底层的东西我直接懵了

5、线程具体是怎么实现的(1。懵了,当时没看太深)

6、说一下线程怎么使用(5)

7、操作系统底层是怎么实现锁机制的(1。又懵了,其实那本书有讲锁的实现,但是当时没有亲自去写,所以忘了)

8、看我有个平衡小车的项目,让我讲一下pid算法(3。忘了一些,讲得一坨屎)

9、看我有个树莓派部署yolov5的项目,问我有没有做数据训练或者模型优化这些工作(2。我说只弄了算法部署)

10、当队长主要做了哪些事情,怎么做的(4,讲了自己电赛从组建队伍到最后比赛的整个历程)

11、说一下自己目前在技术上的缺点(3,讲得不够多也不够好)

12、针对这些缺点要如何改进(4,说自己要通过项目去改进,例如做一个操作系统内核项目)

13、想做哪些业务

14、什么时候能来实习,能实习多久

15、反问环节

1、我:什么时候出结果;  面试官:一两周

2、我:自己的问题

面试官:学得比较杂,缺少一个特别精的方向。建议我以项目为驱动来深入理解技术点,还可以找一下自己具体的发展方向。也说这个是大部分学生都会有的问题

总结

这两次面试分别是我人生第二次和第四次面试,其实回答问题都是很不流畅的,特别是二面,我有很多问题都没答好,但还是通过了。感觉主要还是我的知识面够广,而且在学习上面很有主动性和积极性。毕竟自己是从大一就开始卷了,这次offer感觉还是既有运气又有实力吧。

今天收到offer立马接了,打算4月16号入职。如果有优选部门同base的牛友可以一起认识一下

#面经##美团暑期##嵌入式开发面经##面经攒人品##嵌入式#
全部评论
感觉面试有难度但还好 但是我简历给测开捞了
1
送花
回复
分享
发布于 04-06 15:57 海南
这问的也不嵌入式吧,进去估计和嵌入式没啥关系
1
送花
回复
分享
发布于 04-23 20:57 浙江
滴滴
校招火热招聘中
官网直投
点赞
送花
回复
分享
发布于 04-02 16:15 广东
佬,hr啥时候联系你的,今天啥时候接到offer的
点赞
送花
回复
分享
发布于 04-02 16:34 湖北
美团也有嵌入式啊
点赞
送花
回复
分享
发布于 04-03 08:21 陕西
问Linux启动给我吓着了😂,不过好像问的比较笼统,我估计面试官也很难了解的很详细
点赞
送花
回复
分享
发布于 04-04 16:49 湖南
佬,请问笔试内容是些什么
点赞
送花
回复
分享
发布于 04-05 15:00 福建
mark
点赞
送花
回复
分享
发布于 04-05 17:41 湖南
感觉问题都比较底层啊
点赞
送花
回复
分享
发布于 04-06 01:37 重庆
pdd25届暑期实习生内推,链接在主页
点赞
送花
回复
分享
发布于 04-07 11:53 上海
佬,这些题当时答出来的比例怎么样
点赞
送花
回复
分享
发布于 04-12 16:58 北京

相关推荐

1.嵌入式从技术来分,分为有操作系统和没操作系统的,有操作系统的是未来的主流。2.嵌入式从职业上分为:一.嵌入式硬件u工程师二.嵌入式驱动工程师三.嵌入式软件工程师四.嵌入式系统工程师嵌入式硬件工程师是最最底层的,通常要接触很多设备,同时还要精通电路图,和电路的设计。说的通俗一点,硬件工程师,把这个项目的各个设备把线给连起来,方便后面的程序编写。嵌入式驱动工程师,就是写这些设备的驱动,你硬件工程师把线连起来了,你得编程吧,你就负责驱动这些设备的程序吧。有些项目,需要在操作系统上驱动设备,那你就要会用这个操作系统,在操作系统上,驱动这些设备,其实大多是都是靠移植。嵌入式软件工程师,非常精通C语言,如果在操作系统上,还得精通数据结构和操作系统,也得会一些常用的算法,有点类似于,让你在安卓或者IOS系统下做一个APP。小编对于嵌入式软件了解的不是很多,有讲错的地方请指出。嵌入式系统工程师,这个如果你很厉害,会写操作系统,那你工资是很高的,但也得付出很多的精力去学习。一般情况下我们都是靠移植,毕竟咋没有华为,苹果,谷歌的实力啊。一般在大公司才会分的这么细,大公司做一个项目,每个人需要干什么会分的很细很细的。举个例子,你们公司要做一个扫地机器人,那么你或者你们这些人组成一个团队,负责扫地机器人的电机驱动的板级支持包编写。那你或者你们这个团队就是负责嵌入式驱动。如果你在小公司,那就说不准了,老板肯定想你会的更多,这样子就不要招更多的人了,但小公司往往工资不比大公司少,毕竟能者多劳,但累确实挺累的。如果读者们还是不清楚嵌入式是什么,或者说嵌入式想学什么,那么小编建议大家学习嵌入式先看一些数电模电,电子专业的书籍,有了一定基础之后,买一块51单片机开发板,从最简单的裸机开始学习,会是一个不错的选择,51单片机学的差不多了,做一个小项目。难一点的基于51单片机的蓝牙指纹开锁系统,简单一点的做一个基于51单片机温度控制系统。51都会了。在买一个32位的学习板,这个跟51比起来,要全部学会还是有点难度的,学的差不多了也可以考虑做一些项目,这个关于嵌入式的学习方向,我以后还会专门写一篇文章来介绍的。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
转发
26 109 评论
分享
牛客网
牛客企业服务