五月病

08 Jul 2022 | thoughts

今年是大脑升级的一年。上半年发生的不少事情,总想挑个时间好好记录一下。然而我太菜了,写个短短几句话就得反复斟酌好久,导致文章一直难产。虽然现在才 7 月,距离年末还有一段时间,但是可以预想到接下来的时间会有不少重要的事情发生。为了避免把上半年的所思所想忘记,必须要赶紧把他们记下来了。刚下笔时,脑袋里突然闪过一个词:五月病,查了一下具体释义后觉得还满符合现在的心境,于是干脆借用来当作标题了。

年初的时候去了一趟北京,呆的时间不长,很多地方都没去过,很多吃的也没吃到。具体的过程在另一篇日志记录了,这里不多展开。

从北京回来就赶紧准备暑期实习,没料到今年的形势实在不好,互联网寒冬下,大家的春招结果都不是太好。三月初我投递了第一份简历,这时候我只刷了一百多道题,八股文也背得不多,简历也一般。但是到点了,时不待人,刷题是刷不完的,必须尽早投简历,后来证明这么做是对的。我一直想做底层的基础的工作,做一些有技术含量的硬核的东西。想是这么想,但是哪里去找这些岗位,在大厂官网投递简历后就完全靠运气了,你不知道会被哪个部门哪个组捞了,大多数情况下都是被招去做后台开发。找目标部门的员工内推倒是可以,但我去哪里认识那些人呢?学院内推群基本都是搞前端后台的,我实在意兴阑珊。后面我做了个错误的选择,当时周围的人都说内推无用,我也就信以为真,再加上找不到理想的内推,我也就直接在官网投递了。殊不知,大多数人都是能混个大厂经历就万岁,无所谓做什么,那自然没必要内推。后来我时不时反思,回想身边人与事,感慨每个人的想法真的是大不一样,能够找到志同道合的人是不容易的,之后再细说吧。

先说结果,投了几家,最后去了保底的 TX 做游戏后台(哭)。第一份简历是在 TX 官网投的,也没选意向部门,所以被 IEG 捞了。一面二面间隔 17 天,二面 HR 面间隔 14 天,体验很差。最终只拿到 TX 的 offer ,就不得不接了。其他的厂还投了字节、蚂蚁和 pingcap 等。字节也是官网投的,两个志愿一个选了基础架构另一个不知道选啥了,随便选了杭州的朝夕光年。事后觉得过于草率了,确实不该,导致后面在知乎上找的内推码也用不了了。pingcap 也是直接投的,二面挂了。唉当时确实没有把自己知道的东西很好的表现出来,很简单的题目也做得不好。蚂蚁是找实验室师兄内推的,那个部门做时序数据库,是很理想的去处了。当时对接的组长和面我的 p9 面试官都很牛的,面试体验很好。结果我在 HR 面挂了,真是遗憾。后来 p9 面试官加我微信,说他离职创业了,问我要不要去他那里实习写 Rust 。我当时已经确认 TX 的 offer 了,想要有一份大厂经历,就婉拒了。现在结合实习的经历回想,我觉得这个决定可能是错误的,去那边实习可能更好?其他的公司没啥好说的,本来也不想去。

面蚂蚁时,我数据库了解的不多,只细细看了两遍 DDIA ,结果被问得很尴尬。github 账号也拿不出手,博客也刚刚写了几篇日志,实在不忍直视。后面也开始有意识地改进了,为简历添点色。不过现在还是做得不太行,时间来不及啊。博客的话,年初的时候开始记录读书笔记,由于摸索到一种适合自己的方式,不去想着分享知识,而是记录关键点仅供自己回忆,记起笔记就没什么心里负担,轻松许多。不过在源码阅读这方面,现在还没有摸索到比较好的记录方式,尝试着写了几篇日志,感觉还是不太行。我的博客部署在 github page 上,看着绿方格一个一个点亮,还是有点成就感的。这段时间我也意识到,你学过的东西,做过的事情,一定要留下一个明确的别人可见的记录,不然就口说无凭。这一点我提供两个感触很深的人:hzh0425Tracking issue。总的来说,实习前的几个月,边看书边记笔记,也看了一些源码,能够感受到自己在进步,这是轻松有趣的。

