日期 12.13 时间 20:00 - 21:00 岗位 后台开发 形式 视频面试 结果 PASS
大三的第一次技术面。一面的问题的确都非常基础,但是没怎么复习答得并不好。
字节跳动一面
日期 12.13
时间 20:00 - 21:00
岗位 后台开发
形式 视频面试
结果 PASS
流程&问题
算法编程题
一束平行光从左侧投射向一棵二叉树,输出所有能够被照亮的节点, 不考虑输出顺序
(白板编程写代码,不要求运行)
Input
1 | 1 |
Output
1 | 1 2 4 8 |
自我介绍
5分钟时间简单介绍自己,可以陈述自己的优势,劣势可以不说。
计算机基础
- Post和Get的区别?可不可以混用?
- HTTP协议的组成
- Session和cookie的区别,为什么要设置session和cookie
- 简述tcp的三次握手和四次挥手
- 为什么要进行三次握手?
- 简历上面项目询问,你都负责了哪些工作
闲聊部分
- 平时看过什么课本之外的课外书么?
- 你最喜欢哪本?为什么?
- 你有什么问题要问我?
回放
面试官:先给你出道题吧,多线程熟吗?
我: 不熟
面试官:行,那不问你多线程,我再找道题。
面试官:做一下这道题吧(编程题)
我:思考…这道题就是bfs输出每一层的第一个节点。
面试官:写一下代码吧
我:(在线写代码,bfs部分完成的很快,但是在实现输出第一个节点的时候遇到了一点问题,稍微思考了一下写出来了)写好了
面试官:我看一下。嗯,逻辑没有问题。
面试官:好,你来做一个五分钟的自我介绍吧,介绍一下自己的优势,擅长的东西,劣势可以不说。
我:(我本来以为一面只做算法题,完全没做好自我介绍和计算机基础知识的准备,很宽泛地说了一下)
面试官:嗯(估计在翻我的简历)。我看到你做过一个web file browser的项目,这个项目是干什么的,可以简要介绍一下么?
我:(简要介绍了一下)
面试官:用到数据库了么
我:没有
面试官:用框架了么
我:没有,这只是个python写的小轮子,实现了一个http server用来处理http请求。
面试官:哦,那你对http很熟吧
我:比较熟悉(内心慌得一批,我把面经上http部分跳过了)
面试官:你先说一下post和get有什么区别?
我:get用来查询,参数一般直接附在url里面;post用来提交数据,数据放在http的主体部分
面试官:说一下http的构成。
我:(突然有点懵,就答出了header)
面试官:(补充了一下)分为url,header,body。你再从http构成的角度阐释一下post和get的区别。
我:(内心os:我刚刚难道不是说了?)get请求的body部分是没有数据的,post把数据放在body里。
面试官:他们可以混用么?
我:但从功能上来说是可以的,post可以实现的功能get也可以实现,但是这样做是不好的,因为get会有一些安全性问题,不太适合提交数据。
面试官:(总结并补充了我的回答)
面试官:嗯,对的。说一下cookie和session的区别吧。
我:我不太清楚他们的区别。(只研究过cookie,对session没有什么了解)我只知道cookie和session都是用来保存用户的信息。因为http是无状态的协议,所以只能通过cookie或者session的方式来标识用户。
面试官:你说了他们的相同点。我来说一下不同点吧。session是保存的服务器上的,cookie是保存在浏览器上的。你说一下为什么要有cookie和session?
我:(内心os:我刚刚不是说了么…)因为http是无状态的协议,需要cookie和session来实现状态的维持。
面试官:嗯,你说的是对的(然后又把我的回答总结了一番)。你了解tcp三次握手和四次挥手么?
我:了解。(然后陈述了一遍)
面试官:嗯。为什么要三次握手?
我:我们假设只有两次握手,那么就有可能失效的连接到达了服务器。如果不进行第三次握手,服务器就会错误地打开连接,造成资源浪费。如果有第三次握手,客户端会忽略服务器之后发送的连接请求,连接就不会打开。
面试官:嗯…你说的不太清晰啊。
我:(内心os,我背的面经答案啊 = =)
面试官:应该这样说,三次握手是为了确保建立可靠的连接,如果一次握手,那服务器端很有可能收不到,有三次就可以确保连接是建立起来了。
我:嗯。有道理。
面试官:(又问了我简历上的几个项目)分别是rdt可靠传输和地震查询系统
我:(简单介绍了自己的项目)
接下来就是闲聊阶段了
感受&反思
- 不要轻信面经,还是要全面准备。之前看字节跳动的面经发现一面只有算法编程题,于是一面之前就只刷了几道leetcode,复习了动归和排序。
- 准备好一段自我介绍。优势是什么?非常重要,几乎主导了面试的方向。
- 重新复习一下项目。遇到了哪些问题,是怎么解决的?
- 没听过没用过的东西直接说不会,尽快换话题。
- 基础知识要牢固。明白概念和能说清楚还是有很大区别的。尤其当你的面试官和你学的东西并不一样的时候。