字节跳动后端开发实习生一面凉经

寒假投了字节跳动广告部的后端开发实习生,简历通过筛选后HR打电话通知我,让我第二天下午2点进行电话面试。

1点半我就进入了面试房间,1点50的时候面试官也进来了,然后我们开始了面试。

第一部分问的网络:

1.TCP和UDP有什么区别?

刚学了计算机网络,这一部分答上来了。

2.TCP的连接过程?

三次握手四次挥手,这一部分也答上来了。

3.网络的分层?

面试官问的7层(OSI),我学的五层(谢希仁),我就回答的五层。

第二部分问的操作系统:

1.了解进程和线程吗?谈一谈。

我只了解进程,不了解线程。就谈了谈进程的定义、三种状态、并发控制。

2.开始问为什么要并发控制?

我举了转账的例子。

第三部分问的编程语言:

1.Java和C++相比有什么特点?

我答的Java没有指针,不需要程序员花费太多精力管理内存。

2.C++为什么比Java运行得快?

我就说的Java既然不需要程序员花费精力管理内存Java核心就得替程序员管理内存,所以运行得慢。。。

第四部分问的数据库:

1.MySQL与其他主流数据库相比有什么特点?

虽然用过,但也只是用过,不会就说的不会。但是后来查了查特点中有几点与我想象的差不多,就是方便,安装没那么麻烦。

2.了解索引吗?知道实现原理吗?

我知道有索引查的快,在插入和更新的时候也需要耗费资源来维护索引。但我不知道底层的实现原理(后来查了是B+树)。

第五部分问的算法:

1.说一说各种排序算法原理,及其时间复杂度。

我答的选择排序、冒泡排序、插入排序、二分插入排序、快速排序、归并排序。

2.一道二叉树的算法题:给出一棵二叉树,求出所有左叶子结点的值的和。

单纯看这道算法题并不难,但是全由面试官口述,没有题目描述也没有样例,也没有向LeetCode那样构造好二叉树。二叉树的构造是比较麻烦的,但是我就用先序和中序手撕了一棵二叉树。一开始有点bug,但我和面试官一致认为bug并不在我的算法上而在二叉树的构造上,于是我和面试官开始一起找bug,最后我先找到了,成功AC。

整个面试也就持续了35分钟,留给手撕代码的时间也就10几分钟吧,所以算法题出的应该不会太难。出乎意料的是面试流程跟我想象的字节的面试流程不太一样,学长得知我进面后把我拉进了一个交流群让面过字节的学长给我点面经/凉经,有一位学长说就是几道算法题。字节跳动这边重视算法是出了名的,但是我的这位面试官最后才问我算法,这让我有点感到意外。

这是我码农生涯的第一次面试,之前从来没有这方面的经验。面试官态度也比较好,面试的时候也比较随意,面试体验比较好。我感觉面字节(实习/校招)还是要多看看网络,多弄懂原理,别光会用。暂时就想起这些,后面的想起来再补。

发布了72 篇原创文章 · 获赞 203 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/weixin_41676881/article/details/103990166