非常普通的二本菜鸟一枚(去年毕业),也一直有个大厂梦
回看2020,自己也确实比较结结实实的补了一波基础,虽然枯燥,但是过程中带来的成就感还是满满的。组内的几次分享,也让我对这些基础理解的较深刻
这也让我有了底气,在参加完好未来的PHP技术技术大会之后,决定尝试去面试大厂,检测一下自己的成果吧
从12.10~12.27,一共面了大概5家(包含好未来和百度),很幸运的都通过了所有技术面试,简直不敢相信(没见过世面的样子!-_-)
好了,下边才是本文主题,好未来和百度的面经(脑子容量有限,大概就记住下边这些。顺序没有先后,想起来一个写一个)
好未来面经
一面
- 自我介绍
- 介绍一下现在做的项目
- 项目中遇到了哪些问题?是怎么解决的?
- 项目中用到了哪些技术栈是你之前没有接触过的?是怎么学习的?
- 给一个表结构,给一个SQL,问这个SQL查询过程是否有回表
- 尽可能完整的描述MySQL执行一条SQL语句经历了哪些
- 给一个打卡记录表,写一个SQL,获取到打卡次数最多的前10名
- 给了一个有序数组,找出某个数字的下标
- PHP7数组的底层实现(一面没答上来,确实没看过)
- PHP是如何进行内存管理的
- 进程、线程、协程的使用场景
- Redis有哪些数据类型?缓存雪崩?缓存穿透?缓存击穿?
- Nginx的多进程模型
- 说说Laravel的服务容器
- 502、504这两个状态码在什么情况下会出现?你是如何排查的?
- 说一些你经常用到的查看系统情况的linux命令
- 工作中用到了哪些设计模式
二面
- 数组的移动:[1,2,3,4,5] 右移2位变成[4,5,1,2,3]
- 单向链表环的检测
- 给你一个无序数组,找到前K个最大的
- Redis中,set、zset底层实现原理
- Nginx如何实现平滑重启的?以什么方式?
- Nginx和php的通信原理?
- 详细说一下,哪些情况会出现502和504?
- 项目中有哪些值得拿出来说的?
- 信号监听这块怎么做的?kill -9 为什么能强杀进程
- 进程间通信方式
- PHP内存管理是怎么实现的?
- PHP7数组的底层实现(一面之后看了一下,二面回答的时候,面试官说我描述的是PHP5的底层数组实现,PHP7有优化)
- Redis中的zset,是如何实现扩容的?
- 说一下依赖注入
- 如果php-fpm没起来,Nginx会报哪个错误码
- 你是如何提升接口QPS的
- composer加载原理
hrbp面就没记录了,大致就是了解个人情况和如何学习之类的
好未来一直是我的目标公司,也是我毕业以来面的最大的厂(没办法,这学历,没人内推,很难有大厂的面试机会)。刚开始面的时候超忐忑,但是慢慢就进入状态了,每一轮面完真的成就感满满,不是说自己都会,而是面试官真的超好,你可能不是很清楚的地方,他一步步的去引导你,然后自己按照那个思路就找到答案了
面试感觉就是,面试官超专业,人也很好,反正感觉就特别好。面试通过,还是超级开心的。本来打算直接去好未来了,但是中间收到了百度的面试,所以就想试一下,很幸运也通过了,下边是百度的面经
百度面经
一面
- 说说你现在做的项目(问的很细)
- 说说你用go写的爬虫项目
- 你的项目中用到了哪些数据结构
- 你的爬虫项目如果做升级,你会怎么做?
- 说说Redis的几种数据类型及使用场景
- MySQL索引说一下,知道多少说多少
- 括号匹配问题
- 输出n对括号的所有组合(回溯,没答上来)
- go里边的channel
- 说一下你们对外的接口,如果用适配器模式进行修改,你会怎么做
- Nginx和PHP通信的完整流程
- Nginx的多进程模型
- 如果Nginx的master进程被杀了之后,还能正常访问吗?
二面
- 高并发有遇到过吗?(.....没有)
- 有没有基于兴趣了解过分布式(......没有)
- 说一下你理解的duck typing
- go中的接口和php中的接口的区别
- 你的项目中有哪些值得说的?
- 知道什么是稳定排序吗?
- 快排是稳定排序吗?为什么?还有哪些是不稳定排序?
- 说一下同步、异步、阻塞、非阻塞、同步阻塞、异步阻塞、IO多复路
- 进程间通信方式有哪些?
- 乐观锁、悲观锁
- MySQL用的是悲观锁还是乐观锁?
- InnoDB和MyISAM的区别?Redis和Memcache的区别?你会在哪些场景下选择Memcache?
- 你了解http和tcp吗?说一下你知道的内容
- TCP、UDP的区别?什么是面向字节流的传输?
- TCP是如何保证可靠传输的?
- http的请求头内容和响应头内容有哪些
- 说一下group by是如何实现的?
三面
- 介绍一下现在和以前做的项目
- 你项目中是如何保证幂等的
- 双向链表,插入一个节点
- MySQL的主从同步?如何保证顺序的?你有什么解决方案?(MySQL主从同步确实没仔细了解过,然后面试官就让说自己的思路)
- PHP的垃圾回收机制
- Redis中list的底层实现
- 如何看待团队内部竞争的问题
- 如果有个项目非常紧急,你如何做取舍
- 有没有转go的想法
- 三次握手?DOS攻击?
- 如果有十条一样的单子并发请求到你的代码逻辑中,你会如何处理?
然后是hrbp面试,基本上是问一些在大学里都干了啥之类的
技术面试官真的都挺好的,也是一步步的引导你去思考问题,没有接触过没关系,说自己是如何思考的就行
然后很快也有了结果,通过了所有的面试。在面百度的期间,好未来那边已经跟我沟通完了所有的东西,就差发offer了。然后我是给好未来说我这边有百度的面试,想面完,好未来的hr真的超好,她说可以等百度这边给结果了再给她们回复
百度面完之后,它们招聘那边的人迟迟没联系我,后来我就主动问了一下,说今天就联系我,估计是它们把邮件忽略了。后边百度那边就给我发了入职材料的邮件,薪资流水、学历、学位这些
我确认百度这边通过之后,就把好未来的offer拒了。哎,可能只有学历非常普通的小伙伴才能理解吧,去百度是想镀一层金,平台大,有资源
但是在后边的沟通中,真的特别不舒服,跟我谈薪资的hr说话的方式,我真的超不喜欢。她给我的薪资,我觉得跟我预期的有点低,我说我考虑一下,然后稍后给回复。我记得她说了一句“年底了,我们hc少”,那个语气,大家自己悟。后来我接受了,为了镀金嘛
然后谈到入职时间的问题,对方说了一句“早点来对你有好处”,因为这个hr说话一直都是那种比较冷淡的,听到这句话我真的炸了。我是为了镀金,但也不能没底线,我就让她们终止流程了
我也知道那是她的职责,但是总觉得她姿态放的有点高,说话方式让人很有压迫感,我真不喜欢那种氛围
后来三面我的那个老大跟我了解了情况,说让再考虑一下。我最后还是选择了不去(我知道将来我不跟hr合作,技术团队的氛围并不会是那样,但是那种不舒服的感觉已经在心里了,很难再接受了)
然后我就联系了好未来的hr,问她们是否还有hc,我想再面一次。然后她问了我百度那边的情况,就跟她们那边主管商量,接着之前的流程走了
兜兜转转,也许它就是最好的结果。本身我也超喜欢好未来的技术氛围,也许这就是缘分,哈哈哈,加油!
好了,叨叨完了,希望大家也能拿到自己满意的offer!
有疑问加站长微信联系(非本文作者)