4面字节跳动拿到2-2Offer,入职就是30K16薪,全靠这份PDF

image

前言

当你开始开始去跳槽面试的时候,明明只是一份15K的工作,却问你会不会多线程,懂不懂高并发,火箭造得让你猝及不防,结果就是凉凉;现如今市场,多线程、高并发编程、分布式、负载均衡、集群等可以说是现在高级后端开发求职的必备技能。

image.png

早期的鸟儿有虫吃,现如今做开发的门槛越来越高

但是,术业有专攻,总有一些技术牛逼的程序员可以吊打、碾压面试官!

本人经常隔段时间就偷偷投点简历,请假出去面试几次,目的不是想跳槽,主要是为了看看市场上的技术流行趋势,顺便检验一下自己的水平,当然,如果面到了心仪的公司或者大厂,那不是更好嘛,哈哈哈!

前段时间收到了字节跳动的面试,虽然有点小震惊,但还是用平常心对待了。结果一不小心,面试的时候就吊打了面试官。

前后一个半小时的面试过程全程没卡壳,项目和算法全部搞定,甚至聊到了面试官的盲点…

image

结果……当然是顺利的接到了字节跳动的Offer,定级为2-2资深研发人员。

image.png

个人经历

其实我有好长一段时间没有正规的面试过了。三年前从数云换到GIO的时候,因为简历上的相关技术太过于匹配,所以基本上就和CTO聊了聊就确定过去了;后来在回数云的时候,也就和总监喝了一下咖啡就回来了。也就是大约5年的时间里面,我没有正规地接受过面试。

所以在准备投字节跳动之前,我投了几个公司做了一下热身活动。记住,这个时候其实不需要有啥心理包袱。因为本身候选人面试成功的可能性比较低,一个合适的可以面试的人选他们也很乐意看看,而且万一你确实想换工作,但是心仪的公司面不上,而热身活动的公司拿到了offer,你也可以考虑考虑去看下。并且这个时候你没有任何的心理包袱,因为反正你也就是来面试看看的,所以面试时候的发挥可能也会更好点,因此说不定最终拿的offer会比最后想去的那家更好呢?

面试准备

老实说,我自己平常没事就会看一些面试题,所以我都是直接去面的(当然过程也非常惨)。

建议大家如果准备面试的话,需要做以下准备

  1. 背题 看一看最近的面经文,了解现在公司都在面什么类型的题,准备一些常见题,开背吧!如果一些基础的 js 都不会那问题就有点小大了。
  2. 算法 做一些算法题,leetcode 上面的一二三星就够了,前端算法很简单,基本都是初中数学的难度吧。
  3. 项目 项目回顾,把你做的项目从技术架构到源码都要做到足够了解,至少面试的时候不要被面试官问住了。并且要体现出你在工作中的作用,体现出自驱性。(大公司都很看重自驱性)。
  4. 亮点 准备亮点,回答问题的时候不用全部回答上来,但是在面试的过程中一定要有亮点(不然你就会得到反馈,面试官说你还行,但是没有过~) 我一般会准备几个点,每个点都保证可以说上半小时。另外一定要了解的很深入,并且能够用自己的话流畅的表达出来!!(我准备的几点,性能优化、工程化、缓存、http)
  5. 内推 最好找人内推,成功率会提高一些
  6. 练手 先找几家不太想去的公司(规模差不多)练练手,如果第一次面试就去心仪的公司面试,淘汰率会非常高。
  7. 心态 心态很重要,面试不过很正常,不证明你不优秀,只是不适合,总结面试经验,为下一次做准备。

如何回答问题?

怎么把自己会的问题说好,这个很关键

  1. 逻辑清晰 一定要逻辑清晰,不然即使你知道这个问题的答案,面试官也不会满意,如果你逻辑清晰,即使这个答案不会,面试官也会给你加分。
  2. 独特理解 现在的面试题大同小异,那么如何体现出你的优势就很重要。结合业务以及你自身的知识储备来讲。
  3. 深入思考 对每个问题一定要有深入的思考,不然就很难进入大公司了,深度上要有一个拔高才能在面试中获得好的成绩
  4. 流畅表达 面试就是一个表达的过程,一些问题心里明白不行,还要流畅的表述出来,基本上如果面试官觉得你表达的很流畅,当你讲到一半就不会再让你说下去了,证明已经通过了

还能记住的面试题

  • 手写继承
  • instanceof 实现原理
  • promise 限制并发数
  • 箭头函数跟普通函数的区别
  • flex 1 全写
  • vue 双向绑定原理
  • https 实现原理(越详细越好)
  • node 进程之间如何通讯
  • graghgl 如何优化请求速度
  • node 跟浏览器的 event loop 区别
  • 浏览器渲染页面过程
  • 如何性能优化
  • CDN 优化有哪些
  • webpack 插件原理,如何写一个插件
  • 缓存有哪些,区别是什么
  • 手写 bind、reduce
  • 防抖截流
  • 遍历树,求树的最大层数。求某层最多的节点数
  • node 开启进程的方法有哪些,区别是什么
  • node 如何部署的
  • node check 阶段做了什么,触发了什么事件
  • 前端模块化的理解
  • node 如何处理错误的
  • 隐式转换
  • 数字在计算机怎么储存的
  • webpack 优化
  • webpack 的 require 是如何查找依赖的
  • webpack 如何实现动态加载
  • 给你一个项目,从头开始你怎么考虑
  • 工作流做了哪些事情
  • 如何提升效率与性能
  • 未来的规划是什么
  • 跨域有哪些
  • 网络安全
  • 链表与数组的区别
  • 变量提升 let const var 区别
  • 链表如何遍历
  • script 标签中 async 跟 defer 的区别

