二〇二〇初随想之非活不可

就在创业失败之际,感觉自己非死不可了,可人到“临死”之时,总有种本能的求生欲望,虽然说话可以轻描淡写,但诚实的肢体语言一定浓墨重彩。

在面试之前的一个星期,我刚从旅行中回来,放松的状态直接代替了旅游之前奋笔疾书的紧张感,大概由于我学的专业是不务正业,明明应该认真对待未来,我还是显得漫不经心、玩世不恭。这一个星期我再没有认真准备过可能非死不可的面试,虽然还没有恢复看数论、学日语的习惯,但至少重新开始看书,看鲁迅的、听朗读者,偶尔在你管子上看李永乐的科普,微博上看颜宁老师的娱乐和科普博主。生于忧患,死于安乐,这话好像并不适用我,感觉每天都半死不活的,像是那只薛定谔的猫,但猫好歹有九条命,我又能有几条?

临行的前一天,我更是什么都没复习,“持而盈之,不如其已”,不晓得哪来的自信,依然认为“把手松开,你拥有的是一切”。

晚上,十点,我准备睡了,我怕这个夜晚失眠,我很久很久没有经历这种感受,非活不可的眼神里依旧透着紧张与不安,印象中高考的那两天也没这感觉。睡吧,大不了滚回国,又不是一定要赖在这个国家。

很快,我没了意识。等到意识到我还有意识的时候,我来到了非洲部落,看到了原住民衣不遮体,还手持木矛,伫立在木屋下,在飞行器上低空俯瞰大地,两个景点挨得很近,好像是当地的遗址,贯穿村落的河水很窄,一座木拱桥就连接两岸,灌木丛旁还能看到野猪、狮子之类的大型动物。突然一阵云雾扑面,等到再正眼看的时候,我来到了一个城市的高低,十字路口处没有红绿灯,更像是一个广场,斜对面是一座中东风格的亭子,像是用沙砌成的,对街是一座古铜色的喷泉,在似有似无的泉水中,仿佛是一位女孩的雕塑(事后想会不会是刚粉的坂井泉水姐姐)。四周没有车,只有真空世界里的行人,三三两两,我走向那亭子,没想到到了跟前发现四周围了白色幕布,俨然像蒙古包。我掀开中间的缝隙,走了进去,坐在了靠近入口处的桌子前,结果就出现了几个熟悉的身影,一个是我房东,一个是我本科同学,一个是华人,还有一群老外坐在我后面的桌子上,好像在讨论着什么,像是要面试谁似的。随后,我房东拿着本子,坐在我跟前,记录着什么,那个本科同学和华人一次问了我问题,迷迷糊糊、稀里糊涂地回答了,心想:这题怎么这么简单,导致题目都不曾逗留于心脑。看来房东是最后拍板的那个人,心里一下稳了。一阵风刮过,好像被哈利波特的魔法棒锁定,腾在空中,印象中也不晓得是不是中了魔法,竟然在几秒内逛完了一座古堡,难道这就算参观完了公司?

就在我一阵纳闷之际,一阵沉闷而有节奏的音乐传入耳中,我条件反射地身手够到椅子上的手机,用大拇指向右划去,又条件反射地盖上被子,突然猛地一惊:天亮了,今天是面试吗?只要有事,我可以任意时间起床,果然还是起了,但不晓得什么缘故,今天的动作特别慢,刷牙洗脸后,发觉十五分钟过去了,煮个麦片,加鸡蛋的时候蛋液散到灶台上,空气中瞬间弥漫了一股焦味,在餐桌吃着早饭的太子殿下更是在我意识到之前嚷道:“怎么有股奇特的味道?”我一看,那蛋白已然变成蛋黑了。不由分说,加了牛奶便吃完早饭,从冰箱拿出周日做好的牛腱,整理好书包,驱车驶向公司。

大概我都忘了早高峰是什么样的了,左转的一条街上竟然全是车,一个路口等了两次绿灯,后来一想,原来右侧就是一所高中。之后左转上了劳伦斯后,才意识到南湾的车能这么多,靠近280处已经堵到了我右转处的路口。接着又开到一所学校,看见不断有孩子从车里出来,右侧处还有一辆校车缓缓驶出。原来我跟这个社会脱节久矣。

