【已oc】Momenta C++日常实习 1/2面面经

纪念一下今年开局的两面,就oc的经历吧。

可能没啥参考价值。

总体流程

  • 2022.6.22 投递简历(实习s)
  • 2022.6.23 hr第一次电话,询问我的情况(能实习多久,啥时候到岗),没有约面
  • 2022.6.24 hr约面,一面约到周一(2022.6.27)下午3点;
    • 最后因为一年没面试,有点怂,觉得没准备好,就推了一天(事实上真不需要,真没想到面试这么简单啊)
  • 2022.6.28 15:00 一面
  • 2022.6.29 15:00 hr打电话约二面,我问能不能约到周五,hr问周四不行吗,周四是有啥事情(看起来是很着急要我的样子)?我说那就周四吧,二面约到周四(2022.6.30)下午2点半
    • 当时以为一面这么轻松,是不是二面开始放大招,就有点害怕,结果还是我想多了
  • 2022.6.30 14:30 二面
  • 2022.7.1 18:30 oc

一面(60min)

面试官态度还是不错的,语气很和蔼,面试跟聊天一样,但是不露脸啊

自我介绍

项目/八股(20min)

  • 介绍下项目
    • 我问介绍哪一个,面试官说就webserver吧
  • 有限状态机实现思路
  • http在哪个模块实现的?有调库吗?(然后翻了我github代码,慌的一批,我以为只有腾讯面试官会这样干)
    • 没有,是自己实现的
  • 为什么要使用线程池/连接池
  • 线程池怎么实现的,有用分配器吗(这是个啥)?
    • 没有
    • 请求队列,多个线程抢
  • 数据库事务的四大特性?
    • 老八股文了,背了一遍
  • RPC的同步和异步调用的实现?
    • 多线程模拟的异步调用
  • 为什么使用protobuf?有什么好处?
  • 线程间怎么通信?
    • 互斥锁、条件变量、信号量
  • C++中lock_guard和普通的mutex的区别?
    • lock_guard类似智能指针,自动加锁解锁
  • (看了代码之后问的)我看你一个显式加了锁,一个用了lock_guard。有什么特殊意图吗?
    • 两个项目实现的时间点了,当时做webserver只学习了POSIX的pthread api,所以直接封装了类
    • 当时还没有学习C++的多线程
  • 一个用makefile,一个用cmake,也是一步一步学习的吗?
    • 是的
  • 什么时候开始学C++的?
    • 大一开始,大四到研一深入学

算法题(20min)

平台是showmebug,核心代码模式

给了4个,关于dfs/bfs的,写了这两个:

  • 找到到达目标点的所需的步数(bfs/层序遍历)
  • 找到到达目标点的所需的序列(dfs/回溯)

差不多是说思路,写伪代码,没让跑,面试官看了差不多就行

聊天/反问(20min)

  • 面试官介绍公司情况,部门工作等内容,还问了实习时长等内容
  • 用了什么技术栈
  • 怎么培养实习生

总结

问题较常规,只要项目是自己做的就能回答

今年的第一次练习,其实面完之后觉得稳过了,但是存在的问题是:

反问环节,感觉没表现出太强烈的意愿,这是要改的,无论是否感兴趣/想去

二面(30min)

面试官态度仍然不错,答不上来的问题也觉得没关系,但是也不露脸

不过想不到的是没有自我介绍,很爽啊

自我介绍(无)

直接对着简历问了,没让自我介绍,不自我介绍真的轻松很多

并且说已经看了我的github(再次慌的一批)