刷题当然也是最重要的,毕竟我是有好几年没有过正规面试的经历了,于是问我在阿里的同学要来了一份他们公司P8整理的一系列大厂面试题,刷到天昏地暗,如今我也已经入职了字节跳动,这些面试题对于我来说也没什么太大的用处,所以在这里无偿的分享给大家,资料获取方式:点击链接《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

image

字节跳动面试经历

字节跳动一面

首先自我介绍,balabala……(此处省略三分钟)

1、找一个你的项目说一下,首先你的项目介绍,承担了什么职责,做了哪些工作,难点

因人而异,这就不再赘述了,balabal……(省略三分钟)

2、从你项目中看出,你使用的是mysql,mysql的int数据类型都有哪些?从小到大说一下,各占多少字节?

3、java中的int都有哪些?字节占多少

4、问你一个关于计算机网络的,tcp的三次握手说一下?

5、tcp和udp的区别

6、你说你熟悉linux,我给你一个案例,搜索出log文本中出现次数最多的IP,并且给出次数

7、说下java的gc

8、说一下hashmap这个数据结构

9、进行一次查找的话haspmap的时间复杂度是多少

10、给你一个算法你看一下,有一个无限长的整型数组,从小到大排序,非递增。那么怎么找到数组中一个key

闲聊

之后就问了我最近看了哪本书,学到了什么,最近还在学的什么技术呢?问了我职业规划,兴趣爱好,还说了说公司的语言选型,我后来问了下对于我的面试表现评价,人家不方便说,又问了新人培养等问题。

字节跳动二面

自我介绍

balabla

1.然后说一说mysql的索引结构吧

2.看一道题吧,这个题怎么建立索引

mysql订单表有几个属性:订单id,用户user_id、下单日期date(精确到天)等,请问索引怎样建立

a. 查询某个用户的所有订单

b. 查询某一天的所有订单

c. 查询某一天某个用户的所有订单

看第二道题

10G文件,每一行一个 uint32 数字。有一台1G内存的机器

  • A. 找出最大的 k 个数

  • B. 找出重复数字

第三道题

我手中有一堆扑克牌, 但是观众不知道它的顺序。

第一步, 我从牌顶拿出一张牌, 放到桌子上。

第二步, 我从牌顶再拿一张牌, 放在手上牌的底部。

第三步, 重复第一/二步的操作, 直到我手中所有的牌都放到了桌子上。

最后, 观众可以看到桌子上牌的顺序是:13\12\11\10\9\8\7\6\5\4\3\2\1 请问, 我刚开始拿在手里的牌的顺序是什么?用代码实现以下

字节跳动三面

这个面试官应该是一个总监级别的,说话非常的硬气,肯定是一个资深大佬,一共面了40多分钟。常规的面试基础都没问,纯怼项目和算法了。

1. 自我介绍

balbala

2. 你觉得你目前遇到的困难有哪些?项目上的难点?

3. 你的项目数据库多大?QPS多少?哪些sql比较慢?

项目上的事我就不说了……balaba

4. 那你觉得以后qps更大的话,你该怎么设计?

5.给你一个算法题,你来看一下思路

那留两分钟咱们聊一聊,你有什么想问我的

balabala

四面(HR面,大约35分钟,主要是问个人职业规划、薪资待遇,以及对字节跳动的期许等等)

Java核心知识点

面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Java核心的知识点,看一些面试的博客吸取大家面试的一些经验,下面这份PDF是我翻阅了差不多1个月左右一些Java大博主的博客从他们那里取其精华去其糟泊所整理出来的一些Java的核心知识点,全部都是精华中的精华,我能面试到现在2-2资深开发人员跟我整理的这本Java核心知识点有密不可分的关系,在这里本着共赢的心态分享给各位朋友。

image

这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,spring原理,微服务,netty与RPC,网络,日志,zookeeper,kafka,rabbitMQ,hbase,mongoDB,cassandra,设计模式,负载均衡,数据库,一致性算法,Java算法,数据结构,加密算法,分布式缓存,Hadoop,spark,storm,YARN,机器算法,云计算。

如何获得这份优质的资料呢?

快速领取通道:点这里免费获取!诚意满满!!!

Java面试精选题、架构实战文档传送门:https://jq.qq.com/?_wv=1027&k=iWJZw1rp

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

放在最后

总的来说,自己如果有想要去的大公司,一定要提升好自己,让自己的能力和素质与公司匹配的上,我也一直相信,**机会永远是留给有准备的人。**无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

以上学习资料均免费放送,最后祝愿各位身体健康,顺利拿到心仪的offer!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值