Chaofan's

Bonvenon al la malpura mondo.

2024年终总结

看上去,我没有坚持写年终总结的习惯,去年的所谓年终总结,其实是逛完公园即兴组织的一条长微博。但我其实是写过的,只是不常写完并发表而已,草稿箱里躺着2017年的总结,然后打算和2018的合并,再和2019的合并……还是算了吧。

好在,如果你能看到这篇文章,那意味着至少对2024年度,我终于完成这个任务了。2024是我上大学以来的第十年,工作的第五年,这样规整的年份,也成了许多人生侧面的转折点。

先看去年的若干目标完成得如何。只能说……惨烈。不过除了2019,我也没有多少回完成过大部分年度目标。读书方面倒是完成了,预计20本,实际光微信读书都快30本。创作上,没有在B站发过视频(随手拍的不算),目标12篇博客实际完成一半(已经是里程碑!),没有上架应用。学习上,没有学会新乐器,对投资也没有深入学习,就是年初开始定投纳指,收益率是不错,但因为有定投限额,所以总金额也不高,Lisp也是没没没坚持下来。健身从下半年开始几乎荒废。想玩的几个游戏都没玩通,2077甚至还停在2022年底的进度,说好的看一些电影和动画也烂尾了。

去年转卖一台新iPhone赚了500,今年两台才只赚100,黄牛说现在256G好卖,1T卖不出去。果真是风水轮流转,苹果用户也要考虑经济形势了。

生活

从什么说起呢?最明显的改变是离开住了五年的张江,搬到离市区更近的地方。其实原因是这里离女友的地方近,和工作没有关系,甚至每天早上还要早起一个小时坐地铁,到后面摆烂就直接花近百块打车。搬过来不到一个月已失眠了好多次,甚至有天半夜快三点在备忘录里留了一条「记住今晚,以后一定要找个一周5天WFH的工作」。

另一个变化是,以前因为离得远,常觉得母校附近的地方是繁华胜地,吃不完逛不完。现在搬到不远处以后,没过两月也腻了。新的住处抽油烟机能用,没上班那段时间还做过不少菜。

其他的谈不上什么根本性的变化,像睡眠时间晚这类事早是顽疾了,试图纠正并失败的次数可能比成功被Rust重写的C++项目还多。

阅读

今年彻底和Kindle说再见,迎来了微信读书。不得不说微信读书是个非常好的产品——即使名字带微信两个字。

读了很多书,如果只能挑一本说,就是《反脆弱》。这本书的核心观点可以概括为三句话:

  • 世界的日常运转建立在无数「这件事情不会发生」的假设之上;
  • 但因为现实世界的复杂性,这些以为不可能发生的事完全可能发生,时间拉长甚至一定会发生;
  • 生活需要策略以冲抵小概率事件发生带来的损失,甚至利用其获利。

顺带一提,作者塔勒布另外两部出名的作品是《黑天鹅》和《随机漫步的傻瓜》,前者也是2021年对我影响最大的书。

除了意识到意外事件可能发生,还要在它们到来时立刻承认发生。这是现实主义者的标配。是的,2024年开始,我意识到自己需要做现实主义者。理想和wishful thinking不是一回事,如果坏事已经发生或者预料到它会发生,应该想的是「那怎么做」而不是「我本可以」。这很难,这也就是为何现实主义者如此稀少。

《反脆弱》让我一度每天睡前思考「最近可能发生什么」,以至在四月底写下一条备忘录「如果还有三月裁员」。

