一个读者大佬精心总结的阿里、腾讯、宇宙条大厂 Offer 面经和硬核面试攻略

130次阅读
没有评论

背景

新鲜出炉的校招系列第三篇 , 前两篇分别是 :

  • 非科班学弟如何转行斩获 ATM 大厂的 Offer ?

  • 羡慕 , 又一清华学弟斩获 6 个大厂 SSP Offer | 面经分享

本篇是石头哥又一厉害学弟 ——见习格子衫 的佳作 , 他从 秋招历程、校招结构化面试、offer 选择 等三个方面进行了总结和经验分享。

还总结面试过程中的各种套路 , 让你从自我介绍就给面试官下套。其实不只是在校招面试中 , 社招其实也一样 , 其中“给面试官下套”是个不错的方法 , 值得借鉴和学习。( 详见文中第二部分 ), 另外 , 文末赠送优质数据结构算法学习材料 , 有需要的同学请自取。

下面开始 见习格子衫 学弟的正文吧 :

11 月底 , 在经历了充分的思想斗争后 , 我终于下定决心寄出了三方 , 历时三个多月的秋招也终于尘埃落定。过去的三个多月里 , 面试时间可能只有一个月左右 , 剩下的两个多月的时间都在等待结果和纠结 , 因此通过本文总结这段时间我的秋招历程和感悟。

本文大纲如下图所示 :

一个读者大佬精心总结的阿里、腾讯、宇宙条大厂 Offer 面经和硬核面试攻略插图

一、秋招历程

本人本科毕业于 985 高校 , 硕士就读于国内 Top2, 本硕专业都是软件工程。在本科期间有过华为和腾讯两段实习经历 , 在研究生期间 , 我发现自己对科研的兴趣确实有限 , 因此平时较多参与实验室科研项目的落地应用。

今年由于疫情影响 ,2020 年上半年大部分时间我都在远程办公 , 导师分配的任务也稍有减轻 , 因此悄悄在字节和阿里实习了半年。

就业方向

在秋招开始之前 , 我考虑的方向主要包括 :

  • (1) 读博 : 导师在博士生考试前和我长谈建议我读博 , 待遇上也给出了比较好的条件。如果我确实有科研天赋并且热爱科研 , 那么读博真的是一个非常好的选择 , 可惜以上两个前提我都不具备 ;

  • (2) 选调 : 由于自己在本硕期间都有非常多的学生工作经历 , 目前也担任学院学生工作的重要职务 , 因此很长一段时间内都考虑直接参加中央或者省委选调工作 , 但是最终因为一些个人原因还是选择放弃 ;

  • (3) 技术 : 选择大多数人选择的方向 , 秋招最终还是主要聚焦于技术开发类的岗位 , 本文也主要介绍这方面的基本情况。

面试情况

和一些大牛相比 , 我的秋招面试经历并不算多 , 一共只投递了十几家公司 , 最终拿到了国网南瑞研究院、交通银行总行、阿里、腾讯、字节、华为、猿辅导、完美世界的 offer, 具体的情况可以看下表 :

阿里

  • 流程 : 实习 ( 笔试 +5 面 )+ 转正答辩

  • 结果 :Offer

阿里的面试总体来讲是比较标准的结构化面试 , 但是面试流程实在太长了 , 从投递简历到完成面试 , 大约历时 40-50 天。

而实习转正后的 offer 发放等了大约 20 天 , 薪资沟通等了 50-60 天 , 贯穿秋招的头尾 , 非常考验心态。

腾讯

  • 流程 : 笔试 +3 面

  • 结果 :Offer

相比于头部的几家互联网公司面试 , 我个人感觉腾讯的面试反而是比较“水”的。两次专业面试都是电话面试 , 且以项目交流为主。

腾讯的内推和自主投递没有流程上的区别 , 只是内推能在一开始锁定心仪的部门。我一开始不了解情况自主投递简历 , 导致后续无法内推 , 简历只能由部门随机锁定。捞我的部门是腾讯某著名游戏工作室 , 最终顺利拿到 offer。

字节

  • 流程 : 实习 (3 面 )+ 绿色通道 1 面

  • 结果 :Offer

字节的整体面试流程非常紧凑 , 实习简历投递后第二天就开始沟通面试 , 一个下午直接完成 3 面 , 再隔一天就沟通 offer, 还允许远程实习 , 因此计划 3~6 月在字节顺带实习 3 个月。

由于当时不是暑假 , 实验室压力、学生工作压力、实习工作压力都聚集在一起 , 让我度过了极其痛苦的三个月 , 几乎每天都没有休息。