好在之后的路还是一如往常地通常,虽然车比平时多。到了公司,我把这最后的牛腱放在了厨房桌上,在群里面说了声,像是把后事都交代完了,开着车,驶向那一段段地图上显示的红红的路段,刺刀见红,大概就是下午的惨状吧。

一路上走走停停,脑子也在这忽而向前、忽而向后的惯性中抖掉了过去看过的复习资料,我看天空空空的、白白的,我努力回忆着,但除了要考编程、系统设计等三个方向外,思绪也是空空的、白白的,好像这一段段红色的路段和蓝色的路段,我能想到的竟是白刀子进红刀子出。还没等面试,我差不多就已经折腾了一个小时,果然“醉卧沙场君莫笑,古来征战几人回”。

到了非死不可的厂房,领了门禁,走上楼梯,可这次心没紧张到跟着升了起来。环眼望向四周,果然是诺大的厂房,屋顶高高的,通风管暴露在外,结构清晰可见,墙面漆成橙色,墙上挂着很多海报和标语,宣扬着非死不可的精神,一旁的大LED显示器循环播放着一些公益视频,洪水、关爱儿童,突然想到什么是人生的意义,大概这点又可以加到我为什么要非死不可吧。

等了半小时,到了十点,我终于被一位工程师领养走了,在此之前,我都怀疑今天是不是我面试。也就开始了今天决赛的第一盘。他出完了题目,反正我是没见过,不晓得是不是里特扣得上的,大体上要做的就是合并一个图中的连续单一节点,第一反应就是前缀树,反正长得差不多。跟他讨论了二十分钟,在什么条件下,可以合并节点。反正我这人比较喜欢呆呆地防空脑子,想些脑洞,定义了一个又一个规则,然后根据一些情况去讨论该规则是否是充要条件,后来发现有两种情况如泡利不相容原理,结果他去了其中一种情况,然后我就在剩下不多的时候写好了伪代码(在我看来,只要不需要编译,写在白板上的都是伪代码)。口述给的例子,他觉得大体没问题,我也觉得。

第二盘,一位白色中年人,告诉我这盘比的是行为面试。兵来将挡,水来土掩,我努力激发我的肾上腺素和荷尔蒙,我也不晓得怎么回答,反正基于我做过的项目,有意无意地编造些故事,七分实三分虚,每次都总结说从这个经历中我学到了什么样的教训,搞得跟真的似的。其中老先生还让我讲一下CycleGAN的细节,我只记得大概,随手笔划了两下,连目标函数的某些项都没用数学公式表达,模型的细节也是糊弄过去。刚好他是做视觉的,我看我这功力稍差点。

第三盘,继续编程。一个印度哥们出的前两道题太过简单,判断左右括号是否平衡和找出离原点最近的k个点。咔咔咔,咔咔咔咔咔,还剩一半时间,给我整了一出正则表达匹配,他一写完例子,还没等解释,我就晓得是什么玩意了。总之一开始没用递归想,最后他一点说如何把问题化成自问题,我马上把思维切换成reinforcement learning的动态规划,对待星号的零个或多个匹配分开讨论吗?我心里是明白,脑子也是明白,可我的手反驳说不明白,大概时间快到了,印度哥们引导讨论完了,反正我勉强挤出了递推式。不多刷题果然非死不可,不过我还是觉得挺无聊的。

第四盘,中场休息。第一次如同非死不可的亡命之徒,吃着这非死不可的食物,一名亚裔男性随后带我参观厂房,我好像一个乡下人,不领市面,瞪大了眼端详着建筑和装饰,还有一张张电脑桌拥挤在过道中,随处可见的茶水和点心,倒吸了一下哈喇子,也时不时地傻笑。楼顶设计成了花园,花园是美,不过北面的空地一片荒芜,三藩、奥克兰若隐若现,真像是海市蜃楼中的一片绿洲,刚好正午日头正晒。