其他相对印象深刻的书还有:

  • 《肥胖代码》,内容绕了一大圈,举了大量例子,其实只是在说明一件事:肥胖和胰岛素抵抗有关,胰岛素抵抗和身体分泌胰岛素的时间有关,人只要一吃就会分泌胰岛素,所以吃东西的时间甚至比量和吃的内容更重要。因此作者也是断食理念的推崇者
  • 《李光耀观天下》,现实主义者很珍贵,从这本书可以一窥现实主义者是如何看待世界的
  • 《涛动周期论》,是已故周金涛先生若干演讲的合集,读完一段时间后只记得自己的理解:周期是人类活动和自然因素共同造成的,大周期包含若干小周期,周期的本质是现实世界随机性在宏观上的体现(结合塔勒布和达里奥的作品)。如果世界经济长波周期真是一甲子,而上一个周期的开端是1970年代的石油危机,那么我们这代人面临的低谷可能要30年代末才能结束——好好锻炼身体吧
  • 《潮起:中国创新型企业的诞生》
  • 《中文打字机》
  • 《置身事内》和《以利为利》
  • 《那瓦尔宝典》,人需要利用信息技术给自己创造复利,收入不等于财富,倒是很适合AI时代的人再读读
  • 《波之塔》,读的第一本松本清张,是很符合对日本文学刻板印象的作品,写作于1960年代,富士山自杀圣地的初步印象就来自于此(《富士山下》灵感也多半从这里来)

如果电影也算阅读的话,今年印象最深的电影应该是《你的名字》,是的,我此前没有看过,所以后来把《天气之子》《铃芽之旅》《秒速五厘米》过了遍。

数字世界

开始尝试Obsidian,一开始感觉很好,但没有坚持下来。Emacs也一样。总的来说这么多年自己最习惯的还是苹果备忘录。但备忘录总归不能作为最终目的地,所以还需要写完发布出来,待在一个喜欢写文档的公司就可以养成这种习惯。现在也能理解把博客当笔记本用的人了。

开始使用折叠屏手机,vivo X Fold 3 Pro,感觉良好,如果摄像头不硌手就更好。但我确实又对拍照能力有期待,而且非Pro款没有无线充电。vivo系统用起来的感觉比小米更好(几年前的记忆了,如有错请指正)。

买了想要很久的联想P3 Ultra工作站,但买来就是在吃灰,因为它的噪音和体积并不适合当作桌面PC(更何况已经有一台),只能当Home Lab用,但我还没部署任何东西。

很想换USB-C接口的iPhone,但又没有什么动力换。对Belkin的双C口插头很满意。请不要使用杂牌充电宝,除非你想像我一样体验刚起床卧室发生爆炸。

GitLab清退中国用户,把一些不开源的个人项目转移到了自建Gitea上。数据确实要放在自己手上才放心。

职业

跟我有点现实交情,或者常看我Mastodon的朋友都知道,今年我的职业生涯发生了重大转折,说更直白一点就是——我被裁员了。但我想先解释一点背景,毕竟我好像没写过2018和2019的年度总结,而且我也不是那种直到被裁才惊觉世界为何对我如此不公的作死中年人,顺道也想梳理这几年工作的心路历程。

一点回顾

从2019年毕业开始,我就在IBM编译器团队工作,团队的主要职责是给POWER这个CPU架构开发和维护一个基于LLVM的C/C++/Fortran编译器。2018年9月,我通过校招录取,但当时本来的计划是「考研」,且想抓住宝贵的一学期休息一会(学院整个大四无课),所以拖延到次年再去实习。这期间的生活有两个关键字——「星际争霸」和「海底捞」。

回头看,当时推迟实习的决定非常正确,因为人生中再不会有这么无忧无虑的一段躺平时光了,即使现在辞掉工作也不可能有那个心态。

校招过程非常顺利,顺利到难以想象。因为编译器在普通计算机学生眼中属于要求很高的黑科技,而且IBM编译组声名在外(感谢知乎用户「蓝色」),甚至17年就有过申请实习的想法,可惜没有名额。当时的我因为2018上半年找实习受挫,计划考研但内心并不认同考研这件事,给中科院计算所编译组的导师发邮件甚至没得到任何回复,正在为出路发愁,所以在知乎上看到找人信息后,纠结了10分钟就果断发了邮件(其中9分钟都是担心会不会面不过导致期望变失望)。

在COVID之初的几年内,我的工作都是给LLVM的PowerPC后端添加各种支持或者修复问题,所以人们能看到我给LLVM交过很多Patch,实际上那是我工作的一部分。直到2022年,大约就是上海封城那段时间,我开始负责一个试验性质的项目:移植Rust语言的工具链到AIX操作系统。最早这个项目只有我一个人,后来陆续有几位同事加入(和退出)。5月29日,宣布解封日期的前一天,我在凌晨三点穿越这座无人的城市,坐高铁回家,还在郊区隔离点蹭了一星期饭。