6 月份我提出离职放弃转正答辩 , 在之后的校招过程中只参加一次专业面试就直接获得校招 offer。

华为

  • 流程 : 笔试 +3 面

  • 结果 :Offer

华为的面试流程感受还是非常友好的 , 会有 HR 单独联系 , 及时沟通面试进度和状态。

另外令我惊讶的是多次主动沟通感兴趣的工作方向 , 并针对个人做出非常详细的职业规划 , 有一段时间几乎是每天打一次电话。

最后的整体评级和薪资待遇也非常有诚意。华为的二面很有可能是压力面 , 只要保持心态就能顺利过关。

国网南瑞

  • 流程 :1 面

  • 结果 :Offer

因为来学校进行宣讲 , 所以现场投递了简历 , 面试 20 多分钟就直接通过了。南瑞是国家电网子公司 , 网络风评不太好 , 不过通过特批给了一个超出预期相对有诚意的待遇 , 不过相比互联网还是有较大差距。

交行总行

  • 流程 : 免笔试免面试

  • 结果 :Offer

学校有人才推荐计划 , 填了一些表格交上去 , 随后安排了一次不到 10 分钟的面试 , 通知免笔试免面试直接参与体检环节 , 随后直接发 offer, 薪资待遇都是统一的标准。

猿辅导

  • 流程 : 笔试 +3 面

  • 结果 :Offer

猿辅导号称是 WLB 的典范 , 一直宣称“年薪至少 40 万 ,7 点下班”, 面试号称“具有挑战性”, 但实际面试流程一周一面 , 且面试题目难度也很一般 , 无法深挖项目 , 只会简单的基础题问答和做题 , 每次面试两道题目左右 , 基本都是 leetcode 原题。

完美世界

  • 流程 :3 面

  • 结果 :Offer

完美世界 K-lab 计划号称 48 小时极速发 offer, 由于是校招早期 , 因此就参与面试练习练习。

由于还是北京疫情期间无法回校 , 所以安排远程面试超出了“48 小时”, 但整体流程还是比较速度 , 面试结束后也很快收到意向书。

网易

  • 流程 : 笔试 +1 面

  • 结果 : 挂

我投递的是网易有道的 Java 开发岗位 , 面试安排在出发回京返校前 1 个小时 ,1 面全程深挖各大技术栈的底层原理 , 面试官非常和蔼可亲 , 面试体验极佳 , 可惜我水平不高 , 一问三不知 , 过了两周流程就变灰了。

快手

  • 流程 :1 面

  • 结果 : 挂

按照大多数人的经历 , 快手的面试基本也应该是一次性面完 , 我面试的是基础平台 , 在做题的时候出现了比较大的失误 , 偏离了题目重点 , 把问题复杂化 , 所以一面结束后面试官直接就说结束面试 ,“以后等消息”。

商汤

  • 流程 : 笔试 +3 面

  • 结果 : 放弃

商汤的面试流程中规中矩 , 有 HR 专人对接 , 但是每次面试都要相隔一到两周之后才有消息 , 流程也拖得很长。

有趣的是其中一次面试过程中面试官问我是否认识本科的一位同学 , 可能是也投递了同一部门。最终三面时由于已有更好的 offer, 所以就直接放弃面试了。

小结

相比于身边的一些同学 , 我没有选择海投 , 而是在不同领域选择一些有特点的公司有针对性的投递简历 , 努力提高简历投递的“命中率”。

秋招是一个长期的过程 , 在获得同领域一些比较满意的 offer 后 , 我就没有继续面试同领域的没有特殊优势的其他公司。

这样做一方面减少了无效的面试次数 , 有更多时间进行有针对性的准备 , 也能兼顾实验室导师的工作 ; 另一方面在最后选择的过程中也能突出每家公司的优势特色 , 选择时也更有区分度。

二、校招结构化面试

综合我的实习和校招面试经历 , 我认为准备面试应当包括五个方面 , 即自我介绍、基础知识、项目经历、原理解析和手写算法。

1. 自我介绍

自我介绍是几乎所有面试的第一步骤 , 自我介绍配合简历会给面试官建立第一印象。我们知道在平时生活中 , 如果你喜欢一个人 , 那么这个人做的一切都会是美好的 , 如果你讨厌一个人 , 那么不管他做什么你都会看不顺眼。

面试中也是同理 , 一个好的初始印象可能会淡化之后面试中自己的失误 , 而把重点聚焦于自己的长处上。

