步入联创

开学的第二天我就来到了811,那时候在场的有 xylonx 和 zcy 学长,刚来的我非常拘谨,在忐忑中度过了刚开始的那段时期,然后就开始做新人任务,共三期。

个人觉得,我每期任务都做得很赶,即使好像一周的所有时间都砸在任务上,完成度也只是一般般,不过这可能只是我自己的感觉,说不定是给自己的期望值太高或者压力太大。

最难受的是第0期,那时候我觉得 git 和 linux 都学过,于是把重点放在了装 arch 和配置 arch 上,结果时间分配不当,一下就整了三四天,查的时候根本不看,问了一堆我没准备的 git 和 linux 的问题。datalab的话,我以为自己不动手,看看别人的然后将其理解也是可以的,结果现场写异或交换两数没写出来。第0期被锤让我难受了半个月。

做vdom的时候,联创开始秋招,我就强行充了一波面试官,不过也问不出什么,学长向面试者提的一些问题,我都不知道答案。后来有一批新人加入了我们,看着他们做新人任务,有些人一周似乎一直在上课,没有花多少时间,最后也能将新人任务完成,我就想到了自己一开始的那段经历,然后又忍不住开始自我怀疑,再加上和其他团队成员的比较,不自信更甚。

我本来以为,进入团队是增长自信的一种途径,结果发现自己照旧不自信。

大二上,学得毫无章法,偏离了我一开始想要做产品的初心。刚开始的时候,我想从头开始做 hackweek 的产品。后来做 datalab,我想到自己之前想打计算机基础,就接着看 CSAPP,顺便看一下设计模式,之后我又开始看计网自顶向下,再次复习了上边的两层,并且看了部分网络层,一度想要学抓包和 socket,之后放弃。和兔兔聊了一下,就又开始看算导,一直看到红黑树,觉得这些东西也暂时用不上,又开始去刷力扣。中间穿插了个腾讯文档菁英班,就看文档学了一下 react,复习 ts,看 sass 文档,最后做项目的时候又看了下 mobx。还有就是实现了两次 vdom(尝试了 list-diff,但还是做得不够好),看了 koa 源码和洋葱模型源码,写了 koa-router。

这学期的学习几乎以理论为主,甚至一度让我感到有些枯燥,效率也不是很高,虽然去811的频率很高,可我究竟收获了多少呢?要不是最后被拉去和 xiong35 学长他们组队做腾讯课的项目,这学期的实践能力几乎是没什么提高,我还是不知道一个网站的前后端是怎么写出来的,我的学习几乎没有实感。

再多说一些加入团队的体验吧,其实加入团队前后,我的心态并没有太大不同,不会因为自己是团队人而觉得有种不一样的感觉。不一样的大学生活中,确实收获到了,整天翘课去启明学习,聚餐频率增加,外卖频率增加……

腾讯文档菁英班

10月份的时候,大萝卜和辅导员在通知群发布了腾讯文档菁英班的推文,既然是学习前端的班,是腾讯组织的,还有奖金和实习名额,我想都没想就报名了。一共四节课,两次作业和最后的大作业,课我意料之中的没听几节,作业和一次考试也就那样 A 过去了。最后的项目被 xiong35 学长拉去组队,技术栈大概是 react + ts,没怎么做过项目的我,在动手之前真的十分迷茫,还发了条负能说说,之后就和学长聊了很多,也笃定了我寒假和第二学期要做项目的决心。

我们的选题是复刻网易云音乐,有了学长学姐的帮助,我终于知道了怎么用 git 多人协作,怎么请求数据,保存数据并响应式渲染在页面上,如何拆分组件,如何正确 git commit,怎样解耦,代码服从什么规范。答辩的时候不小心暴露出一点 bug……虽然最后没拿奖,但是挺有收获,这算是项目之始。

最后拿了大二选手中第二高的分数,当然实习嘛,大二的不配。

离谱的寒假

寒假去海南骑了一趟车,圆满了大一的梦想,但是倒霉的是,住酒店时被舍友传染了水痘……寒假的后半段就在这种水痘的痛苦中度过。