解释一下,这个项目的「技术含量」没有想象的那么高,工具链移植多数时候都是杂活,比如各种crate和二进制格式、链接器选项的工作,但不妨碍整个项目的成就感。早期那会,入睡了都会能梦到进度。最重要的两个里程碑,rustc和cargo都是在家里完成的。当时每天晚饭后都会到附近的街上走走,走在熟悉的商业街,路上多是附近的老人(衰败的地方就是这样),对比想到自己在参与一个全世界仅此而已的项目,反差实在难以描述。由于确实充满热情,外加估期保守,项目进展大大超出预期。到八月初,最早的原始测试版就发布了。

最早的用起来并不方便,因为对很多crate做的移植还没被上游接受。但测试版还是引发了很多用户的兴趣,而且随着很多Python包选择用Rust取代C/C++写原生扩展,在AIX上使用Rust工具链不再是nice to have,而是必需。

好像Rust项目说得有些多,因为它是过去几年职业生涯里一段有趣的记忆,有机会可以再写一篇文章聊聊。还有件小事可以在这里提出来当备忘,而且它直到我离职也没有结果(后面应该也不会有结果)。

简言之,就是Rust官方存在一个管理工具叫rustup,用户可以用rustup注册本地的Rust工具链,或者从某个服务器下载(默认是官方)。官方服务器上的Rust工具链,是由官方使用GitHub Actions CI编译的。问题来了:如果我们想让AIX上的Rust也能通过rustup安装,那就需要GitHub Actions能编译出AIX上的Rust工具链,而GitHub Actions只有Linux,自建服务器也不支持AIX,而AIX也不像Solaris/Illumos一样可以交叉编译。

一开始,我们想出了几种打擦边球的方案(内容不提,但它们既不优雅也不实用,我很反对),基本都未获社区认可。最后还剩一条路:因为Rust不依赖C库头文件(libc crate已经封装完了),整个LLVM天然也是交叉编译的,AIX交叉编译最大的障碍就是没一个其他平台可用的链接器,所以如果能移植LLVM的lld到AIX,问题自然解决。

内部讨论中,有人提出过这个方案,但最后没有被严肃对待。我可以理解,管理者本能偏向保守(「我们没有人有链接器的经验!」),但我对这个项目的潜在热情不亚于22年的Rust,所以已经做过一些早期探索,就此搁置真的非常可惜。随着我的离开,我想可能不会有人再有兴趣做lld到AIX的移植了。

Rust项目给我们带来了回报,让我用一个极其有热情的项目对冲了22年动荡的负面情绪,我也在入职不到四年半的时候第二次升职(对普通应届生这个时间也许是六七年)。

一锅端

被裁的过程也相当戏剧化。前面提到,夏天我搬离了张江。被裁前一周,和几个朋友吃饭,其中一位来自B站,闲逛到字节楼下的时候问我:住得不远,有想法去字节吗?

次周周四,女朋友来上海,我去机场接机。半夜的顺风车普遍吓人,司机在高架上几乎睡着。这趟来回让我第一次感觉到,「买车」好像不是一件毫无意义的事。因为到家很晚,第二天在家办公的时候非常困,到五点已经没精力写代码了,模糊到折腾vscode主题。下班后,逛了附近的盒马,还在畅想后面怎么WLB。

次日中午,一同事微信上问我,公司的账号还能登录吗。我本能反应:是不是服务又中断了?对方强调,不是网络问题,是权限停止。我尝试后得到一样的结果。对面答曰:「看来我们在一条船上」。这让我疑惑,但也不焦虑,因为过于突然以致难以往那个方向想。下午的计划是去逛宜家,车上刷微博时看到关注的科技博主说「IBM会裁掉整个中国的研发团队,包括CSL和CDL」,我终于开始好奇事情会如何尘埃落定。刚进宜家商场片刻,发现自己被拉进一个神秘的微信群,第一句话是「这一天来了」。

起初,局势并不明朗。如何赔偿,缓冲期多久,中间如何交接,都不清楚。当时我的心态甚至都不是石头落地,而是兴奋,因为我不用纠结要走的那天怎么提离职了。当时的我还有八天年假,还在想有没有必要请掉。两周之前我去了珠海和澳门,还觉得应该多留几天假给年底旅游。