在我看来 , 一次自我介绍至少应该包括 :

(1) 基本信息 , 毕业院校 ;

(2) 实习、项目、竞赛经历和成果 ;

(3) 自己擅长的技术栈 ;

一般在自我介绍时 , 面试官很可能在查看简历 , 这时候需要对面试官进行后续面试问题的引导。

例如如果自己对某些课程掌握非常深入 , 可以在教育经历中简要谈谈自己的课程情况 , 如果对自己的一个项目准备非常充分 , 可以加大自我介绍时该项目的比重 , 但切忌一下子说完让面试官无问题可问 , 而是有意识的留一些常见问题的缺口 , 例如分布式、效率优化等关键词 , 并针对这些关键词着重准备。

此外 , 注意避免一些常见的简历介绍误区 , 例如“精通”这类给自己挖坑的词汇。

2. 基础知识

对于一些企业的技术初面 , 面试官可能不会和你讨论项目的技术细节 , 而是已经准备好了一系列的面试题 , 此时面试就变成面试官读题 , 自己答题的环节。这类基础知识问答包括计算机网络、操作系统、计算机组成原理、语言特性、数据库原理等方面的内容。例如 :

  • ( 网络 ) 输入域名后的流程是什么 ? 七 / 四层模型是怎样的 ?TCP 的拥塞控制方法是什么 ?

  • ( 操作系统 ) 进程和线程的区别是什么 ? 死锁的如何产生、避免 ? 分段、分页与虚拟内存的系列问题、CPU 调度的系列问题等 ;

  • ( 计算机组成原理 ) 指令执行的基本过程是什么 ?

  • ( 数据库原理 ) 存储引擎的区别是什么 ? 索引底层实现的原理是什么 ?

  • ( 语言特性 )Java 垃圾回收机制是怎样的 ?Java 虚拟机包括哪些部分 ?Js 闭包的原理是什么 ?go routine 的调度是如何进行的 ?

对于这些问题 , 最直接的办法就是直接看已有的面试题整理 , 在一些博客或是牛客论坛上有大量的总结材料 , 对于有一定基础的同学直接看材料就能基本回忆起之前所学的课程。

近两年由于大家越来越善于背题 , 出题的难度也在逐渐增加 , 偶尔有一些确实不会的题目直接承认即可 , 也 不用不懂装懂 强行回答 , 反而可能引起面试官的反感。

3. 项目经历

投递技术开发类岗位的同学基本都需要准备一些拿得出手的项目。项目经历是最无法临时准备的部分 , 在一些企业中项目深挖讨论反而会占面试的大部分时间。

在我看来 , 准备描述自己的项目经历可以包括以下几点 :

  • (1) 描述清楚项目的背景和需要解决的问题 ;

  • (2) 用了什么样的技术方法 ;

  • (3) 项目取得了怎样的成果 ;

  • (4) 自己在项目中是怎样的角色 , 负责哪些工作 ;

在我实习和秋招面试的过程中 , 尽管简历上列出了最具代表性的三个项目 , 但是每次详细介绍的项目实际只有一到两个。

对于如何描述自己的项目经历 , 完全可以像自我介绍一样准备好时间稍长一些的介绍模版 , 并至少准备好回答如下问题 :

在这个项目中 , 你遇到的难点是什么 ? 你是如何解决的 ?

项目介绍本身并不需要回答这个问题 , 而是面试官基本都会问这个问题。

此外 , 通过多次面试 , 我发现每个项目介绍后面试官所问的问题都是有限的几个 , 因此可以通过多次面试提前准备好更多的项目问题回答 , 在交流过程中展现出自己从容、清晰的一面。

4. 原理解析

在我看来 , 这是整个面试过程中非常容易加分的部分。我们可以根据自己已有的项目、自我介绍中频繁出现的关键词 , 用心准备两到三个可以深挖的点。

这里的原理解析不是仅仅是自己“看过别人写的解析文档”, 而是自己深入理解 , 并能“有条理地讲述给别人听”。

可以选择的方向例如 :Tomcat、Spring、Redis、Kafka 的架构和源码实现、数据库引擎的实现、操作系统内核的实现、分布式一致性算法的源码实现、以及其他在自己项目中出现的问题等。

选择深入准备的方向并不是随机的 , 而是确实在自己的项目中发挥了重要用途 , 并解决实际问题的关键难点。如果说基础知识重在广度和准确性 , 那么原理解析就要重在深度和思考性 , 描述自己的理解和思考 , 并能经得起面试官“步步紧逼”的询问。