在万宁的时候,晚上在酒店临时打算参加冬令营,在三亚的时候,接了一个小程序的锅,大概就是合成头像框。

1月19日晚上,海南之旅结束,于是当晚三亚→昆明,在长水机场的一家餐厅熬了一晚,第二天又昆明→成都,成都下飞机后,从机场感到火车站,又坐火车回的汉中,这大概是我目前为止最为曲折的一段旅程了。

一回家就被 ddl 驱使,几天搞定小程序,然后就连着冬令营的锅,那几天的我极度疲惫,到冬令营 check 的那一天,水痘引发的低烧开始出现,于是我直接鸽了 check。

之后就是难熬的水痘日子了,什么症状就不描述,反正每天都要给浑身的疙瘩上药,开始的一周苦不堪言,也无心思学习,先刷完了《双城之战》,之后又刷完了《开端》。

寒假之前,我想过要怎么好好做项目、背面经、刷力扣,应付随之而来的面试的,一切计划都被打乱了。

那段时间,由于受到身心双重压迫,我开始怀疑自己的初心,觉得被这样 push 真的太累了,我是不是以后受不了996云云。萌生了学医更好、或者将来去国企的想法,也和家长聊过这个问题,但最后还是觉得,应该先去大厂实习看看,感受一下。

最后,寒假开始着手前后端博客的开发,并刷了五十道左右力扣,算是没有完全荒废。

意料之喜

第二学期开学,我继续保持刷力扣的节奏,完成了前后端博客 milestone,进行了小程序的迭代。

写小程序令我十分痛苦,设计一直要求我修改颜色和字体大小,整个开发小程序的感受稀烂,没有什么技术含量,纯粹是搬砖,有了这两次写小程序的经历,我决定以后尽量不碰这个东西。

由于 peer pressure,向身边强者看齐,我还是向字节投出了自己的简历。感觉自己此时还是挺菜,并且荒废了寒假,就只是想试一试,结果居然过了。

错误决定

字节的三面时,面试官问我“你之后的打算是什么”,我回答:阅读 React / Vue 源码、写一个狼人杀的项目。事实上我确实也打算这样做,狼人杀已经开了个头。因为上一学期的学习比较杂乱,这一学期我打算以实践为主,多做点项目。

这时候,我做了大二下最错误的一个决定。一个学长拉我打中国软件杯,一开始我持观望态度,但内心对参加比赛的好奇,以及学长“组件库几天就能搞定”的话语,无不推动着我。之前我没用过组件库,也很好奇用组件库写项目会有怎样的体验,于是我接受了。

这个项目大致是一个遥感系统,前端上传一些图片,后端对这些图片进行“变化监测”、“地物分类”等操作,前端将处理后的图片呈现出来,并提供轴侧 / 平面视角供用户操作等等。右侧有一个图片的 List,围绕着这个列表存在各种各样的操作。这个项目的操作逻辑比我之前遇到的任何一个都复杂,首先我对 canvas 比较陌生,这个通过查资料不难解决。其次是各种各样的图层操作,当我发现时间紧迫,开始赶 ddl 的时候,就开始在 mobx 的 store 里堆屎山,写出各种难以维护,自己以后都看不懂的代码,并且对大量的 ts 报错置之不理。

并且,组件库也用得不爽,因为所有的样式都写成了行内样式,并且没有好的 css 语法提示。对于存在设计的项目,不宜使用组件库,组件库适用于无设计,且需要保持风格一致的场景。

最终结果是,这个项目一直持续了两三个月,中间穿插了很多考试打乱节奏(都是突击),由于这个赛道太卷,一共几百个队伍,就十几个有省奖,我们拿了省二倒一,升级到了国三,这个操作比较玄学。如果再来一次,我一定好好利用这段时间干点别的,因为时间紧,没有思考怎么写优雅的代码,一直在想怎么搞出功能,写这个软件杯纯搬砖。

捡起日语

