粉丝小伙字节、网易、滴滴 offer 总结(附面经)
社群的小伙伴拿到字节、网易 offer 的分享来了 | 社群活动第五期
分享活动回顾:
前言
仅仅是自己的所闻所想,个人感觉就是踏踏实实的准备加上一些运气,大厂并不难!我只做分享,重点还是看个人,也可能观点不同,分享出来仅供参考,能帮到大家更好。
自我介绍
西安的某双非本科,对于北上广都算二本,专业通信工程(算是个非科班,只有一门任选课是操作系统)。
暑期实习offer:字节、网易互娱、滴滴
从大二开始接触软件,相对来说比较感兴趣,大二面试学校的实验室被吊打了,开始自学(边玩边学)。大三上开始确定不考研准备走软件,开始努力一些了。
知道今年初一初二感觉疫情不太对劲,初三从老家回到西安,问了一些学长、前辈。其中一个老哥(内推)印象很深刻,问我刷了多少题,我说二三十,他说二百再来找我把,然后开始了刷题之路。总结就是啥优势都没有,仅有一个大厂梦,每天早上起来默念三声进大厂!进大厂!进大厂!
春招经历
12月份的时候有一次在bilibili看直播,cvte的招聘中了一个直通面试绿卡,那时候啥都不知道有绿卡都直通不了面试,这算是投递的第一个简历。一月到春节前投递了几个小公司,又被吊打了(当时还不知道要准备)。年初三回来后找内推被打击以后开始努力准备。
第一次笔试是奇安信的在2月26,然后陆陆续续各种笔试,但都没有后续。
第一次面试机会是美团给的,笔试五个a了三个多一点,隔天通知面试(3.20)。3.30通知4.2二面,再无消息
下一次面试就快五月了,开始投了一些小公司,4.30面了亚信一面直接offer,给了点信心,然后又面了一个数梦工场也是一面救过了,感觉自己准备的没那么差,只是没有面试机会。
五月开始大转折,5.9滴滴日常实习一面(唯一一个没有笔试给面试机会的),和这个面试官超级聊的来,面了一个半小时,直接说他那边通过。5.14二面,面的不是很好没怎么问。
4.9网易互娱的笔试,5.12一面,两个面试官一波结束隔天oc,5.15晚上offer
5.11字节的最后一次笔试,14号通知15号面试,15号两面连着结束,当晚hr约了18号,效率这么高是因为催了催说手上offer快到期了,19号hr说可以拒绝其他面试offer了。
13号腾讯邮件笔试通过,15号晚上一面,因为有offer了就很稳发挥也相当好,没有压力的结束,后来拒了面试。
5.20字节offer下来,21就来北京了,结果27才能入职。
我是如何准备的
从年初三开始找资源,开始刷题复习写写笔记。基础以cyc大佬和guide哥为主,刷题先是无脑刷,然后开始感觉效率较低,跟着cyc大佬的leetcode分类开始刷。
刷了小一百开始刷剑指offer,刷了两遍,基本就是早上七点起床洗漱吃饭刷题,午饭加午休到两点下午复习写笔记,基础太差快速过,隔一周复习一边笔记加上每次面试前一直看几次面试后基本就非常非常熟练了。七点晚饭吃完就健身娱乐,看看书之类的,但是很多笔试都是在晚上。每一天都如此,在拿到offer前不曾出过一次小区。
基础
不管是看视频也好看博客看文章也罢,眼过千遍不如手过一边,自己整理自己的笔记看着也爽。我个人是跟着git上的两个大佬过的,必要的地方进行补充。主要是一下几点:
java 各个方面
基础琐碎的知识点,guide哥的面试题或者网上也有很多
集合:源码能看的就稍微看一看,开始看不懂去找博客,最好自己过一遍
并发:这个超级重要,JUC下面的类占很大一头,有能力最好全搞一边,搞不完挑重点,其他的了解一下问到了别直接不会,虽然不会还是有点了解的
JVM:常见的知识点到处基本都是一样的,慢慢过
单独说一下 synchronized和lock,这个花点时间重点搞一搞,面试谈个20分钟不成问题,volatile也很重点
框架最基础的AOP、IOC、SpringMVC流程等等常见的肯定要会,再多当然更加分
数据库
有空写写sql,以备不时之需,不用太多
重点就是老生常谈的索引,全面分析一边时间也不少
引擎、事务、隔离级别等常见的都要会
数据库的场景题也比较多,海量数据优化、慢查询排查之类的可以看看
网络
五层/七层起码需要会一个,稍微背一背
TCP、UDP能全面弄一下,各种都考,极其高频
HTTP、HTTPS基本也是要必备的,不求搞多深入起码常见的必须会
操作系统:基础必备,有时间尽量多准备准备,个人在这方便没有太多的学习
算法
算法其实也没啥捷径,就是刷就完事了,前期需要注意不懂各个概念就按类型刷,基本就是量变引起质变,时间不够就先刷各个经典的,没啥捷径但是超级重要,甚至决定过于不过,手撕写不出来的基本就凉凉。
项目
个人项目超级辣鸡,拿不出手的那种,单机的SSM,虽然是劣势但是稍加引导也是可以改变滴,大概讲讲以后,可以灵活的将面试官引导至自己熟悉的领域(可以BB十几二十分钟的那种),没有亮点尽量就当作一个媒介引导一下。有好项目的当我没说
注意点
以下纯属个人经验
项目不行的捋一捋逻辑,作为跳板去引导面试官,不加分起码别扣分
尽量不要说不会,好好复习的话能问到的基本都是听过的,没有深入了解的知识起码得知道一些,能说一点要比不会好的多,比如说没学过redis,消息队列那些起码得知道是干啥的
简历上写到的最好都是能侃侃而谈的,个人吃过亏,项目中写了tomcat,其实就是用过,被问源码了
个人技能展开写就是自己最熟练的
最后的问问题环节也相当重要,一定别说没问题,问问技术栈呀、公司的技术氛围呀、实习生平时做什么等等要显得自己很好学
hr面或者有些面试官一般二面或者三面是你的直输leader,也会问一些非技术问题,举几个例子
能实习多久:一般回答就半年以上,先能进再说其他的
说说你的缺点:别直接就说自己的缺点了,可以说自己还是学生没有进入过职场,缺乏经验等等,网上找找
最难忘的事、最有成就感的事等,尽量说技术相关的,没有就自己排练一下就有了
字节面经(已offer)
5.15 一面(3点开始,80分钟)
自我介绍,聊了聊学校近况
Java 集合框架,看了哪些源码,arraylist、linkedlist原理,让你实现一个 hashmap 机会如何设计(没让手写?)
线程池的执行过程、核心参数以及常用的几个线程池(感觉每次面试都会问?)
JVM 的相关知识,OOM 如何定位,说几个虚拟机指令以及虚拟机栈可能会发生什么错误,四种引用类型
Java 并发,synchronized 性能为什么提高了(锁升级过程),与 Java 的 lock 有什么区别以及使用场景
网络,输入 www.baidu.com 都会发生什么
http 报文结构,头部都有哪些字段
进程与线程,了解协程吗(大概说了下)
死锁了解吗,说一下条件,如何解决
让写一下链表实现插入方法(顺序不在这里,忘了在哪了,突然想起来了),查询效率呢,怎么优化
写个算法,给一个表达式的字符串(+-*/),算出字符串的结果,没考虑括号说了下括号的思路
问问题
面试小哥很厉害,比较有耐心。没回答上来的都给耐心讲解,引导着问问题,由浅入深体验极佳?
面完让稍等一下,十分钟后二面
5.15 二面(45分钟)
面试官看着就很厉害,在家办公感觉很忙,上来先问实习的时间以及时长,说最好半年
没有自我介绍直接开始,先是网络,TCP 三次握手四次挥手,timewait 和 closewait 具体干什么,为什么要三次两次不行吗,有大量连接处于 time_wait 的原因,TCP 是长连接还是短连接
Https 了解吗,说一下整个过程(对称加密,非对称加密),与 http 的不同点
进程线程又问了,进程间通信方式(剩下的想不起来)
数据库部分知识,手写一个 SQL (子查询 感觉主要看 group by 和 having)
算法题,最长公共连续子串
一二面顺序可能也是混乱的,记不清楚了,二面面试官感觉好忙啊,写题的时候,他就在忙着敲什么,感觉好不容易啊,一边得面试还在工作?,体验较好,部分问题也引导着问 第二天写的面经所以一二面问题可能是混乱的!
网易互娱面经(已offer)
5.12 一面(45分钟)
自我介绍
项目
直接开始网络相关的,用户登陆后,用户信息存放在哪里,服务器如何识别当前用户
讲一下 TCP 和 UDP
TCP 如何保证可靠传输,讲了一下拥塞控制、滑动窗口
实现 UDP 的可靠传输
java 基础,老生常谈的 HashMap、ConcurrentHashMap
OOM 如何排查以及优化
设计模式,具体问了单例的 DCL
反射了解吗,JDK 中具体哪里用了,优点及缺点
类加载了解吗,说完后问了有哪些操作会触发类加载
线程与进程的区别,进程间的通信方式,进程间数据共享吗,为什么?
二叉搜索树的实现,还有堆的实现,堆中插入一个数据如何保证堆还正常(往上迭代)
算法题,实现一个有 min() 方法的栈,我没用辅助栈,直接在原栈上操作(将最小值重复入栈即可)
算法题,一个数组中只有一个数是单独出现,其他都是成对,找出这个值(直接说了异或),又问能不能再简化(又说二分就行了,问了问细节)
对 Redis 熟悉吗,基础的数据结构有哪些(不啦不啦),因为说到 bitmap,问了一下布隆过滤器如何实现
场景题,模拟微信消息用什么数据结构,说了 List 和 SortedSet,具体用一个用哪个,选了 List(想着当作消息队列使用),问了下具体(说了 消息来了就 lpush,rpop),pop 以后如果还想看呢,说了 range
最后问了一下想进服务端开发还是客户端开发就完了,反问都没有?
第一次碰到两个面试官,还有点小紧张?,一直主要问另一个补充问题,总体体验还可以,就是看到两个面试官有点惊讶,隔天hr电话就来了,网易效率还是很不错的,唯一的不好的就是可能面的比较晚,平台开发岗选的服务端,但是没坑了,让考虑客户端,其他都算是一次比较好的面试体验
滴滴面经(已offer)
5.9 一面(90分钟)
自我介绍
输入后 url 后的流程说到 TCP,让讲一下 TCP 报文内容都有什么、三次握手
转到 SpringMVC 中一个请求的全部经过
如何设计过程中的各个 handler
一个请求怎么执行到具体的的方法中
平时用配置文件的方式多还是注解多(说的注解),问了 Spring 是如何找到注解类的(说的通过某个标志识别的?)。面试官突然就问反射了解吗,讲了一下后突然顿悟,反射可以获得注解信息进行注入
Spring IOC 和 AOP
数据库常用关键字,说完问了一下 explain 中的信息,多表连接相关的
数据库索引,为什么要用 B+ 树,主键索引与非主键索引(二级索引)
问项目,(本人项目及其的菜)问从中学到了什么,引入到并发相关
Java 中 Lock 相关,AQS 和 ReentrantLock 的公平锁与非公平锁的实现
synchronized 的锁升级过程,还问了问锁清除以及锁膨胀,为什么要用锁
Java 集合框架讲一下,着重问了 ConcurrentHashMap
JavaWeb 中 session 机制讲了个大概,面试官开始给我讲 session 的各种用法
问了问几个 linux 指令
手撕一个算法题,升序数组向右循环平移任意个单位,给一个 target 返回其下标(一个简单的二分撕了20分钟,太菜了?)
刚手撕完面试官掉线了,连上后问了他几个问题,但是这个面试官超级好,一步一步深入知识不会的耐心讲解,有的东西不懂可以通过生活经验去猜测。虽然没面过几次,但是这个面试官是目前碰到最好的!!!
二面忘记总结了
腾讯面经(挂)
5.15 一面(下午7:30,30分钟,投的什么岗位忘了,邮件写的运营开发)电话面
常规自我介绍
直接开始基础,先网络知识,TCP/IP 协议族说一下,说了每层的作用及部分协议
TCP 和 UDP 的区别, TCP 为什么是可靠的,从三次握手到拥塞机制、滑动窗口等都说了
操作系统了解吗,内存碎片讲一下,操作系统都是看书看的没啥印象了,就问面试官从java方面说一下可以吗,同意后说了 JVM 的回收算法,标记清除会产生碎片以及导致的后果,又问了如何解决,说了标记整理和复制算法
进程与线程的区别,Java 中线程的使用方式,线程池的核心参数以及常用的几个线程池(Executors 框架提供的),饱和策略
说说常用的数据结构,问数组链表的优缺点,红黑树构成以及和二叉搜索树的对比
说 map 的时候还问了 hashCode 相关的
开始聊天,问专业都学些什么,操作系统、网络、Java等都是如何学习的(本人通工的学校没得这些课),说到git上的大佬还问是谁?(表白一下cyc大佬、guide哥)
问问题,聊了一会部门相关的,聊我玩的游戏(曾经的网瘾少年)
(补充一下还问了数据索引,b树和hash等能记得的就这些顺序不确定?)
这个面试官比较和蔼,我讲的时候一直都是嗯嗯的回应?,感觉他超喜欢腾讯(不管在中国在世界腾讯也算是牛逼的?),迎合着舔了舔就结束了,体验较好没有一丝丝紧张感,轻松愉快中结束?
更多推荐
回复极客时间 加群 面试会有惊喜哦~
转发 点个"在看",是对和尚最大的支持