百度正式批面经(已意向书)
楼主是搞 Java 的,但是考虑到百度的核心业务主要还是 C++、PHP 写的,所以投递了百度 C++/PHP/GO 研发工程师岗位。9 月 7 日笔试完,就一直在笔试流程中,没有约面,估计是笔试成绩比较低,优先级靠后,直到 10 月 19 日才收到了面试预约和测评邮件。
一面 2021/10/23 9:47 47min
- 自我介绍
- 介绍实习的项目
- Java 的 HashMap 是线程安全的吗?
- HashMap 的底层结构是什么?是如何解决冲突的?
- 进程、线程和协程的区别?
- 说一下进程之间的通信方式?
- TCP 的三次握手说一下?为什么需要三次,两次行不行?
- TCP 和 UDP 都有哪些区别?
- 浏览器打开一个网址,都要经过哪些过程?这个请求过程都经历过哪些协议?
- HTTP 有哪些请求方法?都用在哪些场景下?
- HTTP 的响应状态码都有哪些?分别代表啥意思?
- Session 和 Cookie 都有哪些区别?
- MySQL 都有哪些存储引擎?都有哪些区别?
- 我们在建表的时候都有哪些索引呢?
- 联合索引有哪些特性?
- 写一个 SQL 题:有一张 name_score 表,有三个字段,分别是 name、course、score,找出平均分大于等于 60 分的学生姓名
- Redis 都有哪些数据类型?
- 你用 Redis 都做哪些东西?
- 写一个 Coding 题:LeetCode 141 环形链表
反问:
- 校招正式批统招统分,分配部门有没有什么规则?
- 我投的 C++/PHP/GO 研发工程师岗位,如果面试通过,分配的部门也是写这些语言的吗?
一面面试官比较年轻,应该是个 T5,问了一些常规的八股文,但是每个问题都喜欢问还有吗,直到答不上为止。面试官让我先等着,不要下线,一会会有二面。
二面 2021/10/23 10:38 21min
- 自我介绍
- 面试官质疑今天面试的应该是 C++ 的职位,我解释了一下。
- 你 C++ 有基础吗?在大学的时候学过吗?(学过,没实战经验)
- 你 Java 有工作经验吗?能简单讲一下你的经历吗?
- 面试官说要是从事 C++ 的开发工作的话,可能跟你现在的开发可能就是两条路了。我也谈了下自己的理解。
- 先讲一下 C++ 的网络编程,你实际自己去写,或者说去学习当中,你有没有做个实际的东西?
- C++ 的多态和虚函数有了解吗?
- 学 Java 时候,用什么操作系统开发?简单介绍一下 Linux 看一下 CPU 占有率、进程、内存用什么命令?
- Linux 上的环境是自己搭建的吗?用不用写 Apache 服务?
- 你在讲讲你那个项目吧?
- TCP 为什么需要三次握手?
- 断开时为什么需要四次挥手?
- Java 里面有没有 TCP/IP 的握手过程?
- 多线程和多进程之间的应用场景了解吗?
- 你对未来百度的这份工作,你想从事的是哪个领域呢?(搜索、广告)
- 面试官说部门很可能不能自己选择,校招面试可能所有的部门都有,他们部门是 Apollo OS,主要是做车方面的。
- 什么时候毕业?如果要是入职的话,明年 6 月份毕业以后才能来百度这边工作吗?
面试官说看我沟通能力还是挺强的,一般程序员的话沟通能力都是较弱,目前的弱点可能就是 C++ 的经验偏少一些,尤其是实际项目经验,现在校招的同学理论上应该在在校期间也要跟导师或者出去历练一下,至少有一个项目的经验才好,就可能给自己加分更多。
接下来和面试官聊了一下自动驾驶操作系统的一些东西,面试官跟我科普了很多我听不懂的知识。最后说觉得还是很不错的,因为校招也不能要求太多的项目经验,只要基础、热情、沟通能力、小伙看着比较灵就 OK 了,等一会会给我弄到下一轮去。
三面 2021/10/23 11:00 49min
自我介绍,自我介绍完了之后,面试官“咦”了一下,说你的简历好像和你投的岗位不太符合,我又解释了一下
针对简历上的实习经历和项目经历提问了一下
能给我介绍一下正排索引和倒排索引的区别?为什么这里会用到倒排?
用的这些中间件有看过源码嘛?哪个看过源码?
Spring 中 IOC 的概念能解释一下吗?为什么要这么做?
实际用过哪些设计模式,具体哪些场景用的?
你专业是学计算机的吧,也就是说你简历之外的其他信息也能问是吧?
你实习的时候都是在什么环境下,Windows 还是 Linux?比较常用的 Linux 命令知道哪些?看某个进程的这么看?
你了解模版编程中的模版吗?
你了解 HashMap 是怎么实现的吗?
char * input = "abcdef";
sizeof(input) = __; strlen(input) = __?char input = "abcdef"; input[3] = 'm';
这两行代码的问题是?网络编程你知道的有哪些步骤,或者说有哪些函数?
你自认为你大学期间写码写了多少?
出个题我看一下你的实际代码能力:
输入:整数数组,有 0 和非 0
输出:数组调整,0 调到前面,非 0 在后,且非 0 序不变。
要求:时间和空间复杂度都低
比如:00105302309 => 00000153239
你以前搞 Java,现在面 C++ 的岗位,你是出于什么考虑的?
如果这个岗位让你面上了,在你正式入职之前,你打算从哪些方面提升自己呢?
我看你是本科,为什么没有想读研?
你大学期间有没有参加一下社团活动,除了做开发方面,哪些地方投入时间多一些?
你自认为是外放型的还是内敛的?
你认为你是那种纯粹的技术极客还是说比较喜欢比如说通过一些技术去解决实际的业务问题?
你觉得你大学期间你学的最难的课程是什么?最终考了多少分?你会很排斥吗?
反问:
- 三轮的面试官都是一个部门的吗?有什么规则?
- 你们这个部门还有 HC 吗?
- 结果多久出来?
- 需要学哪些技术栈?
面试官说他们部门是做商业广告、搜索推荐相关的业务的,是商业里面最核心的部门。问我现在有哪些 offer 了,都是做什么业务的,我表达了对这边的业务比较感兴趣,面试官问如果我这边想要你的话,你是很愿意来的,我回答了是。