两年Java,去字节跳动写Python和Go

两年Java,去字节跳动写Python和Go

前言

2019年5月,在收到offer邮件的那一刻,我仍然不敢相信自己这一番际遇。经历了七场面试,终于得偿所望,拿到了字节跳动的offer。

做加入大厂的决定并不是巧合。在多年的职业生涯里,我曾多次对接一线互联网公司的服务,与一线公司的员工有不少接触,再加上各种技术博客的耳濡目染,愈发让我对大厂心向往之。另外,二线互联网公司节奏相对较慢,内部的管理机制并不能满足我对极致工程师文化的期待。也许我注定要被996文化洗礼吧。

正如我之前博客所述,凭借扎实的C#.net功底,我进入了一家二线互联网公司,这一待就是4年零3个月。这期间,我买房买车,过上了悠闲舒适的生活。但安闲的生活并没有让我获得满足,在写了两年C#之后,我毅然决定地选择转Java,并同时攻读软件工程硕士学位,终于在2018年5月,我拿到了硕士学位,Java编程能力也沉淀了一年。

是时候了。

两年Java,去字节跳动写Python和Go

筹备

早年我曾经参加过大厂的面试,当时我的技术功底和行业知识沉淀,是能够获得认可的。但近几年互联网公司面试风格突变,并且各家大厂的转变惊奇地一致:做题。于是重新拾回数据结构和基础算法,变成我唯一要重视的筹备工作。

在攻读硕士的那几年,我几乎没有完整的周末。前面的一年半,我周末都要去学校上课,每两周的周日下午会考试。后面的两年的每个周末,我则是一直苟在办公室里准备硕士论文。老师对我尽职尽责,也导致我的论文一改再改,这块可以单开一篇博客聊一聊了~在这几年的锻炼里,没有完整的周末我早已习惯,硕士毕业后突然闲下来我反而不适应了,那就操练起来吧。

刷题并不是一件容易的事,在我初次打开leetcode时上面只有800+的题目,我给自己定了计划,规定每天刷多少道。有趣的是leetcode会随着时间不断增加题目,截止我拿到字节offer时,网站上已经1000+的题目了。离开学校多年,并且工作一直在工程领域内浸淫,数据结构和基础算法早就还给老师了。

初刷题很不适应,有些题我并不愿意看答案,就想着自己一定可以解决,于是前面的题会花很久的时间。这一过程是痛苦的,并且对自己的怀疑和失望与日俱增,我的思维状态也在不断深入,开始茶不思饭不想,一心怼题。也许是量变产生质变,在某一个周末终于彻底想通一道hard题之后,后面的进程就开始一路顺畅。

刷题的经过感觉也能单独水一篇博客,希望大家能感兴趣。

两年Java,去字节跳动写Python和Go

面试与失败

面试的状态是需要逐渐培养的,最好可以先面其他公司练练手,随后再去面试自己心仪的公司。获取面试的方式,可以通过内推,或通过猎头推荐,最下策是官网自投简历。那时字节在扩张招聘,与我一拍即合,便欣然接受猎头的面试邀请。当然后续我也收到了另一家巨头公司的邀请,开启了另一段故事,这里先按下不表。

字节的面试流程带起了整个互联网圈的刷题风,这么说应该不为过。面试通常是3场技术面,一场HR面。技术面试都是在线面试,面试官和候选人都抱着电脑,在牛客网上,通过摄像头和麦克风对话。前面两场技术面试官都非常nice,再加上我已经工作多年,问题基本对答入流,最后面试官都是狡黠一笑说,我们做两道题吧,我便知道前戏结束了。

半年后我也成为了字节的面试官,才明白,做题部分如果没做好,前面答题做的再好也都会fail。当然如果答题非常优秀,coding题目难度也会酌情降低,增加候选人的通过概率。如果问答表现不好,coding题目难度会适当增加,确保编程功底扎实却不善言辞的候选人,能够通过面试。由于我做了精心准备,coding部分并没有难到我,最难的题只有leetcode中medium的难度。面试的结尾我都与面试官沟通融洽,尽管面试官不能透露面试结果,但我也心知十拿九稳。

可在第三场技术面,我遭遇了滑铁卢。面试官是一位非常硬核的,且看起来比我年长不少的前辈,问及了存储锁与树型数据结构的问题,我回答的并不好。随后的做题中,面试官也给了树型数据结构的变种题,我也做的磕磕绊绊。

可以预见的,我在第三面fail了。

两年Java,去字节跳动写Python和Go

再战与成功

哪有什么成功是一蹴而就,我这样安慰自己。但筹备了多时,仍然没有获得一线大厂的认可,让我的内心波澜四起,并且开始了自我怀疑。

后来我成为了字节跳动面试官才知道,人才库会筛选之前面试优秀的候选人,重新捞回来继续面试。我之前的两轮面试表现很好,字节HR终于又一次联系了我,让我继续参加面试。经历了之前的失败,我痛定思痛,一方面继续巩固自己的知识体系,另一方面则不断稳固自己的心态,终于我通过了接下来的3轮面试,走到了HR面。

最后一场技术面试,我收到HR的邀请,去到了字节上海总部。那一天字节的同学们刚刚搬入科技绿洲的新办公大楼,大家脸上都洋溢着新奇快乐的幸福表情,而我在则在一间明亮舒适的小会议室里,见到了字节的一位元老员工,一番愉快的交谈后,他给了我纸和笔,让我在纸上做题。我有些惊讶,但随即一笑,感慨这就是字节范儿吧。写完了两道medium的题后,我与这位元老员工握了手,他便离去了,只留下我静静地等待HR前来进行最终的沟通。

一周后,我收到了字节跳动的offer。

两年Java,去字节跳动写Python和Go

总结

加入字节的历程是值得我长久回味的。在二线互联网沉沦许久的我,仍然能被一线大厂认可;28岁的年纪,仍然能被赋予机会进入到国际一线的团队中;日常努力付出的点点滴滴,都被证明了不是徒劳。

这段经历里,我特别想感谢HR小姐姐,是她再次发现了我;想感谢在字节的老板,是他给了我启发和挑战,让我在加入字节后能够再次蜕变;以及感谢最后与我交谈并让我在纸上做题的前辈,这是一段新奇且快乐的经历

最后:

最近我整理了整套**《JAVA核心知识点总结》**,说实话 ,作为一名Java程序员,不论你需不需要面试都应该好好看下这份资料。拿到手总是不亏的~我的不少粉丝也因此拿到腾讯字节快手等公司的Offer

进[Java架构资源交流群] ,找管理员获取哦-!

ze=5> 进[Java架构资源交流群] ,找管理员获取哦-!

两年Java,去字节跳动写Python和Go

上一篇:Java已死?java安装不了D盘


下一篇:35岁以后的Android程序员出路在哪里?讲的明明白白!