四面百度基础平台开发工程师社招
楼主18年毕业,渣硕一枚,19年经同学内推,面试了百度基础平台开发工程师岗位,两面技术+总监+经理面后被pass,面试完后自己有记录,这次放到牛客上回馈牛友们。
上学时一直帮导师做项目,搞的是.NET,毕业去公司做的是Java,一直是搞业务的,这次面试基础平台开发工程师,也是有想转型的意愿,毕竟业务搞得久了,
也想搞搞纯技术.....
废话不多说,上面筋:
一面:
自我介绍,基本是上学时的经历,研究方向,做的一些东西,然后是工作的一些项目经验。
HashMap结构,原理,为什么线程不安全,resize为什么会导致死循环,然后就是CurrentHashMap的结构,分断锁原理等等;
刚刚说了HashMap结构有红黑树,讲一讲红黑树的结构,balabalabala。。。。。
B树、B+树什么的结构知道吗?
balabalabala。。。。。
用的什么数据库?我说Mysql和SqlServer,然后就问mysql的隔离级别,mysql有几种引擎,各有什么特点?数据库索引,最左匹配原则。
InnoDB和MyISAM索引有什么区别?聚集索引和非聚集索引?各有什么应用场景,为什么InnoDB用的多?
数据库锁知道吗,有几种,加锁和解锁的场景,给一句SQL和隔离级别,能分析加什么锁吗?索引下推原理。。。
(数据库这块因为提前做过准备,就一直引导面试官问,聊的比较多。)
然后手撕了一个堆排序;
七层网络的协议,网络传输流程,ARP协议等等,三次握手,四次分手,拥塞控制,快重传和满开始等等。
到这基本上结束了,数据库方面聊的比较好,其他有些没答上来。
二面:
这次应该是技术leader了,还是先自我介绍,balabalabala......
海量数据的处理问题,网上很多,不多说。
看你用过Dubbo,讲下原理,额!然后RPC是什么,和restful的http有什么区别,什么场景下使用,socket和他们有什么关系,是那部分的封装。
常见的远程通信框架有什么?远程通信协议有哪些?序列化协议、传输方式?动态代理有几种?
dubbo默认使用什么传输协议?mina和netty知道吗?
BIO、NIO、AIO区别,原理是什么,有哪些实现,我说redis是NIO,然后开始怼redis。
redis poll、epoll,持久化,缓存一致性怎么实现,具体说说。。。。
zookeeper了解吗,能完整叙述下zookeeper启动和容错的选举流程吗?这个真的不会。
redis集群搭建,投票容错机制、高可用等等,redis问了蛮多,其实还有像事务,消息队列,除了五种数据结构其他的,redis模块等等,答得不好!
然后问了公司做的项目,聊了聊项目架构,技术选型,你觉得有哪些可以改进,我说路由要重新设计,就问我怎么设计?给出方案.....
三面:
经理面,主要聊了聊工作经历,为什么想来百度,以前是做业务的,现在换成基础平台开发,会不会转型难度大,了解k8s吗?然后又问了在学校学习情况,为啥没拿过本科没拿过奖学金(本科没好好学呗)。
感觉经理觉得我转型不靠谱,于是又安排总监面了一次。
四面:
总监面,还是聊了聊为什么想来,工作中有没有超额完成任务,有没有平时想主动优化代码,做过哪些工作范围外的创新或者业绩,,能不能接受加班。
最后还是被pass了,但其实并没有不开心。整个面试下来,感觉我的确有点低于他们期望值——能加班,技术还6.....