hi@zxh
_

2022 新年快乐:Gap Year 的结束,摸鱼与快乐

Feb 21, 2022 · 53 min · life

不管是按公历新年,还是按中国新年,在这个点说新年快乐都显得格格不入,但反正也没人看也就无所谓了


大四的时候支撑我跟托福拉扯的最大动力是:“申请季前要是考不出分我就得 gap 了,我绝对不能 gap”。那时我对于生命中的一整年莫名掉出计划外这种事相当恐惧,我基本是在被既定的计划裹挟着往前走,所有事情都在 due 前夕完成(虽然现在差不多也是这样),我无法想象 gap 的那一年我会怎么样。

然后我考出了能看的托福分数,然后超现实主义的 COVID-19 和中美互掐从天而降,然后我还是 gap 了。

但这一年是我高中以来过得最开心的一年,而开心的主要原因是我摸了大半年鱼。前半年我表面上是在打两份工,实际上摸鱼摸的飞起,为这一整年奠定了开心的基础。当然这全靠导师和部门老大的包容,没 push 我也没一怒之下把我扔掉。后小半年被学校的课程和公司的活搞得鸡飞狗跳(虽然我觉得鸡飞狗跳很大程度上归功于 CS 611,我这一年的绝大多数抱怨和所有的通宵都贡献给了它),但因为之前过得太开心了所以也没觉得有什么问题。

看来解决我的状态问题的方法是摸鱼,而如果没有疫情我就不会有这样长的一段摸鱼时光,说不定现在已经浑浑噩噩的读完硕士毕业了。

有书读且活着

去年新年的时候,我说最大的愿望是能在生存率较高的前提下有书读,这个愿望实现了。我终于熬过了无业游民的一年,并且在今年 1 月的时候第一次来了美国,到目前为止还活着,同时每周的核酸结果都很正常。

虽然在那之前我还是上了一学期网课。快手 hr 面的时候,对面问我为啥要 gap,我说我不想上网课,然后对面就开始笑说“结果你这学期还是要上网课哈哈哈哈哈哈哈”。