我并没有急着将这事告诉家里人,而是在周日找了家KTV好好唱了一下午,前台还好心地升级到了大包间。看了《刺猬》,就记得一句话:「自此,我们再不会被万事万物卡住。」

周一是全员大会,也是我最后一次赶着时间打车到公司。有人以为会长篇大论,实际就是几个高管在WebEx上念了两分钟的稿子就下线了。潦草得甚至上了新闻。下午草草离场。

求职记

就在正式通报裁员消息的周一,A团队就联系上了我(当然还有其他同事),介绍了他们的情况。我本着来者不拒的原则,也想面试看看。结果没过几天同一家公司的B团队也找了过来,我和其中几位之前就认识,他们非常热情,而且做的事情也更合我的兴趣。此时得知这家公司即使不同部门,招聘流程也是互斥的,我只能二选一,于是尴尬地拒绝了A。

和B团队的面试非常顺利,聊了很多平时没什么人有热情和我聊的东西,甚至有点「酒逢知己」之感,我对面试官的印象也非常好。终面那天是新iPhone发售,我约了中午取货,所以面完就要匆匆冒雨出去坐地铁。前一年iPhone发售那天我也是急匆匆早上取货,因为完事后还要赶去朱家角团建,当时的我能想到第二年的情景吗?

虽然B团队给我留下的印象非常好,但有一些其他原因使得我并不打算加盟。也许是巧合,B的招聘流程要求录用前要经历笔试。题目不难,但时间非常尴尬,和我另一场面试有重合,而那天刚好临近国庆假期,很多招聘人员联系不上,无法错开时间,所以我没有通过笔试。因为这样的原因没有收到Offer,多少有些遗憾。

早在刚宣布裁员那会,我联系上了半导体相关的一家公司C。因为他们规模较小,HR动作很快,实际上我这两个月的第一场面试就是他们家。除了问工作经历和编译器的知识外,面试官给我出了一道数据结构的题,看着风格就很LeetCode。起初我以为很简单,但写着发现有个操作总是达不到要求的O(1)时间复杂度,在搏斗快一个小时后,果断选择放弃完美主义,交一个O(n)答案。面试官出乎意料地满意。后来搜了一下,是LeetCode hard原题,晚上自己又实现了正确的版本。

因为缺人,C公司的招聘流程推进非常快,半个多月的时间就发了口头Offer。他们待遇不错,做的事情也比较贴合我的技能树。但站在当时的时间点,自己对创业公司还是多少有顾虑,另外也想换个细分方向练练级,只能先拒绝了。中途还面了公司D,总的来说乏善可陈,第一个跟我提996的就是他家的HR。

找工作最初想的是什么都面一面,所以投了公司E的一个和编译器半点关系没有的部门。没想到他们HR非常专业,联系上我给并介绍了一番情况。鉴于这家公司在行业内的光环,其实如果真的能去,能留下一段经历也挺值得。一面开始前非常紧张,好在过程还算顺利,但一面通过后,HR告知没有人头了,招聘流程只能冻结。

F也是在业内鼎鼎大名的公司,但它的岗位招聘流程非常奇怪,官网上看不到这个岗位,甚至没留一个邮箱,只能通过一个员工的微信发简历过去。(当年面试IBM的时候,虽然官网上也还没开放,但至少领导留了邮箱联系)时值中秋假期,投完几天后我忍不住微信问了两句,因为对面在休假,得到了不太积极的回复。后来再无下文,后来我从其他路径了解到,他们是已经招到人了。实话实说,对于这事我不是很开心,因为该岗位要求的编译器开发背景和我非常契合,再怎么说给个面试机会并不过分。不过预期管理是生活必修课,没办法。

