一位朋友2021秋招 | 上岸阿里的硬核经验

月伴飞鱼

共 4797字,需浏览 10分钟

 ·

2021-05-19 09:03

因干货过多,拆分为上下两篇。本文是上篇,分享校招经历和硬核经验。

本篇内容:4000+字

建议阅读时间:8分钟

受疫情影响,大厂在缩招、小厂在裁员、hc也大大减少。对21届的毕业生来说,宣讲会、笔试、面试都发生了巨大的变化,在毕业季找到一份理想的工作实”鼠“不易。

我从20年的2月份准备找实习开始,到11月签完三方,经过漫长的九个月,终于尘埃落定,最后的结果还算满意。分享些自己的经验,希望给找工作的小伙伴一点帮助。

一. 校招经历

1. 个人情况

双非本,211硕,本硕计算机。有一段中厂CV算法实习经历,一段大厂Java暑期实习经历。二个Java项目,二个算法相关比赛,一篇二区论文。

从20年2月份决定由算法转开发,走上了Java开发之路。

秋招面试情况:

  • 秋招获得的offer:阿里,百度,滴滴,京东等。

  • 笔试情况:投递102家,笔试23场。

  • 面试情况:面试20家,面试场次40+。在拿到阿里offer后拒了10多场面试。

2. 上岸时间线

上岸大厂没那么难,关键的是要清晰什么时候准备!要准备好什么!要有每一阶段的目标和计划!

2020.2-2020.4 春招找实习。复习开始没多久,找工作的方向发生了变化,这对我后面的秋招影响是巨大的。由最初的图像算法方向转为Java后端方向,原因会在经验分享部分讲到。自阿里打响暑期实习招聘第一枪,大规模的招聘便开始了。当时,我投了30多家公司,面试了20来场,无奈实在很菜,BAT均已惨败收场,还好收获几个中小厂offer,最幸运的是感谢东哥的收留。这段暑期实习,大大丰富了我的秋招简历,让我有了更多机会。

2020.4-2020.6 空窗期。由于疫情,实习定在了6月份,这个期间是一个空窗期,正好解决春招发现的问题,为冲刺BAT大厂做准备。开始坚持刷起Leetcode,并完完整整做了一个论坛项目,将项目部署在云服务器,同时做了域名解析,为秋招面试做好了准备。项目资料会在后面分享出来。

2020.6-2020.9 竞争激烈的秋招。自vivo就打出了秋招提前批的第一枪,字节的提前批(6.15-7.15)也紧随其后,浩浩荡荡的秋招提前批开始了。在牛客上的sp专场(7.1-7.14)投了很多企业,虽然面试的没有几个(有些企业在划水)但为后面的面试积累了很多经验,也培养了面试的感觉。从7月份字节的第一次面试,到9月份最后一场面试,经历了几十场笔试和面试。我也不曾想过,有一天竟参加了5场面试,面试完整个人都瘫了。虽满身疲惫,但结果尚好。

2020.10-2020.11 谈薪与三方。等待谈薪的阶段同样是煎熬的,从国庆假期结束开始,一直焦急的等待薪资消息。BAT谈薪死锁,谁先打破?但没想到是美团,以迅雷不及掩耳之势在周五开始谈薪,薪资相比去年大幅提升,打了一手好牌。至此,死锁解开,谈薪陆续开始。最后,结合工作地点、岗位发展、平台和薪资等因素考虑,我决定签约阿里。

二. 硬核经验

1. 岗位选择

相信对很多计算机科班硕士来讲,硕士期间接触了机器学习和深度学习,找工作自然也想找算法相关。但随着AI的退潮,算法相关岗位要求越来越高,供过于求、僧多粥少的局面越来越严重。算法已从神仙打架,到诸神黄昏,再到现在的灰飞烟灭。当然这些只是对我们普通学生有影响,对大佬来说则无关紧要。

