2020 春招总结 👻

俗话说「金三银四」,我这次呢好歹也算及时抓住了春招的尾巴 233,同时相比大三时的菜鸡本鸡有了些许进步,记录一下,以免忘记...(今天瞎搞 Nginx 把 18 年底配的一个 hexo + Travis 自动部署的博客搞崩了...然后发现自己完全不记得是怎么配的。。)所以一定要记得多写博客!好功夫不如烂笔头!!(顺便攒攒人品嘻嘻)

这篇主要讲面试的体验及经验总结,具体的面经请参见这里

春招结果

投递时间 + 公司 渠道 base 岗位 结果 重要时间节点
03.06 阿里妈妈 学长内推 杭州 Java 学长忘了
03.13 盒马 牛客网 杭州 Java 一面笔试挂
03.06 字节跳动 学院内推 南京 后台 不靠谱,后来自己投
03.14 微软 O365 同学内推 苏州 开发 offer 04.07 lc1
04.13 lead
04.21 意向书
04.24 offer
03.16 招行信用卡中心 网申 上海 Java 笔试挂
03.18 蚂蚁金服 学长内推 杭州 Java 一面后面试官推荐转前端
03.21 腾讯 CSIG 腾讯云 网申 深圳 后端 一面挂
03.25 美团 外卖配送部 网申 北京 后端 鸽三面 04.02 笔试
04.14 一面
04.15 二面
04.26 约三面
03.25 华为 同学内推 南京 后端 鸽笔试
03.25 ThoughtWorks 网申 上海 开发 直接挂 04.28 拒信
03.26 网易杭研 网申 杭州 Java 鸽二面 04.07 笔试
04.16 一面
04.23 约二面
03.27 拼多多 学长内推 上海 服务器 笔试完无消息 04.10 笔试
03.30 字节跳动 抖音 HR 内推 上海 后台 offer 04.14 一二面
04.26 三面
04.27 HR 面
04.?? offer
03.30 腾讯 CSIG 教育 网申 深圳 后端 offer 04.11 一面
04.15 二面
04.18 HR 面
04.26 offer
04.03 小米 网申 南京 Java 无消息
04.08 shopee infra 网申 深圳 后端 鸽二面 04.24 一面
04.28 约二面
04.08 蚂蚁金服 学长内推 杭州 前端 鸽一面 04.21 约一面

各司面试体验

阿里

有一说一,阿里的技术实力确实强,而且面试时发散性也是最大的。在讲项目时,面试官是真的有在听你讲,然后提出相应的问题,不是泛泛而谈。虽然先面阿里的折戟给了自信心重大打击,但是收获也不少,诸如「词语命中考虑过前缀树 Trie 吗」、「最终得分计算除了平均是否有更好的方法」等,让我在之后其他公司的面试中都有着更好的表现。再次感谢在这次春招中我的第一次面试的盒马面试官~

然后盒马学长挂了我之后给我找了个下家(感恩❤️),让我去蚂蚁金服那边面。蚂蚁那边面试官不按套路出牌,整体都是在聊人生,当然,我没有说这样不好的意思,这样其实是能够筛选出那些真正对技术有热爱的人的,然后我就被刷掉了。个人感觉面试官对我的印象是——前端做得多,并且有主动学习前端框架 Vue / React 等,但是后端没什么驱动力,看不到对后端开发的热情,所以推荐转前端——最开始听到推荐转前端的时候我哑口无言,毕竟印象中前端没话语权钱还少,个人从未想过从事前端行业,同时,我开始质疑自己是不是真的比较喜欢做前端。

后来经过春招这么长时间的思考(主要是在一次又一次的面试中发现自己),以及自己这两天重新上手修改博客的代码,我认为自己对单纯的前端其实兴趣也不大,前端只是我在实现后需要具象化的一种方式。我真正感兴趣的是整体架构、是开发流程,不管是 18 年春看了那篇关于前后端分离架构的博客后主动学习 Vue,还是尝试将博客从 hexo 转为类 React 的 Gatsby,我其实关心的点其实都是在于「内容」与「整体架构和流程」——前后端分离架构让前后端都能够更专注于自己的事情,这个时候需要这样的一种前端框架来使架构实现,所以我才会主动学习 Vue;而因为博客学习 Gatsby 也是这样类似地,因为整体是 Headless CMS 架构,所以才会通过学习 Gatsby 来实现。架构与技术之间是一种互相促进的导向关系,我并不是对前端技术感兴趣而学习,而是对它背后的架构感兴趣。这一点在巨硬 lead 面的反问环节中也给了我很多思考,欢迎继续往后看哈哈。

