字节跳动三轮技术面_后端研发提早批

声明:本文做者:炼狱的吹笛人 原文连接:https://www.jianshu.com/p/a44f2e25d98d前端

人在杭州,投的是深圳岗,因此是在牛客网上的视频面试。程序员

1 一面

  • 项目相关
  1. 介绍一个项目
  2. 为何考虑使用Spark?
  3. 使用华为的服务减小了哪些运维工做?
  4. 你以为项目中有哪些比较有意思的点?
  5. 数据处理方面作了哪些工做?
  6. 用Redis作了什么?使用过Redis的什么命令?什么状况下会用到flush?
  7. 若是一个信息更新很是频繁会怎么应对?
    前面的结合本身的实际经验回答便可。
    最后一题答使用了消息队列作缓冲。
  • 手写代码
    很经典的一个二叉树镜像问题,让我作两个事情:
  1. 如何将这个问题进行抽象(其实就是算法的思路)
  2. 实现算法
    面试官看完个人代码后进行了追问:
    Worst case下你的代码的时间和空间复杂度?
  • 书本上的问题
    面试官也注意到我不是科班出身,答得出来就答打不出来就算了(使人感动>_<+)
  1. Windows系统中文件信息是存放在哪里的?
  2. 双击文件夹时,如何获取里面的信息?
  3. 了解TCP和UDP吗?各有什么特色?各举一个场景?

面试官很和善,人超nice的。前面的内容毕竟是本身项目的,答得较有底气;代码题之前也见到过,比较容易就写出来。可是操做系统的问题确实是一问一个懵,好在后面的网络正好前一天复习到。。。面试

  • 个人提问
    后端部门的业务怎么划分?

2 二面

一面技术后,够了大约十到十五分钟,就进入了二面。此次的难度进行了全面升级。。。算法

  • 基本状况
  1. 自我介绍
  2. 介绍一个项目
  3. 说一下项目中难点
  • 操做系统
  1. 进程间的通讯方式有哪些?
  2. 哪一种效率最高?为何?
  3. 内核态在何时调用?
  4. 字节对齐有了解吗?
  • 计算机网络
  1. UDP最长长度是多少?(此时我回答了不清楚)
  2. UDP的包头有什么?
  3. 包头中有多少个字节用来表示长度?
  4. UDP最长长度是多少?

从这里能够看出来,面试官的提问颇有技巧,经过一步步引导我思考,中间偶尔纠正个人错误,最终能把问题引回到最初。既考察了个人基础知识,也顺带让我学习了一波。编程

  • 数据结构
  1. 最大堆有什么特色?
  2. 构造最大堆的过程?时间复杂度是多少?
  3. 堆排序的过程?时间复杂度是多少?

当时忘记构造二叉堆有坑,彻底掉坑里了。。后端

  • 算法
  1. 说明如何求斐波那契数列的第N项?
  2. 为何你选择迭代而不是递归的方法?
  3. 怎么求根号N的近似值?要求精度在小数点后5位(我说了二分法并解释了大体思路)
  4. 你的方法的终止条件是什么?
  • 不知道归在哪一类
    最近在学习什么?(我回答说地理相关的开源组件,而后没再问下去了)
  • 场景实现

两个系统,一个机器上有大约1k的小文件,共10G,系统间网络不好,怎么高效地把全部文件从一个系统传送到另外一个系统?安全

这个问题花了好久的时间,我提出本身的实现后,会问我这样实现会有什么问题?还能不能继续优化(网络的硬件层面已经定死了,主要是应用层面怎么优化)?这方面确实不懂,基本只能胡扯,磕磕巴巴说了一些,可是面试官仍是听了下去并引导我进行分析,但无奈水平太差提不出什么好点子(掩面哭泣)网络

  • 手写代码

一个角色,从二维矩阵的左上角移动到右下角,每次只能右移或下移,生命值会随着遇到的格子里的数字加减(整数加负数减),到终点变成0就死掉。问初始生命值最少要多少才能安全抵达?数据结构

一开始说的是统计全部路径中最后血量的最小值,负数取反加一,正数为0。后来面试官补充说,在中途变成0也会当即死掉,并且在开头变0也会死。我一会儿没反应过来思考了一下,面试官就主动下降了难度,说把条件设置成一维,且角色只能右移。虽而后面写出了代码,但他没有评价,大概也不太满意。并发

  • 个人提问
    对技术栈的要求?

一面感受良好,可是二面感受凉透了。计算机网络一问三不知,系统设计漏洞百出,数据结构踩了坑,算法题还主动被降难度=_=本身做为非科班出身的半路出家码农,确实还有不少须要补充的基础知识和技能。但愿之后的面试能吸收经验教训,每次都能比前一次更顺利一点!加油,鹿小葵

更新:没想到二面也经过,收到了预定三面的短信,而三面依旧是技术面。此次得要吸收教训,准备得好一点!

公众号 逆锋起笔 专一分享 JavaPython、前端、大厂经验、职业发展干货;天天下午 14:40 推送,每一个程序员值得关注的技术平台。关注即送小编整理的精品视频教程

3 三面

  • 项目
  1. 自我介绍
  2. 项目里的难点或者有趣的地方

此处面试官屡次提问“难点在哪里呢”,看来有必要好好练习这一块Σ( ° △ °|||)︴

  • JVM

  提问前面试官先问我Java、SpringBoot、MySQL、Redis的熟悉程度,我回答前两项较熟。这里是对着简历问的,可见简历不能瞎写。戏说不是胡说

  1. 什么是GC?为何要GC?GC有哪些算法?
  2. 什么是垃圾?怎么判断它是垃圾?
  3. 什么是STW?为何要STW?会带来什么影响?有没有减小STW时间的方法?
  • Java并发编程
  1. 什么是线程安全?
  2. Java中确保线程安全有什么方法、工具或者容器?
  3. (我刚说的)重入锁、倒计数器、循环栅栏等分别是啥?有什么用?在什么状况下使用?
  4. 了解CopyOnWriteArrayList吗?在什么条件下用它?
  • 手写代码

把一个中文表示的正整数转成Int,如输入字符串“五千三百万零五百零一”,输出53000501。其中输入的数字小于一亿(且不包括一亿)。
说是先给二十分钟搞出一版,我搞出一版后发现编译不经过还在调,他就直接让我说思路,而后就完了。。。(慌)

  • 其余
  1. 之后的工做规划(技术面咋问起这来了)
  2. 提问环节

此次运气好,问的专业问题几乎都复习到了,算法题也不算难。可是面试官全程冷漠脸,既不愿定我,也不纠正我,搞得内心很没底。最后说了一句“此次面试先结束了,之后常联系”,不知道是好是坏呢~

4 后续

过了十天左右,收到了offer call和意向书,很开心~因为我面的公司还不算多,不能横向比较,可是字节跳动的面试难度给个人感受仍是挺大的,尤为二面快给我问懵了。面试官喜欢让你讲项目里比较难的或有意思的点,专业知识很注重基础,但不是说背下来就行,须要本身深刻去理解的那种;可是相对来讲,代码题就比较简单了,只要不被前面的问题吓到,都是能作出来的。

公众号 逆锋起笔 专一分享 JavaPython、前端、大厂经验、职业发展干货;天天下午 14:40 推送,每一个程序员值得关注的技术平台。关注即送小编整理的精品视频教程
相关文章
相关标签/搜索