国庆前,我在网上联系到了另一个F公司的员工,想要投一个测试岗位看看,结果到10月下旬也无下文。本着破罐子破摔的原则,我又自己在这家公司官网投递了相同岗位,没想到当天下午HR就电话过来了解情况了。面试官是个印度人,我因为对印度客户做了半年技术支持,对印度英语抵抗力还可以,但中途面试官一直在灵魂拷问我一个问题——你之前是做编译器开发的,为什么要来做测试?我说了很多冠冕堂皇的理由,他似乎并不满意。他又提了一个问题:如果现在同公司有一个编译器开发的机会,我会选择它还是继续选择这个岗位?妈妈说过,做人要诚实,这次我直接说,选前者。面试官很高兴,对我的坦诚大家赞赏。然后,邮件结果是不合适。

接下来是公司G,他们几年前有招过语言开发的岗位,所以我对它还有些好印象。这次没有发现,但也顺手投了编译器相关的机会,说是编译器工程师,但职位描述说得很清楚,强调「调编译器」而不是「开发编译器」。面试官说提前看过我的博客和GitHub,看到我在开源社区有很多贡献。这让我很感动,面试这么多回只有极少几个面试官会提前留意我的额外信息。交流一下之后,让我手写一道和图遍历有关的题目,难度不高,但当时的我对图就是懵的状态,最后没写对。面试官最后略显尴尬的说,其实手写代码也不是惟一的考核因素,别紧张。没过多久,结果就显示「不合适」。

H团队和前面的F一样,都是我求职之初期望值非常高的机会。我给F投简历非常早,甚至还是某天睡不着半夜决心起来提交的,但他们硬生生在简历关卡了我半个月,不过最后HR还是联系我了。面试约在晚上,面试官迟到了小会,全程未开摄像头,对我的简历经历呈现出毫无兴趣的样子(其实和职位要求非常符合),我甚至怀疑这个人是不是以前被外企的人欺负过。整个面试过程也有些缺乏尊重,持续抛出一堆非常基本的名词概念问我知道这是什么吗,最后写代码环节更是直接下线,让我写好了叫他一声。不出意外,第二天就收到了流程中止的反馈。让我更无语的是,在H团队面试不通过的一小时内,我向同一公司其他无关部门投递的所有简历同时被终止流程。因此,在九月底那段时间,我被冲击得有些慌不择路了。

然后是I和J两个团队。最初我给I投递过简历,卡了一周后回复简历关没过,问了自称熟悉情况的猎头,说是对面希望要的是更资深一些的工程师。没想到又过了一周,I又把我简历捞了起来。J是猎头帮我内推的,过程中两位面试官在我这的印象可以和B的并列最佳,为了他们的Offer我还推迟了其他一些机会,没想到最后远不及预期,只能拒绝。也从其他地方听到,J因为在公司中缺少盈利能力,经费不足,项目风险也大。在I的HR面中,对面问我拿到了哪些Offer,我强调了我的预期,HR问如果给和J类似的Offer呢,答曰难以接受。果然,最后I的Offer没批下来。

在这期间同事还帮我介绍了团队K,他们的风格偏传统,中年员工比较多,所以不会太「奋斗」,但企业文化也不那么适合我这样自由散漫的家伙。技术面只有一面,但有两个小时,七个面试官在线上轮流发问,一开始还很紧张,后来车轮战越战越有激情,对面也算满意。他们的Offer比J强一些,但正式Offer内容比口头的有缩水,这点不太好。最后综合考虑,拒绝。

还有一家公司L,早在五月就被我纳入了潜在下家列表。他们一开始也把我简历拒了,后来在BOSS直聘上联系到了团队负责人,对方邀约周六面试。整个面试过程算平平无奇,但其中一个面试官真是字面意义上的没睡醒,看得出加班非常严重,也和之前听到的一致。后面的HR面也强调了这一点。其实我对L公司印象很好,但确实无法接受这种强度,拒绝。

还有一家和编译器没什么关系的公司M,算是猎头硬推的,我想着可以面面看。问了我一些C++和软件测试的问题,这位和H是惟二对我简历背景一点不问的,印象一般。结果一面拒。

以上面试的地方或者拒了我或者被我拒,然后机缘巧合加入了现在的团队。

2021, 2024

想再补充一点心路历程。

