查看原文
其他

哦耶!冲进美团了!

小林coding 2024-04-19

The following article is from 宏夏coding Author 宏夏c

图解学习网站:https://xiaolincoding.com

大家好,我是小林。

前几天,后端训练营一位同学跟我们报喜,双非本进了美团实习,确实不容易,同学很聪明,清楚知道后端竞争太激烈,学历上不占优势,转投大厂测试开发,错位竞争进了大厂实习,实际上对于校招而言,后端开发和测试开发的薪资是一样的。

同学是去年 9 月份加入训练营的,在训练营跟着我们学习计划卷了半年,学的比较早,投的也早,赶上了一波优势。

他写了一篇他的学习&面试心得,写的很用心,分享给还在准备面试的同学。

前言

最近是春招、暑期实习的高峰期,自己也凭借着持续的准备和一部分运气,较早拿到了美团的测开暑期实习

以前接到美团的短信,都是外卖送达的通知,没想到自己有一天,也能收到offer录用的通知。虽然是测试开发的岗位,比很多大佬差远了,但还是心怀感激。

这篇文章,主要会分享自己的学习历程和心得,包括如何准备算法、八股、项目,以及投递测开需要注意哪些

也包括一些面试的相关经验,希望能帮助你在面试中游刃有余、愈战愈强。

希望这篇文章能给正在求职战场上厮杀的勇士们,带来些许帮助

背景

  • 双非本科,软件工程专业,无实习经历,几个小比赛省奖

  • 3.1投递美团,3.9笔试,3.20一面,3.22二面

投递的第一家大厂就是美团,当时的算法、八股的准备情况可能只有50、60%,在不完全准备充分的情况下就直接投递,并且以测试开发岗位为第一志愿,后端开发为第二志愿。

为什么我在没准备好的情况下就投递简历?

包括很多人都有这个困惑:

自己还没准备充分能不能去投递简历,投了害怕面的很糟糕,不投害怕后面坑位越来越少。

大厂投递简历,到笔试,再到约面是一有段较长的时间间隔,所以不要觉得自己还没有准备好就害怕投递简历,准备的七八成就可以投递简历了,而不是非要面面俱到才去投递。并且尽早的面试也能帮助你发现问题,检验成果。不逼自己一把,怎么知道自己行不行

学习经验分享

算法

对于中大厂,无论是笔试还是面试,算法都是必不可少的环节,甚至有着一票否决权,一般放在面试的最后环节,一般只出一道。

尽管前面的八股、项目回答的再好,如果算法没有做出来,可能还是要凉凉。当然,如果你在前面的环节表现得比较好,面试官就有可能会出一道相对比较容易的题目,而不会在算法题上为难你。

对于有些中小厂,并不会在面试中考察算法,如果你的目标没那么高,也可以不刷算法题。

对于算法题的准备,当然是以leetcode刷题为主,并且题量大概要到200往上,才有能力对付面试。

刷题顺序

刷题的顺序一般按照“代码随想录”题单来刷,并且要刷两到三遍,之后再去刷“leetcode hot100”题单;或者二刷三刷时结合hot100来刷

刷题tips

刷题比较好的方法,是用自己的话梳理总结题目的思路,并做好笔记。做笔记一方面是能帮助自己梳理思路,另一方面是面试过程中可能需要讲解自己的思路

在二刷代码随想录的时候,可以结合着codetop网站,去查看这道题的出题频率,能帮助自己对这道题在面试中的考察频率有个认识

并且在codetop题目的评论区中可能也会提到这道题需要掌握哪些解法、达到怎样的复杂度、以及相关的变形题目

在面试前,可以去刷一下上面的高频题目,以及对应公司考察过的题目

对于时间比较充足的同学,还是建议把题量刷上去。如果题量太少,在面试的过程中可能会出现一些简单题,但你又没有刷过,当场想的话又比较困难和紧张(亲身教训)

面试的话,可能出现核心代码模式,也可能出现ACM模式。比如美团的面试就是在牛客网上进行,出的算法题使用的是核心代码模式;ACM模式其实也不难,主要是需要掌握不同数据格式的输入输出,可以在代码随想录的网站上进行练习。

刷题心态

大家背过单词都知道,明明昨天才背了abandon,过几天可能就想不起来单词怎么拼了

刷题也是一样,需要反复的刷,刷了忘,忘了刷,是一个长期积累的过程

所以,调整好心态,不会的题、忘了的题,反复刷、每天刷。

刷题历程

我自己是在大二上的时候就开始尝试刷题,但由于白天基本满课,所以都是睡前刷题的。但在睡觉前刷题都有个坏处,那就是会有些疲惫,以及着急上床休息,所以会导致刷题草草了事,效率低下。所以很难坚持每天刷题,过了几个月就放弃了。