准备好可以深入探讨的点后 , 就可以在自我介绍、项目介绍过程中有意识的挖坑 , 频繁提起关键词 , 并留下含糊的描述性语句吸引面试官提问。( 石头注 : 哈哈 , 都是套路啊 )

而在交流的过程中 , 也无需完整背诵千字大论文 , 而是由上而下 , 从整体到局部逐步解释。如果面试官强行讨论自己不熟悉的领域 , 直接简短说明不太了解即可 , 长时间支支吾吾无法清晰表达反而会导致减分。

5. 手写算法

在秋招开始前 , 我最担心的就是手写代码这一环节 , 对比身边一些将 leetcode 题库刷完的同学 , 我刷过的题目数量可能只有零头 , 不过在手写代码上也没有出过严重的问题。

在我看来 , 平时没有刷题习惯的同学也无需对这个环节太过担心 , 只要有针对性进行准备 , 基本都能顺利完成。

在临时突击刷题方案中 ,“数量”并不是重要因素 ,“重复”才是重点 , 我比较推荐的一个刷题方案是 :

  • (1) 专题练习阶段 : 按 leetcode 标签专题刷题 , 如字符串、DFS、动态规划、树、双指针、排序等 , 选择出现频率较高的简单和中等难度题目。对于常见的标签 , 做到能理解其常见解题思路即可 ;

  • (2) 精选题库阶段 : 可以选择 leetcode 热门 100 题 , 或者剑指 offer 练习题刷题 , 此时需要注意重复刷题 , 例如完整做完剑指 offer 练习题后再刷一遍 , 争取看到题目就能想到思路 , 独立快速完成题目 ;

在秋招准备阶段 , 我个人一共刷了 150 题左右 , 在面试的手写算法环节基本都顺利完成。

此外 , 在手写算法的过程中一定要注意代码规范 , 注意异常输入的处理和代码整洁性 , 另外 :

  • 如果暂时没有思路 , 可以试图从面试官那里获取提示 , 部分面试官甚至可以接受换题的要求。

  • 如果有一些思路 , 可以尝试积极和面试官沟通获取一些提示。

  • 如果确信自己无法解决问题 , 那么要求提示或者换其他题目总比留白要好。

石头补充 : 在本人多次文章中也强调了数据结构和算法的重要性 , 社招如此 , 更何况校招。可以参考下之前的这篇文章 —— 从一道面试题谈谈一线大厂码农应该具备的基本能力

另外 , 补充一份我之前看到过的一份不错的 leetcode 算法指南 , 公众号后台回复 leetcode01 即可获取。

三、offer 选择

关于如何选择 offer, 可能见仁见智 , 基本都会从 薪资待遇、平台发展、城市选择、亲友关系、工作压力 等很多方面打分权衡 , 但落实到实际中 , 我自己也根本无法确认每个部分的比重 , 有时候可能真的只有“follow your heart”。

对于我自己来讲 , 最终纠结的主要是阿里、腾讯、华为三家公司。具体而言 :

  • 从薪资待遇上来讲 , 三家公司基本都给到了 SSP, 总包来看腾讯 > 华为 > 阿里 ;

  • 从地域来看 , 由于自己是 xx 人 , 选择的就业地点希望在江浙沪一带 , 三家公司的工作地点也都满足要求 ;

  • 从打听的工作时间来看 , 基本是腾讯 > 华为 > 阿里 ( 仅是 特定部门 的工作时间 , 而非公司整体的工作时间 );

  • 从部门业务来看 , 三家公司的业务都算比较核心且都能接受 ;

  • 从技术的契合程度来看 , 阿里 > 华为 > 腾讯 , 腾讯游戏需要自己完全转换技术栈 , 且发展方向稍有受限。

此外 , 我也综合考虑了工作地所在城市的生活成本、亲友的期望等问题 , 把最终的候选公司确定为阿里、腾讯两家 , 尽管每家公司都有其优势和劣势 , 但至少我都能接受其中的任意一种选择。

在漫长的纠结、沟通之后 , 我最后选取了最简单的方式 : 抛硬币。不管是开心接收抛硬币的结果 , 还是希望赶紧捡起来再抛一次 , 我都会知道自己内心真实的选择。

特别推荐一个分享架构 + 算法的优质内容 , 还没关注的小伙伴 , 可以长按关注一下 : 长按订阅更多精彩▼ 如有收获 , 点个在看 , 诚挚感谢 

原文链接:https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/111828944

正文完
 0