菜狗的秋招面经分享

背景:广东某双非一本毕业
#实习:
  -字节跳动-Lark-某业务 干了大概半年吧
  -欢聚时代(YY)-Shopline-数据中台 干了大半年吧
#实习相关:之前在YY的时候主要是重构了监控,然后基本上就是监控的Owner,由于这个监控跟我们说的promethus+grafana的监控不太一样,不属于服务监控,属于针对大数据领域中针对作业的状态监控,所以经常会被人问一些大数据相关的问题;在字节的时候虽然是直接做业务的,但是由于真正工作主要在做优化,所以经常被问SQL优化相关的事情。由于实习的时长还挺足的,所以基本不问一些传统的八股,所以后面其实也没什么八股画重点这一说,但是感觉八股理解透彻了,其实跟我下面的大差不差。

秋招给面的不多,但是我印象中好像给面的都有offer了。下面就是以几个大厂的为例子吧。分成两部分,一部分是基础的结构化技术面试,还有一部分是算法相关的,总的来说就是多写DP和树的题就好了,hot100刷熟点,人力面基本程序员都差不多,没啥技巧。


#1.百度
一面的时候吧,主要是感觉面试官问了一些实习相关的事情,一个是针对我的监控,问了一些当时的设计,以及探讨一下当时调研的对象和最终的技术选型。这里感觉就是要自信,就是要说出自己对这个东西的理解,就像有时候我们架构一个crud的项目什么的,为什么这些地方要这么设计,他针对的业务场景是什么,作为架构的那一方是一定清楚的,尤其是这种从0到1的项目,只要把业务场景说清楚了,为什么这样设计就可以了。然后就是问了一下,SQL优化,为什么这样做,把整个innodb的底层存储引擎说清楚就好了,例如using index在底层是怎么做的,怎么避免回表,执行计划是干什么吃的,在哪里出来的,把统计数据计算应该用什么索引的过程说出来就好了。然后问了一些spring相关的问题,问的还挺里的,有些问题不懂就直接说不会,问题不大的,以及go的问题(由于我会一点go,部门用的也是go)
二面的时候估计是面试官看到我做了SQL优化的工作,然后试探性问了一下我看什么书,我就说我看了那三四本mysql的书以及一些存储相关的书。然后我们聊天的时候主要是针对《mysql是怎么运行的》这本书里面的内容在聊的,由于我们俩都是这本书的读者,所以对这本书的细节非常了解,然后他就在书中很细很细的地方问了我,由于这本书真的写的太好了,我就基本上都记得,所以面试官就挺满意的。还就书中一个:RR是否解决幻读。这个问题跟我展开了很激烈的讨论。然后聊了聊DDIA和分布式共识算法,聊了聊raft和paxos。基本上就过去了。总的来说这一面其实比较特殊哈,我是一个喜欢存储领域的后端开发,刚刚好面试官也是,我们就这一点上其实气场挺合的,对于后端来说,我们对DB的了解其实也应该挺深的。
三面的话,主要其实不是技术面。是针对一些人力方面的问题,例如说我们如何协调研发资源,如何解决倒排问题,如何去做风险上报等等。
四面的话,就是纯纯被吊打面了。由于部门是C端的,天生自带高并发,所以有很多设计方面其实在我的工作中(B端或者内部平台)其实并没有这方面的经验,所以很多主要的设计是不能支撑业务的膨胀的以及不能支撑那么大的流量。我觉得这里就是我的短板,大伙们啊,活用redis吧,redis不只是用来做cache好用的。
五面主要是跟大老板聊我们怎么学习,估计是二面的时候说了我喜欢看书,大老板好像挺喜欢这一点的,问我是怎么看书的啥的巴拉巴拉的。然后问了我生活作息,我说一点睡七点起,给老板惊到了,笑死。

#2.字节
字节我是转正答辩通过的,所以其实没有面试,就是直接讲讲文档,问我C,B端的区别,如何做建模等等,没有技术性的问题。

#3.快手
一面的话,还是在聊SQL优化和innodb的底层,以及用过的优化的手段,我们怎么去玩mysql的。感觉回答这个问题就是有些条理性就可以了,一般来说分为技术层面的优化和业务层面的优化嘛,所以我们就分开讨论就可以了,再讨论成本,最终选型是偏向xxx,也是真实的解决慢SQL比较常见的思路。不过我当时由于回答的没有太规整的结构性,所以面试官稍稍有些不解,稍微提醒了我一下,也很感谢他包容我,各位大佬也要注意一下这点。
二面的话,依旧是聊SQL优化和innodb的底层,然后问了一下spring的比较八股的问题,有些不会的就直接说不会了(这个真的很重要,别给自己挖坑)。
三面的话,聊了聊现在互联网的现状,聊了聊怎么学习的,怎么做自我提升,怎么规划,作息等。问了些技术问题,一个是问监控的架构设计,跟上面其实如出一辙,还有问了一下innodb和Kafka的设计是怎么设计的,例如Kafka的时间轮,innodb的buffer pool和wal等等。
最后给了道大设计题:如何设计大数据的作业调度系统,我直接mr思路了。

