百度-数据库内核开发实习一面面经

全程面试一个小时,先聊实习,再聊数据结构和操作系统八股文,中间给了一道设计数据库缓存的情景题,最后出了一道实现双向链表插入、查找、删除的算法题。整体感觉面试难度适中,面试官很有耐心也很温柔,面试体验不错。

实习经历

(1) 研究生期间做深度学习,为什么就业想要走开发岗?

(2) 现在的实习才四个多月,为什么想要换一份实习?

(3) 项目各种技术细节如何实现的(不展开说了)

(4) 对你来说最有成就感的一个 task 是什么

(5) 有没有修复过体系结构不同(x86 和 ARM)导致的 bug 经历

注:基本把项目的各个技术环节从上到下问了个遍,在此基础上引申出各种八股文。

Linux

(1) cgroup 底层实现原理

(2) kill 与 kill -9 的区别

(3) 介绍一下互斥锁和自旋锁

(4) 实习中有没有使用锁的经历?

(5) 了解内存屏障的概念吗?

C/C++

(1) kill 函数的实现原理

(2) malloc 函数的实现原理

(3) malloc 分配的是虚拟内存还是物理内存

(4) malloc 什么时候开始分配物理内存

(5) 说说你对智能指针的理解

(6) 智能指针是线程安全的吗?

(7) 实习经历中使用过智能指针吗?

数据结构

(1) 哈希表和 B+ 树的区别

(2) B+ 树和红黑树的区别

业务情景题

(1) 如何高效并行地读取一棵 B+ 树

(2) 设计一个高效的数据库缓存机制

注:第一题因为我对 B+ 树不熟悉,所以出了第二道题,面试官说答的还不错。

算法题

(1) 实现双向链表的插入、删除、查找函数

注:双向链表不怎么熟,插入和查找都实现了,删除部分脑子短路,有个 bug 一直没想明白。

总结

毕竟是数据库内核开发,所以对于底层问的还是比较多的,数据结构要求也比较高。我目前实习在做一些基于 Linux 的底层工具和应用开发,所以对于底层/内核这方面还是很感兴趣的。通过和面试官交流发现,这种内核开发的岗位之间差别不大,很多东西是相通的,未来这也属于是我的一个就业方向。

#数据人的面试交流地##实习面试##面试##数据库#
全部评论
请问算法题是在oj平台上写吗
1 回复 分享
发布于 2023-02-14 17:36 北京
过了吗
1 回复 分享
发布于 2023-02-13 22:40 陕西
老哥在哪投的呀
1 回复 分享
发布于 2023-02-04 23:10 湖北
老哥场景题第二题咋说的方便沟通吗
点赞 回复 分享
发布于 2023-03-06 15:09 四川
百度还有数据库产品? 还有这问的也太浅了吧
点赞 回复 分享
发布于 2023-02-14 20:12 湖北
同部门!
点赞 回复 分享
发布于 2023-02-13 23:17 山东
百度数据库内核是哪里投的,老哥
点赞 回复 分享
发布于 2023-02-09 15:36 上海
点赞 回复 分享
发布于 2023-02-06 14:36 甘肃

相关推荐