所以,一定要根据个人的情况,选择效率较高的时间段刷题,比如有的人白天刷题效率高,有的人是晚上,也有的人是下午。

开始比较系统刷题是在进入大三的暑假,但其实也是比较断断续续。自己在这算法这方面确实还是比较薄弱,应当继续加强

八股

八股的话主要分计算机基础和语言相关,计算机基础中大厂考察的比较多,包括计算机网络、操作系统、数据结构

语言方面以Java为例,主要是看JavaGuide的网站,一些Java基础知识、集合、框架的知识上面都有

计算机基础知识、数据库相关的八股,秀哥、小林coding的网站还是很给力的。

当然对于这些常见的面试问题,我自己也有做了大量的笔记

这些问题和回答,都是根据个人的语言梳理总结出来的,并且每一部分都会有对应的资料进行补充,帮助更好的理解问题本身、以及相关知识点

除此以外,回答也会更加的精简,不会罗里吧嗦,更快get到重点。因为面试官听你的回答,就是听那几个关键字和重点,只要重点提到了,怎么表述就是你自己的事了

八股的优先级

根据个人理解以及面试经验,我认为八股的优先级是这样的,当然仅供参考,不同公司可能重点不一样

MySQL > 语言 >= 计算机网络 > 操作系统 >= 数据结构

学习八股的正确姿势

面对一个问题,如果你之前有过些许基础,但不知道如何回答、从哪些角度回答,那么就可以参考笔记,总结成自己的回答

面对一个问题,如果你之前没有了解过,那么建议阅读资料中推荐的文章、google搜索相关的文章来了解背景,最后再参考别人的回答,梳理总结成自己的回答

通过阅读资料,潜移默化的形成自己的理解,以此为基础上再去记忆,会记得更牢。并且通过阅读不同的资料,能够发现不同资料之间是有所交集的,也能清楚哪些地方是重点,被反复提及

这些个人笔记都放到了我的公众号“宏夏coding”,有需要的可以自取,后续也会上线到个人网站上,大家可以先关注一手,说不定以后有所帮助~

项目

项目我觉得是大家比较头疼的一个问题了。大多数人在学校里哪有机会接触到真实的企业项目、实验室项目,更多的肯定是网上的学习项目。

所以是网上的项目不要紧,更重要的是如何去对项目进行修饰和准备。

如何准备项目(1)

如果你学习过新的技术点,可以尝试把它添加到项目上

比如学过SpingAOP,那么就可以在项目上实现它,比如使用AOP记录日志,又比如学习过Spring的安全框架,也可以在项目上进行一个实现

尽量动手实现,也能发现过程中存在的问题。如果无法动手实现,也要通过google搜索相关的实现方式、以及可能会遇到的问题,做到充分的准备

如果你做过比较多的项目,多个项目的功能点,也可以整合到一个项目上,让一个项目更为丰富和充实

如何准备项目(2)

在做项目的过程中,也要思考哪些地方是重难点,是可以写到简历上的,及时记录下来,而不是傻傻跟着做完项目了,等到要写到简历上了,才去挖掘项目的亮点和重难点。

除此以外,这些重难点可能在面试官面前不值一提,更重要的是要体现出你的思考过程,如何解决问题、如何比较和选择方案。也就是多问自己为什么

比如你项目使用到了缓存,简历上写了“对热点数据添加缓存,针对可能的缓存穿透,使用缓存空对象和布隆过滤器解决”,那么你就可能需要针对以下问题做准备:

使用Redis做缓存为什么快?(这时你就要去google为什么Redis能更快处理请求,和MySQL的区别在哪里)

如何对数据缓存、用了什么数据结构、为什么不用其他数据结构?(这时候你就要清楚Redis有哪些数据结构,使用场景是什么,对它们进行一个比较)

如何解决缓存穿透、解决的方式有哪些、为什么用这个方案而不用那个方案?(同样的道理,对多个方案进行比较,分析优势劣势)

如何修饰项目

对于网上的项目,在写到简历上时,你可以给他换个名字,甚至换个类型。

比如黑马点评,主要是对店铺优惠券的秒杀,那你可不可以把它替换成对课程优惠券的秒杀呢,类型能不能替换成某某学习平台呢?

名称不要局限于某某点评,把思路打开。

测开

大厂的测开问的问题和后端差不多,也会问语言相关的、MySQL、计算机网络、项目等等

区别的话可能会问一些测试相关的问题,比如:

  • 对测试开发的理解
  • 为什么投测开
  • 如何对某某功能设计测试用例(比如微信朋友圈点赞、微信转账等等)
  • 你做测试开发有什么优势吗
  • 你认为测开需要哪些能力(需要具备哪些核心竞争力)

所以在面试测开前,这些问题要提前准备,也要提前了解相关的测开知识。这些问题如果你不知道怎么回答,可以参考我的回答