总结:
其实很多是围绕我看过的书和论文的,看书的这种积累一定程度上能展示你的知识面(下面的是面试中跟面试官提到过的书和论文合集)。对实习内容一定要懂得透彻,如果只是穿针引线那还不如不聊实习,实践能力很重要,但是理论基础一定要扎实,千万不要相信所谓的实践>理论,没有足够的理论基础的支持下的实践会让我们高原缺氧。在工作中不可避免会有“常见思路”,工作中考虑到成本因素而否决掉其他的方案是正常的现象;但是永远不要停止思考,多去思考其他的解决方案能对自己的思维有更大的提升。总得来说在后端来说,考究的更多的不是你的coding能力,真实开发中其实coding时间占比很短的,但是我们协调资源(包括机器资源,例如你要上topic,要上redis;人力资源等等)的能力其实是面试官更为看重的。


#附录
数据库or mysql or 分布式相关书
《mysql是怎么运行的》(推荐)
《MySQL技术内幕Innodb存储引擎》
《数据库系统内幕》
《数据库系统设计与实现》
《数据库系统实现》
《高性能mysql》(不推荐)
《DDIA》(推荐)
《大规模分布式存储系统》
《深入理解分布式系统》
《分布式系统概论》
中间件相关
《深入理解Kafka什么鬼忘记了》
《Redis设计与实现》
《Redis深度历险》
《Redis实战》
操作系统相关
《现代操作系统》
《深入理解Linux内核》
《30天自制操作系统》
《若干操作系统的教科书,忘了,这里还挺多的》
论文 or 其他资料
《Raft等MIT6.824中涉及的所有论文》
《LSMTree》
《MapReduce》
《BigTable》
《Google File System》
阿里的内核月报
各个社区的官方文档



全部评论
必是南科大的
3
送花
回复
分享
发布于 2023-01-17 20:14 广东
1
送花
回复
分享
发布于 2023-01-24 13:09 广东
滴滴
校招火热招聘中
官网直投
shopline有转正吗
点赞
送花
回复
分享
发布于 2023-10-27 19:00 广东

相关推荐

        本文只是随想,谈谈候选人的要求和对候选人的要求。        负责三次校招,竞争确实越来越白热化确实有体会到,很多候选人在项目之外的经历逐渐增多,包括开源经历、一些公开课作业,e.g. MIT 6.824。对于基础架构方向的同学,这类课程可能比较有用。对于业务/前台方向的同学,于面试官而言,这些课程只能说锦上添花。面试更在乎的是你的基础和项目,在长达半个小时的面试流程中,你要和面试官产生一定的共鸣,如果双方的知识领域不存在交叉,可能想看两生厌——面试官无法客观的评价你,你也认为面试官找不到你的G点,这很难受。        至于开源项目,其实更多的反映了你的积极态度和一定的隐含信息:会使用git、对开源项目有一定的了解,但是issue、typo、readme、config change类型的PR简直是场灾难,如果面试官恰巧也有开源经历(尤其是基架方向),并且认真的看了你的简历,这会被认为是投机取巧。        Coding,基础和项目,是面试官对你的专业素养了解的全部渠道。coding这件事不多说了。基础的话,不建议死记硬背面经,这种结论性的浓缩原理,在面试官下探你深度的时候,往往是很苍白的。而且比较出名的JavaGuide和Cyc2014,其实有很多原理性的错误,还是比较建议看书和文档,最权威的还是官方文档,很多官方文档都写的不错。        项目介绍和讨论是面试官和你交锋的核心阶段,项目的探讨能向面试官展示你知识的广度和深度,这些年流行的的项目看起来差异化不大,所以有日常实习经历的同学会更有优势一点,但只要表现你有认真做过你的项目,并且了解项目相关的中间件知识和相关业务场景的处理方式,你和有实习经历的同学差别不大——只是欠缺了实际工作中协同完成项目的经验罢了。        面试官的要求其实不算多,笔试可以,基础能答得上来,项目确实做过,让面试官知道你对项目有一定的想法,差不多就能过关了。有几个同学在后台diss我,n段大厂经历/开源项目为啥还是被pass,我建议复盘一下,看看实习和开源项目的质量,另外实习到底做了什么,一定要讲清楚。        最后打个广告,目前淘天-天猫技术-品牌行业技术还在招春招实习生,第一次投递和转部门的同学都可以试试,具体情况可以看我其他帖子#校招过来人的经验分享##实习##春招##阿里巴巴#
点赞 评论 收藏
转发
欢聚集团 测试岗实习生 薪资都差不多 cvte包吃住 欢聚则是600餐补二选一
点赞 评论 收藏
转发
15 45 评论
分享
牛客网
牛客企业服务