速通24届暑期实习:我是如何在三月份斩获百度和美团两家大厂offer的

您所在的位置:网站首页 进入大厂工作的六点好处 速通24届暑期实习:我是如何在三月份斩获百度和美团两家大厂offer的

速通24届暑期实习:我是如何在三月份斩获百度和美团两家大厂offer的

2023-04-05 20:29| 来源: 网络整理| 查看: 265

前言

谨以此贴给我的三月画上满意的句号。

从3月初开始投简历找暑期实习到现在差不多是一个月的时间,这中间先后接到了携程、百度、拼多多、美团、招商银行的面试,拼多多和银行的面试因为已经有offer在选,所以我就都拒掉了,其实只面了携程、百度、美团三家,就拿到了其中两家的offer。本文主要想分享的不仅仅是我的心路历程,还有我如何充分的准备面试。因为确实面试成功率比较高,有83%哈哈,但其实我总共只进行了六场面试(携程一面,百度三面,美团二面)除了处女面,其他全部通过,其中携程一面挂还存在一部分原因是怪我自己错投了java岗又完全不会java。所以总的下来还是有一定面试成功经验的。

如果问我怎么做到的,总结下来就是台上一分钟,台下十年功

首先交代下背景

211本C9硕科班,无实习,C++技术栈,一个webserver+两个实验室算法项目。和其他找大厂后端开发实习的同学相比,我本身的硬件背景并没有很出彩的地方。

准备工作1、刷题

首先,我大概是从去年8月就开始的准备工作,前半个月调研了一圈岗位选择,语言选择,学习路径,8月15号就开始在力扣上刷了第一道题,一直到今年二月份这中间几乎没有间断,三月笔试比较多就没怎么刷了。

十月初间断是假期和女朋友出去玩(我甚至在酒店也刷了几道题笑死),12月底间断是羊了(中间缓了一天还刷了两道),1月底间断是过年(不忙的时候也刷两道),其他时候一天都没有间断。

