西瓜视频服务端开发工程师 面经
已经正式办理完入职手续,成为一名字节er了,给大家分享下我的字节面经以及校招经历吧~
背景
首先介绍下我的背景情况吧,我本硕都是软件工程专业的,本科在东北某211师范学校,硕士是就读于华南某985高校,读研时候研究的是数据挖掘和NLP方向的课题。我一直以来都很喜欢开发类的工作,读研选方向的时候因为了解的太少,人工智能算法的研究又非常火热,所以选了数据挖掘作为研究方向,但是本科的时候没怎么接触过人工智能的研究课题,上手的过程还是比较艰辛和缓慢的。我读的是二年制的专硕,2018年8月去学校报到,之后在学校上了半年课并学习了机器学习算法水了几次大数据竞赛,2019年2月份就开始参加春招寻找实习机会了。
第一次面试字节经历(春招实习)
最初就非常喜欢字节跳动这家公司,所以第一次投简历投的就是字节深圳的数据挖掘工程师实习岗位,记得很快就接到了面试电话越视频面试,当时非常开心激动,面试给我的体验还是非常舒适的,面试官人都很好会适当的引导我,一面的评价很高,结束后1个小时之后就接到了二三面电话,问我能不能马上接着面,当然是可以啦!然鹅面试的时候我看面试官有点严肃就紧张了,手撕代码的时候答的很不好,于是就挂了。。。当时还是非常难受的,两天之后收到拒信。算法岗位面试时间还是挺长的,当时面试加起来有3个小时。。。
所以还是能够感受到字节对于coding水平的要求是作为基本考察项的,所以各位同学一定要好好的刷下leetcode和剑指offer上的题目。
二面手撕代码的题目大致是海量数据找中位数,有10亿个int型的数字,以及一台可用内存为1GB的机器,如何找出这10亿个数字的中位数?
西瓜视频服务端(秋招校招) 时间线
总体是投简历后一周完成简历筛选,一周完成三面。通常流程不会这么快,当时是因为我有另一个offer在催着签三方,所以我一直在催HR帮我安排面试。
2019.11.01 投简历
2019.11.08 面试预约
2019.11.10 一面视频面
2019.11.11 面试预约
2019.11.15 二面视频面
2019.11.15 面试预约
2019.11.17 三面视频面
2019.11.20 录用通知函
西瓜视频服务端(秋招校招) 面经
一面
- 上来先自我介绍,照着简历问项目,这里有个小建议就是在自我介绍的时候说清楚自己的技术栈,把面试引导向自己擅长的话题上面~比如介绍清楚自己会C++,用C++做过什么,会Python,用Python做过什么,有项目就介绍项目,没项目就说几门擅长的课程,对着招聘要求上的列表好好复习就好,字节还是比较看重基础的,也不会故意为难问不会的
- static和const区别,可以同时修饰成员函数吗?
- 遇到过内存泄漏问题吗?怎么发现和解决的?
- 进程、线程、协程
- 进程间通信方式
- TCP通信过程,为什么不是4次握手,3次握手安全吗?
- linux系统中tcp连接的状态有哪几类
- 浏览器中输入网址后敲回车发生了什么,越详细越好
- 共享内存的方法有哪几种?
- 手撕代码:
一个字符串,将其进行分块,使得块数最多且为回文对称块aba -> a b aabc -> abcabcdabc -> bac d abcabcdeffdeabc -> abc de f f de abc
前后设置指针,向中间遍历,记录当前遍历过得字符串,字符串相等即可输出。
难度主要是当指针遍历相遇时的处理,其他不难。
二面
- 自我介绍,问简历上的项目问题
- 数据库ACID是什么?
- 事务并发问题?数据库事务隔离级别对应可能产生的问题?
- mysql表类型,innodb和myiasm区别?
- 乐观锁和悲观锁
- 聚簇索引和非聚簇索引
- mysql索引和底层实现
- 手撕代码:MySql写题,基本题
- 手撕代码:给定二叉树和一个数,找到所有从根节点到叶子节点路径总和等于给定目标和的路径,leetcode原题,https://leetcode-cn.com/problems/path-sum-ii/,想了一会儿然后跟面试官要下思路简单写了下
三面
- 项目自我介绍和怼项目
- 简历NLP项目涉及到的一些基本概念,LSTM、TF-IDF、word2vec,深度学习
- 简历实习经历做的项目
- C++虚函数实现和调用,调用子类实例的方法分别调用到哪个方法?类似下面这种,要讲原因
#include <iostream> using namespace std; class Base { public: virtual void x() { cout << "Base::x" << endl; } void y() { x(); cout << "Base::y" << endl; } }; class Derive : public Base { public: virtual void x() { cout << "Derive::x" << endl; } void y() { cout << "Derive::y" << endl; } }; int main() { Base* p = new Derive; p->y(); return 0; }
5. C++多态,析构函数可以是虚函数吗?
6. 重载、覆盖、重写区别
7. redis了解吗,了解程度?
8. 知道哪些redis的数据结构(其实这个是可以自己引导的,说了解程度的时候
9. redis缓存问题?缓存穿透、缓存击穿、缓存雪崩区别和解决?
10. 了解缓存如何保持一致性吗?
11. 有什么问题要问?
三面面试官好像有点事情没让手撕代码。。。
西瓜视频服务端(秋招校招) 总结
春招实习的时候我的重点放在了算法岗位的实习,但是因为学习时间太短没做过科研,没有得到很好的结果,所以在2019年5月份的时候我就已经准备转岗服务端开发岗,当时我的技术栈基本就是python和C++,因为本身就很喜欢计算机,所以自认为本科时候数据结构+计算机网络+操作系统+计算机组成原理这套知识还是非常牢固的,本科也曾经参加过工作室做项目涉及到数据库的知识,这些在面试过程中起了很大的作用。
所以建议大家打好基础,学校接触到的项目开发其实和在公司实际应用中的开发工作是有很大出入的,所以开发岗没有项目不用虚,我个人感觉面试的过程还是更加看中面试者的基础知识掌握如何,另外就是coding能力,建议大家一定要把剑指offer刷完,然后leetcode刷的越多越好,coding没问题面试官的好感就蹭蹭蹭的!!
整个找工作的过程算是由字节开始也是由字节结束,如果不能来字节工作以后真的会意难平hhhh
所以大家不要犹豫了!好好准备基础就可以了!!!不要怂,就是干!
【部门直推】震惊!字节跳动第10次面试挂掉后!他成功拿到了秋招offer!!
本人亲测有效!!!我校招简历就是部门直推投的这个邮箱!!
我们部门正在进行2021校招提前批招人,想投简历或者是交流面试问题、获取更多校招信息的同学可以私信我拉微信群,微信群有问题可以直接问~
震惊!字节跳动第10次面试挂掉后!他成功拿到了秋招offer!!
数千万日活的「西瓜视频」服务端校招内部直推机会来了!
挂过多次?不要紧!内部直捞,分分钟安排面试。
面试进度到哪了,没地方可查?不要紧,所有来信当日必回,最贴心的一条龙服务。
西瓜有什么好的? 资深“老司机”们手把手带你上车!千万日活技术挑战炒鸡大!牛人多、氛围好、重视新人培养!!
这么好,那我怎么联系你? xiguaserver_neitui_2021@bytedance.com
所有来信当日必回!所有来信当日必回!所有来信当日必回!