俗话说「金三银四」,我这次呢好歹也算及时抓住了春招的尾巴 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、算法、分布式等等,自己平时不够抓紧,所以导致面试准备了额就会、不准备就云里雾里,没有形成一个完整的、全面的知识脉络。
此外,通过阿里和微软两家面试,算是想清楚了「自己到底对什么感兴趣」这样一个宏观但却很重要的问题,感谢两位面试官🙇🏻♂️
做得不错的、继续保持
- **放稳心态。**即使 0 offer 也不要慌,只要好好复习,总会有的!但是一定要复习!!不是让你等!!光等是等不来 offer 的。
- **项目吹水比较厉害。**吹项目的效果都还不错~这里再次感谢最开始给我面试的盒马大佬,提出了我项目描述中的很多问题,于是后续加以了注意。
- **临场反应。**印象比较深的就是「最左前缀索引」,面试官问我有没有实际用过。我当时正好讲到 Quantour 股票项目,于是临场反应——「用过用过🧐,股票价格的查看需要根据 ID 和起讫时间,我们最开始就是先写起讫时间比较再写 ID,发现因为先遇到比较所以没有使用到索引,后来改成了先 ID 再起讫时间就正常使用到索引了」。
有待改善的、加以改善
- **对时间点的把握不足。**我从 3 月初就开始投,但是那个时候其实还没怎么准备,所以最开始面得都很惨烈~~(还都是阿里)
。然后差不多是快 3 月底了身边大佬同学都有 offer 了,甚至是被抢着要...于是自己毅然~~放弃了健身,专心复习。然后最主要就是 4.6 ~ 4.18 两周吧,这两周决定了我能拿到 offer 哈哈哈。 - **简历准备不够。**因为我的简历直接是 Markdown 写的,所以一直在「简历还行啊,简洁明了」和「简历不够紧凑」两种思想间摇摆。
- **想投的公司没有「应投尽投」。**主要原因是前期被打击惨了,还是有点影响自信心。秋招的时候希望自己再试试狗家、亚麻等外企,大摩、高盛等金融业吧。
- **算法刷题不够。**LeetCode坚持刷啊!!!加油!!
- **语言不够精炼。**很多时候想到什么说什么,没有想好再说,给人的观感不够专业。
- **简历上的内容不能完全回答。**诸如阿里中间件比赛的内容、实现方式、做得好的点等,因为时间太久又没复习已经完全忘记,而这一但被问到,就是大大的扣分项。
建议总结
- 早日准备,春招最迟在 2 月就可以准备了,这样推算 7 月底 8 月初也可以开始准备秋招了。
- 每周坚持刷 LeetCode。算法其实重在日常积累,日常多看、多做才能临危不乱。
- 平时加强学习,临时抱佛脚终究是不可取的。
- 语气要自信,不要畏手畏脚,气势虚了给面试官的观感很不好,但同时也要保持真诚和坦诚。
- 要学会发现自己的价值,没有价值的话就要通过学习让自己变得有价值。(老板招你、用你只有一个原因——你有用处 ಠ_ಠ)
要加强的知识点
- JVM。《深入理解 JVM》这么经典一本书怎么还不看!!不要偷懒了!!
- Spring。不过我觉得已经很久没有使用 Spring 了,除了经典问题外的其他问题答不上来也「情有可原」。
- 数据库。《高性能 MySQL》这本书!!也给我看!!它的底层原理真的很重要!!
- 消息队列。项目中使用到了 Celery,自己可以补一下这方面知识,然后用 Kafka / RocketMQ 等具体开发实践下。
- 分布式。因为自己看过 Raft 论文,可以再看看 Paxos、分布式事务、具体应用如 Etcd 等。
致谢
诚挚感谢以下两个优秀的 repo,让我的春招有惊无险地度过。🥶
- 基础知识:CyC2018 技术面试
- 算法:labuladong 的算法小抄