Published Friday, January 5, 2024 at 5:20:15 AM GMT+8
头图来自今年我游戏时长最长的竞技游戏 Apex Legends 中我最爱的角色:探路者
虽然现在已经是 2024 年了……不过所幸刚过几天,赶快补上年终总结。
站在现在的角度回顾,2023 大抵确实是我迄今为止人生中最跌宕起伏的一年,然而刚度过 2022 的我,全然没有意识到这一点。
今年年初的时候,我还在深圳,作为字节跳动的一颗实习螺丝钉,老老实实切图。虽然说是前端实习生,但是组里负责的是飞书表格/多维表的公式引擎,其实基本上 ts 和 tsx 对半写,甚至 ts 要多一点。在晓东、铭涛等人的持续投入下,飞书表格/多维表的公式引擎可以说,在各家竞品中,非常有竞争力,彼时我负责的最后一个需求,是对公式计算耗时做估计。其实初始思路很简单,然而这个需求实际上推进并不顺利,这也是我一开始就预见了的结果(技术方案不是咱写的,咱是被拉去救火的,写方案的同学忙不过来了),因为最开始对预测精确度的预期实在太高了,被纳入考虑的因素也太少了。
本身精确测量程序运行的耗时在常规的 OS/runtime 中就是一个很难完成的任务,可以参考松松松关于 DuckOS 的介绍 中「为什么不稳定」这一页。在此基础上,用户在浏览器中运行公式引擎时的环境是一个更加不可测的东西,即使是多开几个标签页也会对结果产生影响,何况还有 Server-Side Computing 与各级缓存掺杂其中。一个月的时间在我看来甚至不足与从零开始把这个系统所有需要考虑的点理清楚,更何况还要在此基础上产出高精确度的结果。
所以在简单的糊了个版本之后,我们转而向别的方向解决。于 PD 而言,当前版本实际上已经得到了一些成效,因为它真的能标注出计算时间非常长的公式,也就是说在划分公式计算耗时长短上,是达到预期了的,只是精确度不太行。于我而言,我更倾向于找到解决的方案,因为多维表本身形式就比较接近于 HTAP DB,恰逢当时 PingCAP talent plan 新增了一个 学习索引 的课程,其中提到了利用 AI 来做基数估计这一点;恰好公式计算时间估计非常难做的一点就是类似 Find 之类的函数的结果长度,于是我抽空读了这个项目提到的两篇论文,读完之后发现完全用不到多维表上(。主要是因为多维表太轻量,修改 schema 和新增表的代价都很低,导致无论是 query-based 还是 data-based 的方法成本都太高。总而言之,这不是一个成功的需求(从我的角度)。
但是在研究过程中,我确实重拾了对性能的热情,自从不打 OI/XCPC 之后已经很久没有 focus 到性能上做一些工作了,也为后来的发展埋下了伏笔。而且除了这个需求以外,另一个需求虽然只做了一部分,但是数据相当好看,当时一度以为转正十拿九稳。
但是,说一千道一万,转正的结果还是 hc 不足,不予转正,说实话其实挺失望的,因为我其实对这个工作比较满意,而且和组里的大家相处都比较愉快,感觉很难找到这样的地方了,最后的这个结果确实让我很难受。但是有什么办法呢,只能接受现实,老老实实回学校做毕设;所幸去年秋招就有所预感,好歹有个保底,不至于春招的时候手忙脚乱。
BTW,有一件有趣的事情:在飞书实习的时候就性能上和 mentor/同事讨论过很多次,当时就觉得这多维表现有的行存方式非常尴尬,在公式作为类 AP 场景+核心功能的情况下其实有点拖累,所以跟同事提了提拿 rs 重写,做前后端同构,这样 ssc 也好做,然后性能也能有一些提升,毕竟公式是计算密集型应用,尤其是当时还写了个文档推销 Apache arrow,但是也只是有一些讨论就没下文了,主要是我关于这些其实也是半桶水,不是非常自信(;结果年底他们来找我玩的时候提到我说的什么 rs 重写啊,arrow 啊,都开始实践了!但是我人没了呀 TuT 挺难受的,俺也想和你们一起玩.jpg
如果把实习/给老师打工算上,我做前端也做了一两年的,虽然大多数工作都比较低级;切图,我是不喜欢的,本来我以为我会喜欢,但是后来发现我审美就是一坨,这下就喜欢不了一点了。并且在实际的观察了同事们的工作之后,我发现了一个事实:诚然,现在越来越多的前端开始捣腾一些更 hard core 的东西,比如 rs/golang 重写构建工具;写一些酷炫的框架;做 serverless runtime ;结合 webgl/webgpu 写高性能的动画库/渲染引擎等等。但是公司的💰是有限的,能做这些的岗位也是,大部分人最终的归宿还是表单仔,充其量写多了之后进化成表单 king 吧。前者承认自己是前端,那无可非议;但是后者拿前者举例子说前端也有含金量,前端也不全是表单,那我觉得就有点往自己脸上贴金了(。当然我承认这是暴论,毕竟任何群体都无限可分,crud 仔就比表单仔好吗,也未必。
抱着这样的心态,在回到学校之后,我开始思考我能不能看一些我更感兴趣的工作的机会;然而这不太现实,第一是我已经大四了,没有机会从头再来,第二是我自驱力确实不足,什么边工作边学习,对我来说不太现实(当然后来证明并非如此)。其实飞书那边就很不错,奈何人家不要我 TuT 在这样的背景下,非常自然的就萌生了留学换赛道的想法,恰好我手头还有实习的余钱,于是就偷偷瞒着家里报了雅思考试。
整个三月份,基本上就是一边准备雅思考试,一边做毕设,我的毕设选题蛮有意思的,是关于表格公式标脏的优化,大体上可以参考这个,天地良心,我真的不知道腾讯和我是一个思路(),我 demo 都写完了才想着调研一下竞品,然后直接撞车()
整体上来说,这个阶段是美好的,语言考试在没什么基础的情况下能拿到 7.0,毕设中期也顺利通过,已经很满意了
在跑了好几家中介之后,我意识到了一个问题:我摆烂的 GPA 对申请 master 有过大的 debuff,导致我几乎不可能申请到排名靠前的学校的 master(除了澳洲)。如果没法去好学校的话,那我觉得出国读 master 就是浪费钱(),于此同时,不断优化毕设的过程中,我开始认真思考读 PhD 的可能性。不读 PhD 的理由有很多,我成绩烂,我 XCPC 也不行,我没有科研经验,我也没有 connection;但是读 PhD 的理由只有一个:低经济成本的获得更高学位,并换个赛道。在当时的心境下,这成了决定性的理由。现在回想起来,还是转正失败给了我一些负面的情绪输入,让我在当时过于神化出国读书了。
决定了申请之后,就开始看机会,但是当时我其实已经手握工作 offer,所以一时间也有点犹豫,最后决定申请一些低花费的 24 fall master 的同时,试试 PhD,就试一次。然后非常巧合的看到了靳老师的招生广告,然后破罐子破摔一样写了一份没有什么学术性但是 motivation 拉满的 PS 发过去,最终的结果是美好的:面试的时候顺利的表达出了想表达的观点并得到了认可,最终收到 offer。
于此同时,在多轮迭代之后,我的毕设终于能拿出美妙的实验数据图,并且有充足的理论分析,最终喜提一个优。当然,推优干脆就没报名了(,主要是我一个 AI 专业的学生,拿着一个偏向 SE/CS 的毕设去参加 AI 的推优,感觉有点自取其辱了。
这个阶段其实还是有一些遗憾,比如错误的估计了领导讲话的长度导致为了不错过面试而没能出席毕业照,没有拨穗;没有勇气推优,其实想想我觉得我做的真挺不错的,当时怎么就不敢呢?
杭州钉钉的工作,比较无聊。一来因为继续搞多维表,但是钉钉多维表是一款防御型产品,所以整体投入不算多,我的自驱力太低,不足以提起劲来;二来是因为和同事们有代沟,周围几乎全是 P7,讨论的不是车就是房,要不然就是娃,虽然和大家关系都不错,但是日常谈话还是不太能融入进去。
GRE 非常不幸的没法 waive 掉,感觉学校的意思就是我要求都这么低了,你意思意思给考一个吧,然后我就白天上班,晚上做题,稀里糊涂准备了半个月,考了个 319,虽然不高,但是也够用了。之后就是为了 visa 到处办手续,算是见识了一把🇺🇸的行政效率。最后非常幸运的拿到了 5 年签,简直顺利的不可思议,虽然准备的过程繁琐了点。
然后我就离职了,说遗憾不遗憾呢?是遗憾的,虽然我审美不行,做前端比较难受,但是终归是我的问题,没有把这份工作做好;离开钉钉前的最后一个需求完成的也不太行,也有我的问题,提了离职之后就提不起劲来。试用期 ld 给我的评价蛮不错的,当时说了不少鼓励的话,有同学说我已经被 PUA 了,那我还是宁愿相信 ld 是真心的,人与人之间多点真诚少点猜忌,总归是好的。所以走的时候也非常不好意思,一来浪费了一个 hc,二来打乱了他们的计划;非常感激 ld 和 hr 对我都表示支持,也没有什么苛责/埋怨,来之前看过很多阿里的职场小故事,但是来了之后一个也没遇见,反而大家都很好心也很好相处。当然,可能也有个人性格因素(),我很少遇到和我关系不好的人,这种人大都是因为政见与我不和。
这个阶段最让我高兴的大概就两件事
离职之后回家陪父母,因为父母工作上的原因也是跟着频繁的两地奔波,其实也没有怎么修养吧,中间还回了两边老家,但是在家里呆久了真的会多愁善感,在小红书上发了不少癫,但是怎么说呢,自己做的选择,咬着牙也要走下去,最终就在复杂的心情中度过了一个月,最终奔赴🇺🇸。
5 月份的时候被学长拉进坑,现在还是青铜癌症段位,但是这种长 ttk 的 fps 我是真喜欢,越玩越菜,越菜越玩说的就是我了
老八()罐头游戏终于吃腻了,在经历了黑旗枭雄奥德赛英灵殿之后,我宣布幻景成为了我吃的最后一款刺客信条罐头!
99 个小时后的时候我其实都没打完一周目,因为我想把支线能打尽打之后再去打结局;但是往日之影 DLC 打乱了我的脚步,当我目送百灵鸟坐上飞船前往月球的时候,心情一度非常惆怅。是因为刚杀了李德吗?也许吧,我曾经以为我们真的能当朋友;是想到了另一个奔向月球吗?也有吧,当时确实是受其影响才买的本体。安静的等待最终的谢幕滚榜结束之后,感觉自己没有必要再拖了,于是我开着车去找华子小姐,拉上罗格,走进了神舆。
唯一不满意的就是因为没有看攻略,错过了「插管」的关键选项,没法单刷荒坂塔,所以目前正在二周目中。
和舍友快乐的在外星杀虫,推荐所有四人小团体试试这个游戏;不多说了,岩深,启动!
朋友就是玩这个的最高配置;一个人玩真的蛮无聊的,但是和朋友一起玩就是神中神,尤其是拿锤子蓄力把队友掀翻的时候!后面打到怪异化之后就没咋打了,一个是怪血量膨胀之后确实打的久,另一个就是大家都没空了。
玩的时间都不长,前者是因为需要朋友一起才有意思,后者是因为买太晚,等打折。
打通的唯一一个 galgame,推荐所有人去玩,适合下雨的下午一次性把剧情推完。
可能是泪点低吧,但是真的从找到 neri 那里开始眼睛就酸的厉害,幸好直到打通都没人来社团活动室,不然就丢大人了。
啥也没看
没什么好总结的,我其实也不擅长写年终总结,我只擅长讲口水话,但是今年确实发生了太多事,有时候想想真的挺奇妙的,从 3 月到 10 月,短短七个月,从毫无准备到只差入学,人生突然就进入了 next episode。
我准备好了吗?未必,今天还在手忙脚乱到处跑手续,写邮件,但是那又如何呢,选择已经做出,抬起头走下去吧。