在某勾招聘网站投了字节跳动的后端岗位,没想到在外面玩的时候突然接到hr的电话(心里是很开心的呀,有大公司可以去面试)。
先介绍一下自己,深圳某非985非211,正常招生的本科应届生,机械狗,做机械稳入3k的那种。转行做后端开发,用的是python。
能收到字节的面试邀请还是很惊讶的。面试形式是牛客网上的视频面试,面试官大概40来的样子,很和善,并没有像别的面经说的那么能怼人,也可能是我的运气好遇到个不错的面试官。
首先:做一个题目
```python
# 第一题. 字节跳动在北京有N个工区,形成一个环状,Bytebus是
# 往返在各个工区的通勤车,按工区的顺序行驶,其中第 i 个工区有
# 汽油 gas[i] 升。你有一辆油箱容量无限的的Bytebus,从第 i
# 个工区开往第 i+1 个工区需要消耗汽油 cost[i] 升。你从其中的
# 一个工区出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回
# 出发时工区的编号,否则返回 -1。
import random
def solution(gas, cost):
start_point = random.randint(0, len(gas)-1)
has_gas = gas[start_point]
i = start_point + 1
while i != start_point:
has_gas = has_gas - cost[i-1]
if has_gas <= 0:
return -1
i += 1
if i >= len(gas):
i = 0
has_gas = has_gas + gas[i - 1]
return start_point
gas = [1,2,3,4,5]
cost = [3,4,5,1,2]
result = solution(gas, cost)
print(result)
```
这个面试时候没做出来!!!很慌,然后写了一个刚好对上这个例子的。这个是刚刚总结时候再做的,也不知道对了没有。
然后面试官说给我换个题目(非常好人)
```
第二题. 小明要在街上一排互相相邻的糖果屋拿糖,但不能在两个相邻的糖果屋同时拿糖。给定一个数组列表,每个元素代表每间房子中的糖的数目,小明一次最多能拿多少糖。
基本样例输入输出:
输入: [1,5,3,1,7]
输出: 12
```
然后跟面试官说了这个就算了,开始聊天(感觉面试官在家里,坐着很大的沙发,有点半趟)
第一个问题:你java基础怎样?
我:???我不是python岗的么?这个岗位是做后端的么?
面试官:是啊
我:那后端如果是java的话我觉得公司愿意培养应届生我很愿意,毕竟后端技术点都差不多。
面试官一脸懵逼:???我看你是内推的,xxx你认识么
我一脸懵逼:???不认识啊,我在某勾上投的呀
:这咋回事。。。算了介绍下自己
我:xxx
第二个问题:说说java和python共同点
我回答了都是面向对象,然后展开巴拉巴拉。
第三个问题:说下redis底层锁的实现
我:讲了下redis怎么用,在实际中我用来干嘛了
第四个问题:说下一MySQL有哪些优化
我:心里面很爽!这个有做过总结,讲了一堆
第五个问题:说下怎么实现高并发(服务端,软件层面)
我一开始说可以使用反向代理或者DNS,他说不是硬件上的。
然后我又说可以搭建分布式服务器,他说嗯,接着呢。
我说用户访问的时候可以使用轮询或者随机分配的方法,他说了好就下一个问题了
还问了个MySQL索引的底层实现原理,我说B+树,他问特点啥的,然后我展开讲了下,面试官说不错就没了。
然后让我问他几个问题:
我问了怎么培养应届生之类的
这个岗位如果过去是做什么项目的
数据安全的问题。。。
然后尴尬一会就结束了