结果就是6场面试的手撕我基本都是10min内ac并给面试官讲解思路和技巧,笔试只有米哈游把我挂掉,时不时还能给实验室的小伙伴打打外援(误。一开始因为科研python用的熟,所以用python刷题,后来有一次向卡哥提问后就从python的舒适区咬牙坚持切换成了语法几乎忘光的C++。其实每门语言坚持刷到200道之后,语法糖和小技巧基本都能灵活使用了。所以坚持刷,日日刷,熟能生巧真的很重要。在初始阶段我跟的是代码随想录,刷了完整的两遍之后我又刷了剑指offer和力扣hot100。

第二点,坚持输出题解。我大概写了有200篇题解,因为我深信知识是在输出中获得。输出题解还有另一个好处,不知道大家有没想过,明明有笔试,为什么面试还要手撕代码?其实因为你在面试的时候手撕的代码是需要给面试官讲清楚的。我不知道大家手撕代码的时候有没有边写边讲,不管面试官问不问,我都是总分总的形式,写之前先总体介绍思路,写的时候边写边讲解我在写什么以及为什么这么写效率高,最后写完ac了再分析时间空间复杂度以及整体的代码逻辑。我有分享过一个,面试其实很可能考到的一个简单的二分法题,我会怎么把握这个机会展示自己。

第三点,我的代码风格是力求简洁,思路清晰,方法简单,技巧性和效率问题都要往后靠。因为主要刷题是为了笔试和面试中手撕代码,两者都不会给你充足的时间,并且都是高压环境下,经历过的人都明白,作为一个非acmer要在高压限时的环境下写代码,你其实很难有什么新点子,所以每道题我并不是找到beats100%的解法去看,而是写出下次再去做我依然能够流畅写出的代码。

至于思路清晰代码简洁是怎么写,随便拿几个最近力扣上有人给我点赞的帖子举下例子:

所以总的来说,算法思维很重要,但是勤能补拙更重要。我没有acm的基础,但因为持续的训练和输出,我靠大量刷题和写题解也结识了不少同届,他们都说看了我的算法思路帮助很大。

统计时间只是个参考,有很多时候忘了计时,实际刷题时间远不止2、八股

八股我是在寒假就开始准备了。这方面书籍我看完了《C++primer》和《Linux高性能服务器编程》,八股用的是阿秀的八股和小林coding,八股我觉得跟用哪个都没关系,因为最后我是形成了自己的八股,别人的八股只是给你提供一个曾经面试出现过的问题,答案只是参考答案。虽然C++我只看完了一本书,但我对它的理解应该比纯粹只看书那样看完了好几本的人强一些。因为每一道题目我都是自己去搜的,直到把他彻底弄懂并且给自己讲一遍我会认为这个知识点的来龙去脉我能给别人讲的非常透彻,这道八股才真正是你自己的了。

重要的是,我有自己的思路和方式把他们纵横串联起来比如webserver的项目我就和计网的八股横向的全部串联在了一起,比如C++的new/delete和malloc/free区别+内存泄漏+内存分布+堆区和栈区+RAII+智能指针+shared_ptr源码这些完全可以横向的串联成一个非常大的话题,我可以把它包装成一个完整的故事来讲,而其中每一个点又可以和其他八股串联。比较细节的点比如堆区和栈区的问题,又可以纵向的切入,从内存布局->数据结构->空间大小/使用效率->申请方式->使用时机这样的逻辑再由浅入深的讲很久。八股并不是死的,他们不是一个个需要背的问题,而是你面试时侃侃而谈的语料库。这其中任何一个点问起我,如果不打断我都可以说上10分钟。要记得,所有的一切都在为面试做准备,因此能理解八股并不是结果,能背下来更不是结果,只有任何一个知识点都要保证能够用自己的逻辑把它的来龙去脉信手拈来的讲清楚我认为才算过关。刚刚统计了一下,所有八股按照我自己整理的方式加起来手敲了10万字,我自己都吓了一跳。并且以周为单位滚动复习,每周都要全过一遍(自己给自己讲一遍)。

部分八股的内容。ps:【本篇仅仅无偿授之以渔,八股内容暂不考虑以任何形式出售,谨防上当受骗哈】八股的时间是用时最多的3、项目

项目准备的相对比较晚,由于前期其他工作都准备的都比较充分,再加上自己有两个实验室项目,所以webserver项目在二月才开始准备,整个二月主要也是在学习项目。经过前两个经验的介绍大家应该可以想象项目深挖的程度了。除了看完牛客上webserver的视频(只看了后两章),并且一行行跟敲了代码,还要解决敲代码过程中所有看不懂,特别是其他有疑虑的点(比如recv和read用法有什么区别?)。除此之外,我专门针对网上webserver项目会遇到的问题整理了一万多字的项目八股,并且依然,是用自己的方式去整理的。我能够把项目介绍完并且串联起所有项目中的重点问题和难点,美团一面的面试官全程没有打断我,当时看了眼时间光介绍webserver项目我总共说了10分钟没停。对于这个项目的八股,我有个经典话题:如何从项目的数据流角度串联Reactor模式和Proactor模式,阻塞和非阻塞,同步IO和异步IO这三组高频八股。大家有空也可以自己整理一下这个问题,当你整理好了,webserver的高频题就吃透一半了。而且好巧不巧,百度二面的面试官在深挖项目中的第二个问题就问了个几乎一模一样的,他让我从项目中完全的数据流向介绍一下Reactor模式和Proactor模式的区别。本来他面试开始一进来神态还是比较严肃的,当我详细讲了5分钟从数据流的角度如何分析proactor模式的机制和优缺点,以及连带着其他我放在一起的知识点之后,他表情明显和蔼了,后面和我说话就全程带笑了,我甚至觉得他不再是面试官,我们只是在探讨一些问题而已。这种情况除了个人运气比较好之外,也是因为这几个考点实在高频,无论从哪个点去切入我都可以最后引到这个大的八股上。这也是面试的技巧。

对于这个webserver项目,很多人都说它烂大街了,但我觉得这不是一个贬义词。烂大街说明可以有非常充足的面试场景下能遇到的问题,恰恰可以让你有机会充分准备,以及有足够的资料去把这个项目吃透并且内化成自己的项目。我并没有在牛客的webserver项目上添加什么新的机制,而且每一个面试官甚至都没有再问我有什么创新没有,因为我所表达的内容已经足够让面试官相信这个项目我是花了大量时间吃透的,肯定不是照抄的。当然也可以通过增加一些创新点来体现工作量,那就因人而异了。

上面是针对webserver的,另外的项目就看平时的积累了,如果研一没有摸鱼摸的太狠,实验室多少是有点自己做的项目可以包装的,但是写上去的项目一定要给自己认真的讲过一遍。我其实也犯了这个错误,误以为我的科研项目领域非常窄,我觉得做后端开发的面试官应该都没有听说过,但是百度三面和美团的二面都分别问到了我另外两个冷门的项目,并且表现出了兴趣。而且别小瞧面试官,你觉得自己的项目够冷门就可以随便吹,实际上你介绍完之后他会从自己熟悉的领域切入你的项目,给你设计一些场景题,其实未必能答到很好。所以还是要对写在简历上的每个项目方方面面都足够熟悉才行。

面试过程

我在牛客写过两个面经,分别就是百度和美团的。其中百度的面经当时还在牛客热搜榜第一名上霸榜了几天

但是面经里只有题目,实际上在真实的面试中还有很多临场发挥的因素决定了结果,语言内容本身占沟通的信息量不到五成。首先是面试的状态,很多人强调了着装,这是对的。我们都是学生,面对面试官是容易紧张的,稍微正式一点的着装会让你更加自信。而面试很重要的一点我觉得也是有一个松弛感的状态,我本身话不太多,一紧张话就更少了。如何锻炼松驰感,我认为是面前充分准备+面后复盘。

面后复盘

只要想起来了,我都会录像自己面试的全过程,并且反复的看,实际上自己看录像会发现很多很多的问题,一面携程,虽说我知道自己岗位投错了,投的“java后端开发”但是我一点java不会,这是挂掉我的一个很大因素,但我还是在面试过程中积累了很多经验。比如复盘过程中我会发现,自己一旦紧张了容易反复重复前面说的话,而你一紧张其实面试官会感觉的到,你紧张的时候说的话自然会让人觉得不可信,负面印象就直接来了。除此之外我发现自己计网漏洞还很多,接下来的两天又猛学了小林coding在http和tcp的部分,幸运的在接下来百度的面试中考到了很多。而且携程的hr简历筛既然让我过了,说明其实还是有希望能通过面试的,我模拟了很多遍,戴着耳机把面试官的话放一遍暂停,我对着视频里的他重新去讲,再继续。不知道看多少遍吧,觉得哪怕下次再面java岗我用c++也能面的很好了。所以结果就是,接下来百度的三场面试我全部通过了并且接到了hr的oc。美团的后端岗位,虽然两轮面试官他们是java组,但我依然用自己熟悉的知识占满了大部分时间,对于java内容也提前准备了说辞,对于一些明显有java技术栈倾向的问题我也利用C++中的内容对应的去解释,所以结果还不错,美团一面之后的第二天就约了二面,二面之后隔天就收到了oc。也很快结束了我找暑期实习的过程。

其他的碎碎念

每个人多少会有一点自己的天赋,我一直觉得自己的天赋是给别人讲题hh。从小到大没有什么太大的本事,但是只要我能学会的东西,我肯定能给一个完全不会的人讲懂。长大了才知道这可能是叫沟通能力和表达能力,所以面试的时候我就当面试官问我的问题是他真的自己不会,我需要给他讲清楚。那么就要从它是怎么来的,最初为了解决什么问题,到它有什么性质,和什么技术是相关的,最后到它们在应用场景上有哪些区别,这些都耐心的讲一遍。一旦进入到这个状态我自然就不紧张了,所以掌握好自己怎么进入到自己熟悉的状态,可能也很重要。除此之外,就是天道酬勤。你只有在平时非常努力,才能在面试中显得毫不费力。我想分享给知乎上24届还在找实习的朋友们大概就是这些。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3