大家好,我是阿秀。
最近很开心鸭,因为不少粉丝朋友都来找我报喜,真心替他们感到高兴!
有通过自己的努力艰难爬坑社招去长沙多益做游戏开发的,也有校招实习去腾讯 WXG 部门的,还有去字节抖音的,真的太牛逼了。
“不会有人真的不想去鹅厂吧?而且还是腾讯 WXG 部门...
最让我印象深刻的莫过于这位粉丝朋友了,他跟我报喜的时候我跟他聊了很多。
他跟我一样,是一位普通双非学校的学生,大一一年还去搞硬件了,大二才开始学习准备软件开发的知识。
认真苦学一年半,终得正果!
恭喜这个逼!下面来看他的故事!
字节:安全与风控部门
腾讯:CSIG 腾讯云部门
目前状态:字节 offer 审批中,腾讯 HR 面已过
本人就读于某双非大学,现计科大三。
大一时一直在学嵌入式做小车,从大二开始接触 Java,突然对 Java 很感兴趣,所以想学一下相关的技术。算起来,应该是疫情那个假期正式开始起步学的。
其实我在刚上大学的时候就下定决定毕业出去工作,没有打算考研。大一的时候听到实验室的学长年薪 15W 就傻了,已经刷新了我对大学生薪水的认知;大二时带我的助班去了华为工作,年薪居然有 30W 之多,这更加让我目瞪口呆。
大二自学的时候仅仅是想着能多学一点以后工资可能就会高一点,从来没有想过进大厂这种遥不可及的事。
“对于我这种普通学校的学生而言,毕业后能有一份不错的工作就很满意了。
这里也很感谢阿秀哥指导我 HR 面,让我提前知道 HR 面大概会考察哪些知识点,提前有了 准备!
我也是大二开始有计划地开始刷 leetcode。先刷一年简单题,是的整整一年,我刷的很慢,但每道题都是我自己亲手解出来的,并且在这一年里也学了许多后端的技术知识。
leetcode到目前为止刷了350+大三上学期开始刷 middle 和 hard ,开始看源码和一些经典书籍去深入了解知识,系统性的点亮自己的技能树。
也不知道从什么时候开始有了想去大厂的念头,也许是实验室的一次聚会上谈到每个人的规划时,学长对我说我准备了这么久可以去冲一下大厂。
这句话打动了我。
是呀,我做了这么多准备,小公司也用不上,何必不试一下大厂?试一下又不会掉块肉。
然后我开始疯狂地查缺补漏,去年寒假在家时只有除夕和大年初一没有学习,其它时间每天都在学习、做项目、刷题,有时候做梦都能梦到自己在和面试官对话哈哈。
能通过这几轮面试,有很大的运气成分,因为我还有许多东西没有学,比如 Redis 的源码、Kafka 和 K8S 之类的。
Java 方面倒是准备挺多的,什么源码、多线程、微服务框架都有去准备,可惜字节和腾讯的面试都不怎么问我Java,2333
CSIG一面
自我介绍
部门主要是Python和Golang,进来转语言有没有问题?
上次一面为什么挂?说说上次面试没回答上来的问题
10000个数,小顶堆思路 找前 100 个和找前 1000 个 的时间复杂度有什么区别?
系统中死循环如何定位?
如果是项目运行中呢?
进程、线程、协程?
TCP三次握手、四次挥手?
介绍一下简历的项目
中途打断,为什么要用定时同步任务?
为什么想到用LRU设计商品推荐?
LRU有什么缺点?
有了解过LFU吗?
点赞是如何设计的?
如果用户量很多,你会怎么设计点赞?
就比如说用别的方案,比如用rabbitMQ?(给了个不太好的方案)
这是最基础的方案,优化一下,如何减少对数据库的访问?(给了个好一点的方案)
考虑一下在MQ后面做处理?(突然领悟)
redis了解吗?redis有哪些地方可能是你以后做项目会用到或者借鉴的?
有了解过设计模式吗?介绍一下工厂模式?
介绍一下秒杀项目?
讲了一下秒杀的逻辑,从前端到后端再到数据库
细问商品库存校验的实现(如何防止超卖)
为什么要加rabbitMQ?
为什么不用其它MQ?比如RocketMQ,Kafka?
MySQL了解吗?说一下MySQL索引?
假如有一个非唯一索引,它是如何访问到数据的?
反问
CSIG二面
自我介绍
后端哪些方面学得比较好
MySQL学生选课系统表的设计
MySQL主键和唯一键的区别
有做过数据库性能调优吗
一条SQL语句执行慢是为什么
什么情况下会出现死锁?具体一些?
上一个问题我有提到间隙锁,面试官突然问我,你说什么锁?我:间隙锁....
间隙锁是什么锁?(我不知道面试官是真的不懂还是故意问的)
在编程过程中如何避免死锁(这回不能答八股文的死锁避免了)
场景题:你和另一个用户同时登录网站去修改一个数据,如何避免覆盖修改(或者是修改丢失)
哪个语言比较擅长
实现一个HashMap,口述思路
hashcode和equals在什么时候需要重写
使用Java的时候用什么组件操作数据库
MyBatis和其它的相比有什么优势
MyBatis底层是如何管理Connection的
你觉得你的优势是什么
你的主动性如何
你的责任心如何
假如团队中有个别成员的进度没有达到预期,你会怎么处理
字节一面
进程和线程的区别
进程被分配哪些资源
线程同步机制
线程共享哪些资源
线程独占哪些资源
程序计数器的作用
进程和线程的调度区别
进程常见的状态
阻塞态能直接到运行态吗
就绪态到运行态的条件(上一个进程时间片用完,本进程被系统调度)
解释一下 LRU
让你实现 LRU 你怎么实现
LRU 各个操作的时间复杂度
计网七层模型、五层模型、四层模型
五层模型中各个层都有哪些协议,简单描述
FTP 是什么协议
TCP 和 UDP的区别
三次握手、四次挥手
为什么是三次握手、四次挥手
MySQL 的索引是什么
使用 B+ 树有什么优点
B+ 树和 B 树相比较
B+ 树的叶子结点存放数据有什么好处
设计题,先说思路再写代码:
已知一天内用户登录登出的日志(数据量较大),求这一天用户在线的最大峰值。
日志包含字段(userid, login_time, logout_time),登录登出时间精确到秒。
字节二面
二面面试官果然像传说中的那样没有一面面试官那么严肃~
自我介绍
项目中JWT的作用
token和cookie的区别
进程和线程的区别与调度
假如有一段程序,只有main函数,也没有fork之类的操作,它跑起来的时候系统是几个进程几个线程?
进程之间如何通信
写两个代码:1、剑指offer30 的变形题 2、剑指offer13 两题很快秒了,继续问问题
项目中的定时任务具体实现逻辑以及功能
当场优化项目中的某个功能,允许去查阅资料(之前说过这个功能设计得不太好)
Redis的几种数据结构
Redis的容灾方案(持久化+集群)
定时持久化数据会有什么问题?(其实是想问RDB的缺点)
AOF模式下,机器宕机之后如何恢复数据?
关系型数据库的事务要保证什么(四大特性)
细说事务隔离级别
口述思路:删除单链表倒数第k个节点(还是剑指offer!)
秒给思路,随后追问:思路有什么问题?
如果链表有环?
僵尸进程以及带来的问题?
僵尸进程中子进程未释放的具体是什么资源?
近期的学习规划、打算
反问
字节三面
没有自我介绍,上来直接开始
现在读大三是吗?
以前去实习过吗?
你的项目里用到了 RateLimiter 限流,你用代码实现一下?(我的内心:What......)我说:我只是简单地用过,但是没有去研究过它的底层原理
说一下 RateLimiter 的工作原理?
RateLimiter 写不了是吧,那写一个代码,输入的是一个代码段,用字符串表示,输入的代码里面会有一些注释,输出去掉所有注释之后的代码
写了50分钟,面试官给的最后一个输入没跑通,然后说时间关系,今天就写到这儿了,让我下去可以再看看代码
写代码是因为感兴趣吗?
你觉得你和其他同学相比写代码的能力怎么样?
怎么证明?(证明上一个问题的回答)
以前打过ACM是吗?(只参加过一次而已)
反问
字节HR面
自我介绍
高考之后为什么选择现在的这个学校?
第一志愿学校是什么
深圳这边夏天也很热,能否适应
对计算机专业的理解
对计算机感兴趣吗
怎么想到做简历上的这个项目
项目团队有几个人
团队有没有组长或负责人
从项目中收获了什么
遇到了问题怎么解决
有没有遇到过解决不了的问题,后来怎么办
开发时和同学有意见冲突怎么办
有没有投递别的互联网公司
为什么想来字节跳动
对字节跳动的了解,评价一下
来字节实习想收获什么
平时怎么学习
毕业前/后的规划
为什么不考研
评价一下自己,优缺点
什么时候能来,能实习多久
实习期间要不要兼顾学校课程
有人可能会担心普通本科进不了大厂,没有 211 以上的学历加成之类的。
我想说的是,可能你没有别人学校好,但你就不去尝试了吗?这条路是很难,可再难,也有人上岸了啊。
NBA已故球星科比的名言就很好:总有人要赢得,为什么不能是我呢?
对啊,总有人要上岸的,为什么不能是你呢?对吧!
---END---
你好,我是阿秀,毕业于双非学校,校招时拿下字节跳动SP、华为、百度等6个offer,现于抖音部门担任全栈开发工程师。
一路走来,很累也很不容易,希望能帮助到更多像我一样的普通学校的学生,我踩的坑不希望你再踩,我走过的路希望你照着走下来。公众号后台回复「宝贝」,送你一个宝贝!