【字节跳动】【暑期实习】后台开发一二三面(接到OC)

面试的是企业后端方向暑期实习,base 北京

时间表

简历投递:March, 2 一面:March 5, Thursday 二面:Mar 6, Friday 三面:March 10, Tuesday三面均为技术面。 offer call: March 13, 接到offer call,沟通了入职时间。 状态更新: April 1, 面试状态更新:面试已完成

一面 30min, March 5, Thursday

一面用的是牛客网的平台,面试气氛很好,自我介绍后面试官对项目经历挺感兴趣,就全部简单介绍了一下。后来出了一道脑筋急转弯,一道检测环状链表的题目,聊了聊思路没有实现。一道dp的题目,类似leetcode上强盗抢劫的题目。直接聊了思路然后写python。然后是反问,想了解实习生培养相关,但是面试官说他还不熟悉,就没再问了。结束面试后大约20分钟接到约二面的电话。

二面 50min, March 6, Friday

二面用的lark,然后分享屏幕写代码二面简单自我介绍后给了一道蛇形打印二叉树的题目。直接给了思路,用标志位记录层深实现,然后开始写代码。因为能用IDE,我就用java写了。但是好久没写过,中间有点卡。思路实现上,又因为是满二叉想到可以用idx计算level,写了之后又重构了queue里的类记录层深。结果因为莫名其妙的bug输出和debug模式的变量打印不一致。。。。但可能是思路给的比较快,这面过了。。。(其实还有别的方案,只是为了多展示,就结合queue和stack一起实现的)之后的问题主要围绕计算机网络相关的基础知识,包括

  • 7层模型
  • HTTP和HTTPS的区别
  • HTTPS请求的过程
  • GET和POST的区别
  • 如何用POST上传文件
  • TCP连接里的流量控制和拥塞控制
  • TCP的三次握手、四次挥手的状态,以及为什么分别需要3次、4次
  • 简单介绍CDN

场景题:

  • 类似zoom的会议id如何生成(我只想到了结合时间无关的uuid生成,尽可能随机分布还有一些问题可能忘了。

面试结束是周五的下午6点,HR是周一十点半约的三面时间。

三面 25min, March 10, Tuesday

用的牛客网平台,但是没有写代码

问:写的项目经历哪个熟悉答:出了第一个只是简单的数据库和爬虫,以及最后一个立项不久,中间三个都很熟悉,随便问。

然后就问了中间两个项目,项目中问到了socket编程的相关内容,比较深入。中间有一个多线程多进程的问题,因为我刚开始学操作系统,就如实讲了还没学,不会,面试官也没有追问。大概印象比较深的是:

  • 项目相关的一个开放题目,如何计算负载
  • 键入url之后到渲染网页的过程
  • tcp连接里的流量控制的具体过程

可能因为我介绍项目的方式比较循序渐进,很多都是面试官提出的问题都是我项目中遇到并且解决了,或者有想过但因为时间没有实现的。所以这一面总体比较轻松,面试期间还确认了下实习时间。