面试经验-小鹏技术面二面-凉经
前言
面的一坨屎,自己项目之外的一问一个不知道,手撕快速幂也忘了。
内容
自我介绍
- Q. 介绍一下自己
- A. 学校背景,实习经历,能力提升
业务内容提问
Q. 项目是什么,你做了什么
Q. 架构演进?
Q. socket.io?
Q. RocketMQ 能做事务吗?
- A. 半消息
都没有往深了问,看来是主管之类的。因为完全没有反馈,所以根本看不出来是什么态度。
八股
从这里开始崩盘
- Q. Mysql 索引使用的什么数据结构
- A. B+ 树是一个 n 叉树,数据节点都存在叶子节点中,叶子节点是一个双向循环链表,所以查询范围数据很快
- Q. B 树能做吗?
- A. 没考虑过。
当然是能做的,因为
- Q. 那如果我设置了多个 index,只用一个 index 或者几个 index 能查询到数据吗?
- A. 可以
- Q. 有没有查不到的情况
- A. 不知道
流程思想
- Q. 微信扫码登录怎么做的?
- A. 直接懵了,说的前言不搭后语,提了 JWT 和 Session,乱说一通
- Q. 操作流程提示了下
- A. 我不太清楚,但是我的项目中有类似的:Session 中存储手机和电脑登陆状态,因为手机已经登陆,所以授权的时候就是修改电脑状态,然后服务器发现了电脑状态修改,就返回用户数据。
- Q. 这部分就到这里吧。
微信扫码登录的核心流程(OAuth2.0)
电脑端生成二维码
- 电脑版微信启动时,向微信服务器请求一个 临时登录凭证(二维码本质是一个包含唯一 ID 的加密链接)。
手机微信扫描二维码
用户用手机微信(已登录状态)扫描二维码,手机微信会检测二维码的合法性,并向微信服务器发送确认请求。
关键点:手机微信本身已通过长期 Token 保持登录状态,无需重新输入账号密码。
手机端确认登录
- 手机微信弹出提示“确认登录电脑版微信”,用户点击确认后,手机微信将 临时登录凭证 和 用户身份标识 发送给微信服务器。
电脑端轮询登录状态
电脑版微信后台持续轮询服务器,询问临时凭证的状态(未扫描/已扫描/已确认)。
一旦服务器返回“已确认”,电脑版微信即可获取到用户的 长期会话 Token,完成登录。
建立电脑端会话
- 微信服务器为电脑版微信生成独立的会话 Token,后续电脑版微信通过该 Token 维持登录状态。
八股追问
- Q. 我看你是做 JAVA 的,你知道什么是弱引用吗?
- A. 不会
手撕代码
- Q. x 的 y 次方
- A. 随便写了个循环,在提示要优化下又写了个二分递归。快速幂完全给忘了。
职业规划
- Q. 职业规划如何
- A. 常规说法,被打断
- Q. 你的技术栈和我们不一样,如果说真要你做 infra 你怎么规划
- A. 如果我们的岗位被 AI 优化了,我可以去做 AI agent 相关的技术,因为我有这方面的经验。不符合要求,看看 D 老师怎么说:
核心原则:承认差异 + 展现清晰的过渡计划 + 连接自身优势 + 强调价值贡献
✨ 回答框架与话术建议
- 坦诚承认差异,展现清醒认知:
- “非常感谢您再次给我机会阐述这个问题。在之前的交流以及我对小鹏技术方向的了解中,我非常清晰地认识到贵团队的核心技术栈是基于 C++和 Python 的后台系统(可以具体提一下了解到的方向,如自动驾驶平台、车联网后台、高性能计算等),这与我之前主要使用的 Java 技术栈确实存在差异。我完全理解这种技术栈的转换需要付出相当的努力和学习成本。”
- 提出具体、可行的短期(0-6 个月)学习与融入计划:
“因此,我的首要和明确的职业规划就是:在入职后的前 X 个月(比如 3-6 个月),全力以赴地学习和掌握团队所需的 C++/Python 技能以及相关的领域知识(如车规级软件、特定中间件等)。 我的计划包括:
系统性学习: 利用入职培训、公司内资源(文档、代码库)以及业余时间,通过[提及具体学习资源,如经典书籍《Effective C++》、特定在线课程、公司内部 Wiki]进行快速补强。
深度参与实践: 我非常希望能尽快参与到实际项目中,哪怕是从阅读代码、修复小 Bug、编写单元测试开始。我相信在实战中学习和解决问题是最有效的方式。
积极寻求帮助: 我会主动向团队里的前辈和同事请教,尽快熟悉团队的开发规范、工具链和最佳实践。
利用基础优势迁移: 虽然语言不同,但我深厚的大型分布式系统开发经验(来自 Java 背景)、对软件工程原则(设计模式、数据结构算法、网络、并发、数据库)、软件质量保障和工程效能的理解是通用的。这些基础能力将帮助我更快地理解业务逻辑和系统架构,将精力聚焦在语言和特定工具链的学习上。”
- 连接自身独特优势(特别是 AI Agent 经验):
- “同时,我注意到小鹏在智能化领域的持续投入(提一下了解到的,如智能座舱、AI 赋能等)。我过往在 AI Agent 方面的实践和兴趣点,让我对如何将智能化技术应用于实际业务场景有更深的理解。 在打好 C++/Python 基础、深入理解业务后,我期望能在中期(比如 1-2 年),将我在 AI Agent 领域的经验(如任务编排、决策推理、与环境的交互等)与我们的汽车软件系统相结合,探索如何利用智能化技术提升[提及具体可能方向,如:车载语音助手的智能化程度、后台服务的自动化运维效率、用户体验的个性化推荐等]方面的能力,为团队在智能化演进方向上贡献一份力量。” (注意:这里要自然衔接,不要喧宾夺主,重点还是在先掌握核心技术栈)
- 强调长期价值贡献与稳定性:
- “从长期(3 年+)来看, 我的目标是成为团队在[提及相关领域,如高性能后台服务、智能车联平台等]方向上的技术骨干或专家。我期望能持续深耕汽车软件领域,特别是智能化方向, 不仅能够独立负责核心模块的设计与开发,更能前瞻性地思考技术演进,解决复杂的技术挑战,并帮助团队培养新人。我非常看好智能电动汽车的未来,也渴望在一个像小鹏这样处于行业前沿的公司长期发展, 将我的技术能力转化为对公司和产品的实际价值。”
- 展现强烈的意愿和决心(关键!):
- “我深知从 Java 转向 C++/Python 需要付出额外的努力,但我对此有充分的心理准备,并且充满热情。 技术栈的差异对我来说是一个挑战,但更是一个学习和成长的机会。我选择小鹏,正是因为看中了公司在智能汽车领域的领先地位和技术挑战,我非常有信心并且已经下定决心投入必要的时间和精力,以最快的速度弥补技术栈的差距,达到团队的要求,成为一名高效、有价值的成员。”
反问
- Q. 我这次面试不太好,您觉得我有什么需要特别加强的地方?
- A. 你从哪些地方知道你面的不好?
- Q. 首先是微信流程那块,没有说清楚;其次是手撕代码,肯定还有优化空间;最后是职业规划,完全不知道怎么答。
- A. 校招和社招不一样,我们评价机制不同。
安慰我,感动
。问你职业规划是想让你知道如果你进了我们业务,技术栈真的不一样,只是同步信息。 - A. 还有什么想问的吗?
反思与复盘
八股重要,但灵活变通的思想同样重要。
第二天岗位信息就没了。