Preface

本文是后端组李长航的百度面经。已offer。

之前大二的时候面试了百度和腾讯,当时百度止步于最后一轮技术面,腾讯二面说希望收大三实习后能够留下来的同学。总之就是都挂了。加之准备研究web之外的其他领域,也没有面试实习的打算。上个月意外收到了百度hr的电话,就安排了面试。


一面(63min)

  • 盒子模型
  • 垂直居中(display:table-cell)有哪些解决方案
  • 清除浮动,几种方案
  • flex
  • BFC(父子元素嵌套,对谁设置BFC),BFC原理,如何设置
  • 响应式开发 (媒体查询,vw,vh,rem,flex)
  • HTML5用过吗
    • 这里我说了websocket,然后聊了几个相关的项目
    • 一些语义化标签
    • localstorage,这里结合维护的嘉明的毕业留言板项目聊了聊
  • 闭包
    • 这里做了一道题,题目我忘了
  • 闭包应用场景
  • 然后这里就讲到了jq源码,以及jq写插件
  • jq中的$符号,fn,原型链
  • jq源码看过吗
    • 然后就开始聊源码,这里聊了挺久的,因为我自己封装了一些简单jq函数,就被问到如何同时引入jq,然后又用了自己封装的,如何解决
  • 跟着聊了下模块化的一些解决方案
  • 模块化聊完,很自然的就聊到了ES6。
    • 还问了提升的问题,var 和 let的不同,结合js运行机制解释
  • 用过哪些数据库
  • 数据库的设计
  • php中的mysql,mysqli,pdo库,查询api
  • php中的两种引入文件方案,以及有什么不同(include , require)
  • 用过Laravel吗
  • thinkphp源码
  • 远程线上coding,两个题,一个是写一个快排,一个是用PHP和JS写单例模式

但是那天面试官网不好,无奈之下,让我把代码将给他听

  • 快排代码,快排的改进,快排什么时候最糟糕,快排的思想
  • 然后讲了下单例模式的实现
  • 接着聊到了this的指向问题,以及new的过程 (这儿感觉叙述得不是清楚,一开始他给我叙述的题目,都理解错了,大脑还停在设计模式,后来又交流了下,才明白了面试官想问什么)
  • 跨域
    • 这里讲了几种解决方案
  • 聊了聊工作室团队合作的问题,我说我们的项目很多都是一个人写前端,一个人后端,面试官还挺惊讶的,说他们当初都是两三个人负责前端,两三个负责后端,每个人负责一些模块。然后说这样岂不是几乎用不到git进行团队合作了
  • 然后还聊了些其他,一些学习方面的问题,包括各自的工作室交流。说我学的东西挺多的,接下来要注意多深入到源码级别的,再多读些源码。
  • 面试时间持续得较长,有的问题可能被我遗忘了

这次百度一面是唯一一次面试官既没让我自我介绍,也没问我有什么想问的问题

然后面试管告诉我二面面试官今天请假了,让HR再和我约时间二面


二面(42min)

  • 用过哪些数据库
  • 一般用什么数据库做项目
  • 讲见数据库的引擎
  • 数据库的索引,以及优、缺点,为什么
  • 聊项目(简历上的,github上的)

二面的大部分时间都聊项目了,聊了4个项目左右的样子,因为每个人项目不一样,聊得比较细节,就不写出来了

  • 遇到了什么难忘的bug,怎么解决的
  • 还有什么想问的吗
    • 如果二面能够通过的,还有三面吗(对,总共有三轮面试)
    • 问了下react,lisence的问题

二面是那天下午4点10分结束的,4点20分收到了hr的邮件,说通过了二面。
接着就约了5点进行第三轮面试。
过了五分钟,收到邮件,说三面面试官有一个会议,然后又再约了下面试时间。


三面(70min)

  • 自我介绍
  • 聊了简历上的一个项目,面试官让我把这个项目完整的讲下,从项目的idea产生到最后部署
    • 这儿就讲了很久,一边讲的时候,面试官会给一些分析、建议
  • 项目遇到的bug,怎么解决的
  • 然后让我再审视下这个项目,讲讲觉得有哪有些地方是做得不够好的
  • 接着面试官,又问,如果重新做一次项目,之前存在的问题,会如何改进
  • 讲讲一个项目,开发的完整流程
    • 这里我说漏了测试(测试也很重要,这点我做得很糟糕)
  • 团队合作开发存在的问题怎么解决的,遇到和他人意见冲突时,怎么做的
    • 给我提了一些建议
    • 说公司团队内部,一个对内的小项目,团队内部可能会先讨论一周,具体到编码规范,模块,函数名,这些都要大家事先约定好,还要做code review
  • 介绍你们工作室
  • 怎么带团队的
  • 兴趣爱好,技术的以及非技术的
  • 家在哪儿
  • 有女朋友吗
  • 能够接受加班吗
  • 怎么看待加班这件事
  • 你的技术规划,职业规划
  • 说说自己的优、缺点
  • 对技术发展怎么看的
  • 除了web以外,还有学习什么吗
  • 部门技术栈和你预期可能不大一样,怎么看
  • 给你介绍下我们部门
    • 主要做分布式反作弊,负责(xxxxxxx),这方面技术国内第一,来了肯定能学到很多东西
  • 实习时间

三面面了很久。几位面试官都很nice。第二天HR通知过了,给了offer。


本来是没准备这么快出去实习的。面试前几个月,自己做的开发都比较少,看的书反而多些,是希望自己能够更加深入。

希望以后的学弟学妹,不要拘泥于在哪个组,多拥抱一些技术,拥抱社区。



未经授权,禁止转载