此外,我又想到在最开始用 hexo 做博客时,hexo 最基本的就是通过 hexo deploy 进行部署,作为一个专业的程序员怎么会每次写完都手动部署呢,必须通过流水线自动化啊。于是了解到了与 GitHub 联系紧密的、轻量级的 Travis CI,并构建了流水线对博客进行自动集成部署。我还在服务器上通过 Nginx 对博客进行转发、对图片进行 cdn 加速等,这些都可以算是后端 / DevOps 的实践活动。

但是因为前期面试准备不够,没有好好归纳总结自己到底学了什么、用了什么、为什么这样做,导致面试时自己也是一团浆糊,所以才会哑口无言。其实自己对技术也是有热情、有驱动力的嘤嘤嘤。🥳

(下次和面试官就可以 battle 清楚了😤)

后来前端部门联系我面试,因为已经想清楚了自己感兴趣的点,就婉拒了。至此,阿里招聘个人中心界面中我已经有了 8 条记录。😅

腾讯

腾讯整体的面试体验比较亲切和蔼,第一次面试 CSIG 时问的问题其实也不难,但是没准备好就挂了。挂的第二天本来打算找学长内推 WXG 试试,结果发现简历已经又被锁了。然后就是漫长的等待期,大概被锁了 11 天,然后发现面试还是 CSIG 哈哈哈。

一面的面试官广普有点点好笑哈哈哈哈,喜欢广东 555,而且整体体验特别好,我不会时面试官会给提示,看你能不能融会贯通给出点东西。(跟阿里不同,阿里就一直问你,直到问到不会。)最后反问时我问对实习生的培养怎么样,回答说部门这方面很不错,几个进来时不如我的后来成长速度很快,在公司都算前列。(于是我知道我这次过了哈哈哈哈哈)算法题看我会写就说算了不写了,但是时间不够就问点别的。于是我主动扯自己的另外一个项目 Qunatour,想拉一下方向,结果不感兴趣😂。最后扯到一致性算法,我表示看过 Raft,于是又聊(被)了(问)会(倒)。

二面的面试官也比较常规,二十分钟聊项目,半小时聊基础,最后做三道题,也比较常见。唯一一道没写过的是 atoi 将字符串转换为整数,考量的就是各种异常边界和错误判断处理。

字节跳动

字节的投递一波三折,因为字节在南京的点就在我们院楼楼上,所以当辅导员提出帮我们内推时,我们默认就是直接帮忙投递南京这边了,然后等了快一个月都没联系,同学才去问辅导员怎么回事,结果辅导员说需要自己投递。我们就???行吧,起个早场赶个晚场,这研究生辅导员比起本科的真是大概差了五百倍吧,老坑逼了🙂。但是呢,因为投得晚,安排面试也晚,最后准备就比较充分,也不知道算不算因祸得福哈哈哈。

整体面试体验都还不错,尤其是 HR 感觉贼认真负责,因为我三面隔一二面 10 来天了,HR 还特意在面试前一天问我是不是还记得、能不能参加。一二面问基础知识和算法,三面问项目和一些经典问题如「怎么学习的」、「项目的成长」之类的,此外还写了道算法题。整体也是先说思路,得到认可后再写代码。然后面试官会一直问如何优化,有时候我觉得已经是最优解了啊。。可能还是我菜。😭

微软

巨硬最开始的内推 ddl 比较早,好像是 3.5,然鹅我看到的时候已经 3.8 了,就没找同学内推,但是也没投哈哈哈。后来水群发现大家都还在内推,于是果断找同学内推。(毕竟面试题是真的难,我估计我做不出来😇)

巨硬这种外企呢,考察的点和国内企业很不一样。国内就是啥都考、范围又广又深,外企一般就是考算法。此外还会简单考下英文,我就在面试前一晚简单准备了自我介绍,然后问我的是之前在华为实习做了啥,一下子就暴露真实英文水平=。=