05-05 12:26
门头沟学院 Java
转眼就到五月了,天气还没热起来,回过头看,这大概是过去一年中最忙碌的一段时间。2 月到 4 月几乎没有休息,等节奏慢下来,才发现夏天已经快开始了, 暑期也正式落下帷幕。最后可能会去字节,后面还剩个 B 站和饿了么的面试,但大概率不会再继续投了。我总想为这一年的奔波写点什么,不是为了炫耀什么经历,而是怕自己在未来某个疲惫的清晨,忘了这一路上遇到的人、做过的选择、受过的打击。美团很大,但我所在的组像是一艘大船上的仓库,琐碎、边角,不起眼。小红书则像一条快艇,核心、紧凑、推得很猛,我第一天就被拉去开会,接需求,像是被丢进战场的菜鸟,幸好 mentor 是个特别好的人,用他稳重的方式接住了我的慌张。而字节也算是核心组,目前还没入职,但面试就折磨了我一个月, 面了足足五轮.这一年里,我遇到过一些很重要的人。比如sf师兄,他是我坚持做后端开发最关键的支持者。我实验室工位搬到他旁边后,他几乎是手把手带我,给我发资料、讲面经,一次次帮我梳理思路。没有他,我可能早就放弃了这条路。在小红书实习的时候,我也特别幸运,遇到了 mar 哥和hk。我们经常一起讨论接过需求、代码、实现方案, 当然基本是我听他们说哈哈哈哈,他们对实习, 业务的理解也影响了我很多。记得第一次面 WXG,被评“算法还可以,但缺乏刨根问底的精神”。那时我不太理解这句话的意思,现在回头看,似乎懂了一些。我是 211 硕士,26 届,机械转码。读研前几乎没接触过编程,只会点最基础的 Python。考研上岸之后有段时间沉迷 APEX 和 LOL,代码完全扔下了,直到后来偶然接触了伯克利的 CS61 系列,才真正开始把基础打扎实。之后也写过一些小的轮子项目,刷题刷到 1700 分,算是慢慢找到方向了。研一的时候,我跟的是一个年轻导师。他非常 push, 当时研零还没正式进组,就给我派了几个活。但人很实在, 我一直觉得他适合去工作, 但是他选择了高校当老师, 他说想把他觉得好的知识教给大学的学生, 他是非常非常好的人。我记得刚开始连函数怎么写都不太会,是他让我坐到他办公桌旁边,一行一行教我 Python,看不懂代码就带我一行一行的读, 我就在旁边当气氛组。说实话,他可能是我见过国内能力最强的 CS 专业的老师,全栈还全干,项目、科研、代码都能上。他给钱也很大方,从不抠,不过就是会被他导师拉去干一些没人愿意接的活,但从来没把这些事压到我们头上。后来我实习,他也很支持。嘴上偶尔抱怨项目没人干了,可从没说过什么“必须回来”这类话,心里清楚他是在成全我。研一那段时间,实验室管得不多,课程也不是特别重。我花了不少时间去上国外网课,比如算法、数据结构、Python、Java 这类基础课程。印象最深的是数据结构,国外老师讲得真好,把很多概念讲得特别透。后来面试的时候,数据结构这块几乎没怎么被问住,心里其实挺感激那些屏幕另一头素未谋面的老师。除此之外,剩下的时间说实话也没做太多正经事,打了不少游戏,LOL、APEX、怪猎,一晃就过去了一年。到 2024 年 7 月,我开始写一篇小论文,同时也开始认真想未来的方向。是工作,还是继续读博?我读研时曾觉得读博是终点,是最理想的归宿。可现实总比想象复杂,慢慢发现自己可能并不那么适合科研。不管是国内的人情世故,还是对专注力和长期热情的要求,我都不太能达到。其实要是随便找个博读读,毕业后去个大专当老师,这条路应该问题不大。但我也明白,那并不是我想要的生活。8 月份,小论文的实验差不多做完了,我开始正式学黑马视频,补后端知识。这时候还好,之前算法和数据结构的基础都还在,真正需要补的是 JavaWeb、计算机网络、操作系统这些偏工程和八股的内容。刚开始看着觉得很多,其实沉下心来学,发现真正需要长期记住的没那么多。那段时间我基本是边学边问,师兄还是那个师兄,帅峰。那会儿他还在美团实习,平时很忙,只能周末抽空,我就一口气把一周积攒下来的问题全甩给他。他也从没烦过我,慢慢帮我分析,一点点讲,讲完再去永劫启动到了国企最后一天,  10 月 7 号,我把 JavaWeb 和 Spring 全家桶都看完了,也过了一遍小林 Coding 的计网笔记。为什么我记得那么清楚呢,因为我在家写完了苍穹外卖。那本来是和朋友约好去旅行的日子,但被我鸽了哈哈哈哈,就留在家里写项目, 虽然主要是因为我妈让我回去相亲……这个项目加上之前在实验室做的一个项目,差不多就是我实习投递的主要材料了。当时也不太懂投递策略,想着“先试试看”,就直接把所有知名互联网公司几乎投了个遍, 小厂基本没投过, 心比天高, 命比纸薄。结果就是一整周过去了没有一个面试邀约,整个人挺焦虑的。白天学操作系统,晚上等消息,邮箱看了一遍又一遍。也不是没心理准备,但那种空等的感觉,真的挺消耗人的...
点赞 评论 收藏
分享
评论
13
70
分享

创作者周榜

更多
牛客网
牛客企业服务