两年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整合spring-security-oauth2完整实现例子
SpringBoot整合spring-security-oauth2完整实现例子 技术栈 : springboot + spring-security + spring-oauth2 + mybati ...
- MyBatis框架使用 —— 传递多个参数的方式
引言 目前,MyBatis的使用越来越普遍,也有一些公司使用Hibernate.使用MyBatis需要我们自己书写SQL语句,面对各种复杂的场景,SQL传递多参是很普遍的.如何传递多参应对不同的场景也 ...
- AQS简单理解入门---1
这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题.当时那位同学内心估计受到了一万点伤害... 因为首先,很多 ...
- JVM之JVM体系结构
JVM是运行在操作系统之上的,它与硬件没有直接的交互 下图运行时数据区灰色代表线程私有,亮色(方法区和堆)代表所有线程共享. 1.类装载器ClassLoader 负责加载class文件,class文件 ...
- unix环境高级编程第四章笔记
文件和目录 start fstart lstart函数 一旦给出pathname, start函数就返回了与此命名文件有关的信息结构 #include <sys/start> int st ...
- B - Power Strings
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...
- 【noi 2.6_1808】最长公共子序列(DP)
题意:给2个字符串求其最大公共子序列的长度.解法:这个和一般的状态定义有点不一样,f[i][j]表示 str 前i位和 str2 前j的最大公共子序列的长度,而不是选 str 的第i位和 str2 的 ...
- Codeforces Educational Rounds 85 A~C
A:Level Statistics 题意:统计n个游戏数据,p代表游玩次数,c代表通关次数,每次游玩都不一定通关,求这些数据是否合法 题解:1.游玩次数不能小于通关次数 2.游玩次数和通关次数必 ...
- Codeforces Round #641 div2 B. Orac and Models (DP)
题意:有一个长度为\(n\)的序列\(a\),求一个最长上升子序列,且这个子序列的元素在\(a\)中的位置满足\(i_{j+1}modi_{j}=0\),求这个子序列的最大长度. 题意:这题假如我们用 ...
- WSL2 VS Code远程开发准备
上一节我们在linux中创建了mvc项目,但是要是在linux中用命令行直接开发的话,就有些扯了. 我们可以使用VS Code进行远程开发,简单来说,就是在windows中打开VS Code,打开Li ...