一名本科生的七段实习经历(2)
初见大厂
初见是猝不及防犯下的错。
我大二找实习的时候,一开始是没想过自己会去做后端的,在正式实习之前,我对前后端开发的了解并不多。
只知道,作为互联网企业中最常见的两种开发岗位,都很卷。
其中,后端在鄙视链上又比前端高一些,前端相对而言,岗位数量更少,门槛更低,更容易被替代。
当时的我对图形学和游戏开发有着许多兴趣,也学了一些相关知识,当图形工程师、做渲染引擎、游戏引擎,这些事情听起来就比前后端开发的逼格高了不少,是我最想从事的方向。
(事实上,图形渲染也是另一种意义上的前端。)
我好像也没想过去做算法:听说算法岗对论文要求很高(后来发现并非如此,也有偏业务的方向),而我本身数学水平也不够好,能想象到做理论研究对我而言难度很大,想 idea、发论文大概是件很痛苦的事情。
当然,此时的我方向未定,在投递实习时也是尽可能海投各类岗位,除了游戏相关,我也投了一些客户端开发、移动开发之类的岗位,而由于后端开发的岗位描述一般都要求掌握计算机网络、数据库相关知识,我就没敢投递。
那时候的我,潜意识中觉得,自己还没在学校里学过这门课,没办法投这方面的岗位,即使去面试了也很难通过。
说到底,离开应试教育没多久的我,仍然保留着经典的学生思维。事实上,哪怕上完了课,也未必能在面试中答出相关问题。应对面试的关键是刻意准备,只能靠自己:了解核心概念,并且学会如何清晰表述,以应对面试官的深入拷问。事实上一门专业课在面试中的高频考点往往是极少的,掌握了这些,基本能应对 80% 的面试提问。因此要学会取舍,找到重点,抓大放小。
快手和字节这两家耳熟能详的互联网大厂,当时都有游戏相关的业务,我也就投递了几个游戏客户端、引擎开发之类的岗位。
很不幸,连一个面试机会都没有收到。
字节那边,我投递的岗位,基本都在简历评估时就终止了流程,也因此收到了很多感谢信邮件。
快手则一直显示评估中,在投递过后一个月才捞我去了 C++ 架构开发的岗位。
当字节视频架构部门的 HR 约我进行面试时,我正在前文提到的 VR 游戏公司实习,尽管公司不大,但我觉得开发 VR 游戏挺有意思,也能为我之后进入游戏行业积累一些经验。
因此我对字节的面试邀请有些不以为意。
面试的是我从未投递过的后端岗位,大概率也过不了,我就抱着多面试、积累经验、锻炼自己的想法参加了。
由于我说自己没学过计网和数据库,面试官也没考察我这方面的知识,主要还是对着简历问我学过的课程和做过的项目,然后就是写算法题。
写题次次过,面试次次挂。经历过太多失败的我心态早已变得平和,已经不指望着自己大二就能进入这种大厂实习了。
也许正是因为这种心态,我不急不躁地一周参加一场面试,熟练而稳定地应对着面试官的提问,最终竟然顺利通过了 3 轮技术面。
与此同时,快手也约我面试了。
捞我简历的部门主要做的是推荐系统的架构开发,感觉工作更加核心也更有挑战性。
他们的面试主要侧重算法方面的考察,面试官更加和善,给我的感受也更为真诚,面试时对我的引导和帮助也更多(大概也有来自 THU 的校友因素加成)。
经过 2 轮技术面也顺利 OC 了。
与此同时,我所在的 VR 游戏公司由于资金链断裂,把我给裁了;现实有时候就是如此充满戏剧性。
于是,在经历了几个月找实习的坎坷之后,我第一次面临着纠结的 offer 选择,都是后端开发相关的岗位,方向略有不同--字节视频架构和快手推荐架构,怎么选呢?
快手的工作更有挑战性,看起来组内同事也更加友好。字节的岗位似乎没快手那么核心,但认可度和背书会大概更强。
考虑到是自己第一段正式的实习,对宇宙大厂的向往还是战胜了其他考虑,于是便忍痛拒绝了快手的 offer。
随后,我先是在学校里经历了迟到两年的军训,接着在暑假里开始了自己的第一段大厂实习。
我的工区在抖音大钟寺总部的对面,方恒时尚中心,离学校不远,自行车可达,终于可以不用每天花大量时间用于通勤了。
我所在的组属于字节的视频架构部门,主要负责保障流媒体的体验,比如开发内部工具用来快速诊断定位到音视频通信出现的问题。
由于我之前没太接触过后端开发的工作、也没写过 Go 语言,所以刚入职的一段时间主要是在学习,看业务代码、了解组内同事们的工作,希望尽可能了解后端开发到底在做些什么工作。
我们组内同事的分布是一半在北京一半在上海,带我的 mentor 工作地也是在上海。
在我入职时,他到北京出差两周,正好带我熟悉工作;之后的时间里,我们的沟通则都通过飞书线上进行。
字节作为我实习过的第一家互联网大厂,给我的感受是内部资料和各类文档非常丰富(飞书内能搜到的信息很多),完善的基建设施(实际是量大而不完善)和复杂的项目流程都让我体会到了大厂之“大”。
同时,公司内也会有各种大佬的技术分享、公开课,甚至能在食堂里偶遇李航-《统计学习方法》作者,也是能亲眼见到教科书的作者了(AI Lab 就在我们工区)。
我之前实习的公司,一般都严格要求打卡,所以我基本都是满足打卡时间就走,尽量不在公司多待一分钟。
而字节这边则相对灵活,不用打卡,大家一般早上 10 点半到,晚上大都 9 点之后下班,我考虑到自己假期晚上回宿舍也没事,一般也会在公司里多学一会。
数据库、分布式系统、各种后端开发的基础件,这些都是我此前未曾接触过的,在那段时间里,通过学习网上技术博客和公司内的文档,我对相关知识有了不少认识,尽管并不深入。
(对于计算机这种领域的学习,时间积累的确很重要,第一次接触到某个概念,往往只能有浅薄的认识,等到在实践中多次接触相关场景,再深入其底层的设计原理,才能有足够深刻的理解)
刚开始实习时,我其实还是想着,先有了这一段实习经历,之后有机会可以继续去游戏行业。
但到后面逐渐忙起来,我才意识到,能把当前接触到的工作干好、相关的知识学扎实已经很难了;自己其实没那么多精力再去学习游戏、图形相关的技术了,便暂时搁置了。
我在字节这边总共实习了 4 个月,主要的工作是和 mentor 一起开发和维护内部一个音视频通信的报警平台,能够监控音视频通信相关的指标、发送报警信息、进行报警的归因等。
一段时间后,我对这里的实习工作就感到了有些厌倦。
我们的工作有些太偏业务了,也不太能让我感到有趣。
主要是为了解决公司内部音视频方面遇到的问题,开发为他们带来便利的工具,需要对业务足够熟悉,也会有大量的时间花在了处理 oncall、分析工单、拉会对齐这些事情上。
即使按照业务方的要求实现了某些能力,我并没有感觉其中涉及了多么复杂的技术,实际能得到的技术成长没那么大,日常不过是写写 crud 接口。
实话说,我也对于 mentor 对业务的熟悉程度感到惊叹,也时常能看到他 23 点之后提交代码的记录。
但我会怀疑,作为实习生,继续持续下去,有多大必要呢,如果去到下家公司或是换个业务方向,又能带去多少可复用的经验吗?
有时候我也会想,如果当时去了快手,能学到的技术会不会更深入些呢?
只可惜,当时面对的诸多可能性,已经坍缩成了当下的唯一结果。
作为我实习过的第一家大厂,字节仍然给我带来了很多收获,这已经足够了,固然留有遗憾,但我不会为自己的决定后悔。
随后,我尝试去投递了一些其他公司的实习(其实还想去字节别的部门体验,但实习转岗太麻烦),也想检验下自己这段时间学习的成果。
不久,我拿到了几个感兴趣的 offer,于是就准备离职了。
人生首次大厂实习,带着初探者的新鲜感,抱着体验心态反倒自在。
幸遇包容的 mentor 与同事,压力值始终维持在舒适区。
那是疫情消散后的首个夏天,逃掉漫长的小学期,每日蹬着嘎吱响的自行车往返。
梧桐树荫下,我们总提前半小时就吆喝着同事奔向大钟寺的美食窗口。
偶尔兴起便蹬着共享单车穿梭在陌生的街道,约上好友骑行探路,或独自钻进老影院看冷门片场
——后来才懂,这种未被绩效裹挟的探索欲,最是珍贵。
#牛友故事会#