vlambda博客
学习文章列表

字节跳动待遇与后端开发面试经验


字节薪资实在是保密信息,打个擦边球,大家可以自己做个推算!

研发真的是互联网公司的天之骄子部门,这句话的意思就是工资高于其他部门,尤其是层级低的岗位,轻轻松松拉开3倍是完全没有问题的,一般到了高层级这种因为工种的差距才会逐渐缩短。多高的层级呢,对标阿里P8以上的水平,工资基本才会在各个业务线拉起,否则职能等支持类的会低很多,但是看了互联网公司的研发人员比例一般也就10%-30%,所以说研发的公司是无法代表全公司水平,但是确实是凭实力拉高了全公司的水平

举个例子,一般实习生的工资应该是150元一天,但是研发那边应该在400起。

广泛的说下互联网研发的薪资情况:

研发这个词其实很广泛,比如说测试,前端,后端,服务端,架构,数据,AI,等等,有的还会把产品经理这些也算上,这里面的工资也是有差距的,而且你的研究水平也不同,薪资差距会是极高的。比如说百度华为美 团:一般水平,star,super star,supersuper star,这里面就是大家会看到为什么应届生 研发会出现30W到甚至200W不等的薪资包。

最后再回到那句话,你的薪资到底包括哪些部分,是纯到手现金吗?还是包括了 【基本薪资+年终奖+应届生安家费+不一定兑现的期权】 , 研发经常会弄个安家费出来,少则两三万,多则一二十万,这点国内互联网和硅谷倒是学的很快,另外就是送期权股票这个事q情,硅谷那几个公司,你好好看看,亚马逊 ,苹果这些公司的股价长期持有都是在增值的呀!所以说这会成为薪资里面非常重要的部分。


其实薪资包括的内容不仅仅是工资呀,还有:

  1. 节假日
  2. 股票期权
  3. 健身餐饮等福利
  4. 是否有额外奖金
  5. 员工内购福利
  6. 节假日礼物
  7. 商业保险,五险一金
  8. 北京地区1500的就近房补
  9. 加班打车费
  10. 工作时长

怎么评价字节呢,1和2因人而异,不过比起外企和国企假期是少的可怜,10的话大部分岗位有大小周,而且上班基本006吧。其他的3-7项全都有。所以这样算下来竞争力肯定是有的,就餐饮和零食下午茶每个月相当于2000吧,健身按摩那些福利全年算下来省下5千-1万是可以的。还有房补,这些福利算下来一年妥妥的省3-4万。

我反正是会把所有税后收入和福利加起来,然后算一个时薪,差不多是60元吧!供参考

总之还是看个人诉求,单身年轻人绝对是好去处,有家庭的还是三思,毕竟上班时间真的会占据你生活的大部分。觉得福利还不错就扫码投简历吧

本科某末流985,硕士某C9,都是 软件工程,学的很一般,没有实习经历,没有项目经历(只有在学校做的课程设计大项目,也用到了一些分布式组件和框架),不过自我感觉编码能力还行。

面试相关信息:

2月17投简历,2月20约面试,约在2月24一面;2月27打电话约二面,约在3月3号。3月4号hr打电话聊了一些情况。然后就发了offer。(面试过程极慢,发offer还蛮快的)

第一面:

1.算法:快排

大概5分钟

2.算法:二叉树的前序遍历非递归

开始没仔细看题目,写了个递归的(1分钟),然后面试官尴尬一笑,我赶紧改成非递归了

3.算法:二叉树的后序遍历非递归

大概说了一下,没让我写

4.算法:求数组的最长连续递增数列,如:4, 200, 3, 1, 100, 2。结果是1 2 3 4,也就是说顺序可以打乱。

这道题之前面试官问我学没学过动态规划,我说刷题的时候自己学过,怕他出的太难,我说只会做简单的,然后他出了这题。

我的思路是先排序,然后从前往后,if(array[i]-array[i-1]==1) then dp[i]=dp[i-1]+1; else dp[i]=1。说实话,我感觉这题拍完序就跟动态规划没什么关系了......

他问我复杂度,我说nlogn吧,要排个序。他说太高了,让我再像个办法。我说,找个很大的数组,把所有的数字都以数值为下标放在这个数组上,然后从前往后遍历,找到最长连续的,如这题a[4]=1,a[200]=1,a[3]=1,a[1]=1......不过这样空间复杂度很大。面试官给的思路是用一个hashtable,hash到4的时候,看看hash(3)和hash(5)是否存在,类似这样的思路

5.socket编程和netty

不会

6.http三次握手,如果第三次客户端发出的信息服务器没收到怎么办?

7.操作系统有哪些调度方式?

8.如果让你实现按照优先级的抢占式调度,你会如何实现?有0-15个优先级,0是最高的优先级

我回答是,把所有任务放在一个小根堆里,堆顶的自然就是目前的任务队列优先级最高的任务,拿出来即可。面试官说可以用十六个任务队列,每次从优先级最高的任务队列头取出即可

9.java的hashmap如何实现的?

我首先回答了一下hash冲突是什么,有哪些解决办法(拉链、线性探测、平方探测、再hash),然后说java是数组+下面挂着的链表实现的,顺口说了一句:实际中很多地方都是拉链法,比如redis的hashtable也是这么做的。接下来开始了长达十几分钟的redis环节

10.redis基本数据类型以及如何实现的

11.redis的三种集群

我讲的很多很长,如何配置,遇到的坑,还有bind_ip是什么意思(监听网卡,而不是外部机器访问的ip),cluster模式的slot,在线迁移数据reshard,去中心化设计的原因

12.如果让你实现redis的负载均衡,你如何实现

hash、一致性hash、加一个代理服务器

13.redis的通信协议是什么?

gossip

14.说几个常用的linux命令

15.mysql索引结构?为什么用B树?

16.智力题,海盗分金币。

一开始不会,后来他提示我,从后往前想,如果只剩两个人了会怎么样,如果只剩三个?......最后答出来了



第二面:

1.算法:接雨水(leetcode 42)

大概15分钟,跑了5个用例。然后面试官说:嗯,我们再来一道难一点的...

开始我还以为这是设计题,结果是算法。蒙了...完全不知道什么意思,和面试官扯了十分钟还是不知道什么意思。中间我还说了,要不换道题吧,我实在是不知道怎么做,但面试官还在引导我,我还是不会,没办法,最后简化了很多,做出来了,思路是二分查找的变体,不过把数组换成了存储对象的有序List。

3.https如何实现

对称加密+非对称加密

4.用户态和内核态

5.类加载过程

6.mybatis优缺点

优点是灵活好用,缺点不知道

7.重载和重写区别

8.get和post区别

我只说到了一个在url可见,另一个不可见,常用于发送大量数据。事后查了一下,好像远不止这么简单

9.你还有什么擅长的地方?

不知道...感觉都差不多(脑海略过一大堆,spring家族、mysql、不敢说擅长),redis?“一面面试官反映你redis还不错,我就不问了”

10.问问题,结束