双非本科大三生拿到大厂offer的面试经历
前言
关于本人
大一修的专业是金融学,并不是很感兴趣这个专业。大一下自学C语言参加转专业考试加面试,大二成功到转计算机专业。
大二同时补修大一课程并自学技术做项目。在暑假开始投递找实习,最后于八月去了一家AI互联网公司实习。
因为学业和时间问题,在大三的十一月辞职了。并开始刷算法和温习巩固计算机基础,准备来年春招。(其实这期间更多在浪,寒假在家也一直跟懒惰的自己对抗,所幸每天都有完成一些任务。)有时候欲速则不达。每天都有进步一点点,才能更快吧~
今年二月下旬感觉自己好像学得差不多了,就开始刷牛客网上的大厂面经,查缺补漏。实话说,还挺卷的。二月份就有人走提前批入职大厂了呜呜呜,也加重了我的焦虑。面经刷得差不多了,刚好碰上二月末的阿里提前批。我一下子投了三个部门的提前批,然后有两个很快就邀请面试了。回校后,顺利通过这两个一面,并在系统开放后选了一个比较喜欢的。还在中旬投了腾讯,边面试边巩固复习。就这样,顺利在三月下旬成功拿到了阿里和腾讯的offer!而且还是在同一天收到了,Double Happiness!
面试经历
3.2 蚂蚁支付宝一面
-
进程和线程
-
索引的优缺点
-
用过事务吗?什么情况下该用事务
-
乐观锁与悲观锁,在项目中用过吗
-
已经有了MySQL的内存,为什么还要使用Redis
-
Redis的优点是什么,缺点是什么
-
MySQL一定会走索引吗
-
线性表、哈希表、二叉树的查找、删除、增加的时间复杂度
-
用过什么排序
-
快排和归并的时间复杂度,快排和归并的选择
-
访问一个网址,会发生什么
-
HTTP一次请求响应完成后,连接就关闭了吗?(长连接短连接)
-
有考研的打算吗
-
如何学习一项新技术
-
反问
3.3 阿里CTO线一面
呜呜呜原本开了录音的,想着之后写面经可以听。没想到录音被误删了。依稀还记得几个问题:
-
自我介绍
-
追着项目问了好多, 项目的业务背景,自己做的模块是给谁用的,为什么要这么写,优化,为什么这么优化。其中有一个实体,问我怎么去理解它
-
Redis了解多少,都可以讲一下,为什么使用Redis
-
Spring的AOP了解吗? 动态代理
-
什么时候开始学习Java的,为什么想学Java
-
你对未来的发展有什么规划?
-
你对业务怎么去理解? 如何选型?
-
反问: 有什么需要去提升的吗? 好像记得是让我学会去比较每项技术...最后又巴拉巴拉证明我有去比较,讲了一堆Redis和Menchache的区别...(其实感觉自己反问环节可以没有必要说那么多)
会在什么时候通知呢?
好像还问了很多技术的问题,但是忘了...
3.12 腾讯CSIG一面 (约70min)
-
自我介绍
-
什么时候开始学习编程的?
-
项目中的导入导出涉及到文件,那这个过程经历了哪些协议。(类似访问一个网站会发生什么)
-
文件上传用get方法还是post方法,为什么?
-
提到了TCP的可靠传输,是什么能保证TCP的可靠传输
-
服务器是如何去获取流的? (TCP的沾包问题)
-
常见的状态码有哪些?
-
上传文件在HTTP的请求报文里有什么标头?
-
项目用到了哪些表?
-
项目中哪些表的字段用到了索引? 给了一个SQL语句,判断是否走索引
-
Redis怎么在项目用的?哪些数据可以放入Redis里边
-
如何理解Redis?Redis的优点?
-
如果去更新数据时,是先更新Redis还是DB?
-
你如何理解高性能、高吞吐?
-
MySQL比较主流的存储引擎有哪些? 讲下区别
-
InnoDB是如何去恢复数据的?
-
有用到Java中的哪些集合吗?能讲下Java集合的体系吗?
-
HashMap和HashTable的区别?
-
ConcurrentHashMap了解吗?
-
语言只会用Java吗? (是...)
-
你的实习跟你预期的有落差吗?
-
Java中用到了哪些锁?(有列举出来,但怕太啰嗦,没有详细展开...)
-
如何理解线程安全,为什么使用锁?
-
Spring中用到了哪些设计模式?
-
Java有哪些特性?
-
反转链表
-
反问环节 (实习生主要看基础掌握得如何,是否能将所学的去运用到实践中)
3.15 腾讯CSIG二面 (约90min)
-
自我介绍
-
TCP/IP模型
-
访问一个链接时背后发生了什么?(计网的协议)
-
平时的学习方法是什么样的?
-
树查找的时间复杂度,在最坏情况下呢?
-
算法题:已存在一个超过数组长度1/2的数,找到这个数并返回 (快排,中间那个)
-
JVM的双亲委派机制
-
实践题:如果有两个自定义加载器去加载相同的类,那在堆当中是两个Class类吗? (是的)
-
JVM的内存区域
-
堆的空间结构以及对象是怎么分配的?
-
复制算法的过程?如果只有一个s0区可以实现吗?
-
Spring的IOC容器思想,如何设计一个IOC容器
-
Spring中用到了哪些设计模式?
-
手写模板设计模式
-
手写单例模式
-
Synchronized是可重入锁吗?如何理解可重入锁?
3.16 阿里CTO线二面(约50min)
-
自我介绍
-
问项目实现,业务流程
-
计网有哪些模型,分别讲下每一层
-
自己推测负载均衡会发生在哪一层
-
Java虚拟机相比其他语言的优势在哪?
-
垃圾回收的过程讲一下
-
树的构建?时间复杂度?退化成链表时怎么解决
-
AVL树和红黑树
-
又问了一些关于项目的业务 NLP是什么?
-
Linux的常用命令讲一下
-
除了提到的技术栈,有没有自己去了解过其他的?(SpringCloud、go语言 给自己挖了个坑)
3.18腾讯CSIG三面 (30min左右)
感觉这一遍就是走个过场,还以为是又加了复试会更加严格的。没想到,就是跟主管聊聊天哈哈哈,我还做好了被吊打的准备。
-
自我介绍,项目
-
你的学习方法是什么?
-
你会想去学计算机的出发点是什么?
-
你会觉得搞技术很枯燥吗?
-
有想过考研吗?(好像是有这个问题)
-
你觉得你的优势是什么?
-
好像就没了,直接进入反问环节:部门是什么技术栈(Java)、怎么这面没有问技术呢(前两个面试官已经考验过我了感觉OK了)、什么时候会有通知呢?(在这面还有一面hr面)
聊完后 大概过了半个钟就通知第二天hr面了!!! 太开心了!!!
3.19 腾讯hr面 + 云证 (30min)
-
自我介绍
-
大学期间你做过最让你有成就感的事情是什么?(这个聊得很有共鸣)
-
为什么选择转专业呢?
-
公司的实习项目能具体说说吗? 期间遇到过什么问题,除了简历上的项目,还做过什么吗?
-
有没有什么社团经历,发生过什么让你觉得很有意思的事情吗?
-
绩点如何?有没有挂过科?
-
能就职的时间?以及有无亲属在腾讯上班?
跟hr还聊得蛮开心的,hr小姐姐的声音简直太好听啦~
3.23 腾讯offer call
3. 24 阿里三面(60min)
也是一个大boss,看上去挺亲切的,但是问的问题不是很简单
-
自我介绍,项目
-
围绕项目问了一些业务背景,以及自己做了什么
-
平时学校开设的课程有Java吗,数据库呢?
-
为什么会想学计算机呢?
-
你平时除了课内书外,你还会看什么课外书?
-
你刚刚聊到了Redis,现在假设你要带领你的团队去设计一个类似Redis这样的数据库,你会怎么设计?
-
算法题:一个数组中有重复出现的数字,请返回重复出现最多次的元素以及出现次数。
-
反问:你觉得我有什么需要提升的吗或者说该往哪个方向去提升,然后自己被反问:那你自己觉得你有什么需要提升的呢?
面完不到一个小时,hr就打电话进来约下午hr视频面了。爆炸性开心!!!
3.24 阿里hr面 (60min吧)
看起来不像是一位hr,应该是一位产品经理。大概记得以下这些问题:
-
自我介绍
-
平时的学习方法
-
聊下项目
-
为什么会想转专业
-
你觉得你最大的优势是什么?
-
你以后会想在哪个城市发展,这方面父母支持吗?
-
问个很尖锐的问题:假如阿里和腾讯同时选择了你,你会怎么选择?
-
对未来的发展有什么规划
个人感悟
-
之所以能拿到大厂offer,我觉得主要归功于 运气 + 努力 + 状态 这三大因素!
-
运气的话,我们也不是完全不能决定它。比如准备好了就上,不要一直观望,这样hc相对后期也比较多!在投递部门和事业群选择的时候,可以先做下功课,并不一定最热门的就是最适合自己并跟自己实力匹配的!(比如我的话,我算法不太好,那我肯定不冲WXG部门嘻嘻。)这些都能提高我们的好运指数。
-
努力是最重要的因素啦,对于我这种普通人而言。如果你正处大一大二,那一定要抓住好时间噢,把基础打牢,多动手,多参加能提升自己技术的实践~ 如果是大厂面试,所谓“八股文”并不是背会了就行,还是要自己的理解,而理解来源于平日里学习时的思考。
-
状态指的是冲刺期间和面试时的状态。冲刺期间要稳住心态,允许有点小焦虑,但是不要让浮躁和焦虑吞没了自己,而停止了向前的步伐。面试时肯定是不要紧张,自信点,就当成是在share what you know,这是多少轻松的一件事情呀,而且结束时还能从对方那获得反馈!
-