学习日语是我从中学时代就开始的目标,初一我就开始学习五十音,初三毕业买了新标日初级,高一的时候趁着午休在寝室啃新标日,断断续续地学了半本书。高三毕业速通了初级上下册,但是学得很不扎实。于是大二上我一直在回顾 N4 的语法,读课文。我思考,如果继续拖下去,可能大学都学不成日语了,于是大二下,我先是自学课本,然后买了沪江网课,把 N3 和 N2 的内容也速通了,这次词汇也跟着背,沪江开心词场上四本书的词汇都完成一遍记忆。这次我的目标是——12月考过 N2!

字节实习

当初向学长要内推的时候,他问我是选择偏业务还是技术,我毫不犹豫地选择了技术,这次实习能学到什么呢,还是蛮期待的。

7- 3,上海 - 松江 - 九亭,我和两位学长一起租房,出门就是九号线,船新的体验。

隔天我来到字节,成为互娱研发-前端架构-跨平台部门的一员。刚来的一周阅读各种文档,和 mentor 完成一次 1 on 1,大概了解了部门的组成,有哪些细分方向,大家大概在做什么。

到了第二周,正式开始干活。我的 mentor 把我分给了一个女同事,之后的一个多月,我就一直在这个女同事的手下干活(姑且称其为 L),成为了 R 平台的开发者。大家的工作都很忙,L 也不例外,她的工作都是整块并且比较紧急,很难给我拆分任务。一个多月,我做的都是“微调页面”、“调用现成API”、“临时改个小 bug”等没什么技术含量的活,并且很多时间处于无活可干的状态,这时候我就学学自己想学的,因为部门业务相关的缘故,我还看了一点 Android。一般作息是每天11点到,7点多走,或者偶尔自习到八九点。

到了八月底,我有点受不了这种工作,怀疑这样的实习不能充实自己的简历,就和同事聊了一下,他推荐我把 R 这个平台搞懂,但是这个平台上有各种各样的操作,而文档不够清楚。字节内部很多组有“新人串讲”流程,是转正的一环,我就去找我们组的文档,发现不存在串讲而只有分享(类似于联创内部的分享),对理解 R 没什么帮助。同事说:“你直接来做技术的部门确实会有这样的情况,L 就是从做业务的部门转过来的,所以她知道业务有哪些痛点,我们这些平台和技术可以解决什么问题。你没有遇到过这些问题,理解不了也正常。” 或许第一次,还是应该去“搬砖”的业务部门?

到了九月,因为公司楼里阳了一个,被拉去佘山隔离了10天,隔离期中跟 mentor 聊了一次,表示自己想换到别的方向去,mentor 客套地对我的自我反省表示出了赞赏,把我换到了他在做的客户端容器方向上。这个大概就是开发 Native 的容器,容器要为前端提供端能力。结果从这时,一直到实习期结束,我一共就接了两三个小需求,还只有一个是需要写安卓代码的,并且代码量都很小。整个九月约等于没有干活,最后谈 remote 失败,实习就这样结束了。

个人认为,这次实习的硬性提升不大,主要是软性的,首先是熟悉公司和互联网行业,体会作为社会人和学生有什么区别,还有就是对实习的一些感悟,如上所述。在公司,我发现自己解决问题的能力不怎么样,经常需要请教 L,后来我就告诫自己“工程师一定要提高自己解决问题的能力”。并且从这以后,我不希望自己逃避,要让精神变得更加强大,负起责任来,作为公司的一员,联创 web 的一员,思考“计算机是不是不适合自己”根本没有意义。

实习生在公司的地位很低,我 mentor 跟我商量一个开会的时间,到点了他也可以一拖再拖。并且面试和干的活,确实很不匹配。面试面那么多,分配的活就这?实习也没什么了不起的嘛。

最后夸一夸字节,福利真的不错,免费伙食(外卖)下午茶健身房,各种礼包礼盒,甚至隔离还发$,吹爆好嘛。十月我回到了学校,正式开始了大三的生涯。

其他想说的嘛,感觉人有稍微变自信一点,参加团队招新,在面试时也更加从容。