背景
学历:双非本211硕
工作经历:百度1年5个月
职位:Go后端研发
绩效:m-低绩效
去向:拿了3个offer(初创公司、小厂、大厂),最后选择转Java去美团
我是去年校招进的百度,今年国庆回来后通知被裁。两个月的时间,投递近千份简历,约面40场,最后终于找到了工作。想把自己踩的坑和总结的经验分享出来,或许能帮助到有需要的人。
我不会聊具体的技术问题,主要想说些不一样的东西。
一、投简历方式
- 下载
BOSS直聘和脉脉,更新简历并更改状态为正在看机会,会有很多猎头和HR来找你(被动投递); - 在BOSS和脉脉上按公司投递(主动投递),通常的建议是先投小公司练手再投大公司,其实这样不一定对。小公司人员流动少,hc也少,很难约面,大公司可能一投就中,面试机会更多;
- 有朋友所在组刚好在招人的,可以让他帮忙内推。我这样投过一次,确实效率很高,当天就约面了;
- 我从不自己去公司官网投递。
二、面试内容
2.1 面试流程
- 技术面流程
- 自我介绍;
- 问项目;
- 八股文;
- 算法题;
- 反问环节。
2.2 语言相关
-
我学的
Go语言,能面Java岗吗?可以,我约的面试有一半是
Java岗,只要你愿意转,语言问题不大。但如果本身学的就是Java,机会应该更多。 -
如果转语言,面试官会问什么呢?
我
Go转Java,面试官既不问Go的八股也不问Java的八股,相当于直接跳过。但肯定会问另外两个问题:-
你愿意转
Java语言吗?表达自己愿意,语言只是工具,之前我也是从
C++转的Go。 -
你觉得你从
Go转Java需要多长时间?我说的是一周可以上手,一个月完成代码风格的转变,并且愿意利用自己的空闲时间去学习。 不要把时间说太长,社招就是希望你进来直接干活。
-
2.3 项目
-
关于项目中主要问题的解决方案
比如我的一个同步网盘项目中,难点是如何解决文件冲突,其实我们当时只实现了最简单的一个方案:
生成冲突文件。但面试官不会满足于此,即使你没有实现,也可以多做调研,面试问到可以多说说,展现自己的技术视野:- 调研竞品,使用了
分布式锁的方案,我们二期也准备这样做; - 学术界的
CRDT算法可以用于解决文件冲突,但还没有大规模应用; - 飞书文档、腾讯文档等使用了
OT算法,但需要业务层自己实现,成本较高,评估人力后没有选择该方案。
- 调研竞品,使用了
-
项目中别人做的优化方案,我可以说是自己做的吗?
- 可以,你可以说整个项目都是你一个人做的,但一定要为简历上写的每个字负责。有的面试官问得特别细,如果最后发现不是你做的,印象会大打折扣;
- 我之前把项目中别人的
Redis优化方案说成自己做的,面试官让我当场写出来具体的redis语句,我没写出来,十分尴尬。
-
架构很重要
除了项目的架构以外还要关注整个部门的技术架构,至少要知道有几层,每一层是做什么的。
2.4 八股文
-
社招八股跟校招一样吗?哪些问得最多?
需要背的内容是一样的,但是侧重点不同。
- 问得最多的:
Golang、MySQL、Redis、消息队列,八股可以看看小林coding这个网站,讲得比较细; - 计算机网络问得少一点,但握手挥手、
epoll这些基础的还是得熟练背诵; - 操作系统基本不问,我只被问到过内核态用户态,进程间通信IPC方式这两个问题。
- 问得最多的:
-
公司里面不用消息队列
kafka,用的自研的,该怎么说?可以说公司里自研的消息队列就是把
kafka包了一层,八股照常背kafka的八股,其他中间件也是同样操作。 -
如果让你设计一个
RPC框架你会怎么做?- 这是一个很重要的问题,我被问到过三次,所以特意单拎出来说;
- 最开始是阿里闲鱼的面试官对我说:
rpc是一个很好的面试切入点,其他的诸如mysql索引、redis持久化等等都是单点的问题,而rpc可以一直扩展,把你所有的知识点全都串联起来,比如序列化协议、注册中心、注册发现、负载均衡、NIO/BIO、容错机制等等。
2.5 算法
社招还需要撕算法吗?难度跟校招比起来如何?
- 需要,前两轮技术面必撕算法;
- 难度感觉跟校招差不多,光
LRU我就撕了三次,力扣TOP100刷50道感觉差不多够了; - 如果项目和八股部分答得较好,算法题通常会比较简单(两数之和、反转链表这种直接让你过),如果前面没答好,算法题可能会难一些;
- 一半面试是在牛客或其他
在线IDE中写,一半是共享屏幕用本地IDE写,如果是本地,尽量不要开debug,面试官更希望你用眼睛看出来问题在哪。
2.6 软素质
一般在技术三面或HR面中会问到,常见问题如下,提前准备好:
-
你有哪些优缺点?
-
平时如何学习?
-
为什么工作一年就想跳槽?
a. 业务调整,年底被
trans到新部门,对新方向不感兴趣;b. 大厂限制太多,开发流程繁琐,各种会议占用太多时间,无法沉侵式开发,想换个小公司。
-
最有成就感的事情?有没有什么地方做得比较好,受到团队大家认可的?
-
同事或者领导对你最高的评价是什么?或者打绩效的时候你
leader是怎么跟你说的? -
你的主动性和自驱意识体现在哪里?
-
如果让你重做一个最近的一个项目,你会怎么做,哪些地方可以优化?
-
工作中排期太紧,感觉做不完,压力很大怎么办?
-
你绩效多少?组内排第几?为什么?其他同学比你差吗?
-
为什么拿
m-?
2.7 反问环节
大部分人忽略了这个环节,随便问下业务或者直接说没有问题就过去了,我建议提的问题如下:
-
在面试的过程中,您觉得我存在哪方面的知识漏洞?或者说有哪些地方不足,可以改进之类的?
-
如果面试官说挺好的,没啥问题,说明大概率过了;
-
如果挑了一堆毛病,那大概率没过。面试官挑的问题总是一针见血,总结后一定避免下次再犯,以下是面试官对我提的一些建议(仅供参考):
a.
拼多多TEMU二面:你简历项目里写的优化方案,问到细节处你又说不清楚,是别的同学做的,这样面试官印象会很差;b.
字节飞书二面:你对自己负责的模块比较熟悉,但是对网盘的整体架构不熟悉。虽然你是业务层,但网盘最核心的功能就是上传下载,上传的优化方案(分片上传、断点续传)和p2p下载的原理你也应该要有了解;c.
美团到店一面:作为一名工程师,尤其是后端工程师,需要学的东西是无穷无尽的,不可能每一门语言每一个中间件你都要去看底层源码,每项技术要学到什么程度,这个度你要再多想想,你整体的技术架构应该是怎么样的;d.
阿里高德一面:要有发散性思维,对于某一个功能的实现,提出一种解决方案后再多想想有没有其他的解决方案,解决方案多比工作年限多更重要。
-
三、复盘提升
如何记录面试内容?如何总结?
- 每场面试都录音,手机放旁边录自己的声音即可,电脑开扩音把面试官的声音录下来更佳;
- 面完后听录音,把没答好的问题记个笔记,网上查资料准备好,后续的面试可能还会问这个问题。我自己总结了4w多字的八股,其实我把笔记发出来也意义不大,只有你真的在面试中被问到了,才印象深刻,每个人的错题本都应该是不一样的。
四、其他
-
绩效低,可不可以跟面试官和HR说我是正常绩效?
- 不可以,关于这点一定要实话实说,我拿的几个
offer,HR面之后都需要提供半年到一年的银行流水,并且需要额外提供年终流水; - 有次特别可惜,我说自己是正常绩效,最后HR准备给我定薪资发
offer了,由于我拿不出来年终流水(注意这里是不可以P图的,银行流水打印出来有验证码,HR可以根据验证码直接到官网去查每条记录是否真实),被迫承认低绩效,HR跟面试官同步后把我的offer收回了。HR给我的回复是:其实你直接说低绩效也没有关系,他们不是不接受不好,只是对于信息gap比较在意。
- 不可以,关于这点一定要实话实说,我拿的几个
-
被裁不给赔偿,我直接跟经理撕破脸,劳动仲裁可以吗?
我的建议是尽量好合好散,我当时是没有要赔偿,自己主动提的离职(我几乎所有的朋友同事都建议我跟经理翻脸,劳动仲裁拿赔偿),原因如下:
- 工作一年
N+1也不多,而且我只想赶快找到下一份工作,没太多心思去想赔偿的事。经理让我主动提离职,同时答应给我一个多月的缓冲时间找工作,期间不用干活,后面有背调也好说话; - 后来我才发现,找新工作基本都有背调,会让你提供前同事、直属经理、HR的联系方式,然后请第三方背调公司打电话一一确认(一般会确认你的入职、离职时间和职位等,还会问如果有机会愿不愿意再与你共事),再查你是被裁还是主动离职,是否有诉讼纠纷等等。背调是底线,一定别提供虚假信息,整个过程会持续3~5天。
- 工作一年