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

TinyLeon 2021-02-22 11:22:04
java Python 字节 跳动 两年


前言

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站:技术学术艺术     

       

版权声明
本文为[TinyLeon]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/smartLeon/p/14425619.html

  1. Detailed usage of urllib in Python 3 (header, proxy, timeout, authentication, exception handling)
  2. python 第三方库paramiko
  3. python 第三方库paramiko
  4. Python third party library paramiko
  5. Python third party library paramiko
  6. 卸载 PyCharm!这才是 Python 小白的最理想的 IDE
  7. 卸载 PyCharm!这才是 Python 小白的最理想的 IDE
  8. Uninstall pycharm! This is the ideal IDE for Python Xiaobai
  9. django学习-27.admin管理后台里:对列表展示页面的数据展示进行相关优化
  10. Uninstall pycharm! This is the ideal IDE for Python Xiaobai
  11. Django learning - 27. Admin management background: optimize the data display of the list display page
  12. python day2
  13. python day2
  14. Python 内存泄漏问题排查
  15. Troubleshooting of Python memory leak
  16. Python 与 excel的简单应用
  17. Simple application of Python and excel
  18. Python 与 excel的简单应用
  19. Simple application of Python and excel
  20. 2.7万 Star!最全面的 Python 设计模式集合
  21. 27000 stars! The most comprehensive collection of Python design patterns
  22. python day3
  23. python day3
  24. Commonly used data operation functions of Python
  25. (数据科学学习手札108)Python+Dash快速web应用开发——静态部件篇(上)
  26. (learning notes of data science 108) Python + dash rapid web application development -- static components (I)
  27. (数据科学学习手札108)Python+Dash快速web应用开发——静态部件篇(上)
  28. (learning notes of data science 108) Python + dash rapid web application development -- static components (I)
  29. [Python] Matplotlib 图表的绘制和美化技巧
  30. Drawing and beautifying skills of [Python] Matplotlib chart
  31. [Python] Matplotlib 图表的绘制和美化技巧
  32. Drawing and beautifying skills of [Python] Matplotlib chart
  33. Virtual environment of Python project
  34. 翻译:《实用的Python编程》02_01_Datatypes
  35. Translation: practical Python Programming 02_ 01_ Datatypes
  36. 翻译:《实用的Python编程》02_01_Datatypes
  37. 翻译:《实用的Python编程》02_01_Datatypes
  38. Translation: practical Python Programming 02_ 01_ Datatypes
  39. Translation: practical Python Programming 02_ 01_ Datatypes
  40. Python 3 入门,看这篇就够了
  41. Python 3 entry, see this is enough
  42. 华为大佬打造的400集Python视频学起来,学完万物皆可爬
  43. 400 episodes of Python video created by Huawei boss
  44. django之csrf_exempt解决跨域请求的问题
  45. CSRF of Django_ Exempt solves the problem of cross domain requests
  46. 1.7 万 Star!一个简单实用的 Python 进度条库
  47. 17000 stars! A simple and practical Python progress bar library
  48. Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租
  49. Python crawler: setting cookie to solve website interception and crawling ant short rent
  50. Python-Net编程
  51. Python net programming
  52. 学习Python数学英语基础重要吗?Python教程!
  53. Is it important to learn the basics of math and English in Python!
  54. Python数据分析常用库有哪些?Python学习!
  55. What are the common libraries for Python data analysis? Learn Python!
  56. win 创建python虚拟环境
  57. Creating Python virtual environment with win
  58. In order to automatically collect B station barrage, I developed a tool in Python
  59. 用Python编程语言来实现阿姆斯特朗数的检查
  60. Using python programming language to check Armstrong number