春招时,我翻遍了牛客近两年算法转开发的帖子,分析了算法和开发的利弊,最后决定找Java方向。有以下几个原因(各位同学有想转开发的可以稍作参考):

  • 算法竞争大于开发。算法岗位少,基本中大厂才有,要求一般硕士及以上,目前顶会已是大厂算法的入场券!而开发不一样,小型和大型企业都需要,hc也较多。
  • 自己的兴趣。git clone、魔改模型、玄学炼丹的这些操作,相对来说门槛较低,成就感较低,当然这也与自己的水平有关。做开发工作,虽然有很多CRUD,但是可以立马看到效果,出现问题也有因可循。当然,开发也有很多挑战性的工作,比如:高并发、高性能、高可用、复杂的业务逻辑等。
  • 未来的职业规划。之前一直想找算法,有很大原因在薪资方面,认为算法薪资高于开发。其实最近两年,大厂开发薪资也逐渐接近算法,像阿里、腾讯的算法和开发薪资基本一样。除此之外,从事开发工作,对自己的发展更长久,工程师->高级工程师->技术专家的道路比较明确。如果做算法,自己手里没有几张王牌,竞争力太弱,工作几年后很可能被淘汰。

2. 简历制作

简历的重要性不言而喻,尤其在写简历时,会深深地发现自己的不足,我的简历也迭代了10多个版本,总结了一些要点:

  • 简历要包含基本的信息,如学校专业,应聘职位等。与工作无关的内容不要写,以互联网技术岗为例,家教老师、学生会经历等不用写。简历不用多么华丽,但要保证简洁美观,如字体和样式要统一。
  • 专业技能的描述。尤其是对于找互联网技术岗的同学,建议把专业技能写详细些。比如对Redis很了解,最初写成“熟悉Redis的基本使用和内部原理”,可以修改为“深入理解Redis核心数据类型使用场景和内部实现,熟悉持久化和过期淘汰策略,熟悉分布式锁,熟悉缓存高并发场景,比如缓存穿透、缓存击穿、缓存雪崩”。为什么这样做?对面试官来讲,面试官刚拿到你的简历,他可能没有想好具体的问题。如果我们把专业技能写的很细,面试官有很大可能去问这些专业技能,面试官也正好通过此问题的沟通,来判断专业技能的真实性,甚至是整个简历的真实性。并且,对我们面试者来讲,我们熟悉这些专业技能,如果回答的很漂亮,将是很大的加分项。面试是有时间限制的,这方面聊的多了,那么其他方面就聊的少了,遇到不熟悉的概率就更小了。当然,前提是简历上写的要会,否则就是自己给自己“挖坑”。
  • 简历上的项目、实习等经历,要体现出经历的价值。善用数据的量化表达,比如“xx使QPS从100提升到2000”。善于STAR法则描述经历,会让简历更出彩,更有说服力。项目经历可以包括以下几点:
    • 描述清楚项目的背景;
    • 自己在项目中角色是什么,负责哪些工作;
    • 用了什么样的技术方法;
    • 项目取得了怎样的成果。

3. 简历投递

  • 投递策略。如果不是大佬,可以选择海投。从提前批开始到秋招结束,我投递了102家企业,不是因为自己想要海投,而是没有办法。最初,我已经决定去上海或者杭州工作,所以刚开始投递的岗位也是这两个地方,但投递完都是石沉大海。后面不得已选择了妥协,开始了海投,投递了很多其他城市的岗位。通过这些非目标城市的面试,我积累了面试经验,发现了短板,为后面的面试也积累了很多经验。海投并不意味着海面,当已经积累了相对足够的面试经验,不想去的面试可以推掉,节省精力,也给其他人一些机会。今年秋招,当我拿到满意的offer后,也陆续拒绝了十多个面试。
  • 简历投递要趁早。很多企业的笔试和面试是有很多批次的,比如说,百度有三个批次,滴滴有两个批次,猿辅导有三个批次。假如满分是10分情况下,准备到了7分以上就可以投递了,不要想着准备到10分再投递,毕竟hc只有那么多!如果前面的批次如果招满了,后面就不会招了,面试也会更难。比如,今年猿辅导一共有三批,后端在第三批已经不招人了,因此早投递机会更大!!!

4. 实习和项目

项目或实习是非常关键的,不仅在简历这一关有用,而且在面试时可以拉开差距。尤其是对于我们学校普通的学生,项目和实习经历更是加分项!!!

实习要趁早,尤其要提前准备。实习分为日常实习和暑期实习。大多数同学因为导师或者课程原因,日常实习无法参加,那么暑期实习就显得更加重要。其中,对于暑期实习,大规模招聘是在3-4月,而不是在暑假7-8月,这一点非常关键。这意味着要提早准备,如果想上岸大厂实习,最迟春节过完后就要着手。

