我从外包辞职了,10000小时后,走进字节跳动拿了offer

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力+幸运,但如果你不够幸运,那就只能拉高努力的占比。

前言:

没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力+幸运,但如果你不够幸运,那就只能拉高努力的占比。

2020年7月,我有幸成为了字节跳动的一名Java后端开发,正如标题所说,我从外包辞职了,10000小时后,走进字节跳动拿下了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. 字节跳动对算法真的非常重要,提前刷题真的很有必要,不然基本上没戏,运气好的说不定还能被问到原题,当然你是算法大神,就不需要浪费时间在这上面了。
  2. 基本上每轮都有算法题,1~3道左右,难度不一,一般根据当次面试情况来的,会考虑的面试者的表现,但也不会太为难你。
  3. 拿到算法题时,不要立即作答,可以先和面试官聊一下自己的思路。

B:我为什么想要去字节跳动?(字节跳动的优势)

①福利待遇

我不是hr,也不是给字节打广告,这里真的要提一下字节跳动的福利待遇绝对是一线厂子里数一数二的。加上我是外包出身,这种待遇给我造成的落差感就更明显,让我觉得能够进字节跳动工作算是我最大的幸运了。

至于福利待遇,这里随便提及几点:

  1. 弹性打卡
  2. 房补(额度算很高了,算很人性化)
  3. 免费的三餐、下午茶(吃胖了)
  4. 免费健身房
  5. 顶配16寸MacBook
  6. 各种节日礼包

②巨大的知识库

字节跳动对于我来说,算是一个巨大的知识库,之所以这么说,从面试的流程及细节,到后来我入职之后工作上面的安排,都让我有不一样的触动。从这几方面,我们都能够感受到公司对于员工的职业规划非常重视,你的主管和导师都会主动去找你沟通这方面的,这对比我之前的外包,是截然不同的地方。而在这个交流过程中,我获得到的,不是一星半点。

最让我佩服的是,字节有统一的入口可以导航到海量的指南和知识沉淀,甚至是其他各个产品线整理的技术和业务文档等等。

③我看到了认同

来到字节,我看到了认同,收获了归属感。字节跳动虽然年轻,但在做事上有共同一致的目标,这里的人讲“字节范儿”,它不是条条框框的束缚,它是一种精神食粮,实质是一种价值认同。恰好,拥有同一种价值认同的人走到了一起。

④虽辛苦,但不感觉累

字节跳动是一家非常年轻化的公司,对于一线的互联网公司来说,996是常态,字节跳动也脱离不开“加班”二字。但是字节给我最大不同的感受是,忙碌且生机勃勃。在字节工作一段时间了,我也算是跟上了这里的节奏,虽然辛苦,但我却一点也不感觉累,因为在充实的工作环境中,我是有所收获的,在公司野蛮生长的同时,我个人也得到了快速的成长。

另外,别以为一线大厂的“打工人”只会死工作,字节人最大的特点就是年轻,他们同样会玩,每个人都有自己的爱好,骑行、狼人杀、健身、摄影、瑜伽等等,这与我之前对大厂人的印象显然不同,我也一点一点在慢慢被影响着。

⑤反思:关注工作效率

以前觉得自己的工作效率和时间管理做得还不错,至少能拿出时间做一点大家想做却没有做的事情,但现在才发现这也许只是错觉,你总做容易的事情,当然不会感觉到时间的压力,即便是项目进度比较紧的时候,加加班,搞搞996似乎也就那么回事。我们通常都会愿意延长时间,而不是考虑如何提高效率,在同样的时间内完成更多的工作,当然也有很多不言自明的客观原因。

来字节后,我才从身边同事的工作细节中看到了什么才是“效率”。

C:外包教了我什么?(积累了什么?)

很多人认为在外包学不到什么东西,但我却不这么认为,无论你身处什么环境,造成什么样结果的人都是你自己。所以,在外包工作的这些年,我并不是单一的机械化敲代码,在这个过程中,我会主动地去复盘,去总结,去学习,而慢慢积累的工作方式才铸就了我今天的“质变”。

在外包中,我积累到了什么?

  1. 代码效率;
  2. 各种项目和业务的理解;
  3. 熟练使用增删改查。

在外包中,我复盘了什么?做了哪些总结?(写了一些博客,做了一些笔记总结,附下PDF)

  • Java架构成长笔记

  • Redis核心技术笔记(学习总结)

  • Spring全家桶学习笔记(SpringBoot+SpringMVC+SpringCloud+源码等)

  • 其它

D:下一个3年如何规划?

1.确定发展方向

程序员生涯大致分为五个阶段:

  • 第一阶段:2-3年,初级程序员
  • 第二阶段:3-5年,中级程序员
  • 第三阶段:4-7年,高级程序员
  • 第四阶段:5-8年,互联网架构师,大数据工程师
  • 第五阶段:8年+,技术总监,技术主管,首席架构师

目前,我处于第二阶段,有一定的工作经验,可以独立做一些项目,也有自己的代码习惯,甚至在团队中我也可以担任重要的角色。而日后的1-2年内,我肯定是要往三阶段过渡,甚至是四阶段过渡。

2.梳理学习路线

想要快速成长,一条合理且正确的学习路线才是最为重要的,所以梳理学习路线,是我目前学习上最重要的事情。(个人梳理的学习路线图如下)