面试经验

提前准备,反复练习

机会是留给有准备的人,可能有些人觉得自己的学历太差或者怎么样,才导致没有面试机会。但当机会真正给到你的时候,你真的把握得住吗?

对于八股的回答、自我介绍、项目介绍、面试问题,都需要经过提前的准备,并且通过动嘴讲述的方式来不断练习。在讲述的过程中,你可能发现有些地方忘了,有些地方还不太理解,有些地方讲的磕磕巴巴,发现问题,才能解决问题。

比如拿我自己举例,在第一次面试的时候就被面试官问到:你觉得你的优点和缺点是什么?你会不会有压力大的时候,如何解决?

因为没有提前对这些问题进行一个准备,结果现场回答的时候一塌糊涂,比如我当时回答“期末阶段课程压力会比较大”,但面试官就可能就觉得你平常都不上课、不学习、爱玩游戏,到期末的时候才手忙脚乱的学习,才导致的压力比较大,所以应该想或者编一个更好的回答。

所以,针对这些问题,需要提前做出思考和准备。

  • 对我们公司有没有什么了解
  • 对未来的规划
  • 会不会有压力大的时候,如何解决
  • 经历过最大的挫折
  • 取得最大的成就
  • 优点、缺点
  • 性格关键字
  • 有没有团队合作,发生分歧怎么解决
  • 如果在工作中给他人分配任务,有人不愿执行如何解决
  • 反问

这些问题未必是hr面才会出现,有些可能一面、二面就会聊到,如果你提前思考提前准备,那就是一招吃遍天下鲜

自我介绍,学会引导

自我介绍作为开场白,其实还是比较重要的,并且有可能引导面试官接下来的提问

那自我介绍通常都说些什么,如何进行引导?

这个其实没有固定的答案,因人而异,但可以围绕个人信息、比赛获奖、学习情况、项目收获几个方面去说,比如我的自我介绍是这样的:

“面试官你好,我叫宏夏,来自哔哩哔哩大学,软件工程专业。在校期间有参与一些比赛,包括二次元大赛、cosplay大赛、鬼畜大赛,并取得了一定的名次,收获和成长最大的是cosplay大赛(重点提到了某某比赛,面试官可能就因此提问,比赛的内容,收获了什么)。自己学习和使用叽里呱啦语言已经有两年的时间了,也做过几个项目,其中收获最大的是这个达拉崩吧项目(如果有多个项目,重点提到了这个项目,面试官可能就会问)。在自己平常的学习过程中,也比较喜欢阅读一些技术文章和书籍,比如《如何获取女人的芳心》、《线性代数》(往你熟悉的知识点引导,比如你熟悉mysql就说相关的书籍,熟悉网络就说网络相关的书籍),也会梳理总结成博客发布,目前累计有超过1个亿的访问量。(或者说自己github有什么开源项目,收获了1个亿的star)”

学费了木有,要个一键三连不过分吧哈哈

不懂就问,避免内耗

在面试的过程中,特别是需要手撕算法题或者sql题,如果你经过尝试后觉得自己真做不出来了,就及时和面试官沟通,表达自己的思路后看看是否能寻求面试官的思路,或者询问面试官能否换题,面试官人比较好的话,是有可能给你提示思路,或者换题的。

最忌讳的是什么,你明明知道自己做不出来了,却在那死磕,把时间耗在那里,你不主动开口那就只能面试官等的不耐烦了先开口,然后留下极差的印象。所以,寻求帮助也是一种智慧。

录音复盘,持续升级

录音复盘我觉得是面试的基本常识了,所以不展开讲了。录音转化成文字可以使用通忆听悟、飞书妙计等一些工具来自动转换。

最后

其实在实习招聘开始之前,自己已经做好了最坏的打算:

可能投递了几百次简历,却依然没有面试机会

可能在一次又一次的笔试中,质疑自己的能力

可能每天都在八股、算法、项目的反复循环中,疲惫到不行

可能在看到别人一次又一次斩获offer时,对自己的未来充满了迷茫和焦虑

每个人都会感到迷茫和焦虑,自己也不例外(贴一些当时的图片)

有时候经常会怀疑自己正在坚持的,是否会有意义,还是听天由命,随便找个班上得了。

但很庆幸,自己还是坚持下来了,当机会真正出现在面前的时候,之前所坚持的、所做出的努力,都不会白费

我是这样告诉我自己的,也将这段话送给你:

即使身处黑暗,也不丧失向上生长的勇气和决心,重要的不是自己何时盛开,而是不断从土壤汲取养分,当哪天阳光真的照射进来,才有足够的养分向上生长、开花结果。

推荐阅读:
想冲宇宙厂,直接挂了。。。
终于拿到阿里的小奖状!
有大厂实习,贼加分!
求你了,写简历用点心
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存