阿里云基础平台开发面经

  • 之前在这个帖子 里发了凉经,后来被另一个部门捞了起来重新面,一共面了三轮面试,面到最后才了解到是阿里云的基础平台研发部门
  • 以下内容仅供参考,请勿转发至外网

一面4.10 25min

  • 自我介绍,然后让我简单介绍一下简历上的若干项目中自己做的工作
    • 你觉得自己做的项目可以有哪些地方能进一步改进 #### 八股文:
    • 进程和线程的区别
    • linux的进程分成几个段
    • TCP和UDP的区别
    • 项目中哪些地方用到了并发编程和并行编程
  • 没有考代码题

二面4.12 45min

  • 自我介绍
  • 简述TCP的三次握手的过程
  • 线程之间如何进行通信?信号量是什么,有什么作用?
  • 解释一下线程池是什么东西,解释完之后又问了可不可以类比一下推测连接池是什么
  • 自己印象最深的一个项目是什么,做完之后有什么样的收获
  • 你如何看待软件工程中的各个环节?你认为最重要的环节是哪一个
  • 项目过程中有没有性能调优的经历,详细讲讲
  • C++中的虚函数是怎么实现的,内存泄漏是指什么?
  • 还问了个人未来发展规划,其他的一些问题有的忘记了,没有考代码题
  • 反问环节:问了部门里在做哪些具体的业务

三面4.14 25min

  • 进了线上会议室才知道是hr面

  • 随便聊了聊,聊到未来发展规划,对着简历上的项目瞎吹了一通,反正hr大约不太懂

  • hr问到你认为项目能做哪些改进?答了可以把minisql做成一个分布式系统云云,然后被问你认为这样的一个分布式数据库有哪些应用场景

  • 你对整个面试环节有什么评价?

  • 参加过阿里的笔试之后,面试过程(五轮)中再也没手撕过代码,我觉得也挺离奇的

面试完之后第二天晚上收到了意向书,才知道捞我的具体部门是哪个,比较惊喜的同时次日的字节三面就挂了。

字节教育业务服务端开发凉经

  • 有的题目可能已经忘记了,这里只是部分内容

一面4.9 50min

  • 自我介绍
  • 问项目,minisql相关,介绍一下有哪些模块,自己负责了哪一部分 #### 数据库+项目:
    • B+树索引:怎么实现的,插入删除怎么操作,为什么用B+树
    • 聚集索引和非聚集索引 #### 操作系统:
    • 进程和线程的区别,Linux中进程用什么数据结构表示 #### 计网:
    • TCP和UDP的区别
    • TCP怎么保证传输的安全可靠?
    • 浏览器输入一个网址发生了什么? #### 代码题:
    • 二叉树的最大宽度,写了个用层序遍历的解法

二面4.13 50min

  • 自我介绍 #### 问项目
    • minisql的总体架构和自己完成的工作
    • 你们的minisql怎么发现SQL语句中的错误
  • 问了个git指令,怎么回退到上一次commit #### 操作系统:
    • 平时用的比较多的操作系统是什么,用过Linux操作系统吗?
    • 进程和线程的区别,并行和并发要注意什么
    • 进程间通信方式,线程之间的通信方式
    • 场景题:开10个线程读取一个大文件,每个线程读特定的一段,怎么保证线程互相之间不会读到别的线程需要读的内容——这个我真没搞懂是什么意思 #### 设计题/代码题:两个栈实现一个队列 #### 数据库:
    • 解释一下ACID分别代表什么
    • mysql有哪几个隔离级别,默认的隔离级别是什么 #### 计网:
    • TCP三次握手的过程,和UDP的区别
    • HTTP状态码有哪几种,分别代表了什么,401代表什么意思——401代表什么忘了 #### 代码题:
    • 反转链表的后K个元素 #### 反问
    • 问了字节为什么会选择go

三面4.16 50min

  • 自我介绍
  • 介绍项目,还是minisql(感觉他们对我写的其他项目都没什么感兴趣的) #### 数据库+项目
    • 有没有参考mysql的架构设计,有没有读过mysql的源代码
    • 你认为数据库要解决的最主要问题是什么
    • 你认为数据库的设计最重要的是什么 #### 操作系统:
    • 介绍一下常见的进程调度算法
    • 你认为评估进程调度算法的指标可以是什么 #### 计网:
    • 场景题:现在视频面试的过程中如何建立连接,视频和音频怎么样在网络中传输
    • HTTP和HTTPs的区别 #### 脑筋急转弯:概率题
    • A和B轮流抛硬币,出现正反面的概率相等,谁先抛出正面谁就赢,求A先抛硬币的时候A赢的概率
    • 你认为这个游戏公平吗?如何设计一个公平的游戏规则 #### 代码题:
    • 给定一个整数,求出“下一个排列”
    • 只有十分钟时间,来不及写了,思路也不太清晰

结语

​字节三面发挥比较糟糕,最后挂了,lz春招一共投了字节阿里两个地方的暑期实习,最后拿到了阿里的意向书,看起来似乎没得选择了,最近几周隔天一场面试有点累了,就先这样吧。面试后的感想。面试之后意识到刷题确实很重要,字节那边挂了大约还是因为最后一道代码题没写出来。感觉大部分面试官都比较关注大二数据库系统课上写的minisql项目,对于其他的基本不太会问到,建议多准备该项目的相关内容 此外字节的八股文并没有想象中那么套路化,还是有很多比较细节和需要理解的点的