整体的面试体验超棒!面试官超亲切,完全不会给你压力。在正式写代码前先想清楚,然后把思路讲给面试官听,他认同了你的解法后再写就比较稳。我个人没有遇到特别难的算法题,反而感觉巨硬比较偏好那种「有规律」的题,比如我 lc1 面的格雷数、lead 面的四舍五入 round 函数、同学 lc1 面中数字 5 坏掉直接跳过求真实值、 lead 面把中文数字转换为数学数字(如输入「甘二」输出「22」),都是先给几个例子,看你能不能看出其中规律,然后再来具体实现。

最后我问 lead 面面试官的问题是「在微软工作的同学说工作内容不分前后端,老板给钱啥都干,请问在前后端分离的趋势已经十分明朗的现在,为什么微软仍然是啥都干呢?」面试官说:「微软的工作最终目的都是为了做好产品,只要能做好产品,任何方式都是可以的。在微软,我们认为大家齐心协力完成产品才是最重要的。」这段话给我的印象很深,因为正好和之前阿里面试官给我的反思对应。这让我思考我真正关心的是什么——其实往往也是最终的产品本身。因为平时在课程中往往学习的都是后端知识,为了让产品完整可见,导致了课外学习的反而是前端相关的内容,而这并不意味着自己对前后端开发的兴趣与偏好。最终实现的产品才是最吼的!

此外,lead 面的面试官英语口语超棒,相形见绌了 555,希望今年可以好好学英语。(flag🧐)

####美团

报美团是因为看同学们都过了,并声称很水很容易,想涨涨自信的哈哈哈。笔试过了 2.63/5.0,然后上海这边一直没人捞我...感觉是没 hc 了。后来被北京外卖配送部门捞起来了。

美团的面试体验不算优秀。一面面试官跟我硬扯了一个半小时,不问完他预准备的问题誓不罢休,到后来已经口干舌燥没有力气了。然后他说是我自己发散太多,本来没打算问那么深,我??就不能看时间变通下吗?然后二面前一天,一面面试官又打电话给我,让我按照自己的节奏发挥,不要听他讲的只回答一点点。😂

二面面试官开会迟到一小时,然后面试过程考察也挺全面的,最后让我白板写两道代码。一道因为 Map.Entry 获取 value 的方法突然想不起来,编译不过卡了会;另一道最开始没思路,提示动规后写代码,本来跟质数丝毫没关系的,我在那里写半天质数...面试官可能也在做自己的事情,我乱写成这样也不提醒下。(我可能是饿了吧,坚决不承认是自己思路乱了😅)

网易

网易的面试压力其实也比较大。面试官擅长的领域可能是微服务、Docker、RPC 之类的,对基础问题不太问,我就勉强回答一下。最后我感觉面试官认为我对相关技术栈不太熟悉、不太能胜任吧,于是我拿之前的项目逼逼了一通自己学习能力强...最后勉勉强强尬完 45 分钟,也不知道能不能过,没想到过了哈哈。然后因为已经有了 offer*3 不想面了,就鸽了后续面试。(面试官我对不起你!😭)秋招前这段时间再准备准备相关知识吧。

还有一个需要注意的问题是,我在简历上写了阿里中间件的比赛,但是已经基本不记得了。。面试复习计划里本来有复习这些相关比赛的,但是后来也没执行。所以当被问到的时候,就很尴尬。甚至可能会让面试官怀疑你是不是没有做这个项目,或者只是在其中划水,但是我通过另一个时间比较近的比赛项目圆了一下,侧面证明了我真的只是很久没用忘记了,这可能也是最后面试官没有挂我的原因。🥶

Shopee

整个春招中面试体验最差的公司,没有之一!面试官自己描述问题界限不清晰,让你猜,你跟他明确问题呢,他就说「不管那么多,你自己说」。然后我就说比较通用的解法,说完了他又说「我不是要你说这个,而是 blahblah」。其实问的问题都不难(比如链表删除,但是不说清楚是只给一个节点删除该节点还是给头结点遍历删除),也不知道面试官为啥这么冲,感觉合不太来。

最糟糕的是最后的反问,我说我只知道 Shopee 是新加坡的电商平台,但是不太了解 infra 部门,可以介绍下吗?面试官沉默十秒后:「好的好的,那就这样吧。技术栈是 go、Docker、Jenkins 部署发布,会用到这些。」我?????给👱🏻‍♂️气笑了,拉黑拉黑。🙄