我:(′▽`)

但其实差点就没书读了。BU 是我去年唯一一个录取,而且 5 月了才发的录取。众所周知美帝很多学校给学生设的决定接不接 offer 的最后期限是 4.15,而 4.15 都过了我还一个录取都没有。那时我觉得自己要没书读了,甚至开始刷题准备找工作了。

那段时间我的知乎简介是“没书读的无业游民”,然后我收到了一条私信:

zhihu-1

不是你怎么动不动就问别人有没有书读啊我好心痛啊 (╯‵□′)╯

同时我给 BU 发了几封邮件,内容包括“球球你们再收留我一次吧”“you are my dream school”“这次我一定会来的”。BU 在 Fall 2020 和 Spring 2021 录了我两次我都没去(因为它不给 defer 啊不是我不想去啊),结果风水轮流转,Fall 2021 的时候轮到我卑微的去纠缠它了。

当时我跟朋友聊天时,这样评价这件事:

chat-1

像极了爱情。

但实际上:

chat-2

欣慰的是 5 月的时候 BU 总算给了录取。我觉得它是被我的诚意打动了,觉得“这只鸽子这次应该不会咕我们了”,于是给发了录取。可能是前一年被咕得太狠了,BU MSCS 历年来都不收 deposit 的,去年要收了。

拿到录取以后我说:

chat-3

好耶!

国企

读本科的时候我不会想到我居然会有去国企上班的一天。

在有录取之前我都不是学生身份,不是学生就没法在大多数公司实习,而且我那时想把重心放在写论文上不希望去活太多的公司(最后其实把重心放在了摸鱼上),所以我就去了老家的一个国企实习。

国企待着真的开心,部门老大和同事人非常好,并且标准 955,部门老大在没有急事要干的时候下班比我还积极。技术方面,曾被抓去找模型写 demo、写处理数据的脚本、写三维地图和数据的可视化。非技术方面,跟了一个项目,在里面端茶倒水会议记录做 PPT 写文档,听公司老大一边骂我们“都写的什么玩意儿专家看了会怼死你们的”一边讲解该怎么写体制内的八股文(现在已经忘完了)。

这真是我最奇特的一段实习经历了,比上一段在创业游戏公司又写代码又画画的实习经历还要奇特。

同时我理解了博士毕业进国企带项目的快乐。具体来说作为牵头单位,我们需要给包括高校在内的其他机构发经费以及 push 它们的进度。说不定当年在学校里压榨过你的老师,现在得指望你给他发经费和被你 push。

元旦放假前公司老大还问我还去不去美国,不去的话可以考虑转正。那时我没想到我去年的申请结果会如此的惊心动魄,一口咬定我肯定会去的。

就是这公司离家有点远,坐地铁得一个多小时。我用坐地铁的时间把王树森老师的 Deep Reinforcement Learning 看了一遍,并通过找 typos 让自己的名字出现在了这本书的致谢里。然后脑子一热去继续学了一下强化学习,当时甚至还燃起了要写一个“极简强化学习库”的热情,因为觉得即使是当时主打轻量的 RL 库,为了兼顾某些方面也必须做出取舍,最终也还是不够简洁。而我只是想要一些最核心的功能来方便我玩耍,只要把这些最核心的功能写得干净高校且方便扩展就好了。结果不了了之,一方面没有精力,另一方面我对 RL 各种算法和现有的库的架构的了解都太少了,感觉很难写出我想写的东西。后来也没再学 RL 了,感觉我现在连贝尔曼方程都看不懂了。

找实习

5 月拿到录取以后就从之前的实习公司离职了,因为还是想去大点的互联网公司看一看,并且还得赶论文。投完论文以后开始更新简历、投实习和准备面试,全投的算法/研究岗。投的公司也不多,十个左右吧,其中还有一半是我基本没报什么希望就当买彩票的研究岗。其实本来打算边面试边投,但快手给了 offer 以后我就再也没有动力投了。

摸鱼之年贯彻得非常好。

简历

我第一次实习的公司是个游戏公司,直接要求“不要发那种中规中矩的简历过来”,于是我写了这个发过去。第二次实习在国企,感觉对面也没怎么看我简历。因此这可以说是我第一次正经的给公司投简历。

简历我之前就用 LaTeX 自娱自乐性质的写过一份,直接用了 moderncv 宏包的 classic style,好看是好看,但每节的标题单独占了一列,太不紧凑了,装不下多少内容。尤其是投工业届的简历往往被建议只写一页(虽然也没人明确地告诉过我写两页到底会不会有什么负面影响),那更是寸土寸金。我也懒得调整了,直接换成了这个更紧凑的模板,然后魔改了一下,主要是扔掉了图标和给标题加了颜色,最后成品长这样:中文 / 英文。英文简历除了 MSRA 应该也没公司看,但反正写都写了,我就把它拼在中文简历后面了。

接下来的内容只是我到目前为止的认知(并且只针对互联网公司技术岗),我不为它们负任何责任。

总的来说,不管用 Word 还是 LaTeX 还是别的什么工具,我觉得简历模板应该:

  • 紧凑(尽量多写内容)、但不能太紧凑(避免对面看着费力心情不好)
  • 如果要加颜色,首先多找几个人确认一下这些颜色是否花里胡哨奇奇怪怪;同时要保证这些颜色用黑白打印机打出来依然清楚,万一对面就喜欢把简历打印出来看怎么办
  • 背景图案(比如贵校校徽什么的)我觉得就没必要加了,打印出来以后估计你的字就看不清了
  • 如果要出现超链接,那么考虑到对方是拿着纸质简历在看的可能性,应该尽量用文字把核心信息写清楚。比如你要放个人网站链接,就直接把域名打上去:zxh.io,如果写成这样:个人网站,打印在纸上就没人知道这是什么了;如果放 Github 一类的主页,起码把平台名和用户名写上去
  • 可以确定的是,至少投互联网公司技术岗,简历不放照片是没有问题的。至于放了照片会加分还是减分,我不确定,有人说长得好看的话可以放,有人说放了会增加各种歧视的可能性。而投别的类型的公司和岗位要不要放照片我就不清楚了,有人说有的公司会觉得你不放照片是不尊重。但至少对于我来说,我的简历已经没空间放照片了,而且往 LaTeX 里加照片听上去就很麻烦,而且加了会让我的模板变丑,于是我没有加

关于内容,我觉得:

  • 有人说 GPA 必须写,但我没写(因为真的太低了),好像也没啥影响

    但要是 GPA 或排名好看的话那肯定得写

  • 我觉得获奖情况可以只写专业相关的省奖及以上(ACM / 数学建模 / Kaggle 或其他大型算法赛等)(要是奖还是太多了可以继续缩小范围到国奖甚至国际奖)+ 牛逼一点的奖学金(我没有)+ 优秀毕业生(我没有)

    如果把所有乱七八糟的校奖和专业无关奖都写上去,反而会让人抓不住重点,而且浪费简历篇幅

    当然也会有在上述范围以外的值得写的牛逼的奖项,虽然我一时之间只能想到清华特奖

  • 所有教育经历都是计算机科班的话就没必要写相关课程了,但转专业的可以写

  • 在读学位不要写 20XX - 至今,把毕业时间写上去

  • 写项目/研究/实习经历的时候,一般最后得写一句这个工作实现了怎样的效果。但“发了论文或专利”、“在 Github 上拿了多少 star”、“被公司上线了”之类的虽然肯定应该写并且值得加粗,但我觉得不能算“效果”,“效果”应该得是各类指标比之前的工作优化了多少

  • 技能部分大概分为:编程语言 / 框架和工具 / 语言(如果考试成绩好看,就把成绩也写上)

    根据自己的情况进行调整,开发岗可能需要把框架和工具那里再细分一下

  • 不用写与专业无关的技能(如 Office 全家桶,虽然 PPT 做得好是个很重要的优势,但写简历上大概没啥用)和经历(如学生会,除非你在学生会里搞了技术)

    跑题:但我道听途说,在申请美国学校的时候,对 minority 做了贡献的经历可能会有作用

面试

6-7 月在投简历和面试。投的研究部门除了 MSRA 给出了正面回复以外,其他全部石沉大海。可能是因为我太菜了,可能是因为他们当时不缺人,也可能是因为我没找内推直接海投。而 MSRA 的研究员告诉我,虽然我简历看上去还行,但必须得是严格意义上的在校生才能去他们那儿实习,而我当时虽然有 offer,但还没入学,所以依然不算在校生。

我:(⊙ o ⊙)

他让我 8 月底再去联系他面试。那应该是我离 MSRA 最接近的一次了,大三投了一次,简历拒,大四毕业投了一次星桥计划,简历拒,这次终于简历过了。而且那个研究员和他的方向我都很喜欢。所以当时纠结了很久,最后还是觉得,万一我 8 月底面挂了怎么办,那个时候再重新找实习吗?风险感觉有点大?最终还是没有选择在这一棵树上吊死。

顺便一提,MSRA 的研究员有独立的招实习生的资格,所以如果找不到人内推,可以考虑直接去联系方向跟自己相符的研究员(我就是这样)。但每个研究员只有 1-2 个实习生名额,所以得等之前的实习生离职才有机会。

关于刷题,因为留给我的时间不多了,所以我只考虑了剑指 Offer 和 Leetcode hot 100,而且并没有来得及刷完。欣慰的是面试的时候没被考过很难的算法题,除了快手一面两道算法题全挂以外其他都写出来了。虽然快手一面面试官(也就是我后来的 mentor,是个非常非常非常好的大哥)一直说“没事”“没有关系”,但我还是觉得肯定凉了,于是又投了一些别的公司。结果快手给过了,我直到现在都很意外。

快手和 OPPO 都没有扣机器学习的细节。快手一面全问项目,问完写题。二面问完项目之后开始问场景题,比如现在有个啥啥啥业务需要实现啥啥啥效果,你打算怎么做,要从收集数据到用什么模型到评测指标全部说一遍。我觉得这是最让人头大的,当时一边答一边冒冷汗。OPPO 只有一面,也是全程聊项目,聊完之后写题,面试官甚至直接让我共享屏幕、把 Leetcode 打开、搜题、开始写。如果我入职 OPPO,mentor 应该就是那个面试官,他也是个很好的人,并且他说他带的实习生会做偏研究的工作,写论文打比赛什么的。但因为那个岗位的 base 是在上海,而我在上海待了四年,在有选择的情况下还是想去别的地方,所以最后还是没有去。

我也不知道我一个基本不出去玩的死宅为什么要在乎工作地点。

可能是因为我面的商汤那个组做的东西我不太明白,而我做的东西他们也不太感兴趣,聊项目聊不到一起去,于是商汤一直死扣细节。具体来说,我在聊项目的时候,提到我用了 ResNet,这时面试官大概是觉得终于抓住了能聊的东西,于是开始问 ResNet-18 到 ResNet-152 的结构,甚至精确到了每一层是个几乘几的卷积的程度,中途顺便问了 batch norm 和残差连接。我当时感到压力巨大,脑子全速运转疯狂回忆。当面试官说“来写道算法题吧”的时候,我甚至松了一口气。

这个故事告诉了我们项目/实习经历的重要性。项目经历是面试中你唯一可控的部分,而基础题和算法题是你非常不可控的部分,因为范围太大,准备得再充分也有可能失手。如果项目讲得好,那留给面试官问基础和算法题的时间就不多了,从而尽可能的控制不可控部分的难度。但如果面试官问了两句项目就不知道该聊什么了,那剩下的几十分钟到一个多小时里,他/她就只能把你一直按在基础题和算法题的大海里遨游了,你失手淹死的概率大幅上升。

滴滴的面试官是个很好玩的大哥,我们的对话包括:

  • 他:你了解 LDA 吗
  • 我:不了解
  • 他:我也不了解
  • 我:?

  • 他:来讲一下 beam search 吧
  • 我:(空耳听成了毕设)开始讲毕设
  • 他:BEAM!SEARCH!束!搜!索!

  • 他:写二叉树前序遍历的非递归写法
  • 我:(不知为何脑子一抽开始笑)
  • 他:你为什么在笑?你一定是会写才笑,那不写这个了,写个二分吧
  • 我:那还不如写前序遍历…
  • 他:?二分比前序遍历简单吧?就写二分!
  • 我:…

平心而论我觉得我滴滴一面发挥还行,除了 LDA 以外没有没答出来的问题,但然后就再也没人联系我二面了。不知道是因为我太菜了,还是因为滴滴那段时间出了事…

接下来的时间我会用来吐槽字节跳动。我字节前后投了两个岗位,都直接简历拒。当然这我完全能接受,毕竟我菜,同时我同学安慰我那俩岗位可能不缺人。可在同一时间,不断有字节的人来找我问我要不要内推。还有字节的 hr 来找我说“我觉得你很适合去后端”,而我简历上没有任何一条体现出了我会后端(实际上我的确也基本不会后端),可能大家默认算法都能转后端吧。在我实习入职以后,甚至已经去了美国以后,还不断有字节的 hr 来让我去面试,岗位从算法到客户端开发不等。

我可以理解 hr 有凑面试人头的指标,我也可以理解内推成功有奖励,但这也太离谱了,起码拉我去干点我会干的事儿吧。

可是所有公司 hr 的声音都好好听啊。

旅游

作为一个死宅,去年我就出去丸了三次。现在想来,那是我出国前最后一次见这些朋友们。

成都

6 月去成都找朋友带我吃吃喝喝。我觉得成都是到目前为止,最适合我生存的地方了。足够发达,该有的大公司都有,虽然工资比不上北上深,而且好像基本只有开发岗。离家(重庆)近,坐高铁往返非常方便。食物好吃,除了我这个能吃辣的重庆人在意的火锅串串川菜以外还有各种辣或不辣的极具特色的小吃,我觉得不能吃辣的人也能感到满足。房价友好,至少在看了北上深的房价以后我觉得非常友好。可以说方言,不过成都已经挺全国化了,当地人做生意的时候都会默认说普通话。

其实我上次回家的时候,觉得重庆也挺全国化了,比如我去办事,我说重庆话,柜台的人说普通话,于是我被迫说普通话,同时柜台的人跟她的同事说重庆话…虽然在外地人越来越多的情况下这也是应该的,但这基本意味着最后一个我能随便说重庆话的地方也在渐渐消失。

去蹭了朋友的同事的离职聚餐,吃完饭后去看了那部叫 Hello World 的电影。Hello World 的设定 + 选材 + 画风 + 主题的结合让我在刚开始看的时候就直接很不理智的把印象分拉到非常高的程度。实际上在看完结局以后我印象分依然很高,虽然科幻部分在大量以往作品的簇拥下没法显得很震撼(但这也是没办法的事),剧情节奏在某些时候没把握好,该燃的时候没燃起来该煽情的时候没煽情起来,但印象分可以让我不在乎这些。很多人可能觉得搞一个宏大的世界观设定但内核是在讲中二爱情故事显得太矫情了,上海堡垒电影当时被喷的众多理由里也有矫情这一条(尤其是在流浪地球的衬托下)。但这在我这里的确不算缺点甚至是加分项,这种跨界可以让我忽略掉它在科幻和叙事方面的不足。上海堡垒原著我也看得挺开心的,但电影实在崩得太惨烈了。

我们在高新区吃的饭,成都的各种互联网公司基本都在高新区。吃完饭已经快十点钟了,我们想打车去电影院,然而打不到车。然后朋友的同事说:“因为现在是下班高峰期,所以不好打车”。

我:(。_。)

好家伙现在连成都都这样了吗。

除了吃喝以外去了杜甫草堂锦里青城山都江堰熊猫谷这些外地人都会去的地方。值得一提的是熊猫谷,大熊猫不是在睡觉就是在干饭(可能是因为我将近中午才去吧,他们说得早上去才能看到活动的大熊猫):

因此相比干饭大熊猫,小熊猫更让人心动:

嗷嗷嗷这玩意儿比干脆面可爱多了好吗!银河护卫队里就应该搞只火箭小熊猫!

上海

7 月去了上海,如果你要问我上海有啥好玩的你明明大学四年都在上海,那我得说作为一个死宅,我大学四年就没出过几次学校。

何况我还约了上海的签证,必须得去。

见到了另一个朋友和缅甸小王子,他们带着我:

到外滩去看了建党 100 周年的灯光秀。因为人太多了所以南京东路封站,需要在人民广场下地铁然后走去外滩,而这一段路挤得人山人海水泄不通。那天雾很大,所以我们看到了断掉的东方明珠:

shanghai-1

和像鬼一样飘着的金茂大厦:

shanghai-2

上了大学四年都没上过的东方明珠,在塔底的时候天气还行,等排队排上去时就开始乌云密布电闪雷鸣,甚至能看到闪电在环球金融中心上的倒影,感觉随便拍一张照片就能拉去当上海堡垒的海报:

shanghai-3

去了大学四年都没去过的迪士尼,见到了尼克·王尔德:

shanghai-4

啊他真的太帅了!

最后,我趁着 17 级毕业典礼的时候溜进了同济本部,见到了朋友和老师,吃到了冻酸奶和学苑食堂。

跟老师聊的时候知道了同济现在在搞大类招生,大一新生不细分专业,而是分成几大学堂,大一结束的时候再填专业志愿,然后按绩点和面试成绩分流。虽然我早就知道电院和软院的门槛早已不同当年,但之前在群里看到现在想进软院需要 4.7+ 的大一绩点的时候还是吓傻了。而且因为大家都觉得电院的计算机人工智能什么的肯定很难进,于是大家志愿都填软院,所以软院分数线比电院还高。而同济王牌专业土木工程什么的每年都招不满人…

我要是晚几年读大学,大概是学不上计算机的。

要知道我当年高考的时候,软件工程是同济在重庆录取线最低的专业。刚进大学就知道有不少同学和前辈是第 N 志愿甚至调剂到软院来的。第一次班会课,辅导员甚至说:“我还是希望不要有太多的同学转专业”。那时的大热专业还是金融,上财金融相关专业的录取线直逼复交。高中的时候我们的通用技术课(高二上教焊板子,高二下教锯木头)老师还说过:“为什么所有人都想去学金融呢?这个社会总要有人来写代码的啊!”。

这位老师如今看到计算机如此的卷,大量的人想写代码还写不上,大概会非常欣慰吧。

高中的时候我爸妈非常反对我学信息学竞赛,填志愿的时候如果不是当时几乎没有选择应该也会反对我学计算机,而现在他们觉得我当年非常英明。但我跟英明这个词也扯不上任何关系,计算机后来大爆炸也完全在我的意料之外。我学竞赛是为了给高中成绩不好找借口,志愿填计算机相关是因为别无选择和觉得写代码并不是一个没有热情和天赋就会饿死的行业,仅此而已。

深圳

10 月国庆的时候去了深圳,开心而充实,虽然后果是我的半期考试鸡飞狗跳。

作为一个死宅,即使是在外面旅游,一般来说我也会在酒店里宅到下午,然出去象征性的逛几个小时,最后在天黑前回酒店继续宅着。有的时候甚至会一整天都在酒店待着不想出去。但去深圳的那一次,带我玩的朋友简直是宅的反义词,因此我经历了一次难得的高强度旅行,基本每天回酒店的时候都是凌晨了。

但深圳的确是个值得高强度晃悠的地方,风景好空气好,至少比北京好太多了。广东菜也很好吃,不过如果要我每顿都那么吃那我肯定也扛不住。不适宜生存的点是温度过高,而且小生物们凶猛且个子大。

总之在成都成为发达城市之前,我觉得发达城市都不适合人类生存。

骑车去追逐了落日:

shenzhen-1

我已经忘了这是在哪拍的了

朋友指着一个地方跟我说那边就是香港,我说我去香港玩的时候别人也指着一个地方跟我说那边就是深圳。

去了海边,沿着海滨栈道骑车往回走的时候看到了盐田港,那是我第一次看到港口。夕阳将近,残光铺在港口的那些庞然巨物上,我想象它们装载着一艘名叫利维坦的飞艇的零件,有一天那艘飞艇会在火烧般的晚霞中破云而上。

可我的手机拍不出这种感觉。

去逛了西丽大学城,然后在清华见了一个学姐,具体来说是在学姐的工位上打糖豆人。她的工位上有 PC、Mac、Switch、PS4 以及一些手办。

我:(。_。)

我居然在清华见到了我理想中的环境。

学姐:可能是因为我在工位上打游戏被导师发现了,在我后面进来的人都没有好机子用了

我:(。_。)

深藏功与名。

西丽大学城有三个学校,清华北大和哈工,三个连在一起,过了一个的门禁剩下两个就都能去了。因为哈工的门禁最不严格,学姐让我跟着她从哈工的门进去,在这之前她把她的校园卡给我,并告诉我:“如果保安拦你,你就把卡在他眼前晃一下,然后理直气壮的说你是清华的”。

我:(。_。)

学姐:记住要理直气壮

我:我觉得我没法理直气壮的说出这种话…

不过保安并没有拦我。

最后,这是一只看上去很傻的狮子:

shenzhen-2

南山博物馆,叙利亚古代文物

快手

面完试之后 leader 告诉我,组里的实习生搞研究写论文打比赛业务落地都能做,我心说好家伙那么自由的吗我得去看看。实际上的确很自由,入职第一周 mentor 跟我主要聊的就是“你想做什么”。组里别的实习生做的东西也的确五花八门,涵盖了 leader 当时说的几个方向。

我感觉这段实习就像在读研,天天看论文写代码跑实验,然后每周一次组会汇报进度。而组会也很有快手特色,我花了很久才能在看到别人的周报上出现的美女和土味短视频时保持冷静而不是笑出声。我不玩快手,我只在周报上看快手短视频。

但业务部门的正式员工就得花大量时间在处理业务上了,甚至只有在周末休息的时候才有看论文的时间。有个大哥说他最期待的就是在面试的时候跟应聘者聊论文。但即使是这样,在跟我聊论文的时候,他们依然表现得非常敏锐,这让我非常佩服,很多点真不是我一下(或者很多下)就能想到的。

同时,在听组里的大哥们聊他们捞简历和面试校招生的情况时,我也感受到了国内算法岗的卷。有些我觉得背景挺好的人(清北华五硕+大厂实习)简历都没过,算法题甚至已经考到了(我认为的)ACM 难度。感觉这已经不是在考察应聘者符不符合岗位要求了,而是为了筛人而强行拉高难度,这让我想到了某些大省的高考卷。我感觉我要是校招来面这个组大概率是面不过的。

另一个发现是,即使在业务算法部门里,博士的晋升速度和天花板也高于硕士。以前我一直觉得国内博士毕业以后如果进不了研究岗就有点浪费,现在看来也不算浪费。

下雪后的总部还挺好看的:

kuaishou-1

kuaishou-2

最后,我对于这儿的食物很满足,肥宅也就这点追求了。食堂挺不错的,虽然吃到最后有点吃腻的感觉。不想吃食堂的话也可以让公司点外卖,但不知为何公司支持的外卖都不咋好吃,还不如去食堂。咖啡和雪糕不限量,发的下午茶至少我不是每天都能吃完。离开北京前的那几天,为了花光能量券薅掉公司的羊毛,我经常往总部罗森赛百味星巴克跑,感觉像是一个压力巨大的任务。

最后的最后,我有一个非常好的 mentor,感谢他。其他同事也非常好,感谢他们。

北京

北京是个不适合人类生存的地方。

空气不好,风沙大。夏天随时可能突然下大雨,路上可能几百米都没有能躲雨的地方,等找到躲雨的地方已经成落汤鸡了,遂觉得不如破罐破摔继续往前走。虽然有天气预报,但天气预报没法精确到分钟。冬天妖风大,大到顶着风往前走不动的程度。

房价和房租都太高了,我在软件园附近租的年代很老的房子的价格非常让人心痛,但为了上班方便和蹭房补也没办法了。虽然软件园周边肯定不缺人租房,价格高可以理解,但这都已经五环了啊,五环都那么贵啊。

因为房子老,所以大概存在隔音的问题,这就导致楼下邻居上来怼过我三次。第一次是九月的某一天的中午左右,我感冒了不舒服,摊在椅子上一动不动,然后楼下怒火冲天的上来敲我卧室门(不知道怎么进的公寓门,估计是室友给开的),对我劈头盖脸一顿骂,说我凌晨一两点在房间里拖椅子,吵到他们小孩睡觉了。

我那本就因为生病而宕机的脑子更加宕机了,我凌晨一两点就算还在熬夜,也应该在床上躺着玩手机,为啥会拖椅子。而且那时我为了每天早上早起去公司蹭早餐睡得都挺早。于是我困惑的说了一句:“凌晨一两点?”

楼下的人:“你不要狡辩了!”,然后继续骂。

我心说我压根就没辩啊这明明是个希望得到确认的疑问句,但我觉得可能真的是我搞出了什么动静,比如在床上翻身声音太大,那么作为理亏的一方还是少说点话。而且我当时只想赶紧把她们应付走然后继续回去摊着。同时我还很怂,担心她们突然掏出菜刀来砍我。于是我道了歉并表示我以后我会注意,算是把她们送走了。

后来问室友,她们说从来没听到我房间里的动静。不过地板上的噪音对楼下影响可能会更大一点。总之直到我离开北京,我在房间里干任何事都战战兢兢的。

第二次是十月份,北京突然降温,一步跨过毫无存在感的秋季直奔寒冬。而我刚从短袖短裤依然热得不行的深圳回来,完全无法接受这个温度,于是开了两天热空调。然后某一天早上九点多,楼下又怒气冲冲的上来敲我房间门(为什么这个室友又随便给人开门啊喂)。前一天晚上我在通宵赶 CS 611 的作业(万恶的 CS 611),那时我刚躺下睡着没多久,被强行吵醒起来开门。然后楼下的人表示我空调声音太大了,吵到他们老人小孩睡觉了。

我:“…”

楼下的人:“你去找房东修空调,要是房东不给修的话你就买个小太阳用着。”

道理是这个道理,这的确是最合理的解决方案,但你用这种命令的语气说话就让人头大了。

楼下的人:“你要是还继续开空调吵我们,我们就报警了”

我:“…”

我觉得报警是对方拒绝配合之后才应该搬出来的手段,结果在我啥都还没来得及说的情况下,你上来三句话不到就威胁要报警,感觉就像是斗地主开局就王炸。我吵到你们了我愧疚我会尽量注意,但你这样就搞得好像我的一切决策都是被警察逼的一样。

和上次一样,出于可能的确吵到了她们+想赶紧回去躺着+太怂了担心被砍的理由,我依然是赶紧道歉了事。那时离北京开始供暖已经不远了,于是我就直接不开空调了。

第三次是十二月,我快离开北京的时候。一个室友(给楼下开门的那个)已经退租了,我跟隔壁房间的姐姐都在上班。中介派师傅来清理退租的房间,大概又吵到楼下了,于是楼下又怒气冲冲的跑上来,敲门,师傅懵逼的开了门,楼下在每个房间门上都贴了张写着主题为“注意安静”的纸条,师傅继续懵逼,但啥也没敢说。

隔壁可靠的姐姐先回家,看到了纸条,暴怒。她先去跟中介拉扯,然后按非法入室报了警(虽然最后警察也没管这事)。

太可靠了真的,比我这种菜鸡可靠多了。

最后离开北京得太突然,没来得及跟隔壁姐姐吃约好的饭,算是个遗憾吧,不知道以后还会不会有机会。

在北京找高中同学玩的时候吃了顿火锅,我觉得真的是很正宗的重庆火锅了,而且在底料的细节上做得比很多重庆的火锅店都好。吃完火锅去了丰台的花卉大观园,我也不知道我们为什么要想不开在冬天去花卉大观园,大棚外面就没啥植物还长着。

离开北京前几天去了大学同学的家里丸,让我震惊的是她的妈妈叫我大佬。

第一次听到的时候,我:“好的阿姨!”

经过几秒的思考,我转过头问同学:“等等她刚刚叫我啥?”

Deecamp

跟三个本科同学一起参加了去年的 Deecamp,然后拿了语言赛道的冠军。

虽然语言赛道一共就四个队…用当时队友的话来说:『选择比努力更重要』

2018 年 Deecamp 刚出来的时候我就听说过,在那个没有疫情的年代,参加 Deecamp 的人需要去北大住几个星期,集中听课和写项目,而不是像去年那样在网上听课,并且有着一两个月的写项目的时间。一直以来虽然也没有什么想要参加的冲动,但真的有去参加的机会的时候还是很开心的,感谢队友。

我无端的感觉去年的参赛门槛比前几年低了很多。18、19 年的时候还有笔试,面试也会问一些技术上的细节,录取率还低。去年没有笔试,面试也基本是闲聊项目。

选赛道的时候,我们全组首先达成了对医疗赛道毫无兴趣的共识,直到决赛的时候我们才意识到我们完全低估了医疗+人工智能这种大热门。但从另一个角度来说,我们直接避开了这种组多大佬多竞争激烈的赛道。创意赛道基本都是类似于拼乐高这种乍一看非常有意思但仔细想想不太好做的选题,加上我们觉得这种有意思的题一定很多队选,于是也决定避开。商业赛道我们又觉得过于没意思了一点,于是最后选了剩下的语言赛道。

然后我们发现语言赛道居然就四个队选,那时队友就说:“说不定我们还真能赛道冠军”。

搞完模型后,我们搭了个可以跟模型交互的网站。前端我们用 uni-app 写的,当时想着可以适配小程序,后来发现小程序想上真机的话后端得备案,而显然我们没时间备案了,于是最后在模拟器上录了一个小程序的 demo。

答辩的时候发挥得非常漂亮,而且所有评委的提问都在队友的意料之中,加上的确竞争小,于是就赛道冠军了,并获得了一些奖金。

而决赛的时候我们就发现我们跟医疗和创意赛道的前两名差距也太大了。创意赛道有个队做的是用 AR 辅助拼积木,总之我觉得很有意思,并跟队友说我赌一毛钱那个队会拿总冠军。但在发现评委对医疗赛道的看好和推崇时,我就渐渐觉得我要失去那一毛钱了(最后果然失去了)。

其他收获:

  • 根据自己的照片定制的积木(由某届总冠军的已经商业化的项目出品)
  • 导师阵容强大的课(比如在 zoom 上见到了吴恩达老师)
  • 李开复老师签名的书
  • 决赛的时候好像被李开复还是哪个老师提了问

开源

可能称之为开源并不合适,因为我觉得开源得在维护用户、文档和社区和上下功夫,而不只是把代码挂在 Github 上。总之,去年一个意外的收获是把 GitHub 主页搞得好看了一些。


因为被导师委婉直接的评价过深度学习和数学基础不扎实,于是想要把深度学习里面的各种操作手写一遍,遂写了 Flint。因为 API 和结构对标 PyTorch,所以我就厚颜无耻的叫它 homemade PyTorch 了,甚至还在 README 里放了一张梗图:

flint

现在它已经是一个我比较喜欢的项目了。


然后是两个有那么一些人在用的项目,有人在用自己写的东西的确能带来好耶的感觉。

一个是博客主题 Gungnir。这最开始是一个 Jekyll 主题,风格严重受到了 HuxSakura 的影响。2020 年的时候我看着我当年啥都不懂的时候魔改的代码感到心烦意乱,而且不知为何我折腾了几次都没用弄好热加载,每次改代码都要手动刷新,更烦,遂决定用 VuePress 重写。去年我学了 React,学完以后我迅速被 Vue 3 的理念说服了并开始无法忍受 Vue 2 的写法。那时 VuePress 1 已经不再更新,基于 Vue 3 的 VuePress 2 进了 beta 阶段。用 Webpack 打包的 VuePress 1 的启动速度太慢了,而 Vite 真的太快了。而且 VuePress 1 不再更新以后,Github 的 Dependabot 天天给我报 alert。综上,去年年底的时候我又把它用 VuePress 2 重写了一遍。

不知为何它现在已经一百多个 star 了,还会有人提 issue 和 pr。有点出乎意料,虽然我不是没有想象过它被人发现的一天,但我最开始的期望只是自己用用就行。

另一个是 Vue 图标组件 oh-vue-icons,它可以让你方便的从不同图标库里引入图标。这也是 2020 年开始写的项目,当时觉得在博客里处理不同图标库的图标太过麻烦,于是写了这个出来。去年的时候让它支持了 Vue 3,最初的实现是单独再写一份 Vue 3 版本的代码,后来通过 vue-demi 实现了在一份代码里同时支持 Vue 2 和 3。


其他:

  • 把当年找实习时写的看上去像个 RPG 游戏实际上是个抽卡游戏的简历升级到了 Vue 3

  • 还在国企实习时写的摸鱼网站 Fishmail,可以装作正在看 Gmail 的样子看知乎日报摸鱼

    其实在国企看 Gmail 也非常突兀,而且我并不喜欢看知乎(但我认为的最好的中文技术社区偏偏就在知乎上,所以我得被迫使用它),而且公司里的同事们都是光明正大的摸鱼的

    后来有个 issue 问能不能支持无图模式…这么说还真有人在用它摸鱼吗 ( ̄口 ̄)

  • 重构了大三为了抵软件测试期末项目在实验室搬砖时写的语音情感识别,不知为何它的 star 越来越多,现在在 Github 上搜关键词,它甚至会出现在前三位

    上学期我发现同济软院新开了一门课叫语音识别,其期末项目是语音情感识别,只要这门课一直开,我的 star 就能一直涨(狗头

  • 在快手天天跟 Transformer 的 masked attention 拉扯时顺手写的带 mask 的 tensor 操作库 torchmasked

    除了我以外并没有人在用

  • 因为实习在做应用所以看了一些主要贡献在 Transformer / CNN 网络结构上的论文,看完写了一下里面的核心操作:torchop

    并没有看多少篇

  • 脑子一热想要写极简 meta-learningreinforcement learning

    无疾而终,不知道以后还有没有能捡起来的机会

  • 还有一些别的在 private repo 里放着的暂时无疾而终的东西


最后是去年最大的意外 playground-macos,相当于我另一个更炫酷一点的个人主页,炫酷在于它仿了 macOS 的 UI。这是我第一个千 star 项目,并在 GitHub 和 Hacker News trending 前两位挂了两三天,让我“上一次 Github trending”的愿望提前了八年实现。

那时离截稿日已经相当近了,而我论文还没开始写。即使如此,出于对摸鱼精神的崇敬,我依然决定开始学 React 并写个项目练手,于是这个项目就出现了。我已经忘了我是怎么想到要仿 macOS 的 UI 的,我只记得我基本写完这个项目以后才看到了另外几个同类项目,才意识到当时好像有一股仿 OS 前端项目的潮流。

因为只是随便练手且最开始并没有想到要把它做成 portfolio,所以 repo 名字也取得非常随意,甚至当时连 create-react-app 默认生成的 index.html 的 title 都没改。后来做成 portfolio 是因为觉得这网站有那么多可以填充的地方,不利用太可惜了。

一开始是冲着 Big Sur 的风格去的,后来发现很多 Big Sur 的很多细节我都看不到,因为我年迈的 Mac 硬盘剩余空间太小了,系统只能卡在 Catalina 升不上去。所以那些缺失的细节我都是对着 Catalina 来补的,但在宣传时我用了“把 Big Sur 和 Catalina 里我喜欢的部分拿出来拼凑到了一起”这种高情商说法。

写完以后还尝试了一下推广。现在 Reddit 上发了个贴,没啥回应,于是我打算收拾收拾去写论文了,在收拾之前又在 V2EX 和 Hacker News 上发了贴。

然后就炸了。

那两天我目瞪口呆的看着 V2EX 和 Hacker News 上的回复迅速增加,repo 每次刷新都在涨 star 最后还上了 trending,走路甚至都有些飘,以至于我爸妈都对我表示了关切。最开始这个网站搭在 Vercel 上,两天不到免费带宽就被挤爆了。我琢磨了一下要不要上 CDN,但最后懒得弄,于是手忙脚乱的氪了个 Vercel 的 Pro plan 并在 Github Pages 上也搭了一个分流以勉强应付那几天。我刚开始用 Vercel 的时候还说就我这几个万年没人看的网站怎么都不可能用完免费带宽的,结果用完的那天那么快就来了。收到了比过去二十多年加起来还要多的邮件,除了表示鼓励和询问怎么学前端的,还有一堆让我去他们公司工作或让我接外包的邀请。论坛上的人们还鼓励我“你一定能靠这个项目找到一份前端工作的!”,我哭笑不得心说可我不是前端啊这个项目我甚至写不上简历啊,那时我也没有想到它后来居然真的带给了我意料之外的机会。最出乎意料的是,因为这个网站还仿了我很喜欢的熊掌记的 UI,熊掌记的一个负责人联系了我问我能不能分享到微博上(后来发现他们不但发了微博还发了推特)。我还顺便催了一下熊掌记的新功能,对面告诉我在写了在写了,虽然至今都还没有上线。

这个项目让我今年的社交量比我大学四年加起来还多,甚至和其中一些来交流的人成为了朋友。虽然这些社交都在网上,但我这个没啥社交能力的菜鸡已经很开心了。

不过从全局最优的角度来看的话,我本来应该可以趁这个项目有热度的时候获得更多的 connection,有很多机会被我浪费掉了。如果要找借口原因的话:

  • 那时还没有比较强的发展 connection 的意识
  • 虽然已经在改了,但我社交能力还是不够强,而且对社交有惰性
  • 这项目写完我就去赶论文了,没啥时间,等有时间的时候热度已经过完了
  • 这是一个前端项目,来关注的人自然大多是前端领域的人,和我主要发展的领域没啥太大的重叠
  • 虽然不管是国内还是国外都有很多人表示了关注,但跟我私下联系的人里绝大多数都是国外的人,而我至今都还不知道该怎么跟国外的人发展 connection

另一个发现是,当时讨论这个项目的人绝大多数都默认我是男的。如果说当今中文语境中下的“老哥”及类似的词已经可以算作男女通用的话,那英文论坛和邮件中大量出现的 he / his / sir 也能说明问题。


论文没产多少,奇怪的项目倒是多了一些,摸鱼果然是第一生产力。

研究

因为摸鱼强度太高、写奇怪的前端项目成瘾和论文被拒的很惨,去年研究产出远低于“大恶龙要四个月一篇顶会”的预期。希望今年能 all in research 和提高学术写作能力,总不能每次都被审稿人挑一堆 writing issues 出来。

同时,希望能真的进一个研究组,体验随时都有做差不多方向的人跟我讨论问题的感觉。在北大的时候因为一直远程,基本没机会跟组里别的人交流,在快手的时候组里不同的人做的方向又很不一样。因此在这以前我基本都是一个人在看论文和琢磨,能一起讨论的人只有导师和 mentor。但搞研究的话思想碰撞大概相当重要吧。

大三的时候就嚷嚷着想读博,但天平一直在左右摇摆。这几年我好像该折腾的都折腾过了,国企私企,互联网传统行业,大厂 startup,中国公司外国公司,中国大学外国大学,工业界学术界,开发算法研究,失学失业最后终于有书读。听起来就像在刷什么游戏成就,其中大多数成就都集中在去年。我很多时候会懊悔没有集中精力在研究上,觉得乱七八糟的折腾是时间的浪费。我经常会计算,我如果把这里那里的时间拿去做什么什么,我可能会比现在多多少的论文,我可能可以申到怎样的学校。但现在我觉得,这些折腾可以等同于负样本、reward 小的经验和全局最优前的震荡。

在某次面试的时候(算是在面试吧),对面问我对自己 5 年和 10 年以后的期待是什么。这是一个面试经常会被问到的问题,一般来说我会给出一个确切的答案:5 年以后在读博,10 年以后博士已经毕业了,应该会进工业界。但那次我说了实话,我说我不确定,我直到现在也没确定自己想做什么。这种会显得自己没有职业规划的话大概是不应该在面试里说出来的,我会那么说可能是因为当时氛围太过轻松,也可能是因为面试官过于年轻。然后对面告诉我,没有关系,你觉得什么 cool 就去做什么就好了。

那么我觉得什么是 cool 的呢?

某次跟宇言聊天的时候,我说我能让我开心起来的事,一是无忧无虑的活着,这需要一定的物质条件身体素质和社交圈子来支撑,二就是做 impactful work。我没有任何崇高而远大的理想,我不在乎我的工作能为国家为世界为科学带来怎样的贡献,我也不在乎它们能给人类的生活带来怎样的改变。我就仅仅只是,看着我的工作很 impactful,我就开心。宇言当时对此给出了一个我非常喜欢的比喻:就像一只趴在自己的金山银山上的龙,金山银山对龙来说没有任何价值,但龙就是喜欢这些亮闪闪的东西。

那么,希望有一天我能拥有自己的金山银山吧,嗷呜。

虽然现在我连水论文都水不好。

其他

刚去上海的时候,我会思考我们跟上海顶级高中的学生之间的差距是我努把力就能弥补的,还是真的就是资源上的差距。我初高中都在重庆巴蜀中学,巴蜀完全可以相当自信地说自己是重庆的超级中学,其高考竞赛成绩、体育文艺和其他活动、师资、生源、土豪程度等等都是重庆最优秀的。我进了大学以后可以毫无过渡的进入长达四年的颓废期,一定程度上也是因为巴蜀太强劲了,我高中在巴蜀高当了三年的吊车尾,那自然也对在同济再当四年的吊车尾毫无心理负担,何况我在同济好像还不算吊车尾。但上海顶级中学还是有着吊打巴蜀的资源,当时让我有种无力感。

而开始读硕之后,我开始思考我们跟国内和美国顶级本科的学生之间在资源上的差距,这个差距好像更大了。首先同济软工跟国内顶校的计算机相关专业的差距就已经不小了(因为软工不是同济的强势专业,所以甚至弱于一些和同济同等水平甚至水平低于同济的学校的计算机相关专业)。我当然希望同济软院能越来越好,但至少目前它的资源和平台还是配不上它随着大环境飞速上涨的门槛。国内顶校的学生能获得更多的资源,近几年招的老师也大多都有很强的海外背景,这意味着他们在国际上的影响力以及在国外的人脉。这些资源除了对于学生的研究产出有很大的正面影响以外,还让国内顶校的学生在申请海外 Phd 和暑研的时候更容易被捞起来,因为有本校老师的人脉、对方实验室里校友的引荐和口碑、甚至对方实验室的导师本身就是国内顶校出身。这就形成了一个对顶校学生来说是良性但对非顶校学生来说是恶性的循环,非顶校学生想要挤进去的难度太高了点,但如果挤不进去就会永远在这个循环以外。我希望软院(或其他学院)未来能出现很多可以挤进这个循环的大佬,这样软院学生以后的路会好走很多。

而美国顶校学生的优势又更加明显了一点,他们大一实习时在系里随便找的组可能就已经是国内学生想去读博的组了。我在接触一些美国顶校本科生的时候,看着他们的履历一点挣扎的念头都没有,就觉得好像从大一甚至中学开始我就跟他们不在一个赛道上了。在其他的资源和平台方面跟国内相比也基本上是碾压式的差距,但这也是没有办法的事,如果国内大学也像美国那样一年收一二十万的学费,那绝大多数问题也都可以解决,但那样的话包括我在内的绝大多数人大概连大学都读不起。

希望我们有一天也能有吃不完的面包。


彻底不看朋友圈了。去年前我不看朋友圈是因为看了难受,去年新年的时候我说要培养看朋友圈的习惯,现在不看朋友圈纯粹是因为懒。总感觉看朋友圈就像一个任务,而我不喜欢任务。

动物狂想曲第二季最后一集看得我非常迷惑,前面那么多的铺垫,最后到了该主题升华情感爆发的时候,为什么给人的感觉只能用迷惑来形容。我不知道漫画是怎么处理这一段的,我可以理解它想表达的立意,我也认为这个立意比较抽象和宏大所以不太好表达,我也能接受一些人物的行事不太符合正常逻辑,但最后一集的表现方式还是超出了我的心理承受能力。我太迷惑了。

想换掉用了 5 年的 Mac,但因为想去美帝买更便宜的 Mac 和蹭返校季优惠而没有换,于是我年迈的 Mac 坚强的步入了它的第六个年头。

想换掉用了 5 年的 iPhone,但因为想去美帝买更便宜的 iPhone 和等 iPhone 14 而没有换,于是我年迈的 iPhone 也坚强的步入了它的第六个年头。

买了一个奇怪的 8 寸的 Windows 笔记本,反正我用着挺开心的。

要多社交多社交多社交,虽然说了我也不一定做得到。

结束

我很久没有过一年以前经常会有的那种难受的感觉了,我甚至已经很难回忆起来那些难受的感受和原因了,虽然我知道它们非常真实的存在过。而我的朋友则迅速地帮我指出了难受的原因:

qq-1

如果一切痛苦的根源真的就是能力不足,那么摸鱼可以让我不为了能力不足而痛苦。

去年新年的时候,我的另一个愿望是成为一个正常一些甚至温暖的人类。我不确定这个愿望实现了多少。

OPPO hr 面的时候,hr 问我“想成为一个什么样的人”,我说:“我希望能在保持理性的前提下,做一个尽可能温暖的人”,当时脱口而出没有思考和犹豫,因为这真的就是我的愿望。

这也是我今年的愿望。

新年快乐朋友们。