项目/八股(10min)

  • 是计算机专业的啊,从什么时候开始学C++的?
    • 又问了一遍
  • 介绍RPC的概念,为什么要用RPC,RPC实现的关键点
    • RPC常见八股文
    • 关于为什么要用RPC,扯了一下软件架构的演进
    • 居然说我说的很流畅
  • 为什么要做RPC这样的项目?
    • 公司都在用,想了解原理
  • 实验室的研究方向?
  • 为什么使用protobuf?有什么好处?
    • 又问了一遍,感觉是个常问的问题了
  • 看你提到了多线程。那问你一个问题。线程a加了互斥锁,读写了同一个变量;线程b不加锁,也访问同一个变量,会访问成功吗?
    • 这个问题引人深思啊,从来没思考过这个问题,脱口而出就是不会访问成功
    • 经提示后想到,可能不在同一段代码(临界区)中被访问,就说了可能会
    • 得下来看看互斥锁的原理了,麻了
  • 看你说熟悉常见数据结构和算法(这不是简历标配吗),平时刷过LeetCode吗?
    • 害怕,还以为要问我hard题
    • 我就说,平时有刷过,不过不同知识点掌握程度不同
    • 不知道这个问题,应该回答刷过,还是没刷过好呢?总之有点尴尬

算法题(10min)

平台是showmebug,核心代码模式

二分查找(查找第一个小于等于x的数),套模板吧

后来让我描述思路,描述二分查找的使用场景

聊天/反问(10min)

  • 一般会让刚来的实习生做什么工作
  • 想去传统互联网公司,还是专注做自动驾驶
    • 这个问题见仁见智,如果真的想去,或者以后真的想专注于做自动驾驶,回答后者比较好

总结

同样大部分都是常规问题,不过这次暴露了一些问题:

  • 对于算法的思考度不够,知道模板怎么写,但是没完全讲透彻(比如说这个模板为什么要+1(向上取整是因为避免leftright相邻时,无限循环了),我直接略过了)。即使是再平常不过的二分查找,也是这样。之后得复习一下常见算法的思路描述,复杂度分析
  • 对于多线程的某些问题,思考不够细致,也就是说一旦项目被深挖,人就没了
    • 后悔没在反问环节问刚刚那道多线程问题的答案

后记

没想到这面试这么轻松就过了,并且是今年的第一次面试(没准给我放水了,所以说没啥参考价值),之前一直觉得自己口齿不清,表达不畅,经常口吃。

其实这两次面试,总体来说,我觉得我的表达还算流畅,关键点几乎没有卡壳(可能也是因为面试官语气比较和蔼,不会给人带来紧张感?并且oc的时候也说对我的表现表示很满意)。而且面试跟聊天一样(没有坐牢的感觉),如果能进面,也不要求你有自动驾驶/高精度地图相关的经历。也很感谢第一次有公司对我的表达能力表示认可。

想了很久,真的很遗憾,最终还是没接offer,在其他公司0 offer的情况下没给自己留后路,原因如下:

  • 因为其他公司还没面试,但是给我决定的时间太少了,入职时间节点卡的也有点紧了(感觉部门应该挺缺人哈哈,尝试拖延入职时间,等我面了其他公司,给我多点养鱼时间也失败了);
  • 且对工作内容兴趣不大,我这个人的特点是做任何事情都必须有强烈的兴趣驱动才行,如果兴趣不大可能进去了也很痛苦,而且这还是第一次面,看看有没有更好/更适合我的机会吧。(我准备的方向偏web后端,但是岗位是关于高精度地图生成的,我会考虑入局自动驾驶,但是不确定今后是否all in自动驾驶;之前投的另一个岗更感兴趣些,也看到了这个岗,就是看jd兴趣不大就没投,看我C++技术栈,给我调到了这个)
    • 如果以后真的想all in自动驾驶,其实这个机会还是很宝贵的
#Momenta##日常实习##C/C++##C++工程师#
全部评论
面试都问这么多问题啊
1 回复 分享
发布于 2022-07-29 14:10
momenta还招实习生吗?
2 回复 分享
发布于 2022-07-29 14:40
二面只问了一道hard算法题,没答清楚直接挂了
点赞 回复 分享
发布于 2023-03-02 15:24 香港
你好,我想我问一哈rpc学的哪个,以及相关八股在哪看
点赞 回复 分享
发布于 06-25 12:31 北京

相关推荐

26 149 评论
分享
牛客网
牛客企业服务