自我分析

对这次春招的整体体验呢就是战线拉得太长,后面就很难受(不想面了)。所以一定要早准备早投递!个人感觉网络和操作系统复习得比较到位,很少被问倒哈哈哈。不过这两门课确实也是当时认真学习、并做了实验的,所以印象深刻,复习起来上手也比较快,理解比较深入。而关于 JVM、算法、分布式等等,自己平时不够抓紧,所以导致面试准备了额就会、不准备就云里雾里,没有形成一个完整的、全面的知识脉络。

此外,通过阿里和微软两家面试,算是想清楚了「自己到底对什么感兴趣」这样一个宏观但却很重要的问题,感谢两位面试官🙇🏻‍♂️

做得不错的、继续保持

  1. **放稳心态。**即使 0 offer 也不要慌,只要好好复习,总会有的!但是一定要复习!!不是让你等!!光等是等不来 offer 的。
  2. **项目吹水比较厉害。**吹项目的效果都还不错~这里再次感谢最开始给我面试的盒马大佬,提出了我项目描述中的很多问题,于是后续加以了注意。
  3. **临场反应。**印象比较深的就是「最左前缀索引」,面试官问我有没有实际用过。我当时正好讲到 Quantour 股票项目,于是临场反应——「用过用过🧐,股票价格的查看需要根据 ID 和起讫时间,我们最开始就是先写起讫时间比较再写 ID,发现因为先遇到比较所以没有使用到索引,后来改成了先 ID 再起讫时间就正常使用到索引了」。

有待改善的、加以改善

  1. **对时间点的把握不足。**我从 3 月初就开始投,但是那个时候其实还没怎么准备,所以最开始面得都很惨烈~~(还都是阿里)。然后差不多是快 3 月底了身边大佬同学都有 offer 了,甚至是被抢着要...于是自己毅然~~放弃了健身,专心复习。然后最主要就是 4.6 ~ 4.18 两周吧,这两周决定了我能拿到 offer 哈哈哈。
  2. **简历准备不够。**因为我的简历直接是 Markdown 写的,所以一直在「简历还行啊,简洁明了」和「简历不够紧凑」两种思想间摇摆。
  3. **想投的公司没有「应投尽投」。**主要原因是前期被打击惨了,还是有点影响自信心。秋招的时候希望自己再试试狗家、亚麻等外企,大摩、高盛等金融业吧。
  4. **算法刷题不够。**LeetCode坚持刷啊!!!加油!!
  5. **语言不够精炼。**很多时候想到什么说什么,没有想好再说,给人的观感不够专业。
  6. **简历上的内容不能完全回答。**诸如阿里中间件比赛的内容、实现方式、做得好的点等,因为时间太久又没复习已经完全忘记,而这一但被问到,就是大大的扣分项。

建议总结

  1. 早日准备,春招最迟在 2 月就可以准备了,这样推算 7 月底 8 月初也可以开始准备秋招了。
  2. 每周坚持刷 LeetCode。算法其实重在日常积累,日常多看、多做才能临危不乱。
  3. 平时加强学习,临时抱佛脚终究是不可取的。
  4. 语气要自信,不要畏手畏脚,气势虚了给面试官的观感很不好,但同时也要保持真诚坦诚
  5. 要学会发现自己的价值,没有价值的话就要通过学习让自己变得有价值。(老板招你、用你只有一个原因——你有用处 ಠ_ಠ)

要加强的知识点

  • JVM。《深入理解 JVM》这么经典一本书怎么还不看!!不要偷懒了!!
  • Spring。不过我觉得已经很久没有使用 Spring 了,除了经典问题外的其他问题答不上来也「情有可原」。
  • 数据库。《高性能 MySQL》这本书!!也给我看!!它的底层原理真的很重要!!
  • 消息队列。项目中使用到了 Celery,自己可以补一下这方面知识,然后用 Kafka / RocketMQ 等具体开发实践下。
  • 分布式。因为自己看过 Raft 论文,可以再看看 Paxos、分布式事务、具体应用如 Etcd 等。

致谢

诚挚感谢以下两个优秀的 repo,让我的春招有惊无险地度过。🥶