我从外包辞职了,7000小时后,走进字节跳动拿了offer
作者:互联网
前言:
没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力+幸运,但如果你不够幸运,那就只能拉高努力的占比。
2021年3月,我有幸成为了字节跳动的一名Java后端开发,正如标题所说,我从外包辞职了,7000小时后,走进字节跳动拿下了offer。相信同行都清楚,从外包进大厂有多难,运气之余,也离不开我自己的脚踏实地,所幸每踏出的一步都留下了厚厚的脚印。
下文内容涉及到:面试题(含答案)+学习笔记+电子书籍+学习视频,需要的小伙伴可以在文末获取免费领取方式!
A:字节跳动IES互娱面试经历还原(抖音后台)
<1> 字节跳动抖音4面面试题
因为我个人有复盘的习惯,所以在面试字节跳动时,基本是做到了每一轮结束就把面试题给总结出来,当然总结出来的可能跟实际情况有细微出入,但相差不大,基本上是我记忆里的极限。
Java部分:
- synchronized,lock,AtomicInteger底层原理* HashMap,ConcurrentHashMap底层结构原理* 讲讲服务注册于发现(这部分主要讲了springcloud eureka 和部分 zookeeper,zookeeper的选举机制)* Spring AOP 的实现方式,siglib 能否代理final修饰的类?* JVM垃圾回收过程,并详细讲一种垃圾回收器* 强引用,软引用,弱引用,虚引用应用场景
计算机网络:
- 拥塞控制和流量控制* 快重传和超时重传* 为什么四次挥手后客户端等2MSL* DNS解析全过程* http2.0,http3.0* https的连接过程* CA证书的验证过程* RPC框架了解吗?* 如何设计基于udp的可靠传输?* tcp如何保证数据安全性的?磁盘如何保证数据不丢的?
操作系统:
- 阻塞io和非阻塞io* 进程和线程区别,通信方式分别是什么?* 虚拟内存和物理内存* linux 按 ctrl + c 中断的原理* 协程高效在哪?
MySQL:
- Innodb,B+树,聚簇索引和非聚簇索引区别* 一千万条数据,问 b+树大概多高?* 为什么用b+树而不是 b树,红黑树?* 在设计联合索引时需要注意什么?* 联合索引最左原则的底层原理* mysql 的 MVCC 以及是否解决幻读?* 手写sql,实现一个按时间降序的分页查询* redo log,bin log,undo log
Kafka:
- kafka的rebalence* ISR* 如果新加进一个消费者会发生什么?* 如何保证数据一致性?
Redis:
- RDB和AOF区别* 为什么RDB 要 fork子进程而不是线程?* redis基本数据类型* zset的底层数据结构,跳表何时增加高度?* 分布式 redis,缓存和数据库读写不一致,答的延迟双删* 面试官让随便讲讲redis,所以还说了缓存穿透,击穿,雪崩以及处理方法
场景题和智力题:
- 打字的智能提示和纠错的原理,让你来设计,你怎么做?* 如果有一个访问过的所有网站的记录集合,如何快速判断当前网站是已经访问过?(考虑布隆过滤器)* 从一个网站下载的时候,进度条如何实现的?* 64匹马,八个赛道,问至少跑多少次能找到最快四匹马?* 操作系统给你一块空闲内存,你如何设计使用和回收?
手撕代码:
- 柱状图中矩形最大面积 leetcode 84* 查找第k小的数,用堆以外的方法做* 给m个房子涂n种颜色,相邻房子不同色,cost[i][j]表示给i号房子涂j颜色代价,求最小上色总成本。(LeetCode原题)
其他:(HR和Leader都问了一些开发性问题)
- 你认为遇到过最大的挫折是什么?怎么解决的?* 职业规划* 对字节跳动的认识* 你认为字节是一家年轻的公司吗?年轻是核心竞争力吗?* 你有没有崇拜的人* 不考虑公司地理因素,最想要去哪个城市工作?* 平时的兴趣爱好?* 喜欢写博客吗?看什么书?
赠送我的刷题题库(1:BAT一线大厂面试真题)
赠送我的刷题题库(2:专题面试题)
<2> 字节跳动面试总结(一些心得和小建议)
- 字节跳动对算法真的非常重要,提前刷题真的很有必要,不然基本上没戏,运气好的说不定还能被问到原题,当然你是算法大神,就不需要浪费时间在这上面了。
- 基本上每轮都有算法题,1~3道左右,难度不一,一般根据当次面试情况来的,会考虑的面试者的表现,但也不会太为难你。
- 拿到算法题时,不要立即作答,可以先和面试官聊一下自己的思路。
B:我为什么想要去字节跳动?(字节跳动的优势)
①福利待遇
我不是hr,也不是给字节打广告,这里真的要提一下字节跳动的福利待遇绝对是一线厂子里数一数二的。加上我是外包出身,这种待遇给我造成的落差感就更明显,让我觉得能够进字节跳动工作算是我最大的幸运了。
至于福利待遇,这里随便提及几点:
- 弹性打卡
- 房补(额度算很高了,算很人性化)
- 免费的三餐、下午茶(吃胖了)
- 免费健身房
- 顶配16寸MacBook
- 各种节日礼包
②巨大的知识库
字节跳动对于我来说,算是一个巨大的知识库,之所以这么说,从面试的流程及细节,到后来我入职之后工作上面的安排,都让我有不一样的触动。从这几方面,我们都能够感受到公司对于员工的职业规划非常重视,你的主管和导师都会主动去找你沟通这方面的,这对比我之前的外包,是截然不同的地方。而在这个交流过程中,我获得到的,不是一星半点。
最让我佩服的是,字节有统一的入口可以导航到海量的指南和知识沉淀,甚至是其他各个产品线整理的技术和业务文档等等。
③我看到了认同
来到字节,我看到了认同,收获了归属感。字节跳动虽然年轻,但在做事上有共同一致的目标,这里的人讲“字节范儿”,它不是条条框框的束缚,它是一种精神食粮,实质是一种价值认同。恰好,拥有同一种价值认同的人走到了一起。
④虽辛苦,但不感觉累
字节跳动是一家非常年轻化的公司,对于一线的互联网公司来说,996是常态,字节跳动也脱离不开“加班”二字。但是字节给我最大不同的感受是,忙碌且生机勃勃。在字节工作一段时间了,我也算是跟上了这里的节奏,虽然辛苦,但我却一点也不感觉累,因为在充实的工作环境中,我是有所收获的,在公司野蛮生长的同时,我个人也得到了快速的成长。
另外,别以为一线大厂的“打工人”只会死工作,字节人最大的特点就是年轻,他们同样会玩,每个人都有自己的爱好,骑行、狼人杀、健身、摄影、瑜伽等等,这与我之前对大厂人的印象显然不同,我也一点一点在慢慢被影响着。
⑤反思:关注工作效率
以前觉得自己的工作效率和时间管理做得还不错,至少能拿出时间做一点大家想做却没有做的事情,但现在才发现这也许只是错觉,你总做容易的事情,当然不会感觉到时间的压力,即便是项目进度比较紧的时候,加加班,搞搞996似乎也就那么回事。我们通常都会愿意延长时间,而不是考虑如何提高效率,在同样的时间内完成更多的工作,当然也有很多不言自明的客观原因。
来字节后,我才从身边同事的工作细节中看到了什么才是“效率”。
C:八年积累经验分享
首先如何准备面试?
1、准备简历(敲门砖,不会包装简历的程序员只能去外包)
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
2、了解面试公司,做好功课,知道问什么
对一线互联网大厂的面试点,我也做了以下总结:
- 阿里巴巴、百度、腾讯
- 字节跳动、美团、京东
3、梳理知识体系,学会举一反三
实际上,梳理知识体系是最简单的事,但很多开发小白总是一头雾水,实际上从第二点的大厂面试点就可以总结梳理出来我们应该要学什么,要掌握什么,通常我的方法是“大厂面试点”+“工作年限”来梳理自己接下来的学习及发展路线图。
之后,就需要根据路线图上的重点去进行有针对性的学习,在学习过程中,学会举一反三,学会写笔记,做总结。
这里我分享我个人的一些笔记内容吧:
说明:本文限于篇幅,故而只展示部分的文档截图,完整的Java学习文档我已经帮你们整理好了,有需要的朋友文末有领取方式!
Java从入门到架构成长笔记目录
新手村—入门到开发半年(吃透12K+起步)
Java基础篇: 基础语法+集合+异常+反射+IO+TCP+多线程
Java web篇: MySQL数据库+JDBC+Servlet
三大框架篇: Spring+SpringMVC+MyBatis+商城实战项目
SpringBoot+SpringCloud分布式开发篇: 微服务入门+实战
项目经验篇: 秒杀系统设计+SpringBoot商城实战
Java基础篇
三大框架篇
项目经验篇(秒杀+SpringBoot实战)
打怪升级第一步—开发1到3年
Java并发编程底层篇: 并发基础+JMM+线程池+阻塞队列+并发集合+并发工具类+锁+atomic
JVM与性能调优篇: 内存区域+垃圾回收器和内存分配策略+类加载机制+调优
网络编程篇: TCP/HTTP+Netty+多路复用
SQL调优篇: SQL优化原则+锁+索引+调优+事务+执行计划
Tomcat底层篇: 架构+基础+调优+集群+安全
设计模式篇: 六大原则+23种设计模式
Spring源码篇: IOC+AOP+声明事务源码解读
MyBatis源码篇: MyBaits源码架构分析+MyBaits核心模块分析+二级缓存
并发编程篇
JVM及调优篇
网络编程篇
MySQL调优篇
设计模式篇
Spring源码篇
MyBatis源码篇
打怪升级第二步:4-5年资深高开
分布式思维基础: 大型互联网架构演进过程+架构师应具备的分布式知识+主流分布式架构设计详解
分布式监控: Zookeeper+Nginx
分布式消息队列: RabbitMQ+RocketMQ+Kafka
分布式存储: Redis+MongDB+Mycat
分布式监控
消息队列
分布式存储
打怪升级第三步:5到7年架构进阶
微服务架构进阶: Docker+SpringCloud+Spring Cloud Alibaba+K8S
亿级流量性能调优实战: 调优基础+基础代码性能优化+设计模式与性能+并发编程性能优化+JVM深度调优+数据库性能调优
一线大厂分布式场景实战: 分布式事务解决方案+一线大厂单点登陆方案+分布式任务调度方案+高并发场景下分布锁方案+缓存解决方案
性能调优实战笔记
大厂分布式场景实战笔记
以上《JAVA核心知识点总结》我已经全部为大家打包准备好了,希望对正在学习的你有所帮助!我的不少粉丝也因此同样拿到腾讯字节快手offer~
需要以上全部资料的小伙伴,可以一键三连,下方获取免费领取方式!
标签:Java,字节,offer,面试,跳动,大厂,7000,分布式 来源: https://blog.csdn.net/Javachichi/article/details/118551689