两年Java,去字节跳动写Python和Go
前言
2019年5月,在收到offer邮件的那一刻,我仍然不敢相信自己这一番际遇。经历了七场面试,终于得偿所望,拿到了字节跳动的offer。
做加入大厂的决定并不是巧合。在多年的职业生涯里,我曾多次对接一线互联网公司的服务,与一线公司的员工有不少接触,再加上各种技术博客的耳濡目染,愈发让我对大厂心向往之。另外,二线互联网公司节奏相对较慢,内部的管理机制并不能满足我对极致工程师文化的期待。也许我注定要被996文化洗礼吧^_^
正如我之前博客所述,凭借扎实的C#.net功底,我进入了一家二线互联网公司,这一待就是4年零3个月。这期间,我买房买车,过上了悠闲舒适的生活。但安闲的生活并没有让我获得满足,在写了两年C#之后,我毅然决定地选择转Java,并同时攻读软件工程硕士学位,终于在2018年5月,我拿到了硕士学位,Java编程能力也沉淀了一年。
是时候了。
筹备
早年我曾经参加过大厂的面试,当时我的技术功底和行业知识沉淀,是能够获得认可的。但近几年互联网公司面试风格突变,并且各家大厂的转变惊奇地一致:做题。于是重新拾回数据结构和基础算法,变成我唯一要重视的筹备工作。
在攻读硕士的那几年,我几乎没有完整的周末。前面的一年半,我周末都要去学校上课,每两周的周日下午会考试。后面的两年的每个周末,我则是一直苟在办公室里准备硕士论文。老师对我尽职尽责,也导致我的论文一改再改,这块可以单开一篇博客聊一聊了~在这几年的锻炼里,没有完整的周末我早已习惯,硕士毕业后突然闲下来我反而不适应了,那就操练起来吧。
刷题并不是一件容易的事,在我初次打开leetcode时上面只有800+的题目,我给自己定了计划,规定每天刷多少道。有趣的是leetcode会随着时间不断增加题目,截止我拿到字节offer时,网站上已经1000+的题目了。离开学校多年,并且工作一直在工程领域内浸淫,数据结构和基础算法早就还给老师了。
初刷题很不适应,有些题我并不愿意看答案,就想着自己一定可以解决,于是前面的题会花很久的时间。这一过程是痛苦的,并且对自己的怀疑和失望与日俱增,我的思维状态也在不断深入,开始茶不思饭不想,一心怼题。也许是量变产生质变,在某一个周末终于彻底想通一道hard题之后,后面的进程就开始一路顺畅。
刷题的经过感觉也能单独水一篇博客,希望大家能感兴趣。
面试与失败
面试的状态是需要逐渐培养的,最好可以先面其他公司练练手,随后再去面试自己心仪的公司。获取面试的方式,可以通过内推,或通过猎头推荐,最下策是官网自投简历。那时字节在扩张招聘,与我一拍即合,便欣然接受猎头的面试邀请。当然后续我也收到了另一家巨头公司的邀请,开启了另一段故事,这里先按下不表。
字节的面试流程带起了整个互联网圈的刷题风,这么说应该不为过。面试通常是3场技术面,一场HR面。技术面试都是在线面试,面试官和候选人都抱着电脑,在牛客网上,通过摄像头和麦克风对话。前面两场技术面试官都非常nice,再加上我已经工作多年,问题基本对答入流,最后面试官都是狡黠一笑说,我们做两道题吧,我便知道前戏结束了。
半年后我也成为了字节的面试官,才明白,做题部分如果没做好,前面答题做的再好也都会fail。当然如果答题非常优秀,coding题目难度也会酌情降低,增加候选人的通过概率。如果问答表现不好,coding题目难度会适当增加,确保编程功底扎实却不善言辞的候选人,能够通过面试。由于我做了精心准备,coding部分并没有难到我,最难的题只有leetcode中medium的难度。面试的结尾我都与面试官沟通融洽,尽管面试官不能透露面试结果,但我也心知十拿九稳。
可在第三场技术面,我遭遇了滑铁卢。面试官是一位非常硬核的,且看起来比我年长不少的前辈,问及了存储锁与树型数据结构的问题,我回答的并不好。随后的做题中,面试官也给了树型数据结构的变种题,我也做的磕磕绊绊。
可以预见的,我在第三面fail了。
再战与成功
哪有什么成功是一蹴而就,我这样安慰自己。但筹备了多时,仍然没有获得一线大厂的认可,让我的内心波澜四起,并且开始了自我怀疑。
后来我成为了字节跳动面试官才知道,人才库会筛选之前面试优秀的候选人,重新捞回来继续面试。我之前的两轮面试表现很好,字节HR终于又一次联系了我,让我继续参加面试。经历了之前的失败,我痛定思痛,一方面继续巩固自己的知识体系,另一方面则不断稳固自己的心态,终于我通过了接下来的3轮面试,走到了HR面。
最后一场技术面试,我收到HR的邀请,去到了字节上海总部。那一天字节的同学们刚刚搬入科技绿洲的新办公大楼,大家脸上都洋溢着新奇快乐的幸福表情,而我在则在一间明亮舒适的小会议室里,见到了字节的一位元老员工,一番愉快的交谈后,他给了我纸和笔,让我在纸上做题。我有些惊讶,但随即一笑,感慨这就是字节范儿吧。写完了两道medium的题后,我与这位元老员工握了手,他便离去了,只留下我静静地等待HR前来进行最终的沟通。
一周后,我收到了字节跳动的offer。
总结
加入字节的历程是值得我长久回味的。在二线互联网沉沦许久的我,仍然能被一线大厂认可;28岁的年纪,仍然能被赋予机会进入到国际一线的团队中;日常努力付出的点点滴滴,都被证明了不是徒劳。
这段经历里,我特别想感谢HR小姐姐,是她再次发现了我;想感谢在字节的老板,是他给了我启发和挑战,让我在加入字节后能够再次蜕变;以及感谢最后与我交谈并让我在纸上做题的前辈,这是一段新奇且快乐的经历^_^
字节的工作经历,读硕士的过程,以及我后来与另一家互联网巨头的缘分,会在后面的博客中陆续更新,希望大家关注我的微信公众号:技术学术艺术,B站:技术学术艺术
两年Java,去字节跳动写Python和Go的更多相关文章
- 我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer
前言 怎样的契机? 实际上,目前毕业已经两年时间了,在大学时就已经开始关注字节跳动的发展.一开始,我是电气自动化专业的,大二清楚目标之后就转计算机了,大四进了一家小型的互联网公司实习,具体就不说哪家了 ...
- Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
Java去除掉HTML里面所有标签,主要就两种,要么用开源的jar处理,要么就自己写正则表达式.自己写的话,可能处理不全一些自定义的标签.企业应用基本都是能找开源就找开源,实在不行才自己写…… 1,开 ...
- 2019 字节跳动java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.字节跳动等公司offer,岗位是Java后端开发,因为发展原因最终选择去了字节跳动,入职一年时间了,也成为了面 ...
- 最新 字节跳动java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.字节跳动等10家互联网公司的校招Offer,因为某些自身原因最终选择了字节跳动.6.7月主要是做系统复习.项目复盘.Leet ...
- 5年Android程序员面试字节跳动两轮后被完虐,请查收给你的面试指南
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...
- 工作三年终于社招进字节跳动!字节跳动,阿里,腾讯Java岗面试经验汇总
前言 我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿到了字节跳动的o ...
- Offer经验分享 - 蚂蚁金服、字节跳动、PDD、百度、华为、Paypal - Java社招面经
年中的时候因为换工作的缘故,陆续参加了华为.蚂蚁.字节跳动.PDD.百度.Paypal的社招面试,除了字节跳动流程较长,我主动结束面试以外,其他的都顺利拿到了Offer. 最近时间稍微宽裕点了,写个面 ...
- 去了字节跳动,才知道年薪40W的测试有这么多?
最近脉脉职言区有一条讨论火了: 哪家互联网公司薪资最'厉害'? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师 我只想问一句,现在的测试都这么有钱了吗? 前几天还有朋友说,从腾讯跳槽去 ...
- 想进大厂?字节跳动等独角兽公司都在招募Python工程师!(Python就是第一语言)
在本文章中,作者通过自身经历,力求客观的谈谈个人选择学习Python的动机,以及独角兽公司对Python工程师的要求及薪资. 从目前各种迹象(企业招聘,语言排名等)看来Python相对Java应该是暂 ...
随机推荐
- 二:SpringBoot-配置Log4j2,实现不同环境日志打印
SpringBoot-配置Log4j2,实现不同环境日志打印 日志打印之外观模式 1.日志配置 2.Log4j2的配置文件 3.简单的测试程序 日志打印之外观模式 每一种日志框架都有自己单独的API, ...
- SSH 登录警告:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
1.使用Linux SSH登录其他Linux或者cisco交换机时有如下报错 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (远程主机标识已更改) ...
- 深入理解 ProtoBuf 原理与工程实践(概述)
ProtoBuf 作为一种跨平台.语言无关.可扩展的序列化结构数据的方法,已广泛应用于网络数据交换及存储.随着互联网的发展,系统的异构性会愈发突出,跨语言的需求会愈加明显,同时 gRPC 也大有取代R ...
- dedecms织梦网站栏目增加英文名称的方法
有时候因为网站功能需求,我们需要为织梦程序的栏目添加英文名称,这里有一个栏目添加英文名称的方法,下面站长和大家分享一下.因为客户需要做这样一个需要中英转换的栏目,在网上找了很多方法,但都不适用,终于被 ...
- 小白搭建WAMP详细教程---mysql安装与设置
MySQL分为安装版和解压版.为了以后MySQL出问题想重装时会出现各种不必要的麻烦,我们这里选择解压版MySQL.详细步骤如下: 一:Mysql官网下载Mysql解压版 到官网下载,网址为:http ...
- Flink-v1.12官方网站翻译-P018-Event Time
事件时间 在本节中,您将学习如何编写时间感知的Flink程序.请看一下及时流处理,了解及时流处理背后的概念. 关于如何在Flink程序中使用时间的信息请参考windowing和ProcessFunct ...
- ASP.NET Core默认容器实现Controller的属性注入
仅针对Controller的属性注入: 使用默认容器,不依赖第三方库: 故事背景 闲来无事给项目做优化,发现大多数Controller里面都会用到Logger和AutoMapper,每个Contr ...
- 一篇文章图文并茂地带你轻松学完 JavaScript 继承
JavaScript 继承 在阅读本文章之前,已经默认你了解了基础的 JavaScript 语法知识,基础的 ES6 语法知识 . 继承种类 简单的继承种类可以分为 构造函数继承 原型链继承 clas ...
- CF-125E MST Company (单度限制最小生成树)
参考红宝书 题目链接 对除 1 号点顶点外的点集,求一次最小生成森林,对于最小生成森林的联通分量,选择最短的一条边与 1 号点相连.设此时 1 号点的度为 \(k_0\),如果 \(k_0\lt L\ ...
- 2019牛客暑期多校训练营(第一场)E ABBA (DP/卡特兰数)
传送门 知识点:卡特兰数/动态规划 法一:动态规划 由题意易知字符串的任何一个前缀都满足\(cnt(A) - cnt(B) \le n , cnt(B)-cnt(A)\le m\) \(d[i][j] ...