五月份我开始实习,在深圳租了离公司很近的房子,环境比较一般,但是能够步行上班是很幸福的。我在公司负责一个查询平台的开发,简单说就是他们的游戏数据序列化后存到内部的数据库,我需要使用数据库的提供的 SDK 来读取数据并反序列化,展示到页面,为开发人员提供方便。这很简单,其中遇到的问题都是内部库无人维护,比如说内部 proto 转 py 文件的工具有 bug 没人修, 一些 SDK 不支持 py3,为此我 fork 了源码自行维护。这些问题解决了,剩下的就是写 django,部署页面到内部平台,配自动更新协议流水线。我做得挺快的,顺带完成了业务的一个小需求。

虽然早有听说,但第一次到公司,还是大开眼界。大厂福利非常好,早晚餐免费,茶水间牛奶咖啡硬造,吹空调,去健身房,电脑又好又能上外网,工资又高(相比四线城市),相比长满霉菌的出租屋实在好太多。我天天加班,周末也去,薅尽公司羊毛。通常,晚上和周末我不干公司的活,偶尔上班时间也不干,主要是在学点技术上自己喜欢的东西。前段时间一直在学 Rust,现在水平只是能读懂,写起来估计够呛。后来也陆陆续续看了些源码:YuLangrisinglight。我打算后面边读 risinglight 边用 C++ 重写一遍,读到哪写到哪,加深源码的理解,避免读了后面忘了前面,还能比较一下 C++ 和 Rust 开发的区别,同时也是践行前面说的,留下记录的一个尝试。如果效果好的话,那就重写 YuLang,练习一下 Rust。

实习期间,借着公司能上外网的便利,我还把心思转向 github 上,之前一直想尝试参与开源项目,关注了 mypy 好久但无从下手。这次我发现一个对开源很有热情的人 tisonkun,细细看了他的博客、推特和视频,大脑再次升级,对开源社区认识加深许多,也打消不少顾虑,尝试给几个社区提 pr 并被 merge 了。虽然只是一些小打小闹,一些 good first issue,泪目,万里长征第一步,继续加油。同时我还发现,参加开源项目还是个挺不错的练习英语的方式,之后要多多看别人的表达方式,多多学习几个专用词汇,才能准确地把自己的想法传递给其他人。遗憾的是,现在时间不太够,开源代码没怎么看,只能抽空捡漏别人的 issue 做。努力吧,我也想成为技术大佬,开源大佬,完成一个大的模块,成为某个开源社区的 committer。

利用公司资源来自我充电很爽,直到不久前公司查加班,PM 说不申请加班的人,晚上 9 点必须走,周末也不许来,我这才消停一些。

公司福利很好,但我却不想留下,还是想做 infra 的工作啊,还是要有点技术追求的,想和牛逼的人共事。这里业务都是实现各种需求,我不喜欢,实习的内容也不喜欢,没有技术含量,对自己的水平提升没有一点帮助。我个人看法:要是简历上已经有了实习经历,还来做这样的实习内容,那不如在校自学。能够做自己喜欢的工作,条件差点也无所谓啊(目前的看法)。我挺后悔之前没有实习经历,以要考研、导师不放人为借口,等到真正实习才发现,自己完全是可以都 handle 的。即使不实习,参加那些面向学生的开源活动,比如 GSOC,也是非常好的。唉主要还是对自己的能力不太自信,秋招再战吧(已经开始咧)

这周末就要开始准备秋招的事了。唉,我感觉在找工作方面还是没啥进步,听过的公司也不多,也是只能官网投递。各公司的招聘流程就像黑盒,我只能管中窥豹,通过与其他人的交流,逛网络上的论坛来增进自己的认知。投递简历后就如同开盲盒,不知道会被哪个部门捞了,面试时的反问环节也很难对该部门是否值得去有个大致的了解。不过经历春招后,我有了一些看法:就我从身边人的观察来说,绝大多数人并不喜欢这行业,技术水平一般,平时吃喝玩乐,招聘季靠刷算法题和背八股文进大厂。这种招聘方式我不太认可,如果面试官一上来就算法题,只问八股文,那我会开始怀疑面试官的水准了。

总结一下之后要做的事吧

命运将会把我推向何方?唉,加油吧。


Older · View Archive (24)

Shadowsocks 源码分析

今天抽空看了一下shadowsocks的源码。因为代码逻辑很简单,再加上自己学习过Muduo网络库,触类旁通,所以就只记录核心代码,仅供回忆使用。

Newer

C-Store: A Column-oriented DBMS 论文笔记

C-Store 论文笔记