【一面挂】小米 自动驾驶 后端开发 日常实习 一面凉经
今天又是积累一面凉经的一天,不过昨晚上睡晚了,没睡好,今天确实状态不行
总体流程
- 2022.7.6 投递简历(boss上投的,之前不知道是自动驾驶的)
- 然后火速约了面试,因为之前有了面试,所以约在下周二(2022.7.12)下午
- 2022.7.12 14:00 一面
- 此后一周多没消息,应该是凉凉啦
- 2022.11.11 10:48 感谢信
- 我面试完整整4个月才发感谢信,你一周不给我结果我也知道是挂了,我早都去别家了,要不要这么恶心人吧?
一面(50min)
面试官给人比较严肃的感觉,还说了下纪律(不要切屏等等,我咋会不知道呢)
自我介绍
八股/项目(40min)
- 除了mysql,还了解什么数据库?
- 非关系型数据库,redis
- 作死之路正式开始
- 为什么要做RPC?RPC在什么情况下会用到?
- 八股文
- protobuf和json相比,作为序列化方式的好处?
- 八股文
- 你实现这个RPC框架,是为了提升性能吗?
- 侧重功能实现,还没压测
- 怎么衡量RPC框架的性能?
- 并发量、qps
- 内存资源占用?
- HTTP和RPC的区别
- RPC是一个完整的远程调用方案,HTTP只是个应用层协议
- grpc用的http2,但是其他RPC框架一般都用自定义的协议
- 为什么要使用自定义协议?这比常见RPC框架的通信协议好在哪?
- 知道SQL注入吗?
- 说了下概念
- 服务端怎么解决SQL注入?
- 八股文
- 麻了,失去记忆了,也想不出来
- 只说了服务端的输入校验(例如正则表达式),不要拼接sql,但是又继续深挖
- 什么是线程安全?
- 解释了概念,解释的有点模糊
- STL有什么容器是线程安全的吗?
- 并没有
- vector为什么不是线程安全的?让举个例子
- 就说如果涉及到任何更改容器的操作,都可能发生线程不安全的问题
- 说(编)了一些,但是面试官没信服
- 怎么解决这个问题?
- 加互斥锁
- 其实还有别的方法,同学被问到过,赶紧复习一波
- 互斥锁、条件变量、读写锁的区别(感觉是高频问题)
- 八股文
- 互斥锁的底层实现
- 布尔值,0表示没锁,1表示锁上了
- 扯了下test and set等原子指令(TSL)
- 如果发现是锁上的,就让内核调度另一个线程,当前的线程就先停下了
- (说的过程中还因为电脑没电,掉线了,凉上加凉)
- C++怎么使用互斥锁
- C++11提供了mutex,加锁的话可以用
lock_guard
和unique_lock
实现自动加锁和释放锁
- C++11提供了mutex,加锁的话可以用
- 知道
shared_mutex
吗- 不知道(C++17的特性,确实没用过)
- MySQL的索引是什么数据结构?怎么查找的
- B+树,八股文
- MySQL怎么查看SQL语句是否走了索引?
- 通过
explain
命令查看
- 通过
- like能走索引吗?
- 要符合最左前缀原则。如果左边是具体的,右边是通配符,才可以
- 如果最左边是通配符,右边是具体的,最少也得扫描整个二级索引
- 很常见的一个场景是手机尾号匹配,这肯定是最左边是通配符,右边是具体的那种情况,这种应该怎么才会让它走索引?
- 八股文,可以多增加一列,倒序存储
- mysql的undo log和binlog的用途
- 八股文
- 知道mysql的读写分离吗?
- 不清楚
- 麻了,赶紧看八股文
- redis的事务?是否支持回滚?
- 不支持,不支持原子性
- 通过multi开启事务,打包一系列命令,通过exec执行
- 这里面的多个命令并不是原子的,单条命令才是
- 总之不太好用
- redis缓存数据和mysql数据库数据的一致性
- 先更新数据库,再删除缓存(旁路缓存模式)
- 知道redis的延迟双写吗?
- 不知道
- 麻了,赶紧看八股文
算法题(10min)
牛客,核心代码模式
- 跳跃游戏2(LeetCode 45)
- 说了下贪心的思路(差点想不出来,然后我就说想一会,实际上是组织语言)
- 然后问,感觉这个思路不好想(可能是被看穿了做过了),就问,能用动态规划吗?
- 我就说,可以是可以,但是一般来说,贪心法的问题,用动态规划解决,可能时间复杂度会较高
- 然后问贪心法的时间复杂度()
- 然后让我写代码(吓死,还以为让写动态规划,不知道啊),说10min能搞定吗
- 我说,看情况吧
- 结果不到5min,秒过
反问
- 投之前不知道是自动驾驶的,想了解部门的做的业务,编程语言
- 有很多数据要处理,主要python,少量C++
- 还有什么技术栈吗?
- 挺多的,有mongodb,es等等(感觉这个部门偏crud,所以主要问数据库)
- 怎么培养实习生?
- (面试官说了,我略了)
- 23届没hc了,24届的话还有hc,如果能实习满3个月,可以提出转正
- 麻了,24届战役这就打响了?今年形势太差,已经预料到明年是啥结果了
总结
挖出了很多不会的点,八股没背熟的地方,尤其是数据库这块。我数据库这块确实掌握的不行(不是我主攻的内容),相比os、计网。(果真,一问到数据库,我就被问穿了)
算是说不知道、不清楚,最多的一次面试,就当作查漏补缺吧
#日常实习##后端开发##小米、##C++#