五月,母校学院组织了一场校友返校见面会。回当时上过课的楼里看了看,也和几个五年没见过的同学吃了饭,算回忆初心,也算了解现状。我开始思考,是不是我的职业发展陷入了某种瓶颈?当时正好每天既要被印度人拷打,又要从事项目里诸多意义不大的脏活。所以,我开始捡起三年未更新的「潜在下一站」列表,重新看看有什么可考虑的机会。

为什么是三年呢?因为2021是我在此之前最接近决定离开的时间。当时待了两年,也是感觉做的事到了瓶颈,25岁又正是既有力量又敢做梦的年纪。那年leader刚去互联网,走之前还悄悄告诉我说,年轻人应该出去看看。行情也特别好,要不了多久就有猎头加上微信。七八月那段时间,我陷入了严重的厌工情绪,尤其是周日晚上,经常要三四点才能睡着。有时候,我会强行早起,上午去上班,然后中午突然请半天假回家睡觉。无独有偶,24年的夏天我也不时陷入这种状态。甚至有天晚上失眠,凌晨四点在备忘录里写下「不要忘记这个夜晚」。这一次倒是真跳出来了,尽管是被迫的。

还有点感慨的是,入职新公司后,看到好些优秀的同事,都是在21年左右入职的,赶上了发展最快的时间。自己有时也想,如果21年就下定决心选择离开,后来会不会成长得更快?但转念一想,21年我去了很多地方旅游,薅随心飞隔几周就回次家;22年能窝在张江每周五下午和同事玩线上游戏,干Rust AIX这种now or never的项目,在家里办公2个月每天能吃家人做的饭;23年在家上班同时还能练习烹饪,到处飞看演唱会。确实是什么也换不来的几年。当我觉得别人的生活如何光鲜时,也会有人觉得我怎么过得如此多彩。现在理解了,为什么「一切都是最好的安排」。

健康

虽然有种身体一年不如一年的感觉,但好像也没什么大问题,就是健身计划又反复了,尤其是开始八点下班的生活之后。也许这种「坏但是没那么坏」的状态正是中年人身体突然垮掉的心理原因——抵抗平庸的重力!

多做做体检有必要,哪怕体检再水,抽个血也能看出很多东西。年轻人就该多薅医保羊毛,因为年轻人的医疗需要花不了什么钱,反倒能预防大病,属实是利国利民。没有像2023年一样年底突然来场大发烧,即使这年的流感更严重了。奉劝有条件的朋友,流感或者新冠初愈后,第一件事就该是买一张去广东或者海南的机票,下飞机就能感觉身体恢复了一半。

腰确实不如以前了,说不清是被椅子还是软床垫害的。脖子也……拍出来不够直。以前特别担心自己的牙,在私营诊所洗牙时医生告知我有牙周炎,询问价格后果断拥抱公立医院。打了两回麻药,被疯狂掏嘴后,现在牙可能是我全身最健康的地方,顺便领略了冲牙器的魅力。

去哪里

又去了三次Fear and Dreams演唱会(本来应该是四次),不腻,还想去。场馆服务最好的是西安,居然还有不涨价的酸奶可以买。

还去了广州、杭州、苏州,在熟悉的城市也去了不熟悉的地方。两个人又去了珠海和澳门。都是好地方。本来预计10月底会去名古屋(其实我投的是越南),因为散伙所以作罢。

演唱会还看了徐佳莹,陶喆的没买到票。有好几次做梦都把徐佳莹演唱会、去珠海和被裁员三件事闪回到一起,我不知道它们有什么联系,只是因为都发生在八月,也可能是因为欠着八天年假而已。

年底又参加了RubyConf China,自己放自己出趟差总归是收获颇丰,除了自助餐还有广州本地大佬做东。听听别人的故事,也算「停不低地计划,停不低地建立」之外有点想头。

Expect<2025>

没有什么特别的期待,无非就是多锻炼身体、写点东西、把长长的待办列表多完成一些。虽然不希望世界再发生什么乱七八糟的事,但现实主义者的第一要旨就是承认它们完全会发生。

九月的时候,自己给自己写过一句话:生活中也许90%,也许99%的日子都是无趣的,它们的存在就是为了剩下10%或者1%的精彩时刻做准备。我迷信奇数年我会更开心,而偶数年会更有成长。那,就安心准备,等着那1%的日子到来吧。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注