项目是非常重要的,有几个注意点:

  • 项目选择上:项目尽量避开人尽皆知(烂大街)的项目,如秒杀、商城。不是这些项目技术点不行,而是这几年来大家都做这样的项目,面试官出现了审美疲劳,用的技术再好也看腻了,也较难体现出自己的特色。如果已经做了这样的项目,可以选择套一层壳,如:把项目名称丰富下,换个项目场景等。那应该做什么项目呢?个人推荐做两种项目,一是略微新颖的业务场景项目,比如论坛、博客系统等。此类项目最好有一些特点,比如高可用、高并发、高性能、设计模式、复杂的业务逻辑等。二是脚手架项目,比如SpringAOP、IOC,自定义 RPC 框架。尤其是推荐脚手架项目,相比其他求职者的各种系统项目,造轮子的项目肯定更能赢得面试官的青睐。
  • 项目面试时:要对项目很熟悉,比如是业务类项目,要熟悉各种功能的场景和实现,系统的组件和架构等。项目要有自己深入的思考,要熟悉项目难点的解决方案,以分布式锁为例,要清楚项目中为什么用分布式锁?目前这种使用的Redis分布式锁方案有什么问题?应该怎么改进?
  • 项目附加值:如果能将项目部署,在简历上附上访问链接是更好不过的。项目的真实度会更高,而且便于在面试时根据项目功能与面试官沟通,面试效果会更好。同样,如果条件允许,在GitHub开放源码也是很加分的。

5. 学习方法

对于开发的同学来讲,尤其是Java方向,需要复习的知识点很多,尤其是时间紧、任务重,那么就需要一个很有效的学习方法,来应对面试。分享些尝试过的学习方式:

  • 看官方文档的快速入门,或者是找一篇质量不错的博文(点赞、收藏数较多)进行入门。比如要学习Springboot,先找一篇快速入门搭建Springboot项目的博客,英文好的也可以看官方文档的快速入门文章,一步步跟着教程搭建起来,会对Springboot有个大概的了解,知道它能做什么。
  • 看视频系统学习,比如培训机构的课程、MOOC的课程等。看视频的好处就是有老师带着,易于理解和掌握。老师讲的广度会很宽,比如会讲到很多api的使用,但是深度比较欠缺,原理较少讲到。
  • 看书学习,如《Redis设计与实现》、《Java并发编程的艺术》,便于了解技术脉络和深入学习知识点。我曾经看过三遍《Redis设计与实现》,深入了解了Redis的内部机制与实现方式,这也成为了我秋招面试中的杀手锏,为面试加分很多。
  • 看博客和源码精进学习。博客的好处是有些知识点会以很通俗的方式讲解出来,我们很好理解。但是博客良莠不齐,有时候会在找好博客上花费很多时间,比如在学习Spring AOP和IOC原理时,就在找博文上浪费了大量时间,后面也会给大家推荐些不错的文章。除此之外,极客时间、掘金等技术论坛,都推出了技术专栏,这些专栏的质量是蛮高的,我在上面学习过Redis、Java并发、MySQL、Kafka等专栏,对自己理解知识和面试有很大帮助。
  • 做好笔记。做笔记不仅方便复习和面试前突击,更能沉淀自己。写笔记可以使用Markdown,语法简单,排版容易,并且易于网上分享。目前主流的笔记软件,如印象笔记、有道等都支持Markdown,根据自己喜好选一款就可以了。

6. 稳住心态

还有很重要的一点,大家们一定要稳住心态呀!

秋招是漫长的战线,从投递的第一份简历开始,到面试通过、意向书、谈薪,再到最后的签三方,每一步都考验心态。当三方寄出去后,我才松了口气,秋招终于结束了。8月中旬,是秋招时最艰难的时候,当一次次面试没有结果,每天甚至都在怀疑自己,尤其是刷论坛看到别人拿到了offer,更是焦虑。后来,我开始写下每日的心情,尝试静下来,与自己和平相处,复习更加高效,面试效果也越来越好。稳住心态,一切水到渠成!!!

最后

以上就是我的校招经验,如有收获,不要忘记点赞哦。最硬核的高频考点和学习资料,将在下篇放出噢!

浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报