我与百度的“四面之缘”
本人BG 双非本 985硕士、无实习。
最近两个月面试过百度两次,一次是7月中旬的暑期转正实习,另一次是最近的提前批,分属两个部门,面试体验天壤之别。暑期实习面试让我怀疑百度技术的专业性,而提前批面试让我认识到百度作为老牌互联网企业的强大底蕴。为了不被定位,这里以部门A和本门B分别指代。部门A是百度的传统业务,10年前这个部门还如日中天,可惜一手好牌打烂。部门B核心程度大于部门A。
1. 暑期实习-部门A
1.1 一面
楼主是Java 选手,部门A主要使用Go和Python,问题比较简单,基本都是常规八股,而且楼主怀疑是上一位实习生跑路了,所以要求才会这么低。
编程题:最长无重复子串
大厂是真的很爱用这道题过一个流程。
面试官没开摄像头差评,大概3-4天过后就约二面了。
1.2 二面
我对二面的评价:”逆天“。
面试官是一位女性,我怀疑不是技术人员,问的八股比较偏僻,貌似她有一个八股的list,然后从不同方面取题出来。然后面试官针对我的项目提问,感觉因为缺乏经验,所以有的问题她不是很能理解。
逆天之智力题:一块金子做为给雇员的工资,工作七天,每天都需要付工资,不能拖欠,也不能提前。至少要把金子分为多少块?每天如何付?
面试官就给了个题目,然后什么细节也没有透露。楼主一直在想怎么切这个金子,我当时一直想着第一道切成3:4,然后再怎么怎么切,想来想去怎么得也得切6刀才能成7块。面试完后去搜索,tmd还能还金子!有兴趣的同学可以去百度一下。
逆天之编程题:翻转链表Ⅱ 和 股票交易的最佳时机Ⅱ
面试官让我去leetcode上找一道中等题来做。
这道题我半个月前做过,但理解的不是很透彻,翻来覆去的,一直在想着如何在翻转链表Ⅰ的基础上去修改,结果就是反转之后节点的连接弄错了,后来发现,其实以插入节点的思路来做可能更好一些。
这道题的逆天在我:本来留有之前的记录的,刚开始还没共享屏幕,我简单看一眼,ez。然后把记录清楚了,共享屏幕重新做,然后我就g了。最后搞了一道股票交易的最佳时机Ⅱ来做,这个简单。
八股答得一般,智力题不会,编程题做得一般,结果显而易见。
面试官还是不开摄像头,然后也不找会议室,背景音都能听到项目组讨论的声音,无语。
2. 提前批-部门B
楼主原本投的是Java,本来打算转投正式批了,但后来被Go的部门捞起来进行面试。
2.1 一面
一面总共面试了快两小时,中途无数次汗流浃背。面试官的问题主要还是集中在基础知识和常规八股,问项目很少,无Java八股(后来问面试官说他也记不得那些Java八股,觉得没必要问,其实楼主记Java八股还记得挺不错的)。
难关一:你的项目中是如何实现正则搜索的?
楼主真的嘴贱啊,本来想的是从Mysql模糊匹配过渡到ES搜索,但讲述Mysql模糊匹配时候多加了正则匹配,之前楼主面试其他大厂的时候没有人注意到过,但是这里是百度。
寄!楼主开始鬼扯,最后无奈承认自己理解错了。
目前楼主也不太清楚如何传输这些正则表达式给后端Mysql进行处理的(楼主太懒了,欢迎各位同学补充)。
难关二:linux运维相关
面试官询问道Linux中nginx是如何配置的?楼主的项目是前后端分离的,前端部署在nginx中。项目年久失修,又并未实际上线运行,楼主凭借着记忆瞎几把答了一下,勉强混过。
如何写shell脚本进行日志查询?答曰:不会。如果你让楼主回答那些形而上学的概念,楼主肯定会娓娓道来,毕竟这些操作的底层逻辑都是一致的,但如果具体让我写某一条指令去查询某一个日期范围内的日志文本,我必然不会(后面在牛客上恶补了shell命令,现在我会了)。后来面试官说,确实你没有实习经验,会少这些实操的能力。
grep和find的区别? find基本上相当于 linux下的 “搜索” , 相当于windows下的搜索功能! 它是用来搜索文件的。grep是用来搜索文本的, 用来在standard input或文件内部的内容中, 来搜索文字内容的!
编程题:最长无重复子串
大厂就爱这个,地道~
最后反问环节又和面试官扯了会儿犊子,面试官提到我的基础不错,就是实操经验比较少。还聊到他之前面试了一些有实习的人,基础八股答的稀碎,狠狠的挂掉。我跟面试官说他们实习很累,所以就没有多少时间复习知识(谁让哥们儿没找到实习呢,我的八股其实也是稀碎,不过翻来覆去的去看八股,理解确实会加深一些,但容易忘记也是难顶)。最后还和面试官闲聊了我在大厂实习的其他同学的生产环境,表示和八股差异很大,大厂最爱大力出奇迹。面试官表示认同,然后我又狠添面试官一手。
这位面试官也没有开摄像头,但在开始的时候说明了设备问题,楼主表示理解。这次一面基本给我拷打得体无完肤,没想到居然过了哈哈。
2.2 二面
体验最好的面试之一,堪比我在Pdd 的暑期实习面试(这个大伙有兴趣的话,楼主之后可以抽时间更新一下)。
这是一次非常具有个性化的一次面试,面试官说他中午没有睡觉,看了我的简历给我定制了这些问题,我写一些我记得比较清晰的问题供大家参考。
问题一:mysql具有行锁表锁等等,请编写sql语句触发这些锁。
大惊!我大意了,没有闪,一上来就给我这个24岁的大小伙子出这种难题,一下仅供参考。
select for update 触发行锁,select in share mode 触发读锁,DML语句 会触发行锁,DDL语句触发表锁。
问题二:mysql分库分表的场景下,如何查询数据?以及对数据库索引的影响(比如按照用户id进行分表)
这个我不太会,就谈了下可以按照多路归并排序可以找到前10个的数据。
对数据库索引的影响我也是瞎答的,我说可以根据主键建立非聚簇的主键索引,这样就可以存储n张分表的数据,走索引提高效率了,然后还可以把中间的一些结果存储在聚合表中,这些可以用空间换时间。
问题三:redis内存溢出了,现在有少量大key,大量小key,redis如何进行内存淘汰?如果是你,又如何设计方案?
孩子们,我晕了。谁来答一下。
楼主自然是瞎答鬼扯。(后面想了一下应该是先把大key分成小key,然后再按照小key的处理方式进行内存淘汰)
无编程题
面试非常阳光,很年轻,很有工程师范儿,还开了摄像头,还给我量身定做面试题,我哭死。我问面试官为什么这次面试这么不一样,面其他公司都是自我介绍+项目这些(这次面试没有自我介绍,也没有项目,直入正题),面试官答:那些都是不负责任的偷懒面试官,泪目。
最后大家猜猜我挂了吗?
结语
两次百度面试,体验天壤之别。很喜欢我同学跟我说的一句话:分组!
#百度##哪些公司面试官让你印象深刻?##24届软开秋招面试经验大赏##互联网#