目标:能够独当一面,在专业领域具备辅导他人的能力

学习内容:并发编程与JVM实战+缓存中间件+消息中间件+搜索中间件+高并发+高可用+搞扩展+网络通信与协议+分布式与微服务+分布式权限控制+微服务熔断降级与限流+微服务链路追踪+底层&源码深入解读+一线大厂分布式场景实战

3.学习方法

我个人的学习方法很简单,利用碎片时间进行系统性的学习。关于学习方法,我个人喜欢阅读书籍文档结合视频的方式,对于这些我自己个人也有一些整理。

  • 阅读书籍文档:

  • 看视频学习:

结尾:未来愿景及祝福

我知道,对于一些学历没有优势的人来说,外包是别无选择,但是未来的路究竟要怎么走,取决你的步子迈多开。每个人都有自己的选择,如果你喜欢稳定,那按部就班适合你,但你有想法,不甘平庸,那就别让外包埋没了你。

最后,希望未来的我发展顺利,早日拿下p7!同样,也祝愿你实现自己的人生理想,愿我们都越来越好,共勉!

友情分享:文章码字不容易,希望多多点赞+转发+评论支持一波。

需要文章中提到的面试题、笔记、电子书、学习视频,可以点击此处来获取就可以了!


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
算法 Java 关系型数据库
2年5个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。
|
6月前
|
消息中间件 NoSQL Java
经验分享:春招零Offer,5月份还有机会吗?
先说答案:**5 月份依然有拿到 Offer 的机会**。 ## 5月份春招结束了吗? - 对于应届大学生来说(也就是今年暑假毕业的学生),**5 月中旬春招就陆续结束了,但是 5 月份会有很多补录的机会**。 - 对于非应届的大学生来说(今年之后毕业的学生)来说,**5 月和 6 月正是在暑假最好的时机,尤其是 6 月份会有大量的暑假实习岗的招聘需求**。 - 对于社招的同学来说,5 月份之后岗位招聘的需求,相比于前两个月会有一个明显的减少,但依然会有招聘的需求,这就好比去景区旅游的人一样,节假日一定是最多的,但非节假日也会有一些人去逛。 ## 为什么会有补录? 因为有一些人可能拿到了很多
42 1
|
6月前
|
消息中间件 NoSQL Java
四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年
每个程序员都有一个大厂的梦,而互联网大厂首当其冲自然是阿里巴巴最吃香,今天小编就来分享一个小伙进阿里巴巴的面经!
四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年
|
6月前
|
消息中间件 算法 NoSQL
两年CRUD,二本毕业,备战两个月面试阿里,侥幸拿下offer定级P6
本文素材来自一位关注我一年多的铁粉 对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了阿里P6岗。今天分享这波面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!
两年CRUD,二本毕业,备战两个月面试阿里,侥幸拿下offer定级P6
|
6月前
|
设计模式 Dubbo Java
渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer
渣本一枚,杭州某大学读大四,学校背景还可以,因为在杭州读书,所以对阿里还是比较崇拜的,大二的时候就已经立志要去阿里实习,所以很早就开始准备了。这次面试了阿里妈妈,共耗费了33天的精力,最终拿下了实习岗offer,现分享一波我自己的面经和感受,希望能够帮助同龄人。
|
6月前
|
NoSQL 算法 关系型数据库
入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)
先说一下自己的个人情况,18届应届生,通过校招进入到了蘑菇街,然后一待就待了差不多2年多的时间,可惜的是今年4月份受疫情影响遇到了大裁员,而我也是其中一员。好在早有预感,提前做了准备,之前一直想去字节跳动,年前就已经在做准备了,这场持久战拉得很长,也最终以7个月的时间取得胜利。在踏入字节跳动,办理入职手续的那一天,作为一个男子汉,确实是落泪了。特分享一波我的真实经历,共勉。
|
6月前
|
算法 NoSQL Java
四面美团开发岗,成功斩获offer,原来定级T3-2也并不是那么难
叮铃铃......晚上9:00这次没放我鸽子,电话声响起。告诉我明早可以去面试了。 第二天早早的收拾好,提前半个小时到达面试地点,面试也如约开始了。
四面美团开发岗,成功斩获offer,原来定级T3-2也并不是那么难
|
6月前
|
设计模式 算法 NoSQL
Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕
目前互联网行业形势越来越严峻,我接连投递了很多的简历,得到的回复却是寥寥无几,索性好好复习了大概一个半月的样子,挑战字节跳动成功!!接下来分享我在字节面试遇到的面试题,欢迎大家文末留言与我一起讨论!
|
6月前
|
消息中间件 NoSQL Java
为了阿里巴巴的P7offer,我筹备了半年,四面之后终于成功拿下
大厂是每一个程序员的梦想,在这些互联网的大厂里面又属阿里巴巴最吃香,今天小编就来分享一个小伙进阿里巴巴的面经!
|
6月前
|
缓存 前端开发 安全
华为社招三面面经分享,现已拿到offer,定级D4对标17级
一面:(面试均是华为的开发,每轮面试完都有反问你想了解的) 修饰符和可见性 抽象类抽象方法 synchronized,volatile 一些java类型相关的基础知识,比如springbuilder和springbuffer哪个线程安全 为什么要使用spring(就是问优点吧) spring的依赖注入 spring加载顺序