第五盘,系统设计。题目一出,顿时觉得我苦心准备的设计套路,完全套不住,这下非死不可了,这非死不可的套路。题目跟第三盘的最近的k个点很像,但要求是基于用户的经纬度,假设数据库中存着五十百万的地点。脑中浮现我准备的武器库(抱歉,我实在不想写成中文):caching, database sharding, load balancing, consistent hashing, content delivery network, master-slave, message queue, rate limiting等等。大概也就CDN可以用一下,可之后还是至少十的六次方的数量级。又使出一招分而治之,随后sharding,但效果有限,还是只有常数倍的优化。这份分布式的专家问道:“这个查询你会怎么写?”咔咔咔,写了条件查询,随即又问时间复杂度,答毕,我说可以设索引,又与之讨论数据库的一种数据结构B树,我给出的时间复杂度是对数,又讨论设多个索引,我说我实在不清楚很底层的实现,鬼晓得多个键值如何在树中查找。最后问道:“如果多个用户查找,你会怎么做?”缓存啊,可是怎么设计简直呢?我想先用经度线段为键,不太合适,其实也能做,我做了个示范,没毛病。随后我说按郡县区存,又举数例,感觉也没毛病,鬼晓得这位专家有什么高见。反正后面时间差不多了,突然发现最后几分钟问面试官问题才让我非死不可。

第六盘,模型设计。目标是在推荐的应用安装数最大化。按照数据-衡量标准-特征-模型-目标函数-测试/实验方法,一步一步解决。很多东西没接触过,凭着直觉做,我真觉得,这种设计题无对错之分,唯有优劣之别,要是评判完全按套路走,非死不可。最喜欢特征工程,又是无脑地开脑洞,反正看似有道理,毕竟搬出了你管子那片论文中提到的模型结构。中间夹杂问了些机器学习基本套路,还算能应付。

第七盘,莫名其妙地两个人进来,就算一个不面我,我人数上、气势上也吃亏啊,非死不可。不懂也不关心这套路,依然那句——兵来将挡,水来土掩,但愿我的肾上腺素和荷尔蒙能再挺一阵。还是编程,不晓得为什么现在的人这么喜欢写程序,还是基因程序比较好玩。第一题是复制给定图,我晓得是原题,不过我没做过,结果这道题耗尽了我的肾上腺素、荷尔蒙和真气。第二题是中序遍历二叉树然后转双向列表,虽然我气数已尽,非死不可,但我当然晓得要用递归,脑子里一直盘算怎么把空间复杂度控制在O(1),反正脑子真的转不动了,最后时间让我说一下空间复杂度不限下的解法,咔咔咔咔,他说可以。

结束面试,但我还在考虑最后一道非死不可的题,后来才意识到每次调用完返回该子树的最后一个节点,就可以活过来。

联系了两位非死不可的前辈朋友。先拜访了内推我的前辈,反正我学到了一些处理实际问题的、条件反射式的思维讨论,人为刀俎,我为鱼肉,刀俎只会欺负鱼肉的嫩。我没做过,怪我咯?对,就是怪我,谁让你不晓得呢?我也希望帮我这前辈拿到奖金啊,就看非死不可能不能非活不可。

完饭按照之前说定的那样,蹭了工长新一前辈的晚饭,不过非死不可的工作日包午晚饭,还有各式甜点,这是要圈养啊!有一家sweet shop,里面有冰淇淋,我欣然接受,心里暗自抱怨:给我来个大点的筒。厂房挺大的,大到各处有共用自行车可以骑行,这个还是挺吸引我的,好歹骑车一年多了,好歹以后没什么机会骑车了。

为了躲高峰,我跟小新边吃边聊,晚饭是泰国菜,反正晚饭这个点前后,回家总是堵的,夜色也已经深沉,走向停车场,西南望,望见一丝残月,已经农历二月了。

非死不可何哀?非活不可何乐?还是之前的观点,大厂房下标准化的面试挺无聊的,需要花那么多时间准备,不过为了升职加薪,我以为丧失了乐趣。作为终身学习者,我也是个被动慵懒的学习者,里特扣得一共就练了四十道吧,基本觉得做得出就做得出,做不出就做不出,该死还得死,该活就会活,生死有命。模型设计本身就见长的,只是推荐系统从没做过,补了一下基本方法和一些论文,同时靠着你管子的视频,找到了分布式系统的一组基,之后理论上也就可以遍历整个空间。

总看到很多面经,在我这儿就没什么经验可谈了,相信像我这么玩世不恭、不务正业的人,世间少有。

你可能感兴趣的:(二〇二〇初随想之非活不可)