美剧:从无耻之徒开始的硅谷大亨 第72节

  正当他沉浸在自己的暴富美梦中,走到离艾莱柏酒吧只剩一条街的那个熟悉巷口时,弗兰克的脚步猛地停住了。

  他下意识地转过头,瞥了一眼巷子深处。

  砖墙边上,一个人正靠在那里,手里把玩着一个防风打火机。

  听到脚步声,那人抬起头,视线冷冷地越过十几米的距离,砸在弗兰克身上。

  是米奇!

  视线交汇的零点一秒内,南区老鼠那与生俱来的生存本能让弗兰克全身的汗毛都倒竖了起来。

  米奇看他的眼神,绝对不是路过打招呼,那是在看一具即将被拆解的尸体。

  没有半点犹豫,弗兰克连一句废话都没说,转身撒开脚丫子,拿出了躲避警察的逃命速度,沿着街道拔腿狂奔!

  “老骨头,跑得挺快啊。”米奇把打火机揣回兜里,嘴角咧开一个残忍的弧度,迈开腿直接追了上去。

  弗兰克那副长期被酒精、各类违禁药物和不规律生活彻底掏空的身体,怎么可能跑得过正处于体能巅峰的米奇?

  仅仅追出了不到五百米,弗兰克的肺就像是破风箱一样发出剧烈的嘶吼,双腿灌铅般沉重。

  “呼……呼……”

  就在弗兰克觉得喉咙里已经泛起血腥味,速度刚慢下来的一瞬间,背后突然传来一阵破风声。

  米奇毫无废话,猛地跃起,飞起一脚重重地踹在弗兰克的后心上。

  “哎哟卧槽!”

  弗兰克发出一声凄厉的惨叫,整个人彻底失去平衡,以一个标准的“狗吃屎”姿势,重重地扑倒在满是污水和碎石的路面上。

  粗糙的路面瞬间擦破了他的下巴和手掌。没等他翻过身来喘口气,米奇已经大步走上前,一把薅住他领后的衣服,像拖死狗一样把他翻了个面。

  紧接着,一只沙包大的拳头在弗兰克的瞳孔中迅速放大。

  “砰!”

  这一拳结结实实地砸在弗兰克的鼻梁骨上,虽然力道收了三分,没像打理查德那样直接干碎,但也足以让弗兰克眼冒金星。

  “别打!别打!米奇!我他妈哪惹你了?!”弗兰克双手抱头,拼命往后缩,嘴唇已经完全磕破,两颗本就摇摇欲坠的老牙彻底松动,鼻血糊了满脸。

  米奇一言不发,直接伸手掐住弗兰克的脖子,将他半个身子提了起来,然后右手握拳,对着他那常年灌满酒精的胃部,狠狠地掏了一记重拳!

  “呕——!”

  这一拳势大力沉。

  弗兰克发出一声变调的闷哼,眼睛外凸,整个人像只煮熟的大虾一样蜷缩起来,跪在地上疯狂干呕,却连一点酸水都吐不出来,只能痛苦地大口倒抽着凉气。

  看着跪在地上痉挛的老流氓,米奇拍了拍手上的灰尘,凑近他的耳边,压低声音骂道:

  “我艹你妈的,拿了钱办事儿,你他妈就给我办好了呀!成天摸鱼混日子,真以为别人的钱是天上掉下来的?”

  米奇一把揪住弗兰克的头发,强迫他抬起那张糊满血污的老脸:“听着!要是时间到了看不到结果,下次找你的就不是老子这几下拳头了,直接把你塞进汽油桶沉到密歇根湖里去!”

  说完,米奇像丢垃圾一样把弗兰克摔在地上,站起身,拍了拍夹克,头也不回地转身离开了巷子。

  只留下弗兰克一个人蜷缩在污水洼里,捂着肚子痛苦地喘息。

  弗兰克一边疼得倒吸凉气,脑子却在此刻飞快运转。

  他将今早理查德莫名其妙被痛扁、以及自己现在挨的这顿毒打,还有米奇留下的那句没头没尾的警告,迅速串联在了一起。

  瞬间,醍醐灌顶!

  大概率是那个亚裔小子干的!

  那家伙绝对是看出了自己这几天一直在这边带薪摸鱼、两头吃回扣,嫌进度太慢了!

  所以那家伙直接花钱雇了米尔科维奇家的疯狗,先揍了理查德作为外部恐吓,现在又来暴揍自己,这是在给自己下最后通牒!

  想通了这一层的弗兰克,生生打了个冷战。他一直以为那个亚裔小子是个只会撒币的冤大头,没想到对方是个一言不合就雇南区帮派下黑手的狠角色!

  强烈的求生欲瞬间战胜了胃部的剧痛,弗兰克生怕米奇没走远听不见,顾不上满嘴的血沫,连滚带爬地从地上跪起来,冲着巷口的方向声嘶力竭地大喊:

  “知道了!我知道了!我一定加快速度!”

  他一边咳血一边扯着破锣嗓子表忠心:“现在工会主席进医院了!这是绝佳的机会!我马上就能影响工会高层!告诉老板,绝对很快就有结果!别杀我!!”

  喊完这几句,弗兰克脱力地瘫倒在地,看着天色渐暗的南区天空,心里再也不敢有一丝一毫摸鱼的念头。

  这钱,真他妈难挣啊!

第89章 大厂人才不适配

  芝加哥西卢普区,上午九点。

  透过全玻璃幕墙洒进来的晨光,照亮了原木色的长条办公桌、符合人体工学的转椅,以及休息区那台正往外滴着冷萃咖啡的意式浓缩机。

  整个空间里只有咖啡豆的烘焙香气。

  魔笛手公司目前包下了这栋WeWork共享办公空间的整个第五层。

  凭借《2048》每天如印钞机般涌入的现金流,杨坚在招聘预算上没有设任何上限。阿曼达通过芝加哥顶级的猎头公司,硬生生从各大科技公司和初创团队里挖来了一大批资深程序员。

  此刻,第五层宽敞的候考区里,正坐着二十多个风格各异的候选人。

  能坐在这里喝着冷萃咖啡的人,都已经提前经历过了一轮残酷的笔试筛选。

  2012年的初创公司面试,往往还停留在随便聊聊项目经验的阶段,但杨坚直接把后世硅谷大厂那套算法考核搬了过来。

  在收到现场面试的邀约前,阿曼达已经给他们每人发过一份后缀为.md的测试文档。里面是四道中高难度的数据结构与算法题,限时一个半小时作答。

  虽然不需要写出能直接编译运行的代码,但必须写出逻辑严密的伪代码,并在结尾精准标注和解释时间复杂度和空间复杂度。

  算法题思路没有问题,且时间和空间复杂度都达到次优解以上的幸存者,今天才有资格坐在这里。

  只会写暴力解的肯定是没法推开那扇玻璃会议室的门,和杨坚进行面对面的系统设计与行为面试。

  杨坚坐在会议室的主位上,随手翻阅着阿曼达递进来的几份初筛合格简历。

  “我不招流水线上的代码工人,更不要那种只会写业务CRUD的复读机。”

  杨坚喝了一口冰水,看着玻璃门外排队等候的候选人,“初创公司是一支要在枪林弹雨里抢地盘的突击队,我要的是能独立解决问题,甚至能给我带来惊喜的雇佣兵。”

  阿曼达点点头,转身拉开会议室的门,叫进了第一位候选人。

  最先进来的几个,履历光鲜得足以让任何HR眼前一亮。他们无一例外都来自2012年依然如日中天的传统IT巨头——甲骨文(Oracle)、思科(Cisco),还有一位在IBM待了七年的资深开发。

  这几位大厂精英不仅轻松通过了前面的算法伪代码测试,在接下来的系统设计环节,也展现出了非常扎实的基本功。

  那位来自甲骨文的候选人名叫马克,三十五岁,穿着一身裁剪得体的深蓝色西装。

  当杨坚在白板上提出“如何设计一个高并发的玩家账号与积分同步系统”时,马克有条不紊地画出了结构图:从负载均衡器到应用服务器集群,再到主从复制的关系型数据库。每一步都中规中矩,挑不出大毛病。

  “架构很稳健。”杨坚放下手里的简历,双手交叉放在桌面上,进入最后的BQ环节,“马克,如果《2048》在某个周末突然迎来五倍的流量爆发,导致数据库连接池爆满,而你当时正在休假,你会怎么处理?”

  马克的表情十分自然,用一种在庞大企业机器里熏陶出来的标准口吻回答:“首先,我会要求运维团队提交流量异常报告。如果在我的休假期间,根据敏捷开发和ITIL的标准流程,应该由当值的Level 2工程师进行初步排查,并提交工单。如果确认是数据库容量问题,需要在周一的例会上提出扩容申请,经过DBA团队的评估和Manager的签字审批后,再执行云资源的增加。”

  杨坚看着他,沉默了两秒。

  “如果在周一开会之前,服务器就已经宕机,上百万玩家无法上传分数呢?”

  “那是架构规划阶段的容量预估失误,属于运维和架构组的责任界限。”马克理所当然地回答,“在一个成熟的公司里,流程是为了规避风险。我们不能越权操作,也不能破坏工作与生活的平衡。我个人的原则是,下班后不处理非紧急的邮件。”

  杨坚微笑着点了点头,在马克的简历上画了一个干脆的叉。

  “感谢你来面试,马克。出门左转,阿曼达会报销你的车费。”

  接下来的两个大厂候选人,情况如出一辙。那位IBM的资深开发在系统设计上给出了一套相当庞大、甚至包含了企业级服务总线的架构,并在面试中大谈“六个月的产品迭代路线图”、“跨部门沟通的会议机制”以及“向汇报线上的VP展示PPT的重要性”。

  杨坚以最快的速度结束了这些面试。

  他心里清楚,这些大厂员工的专业能力没有任何问题,在大型系统的稳定性维护上比普通人强得多。但他们身上的“大厂病”已经深入骨髓。

  《2048》现在处于野蛮生长的狂飙期,需要的是能在星期五晚上发现Bug、二话不说直接连夜重构代码并推到生产环境的实干派。

  而这些习惯了当一枚庞大齿轮、干什么都要提工单、开个扩容会议都要拉齐三四个部门的员工,只会把魔笛手原本轻盈的节奏拖入泥潭。初创公司如果染上了大厂的官僚病,离死也就不远了。

  “下一个。”杨坚把几份大厂简历扔进废纸篓。

  阿曼达重新递上两份刚刚通过初筛的简历档案:“这两位有些特别。一个印度裔,一个白人,他们在候考区为了缩进到底用Tab还是空格差点打起来。”

  杨坚接过简历,目光扫过上面的名字。

  迪尼什·楚格泰(Dinesh Chugtai)。伯特伦·吉尔弗约尔(Bertram Gilfoyle)。

  看着这两个名字,杨坚端着冰水的手微微停顿了一下。

  南区的加拉格一家和米尔科维奇家族已经让他见识到了这个世界的缝合程度,但当美剧《硅谷》里这对相爱相杀的卧龙凤雏,同时出现在他这家恰好名叫“魔笛手”的初创公司面试名单上时,一种仿佛被老天爷恶搞了的荒诞感还是扑面而来。

  他摸了摸下巴,突然有些期待接下来这场必定充满火药味的面试了。

  “让他们按顺序进。”

  此时的候考区里,气氛正酝酿着一股火药味。

  留下的候选人们大多在闭目养神或翻看资料,但坐在角落里的两个人是个例外。

  他们正压低声音,进行着一场堪称程序员界宗教战争的互怼。

  其中一个印度裔青年名叫迪尼什(Dinesh),穿着一件略显呆板的格子衬衫,头发用发胶梳得油光水滑。他正打开笔记本电脑,反复欣赏着自己那份已经高分通过的算法答卷。哪怕只是一份伪代码,他也严格遵循着Java的面向对象原则。

  坐在他旁边的,是一个顶着浓重黑眼圈、穿着印有倒十字架重金属乐队T恤的白人青年。他叫吉尔弗约尔(Gilfoyle)。他靠在椅背上,手里把玩着一罐喝空了的红牛,冷冷地瞥着迪尼什的屏幕。

  “那道时间复杂度要求O(N)的数组遍历题,你居然在伪代码里写了一个抽象工厂模式?”吉尔弗约尔的声音低沉且充满嘲弄,“你是打算在内存里建一座汽车制造厂吗?”

  迪尼什猛地转过头,瞪着他:“这是代码的优雅!是封装和可维护性!像你这种连命名规范都不懂、只会写一坨毫无结构的垃圾脚本的家伙,根本不懂什么叫工程学。你的代码如果交给别人接手,那个人绝对会因为看不懂那些毫无注释的乱码而精神崩溃。”

  “我的代码不需要别人接手,因为它们不会出Bug。”吉尔弗约尔翻了个白眼,“另外,我刚才顺便看了一眼你的排版,你每一行缩进都连敲了四个空格?你居然不用Tab键?”

  “空格在任何编辑器里的显示都是绝对一致的!”迪尼什的声音不自觉地拔高了。

  “每次缩进多敲三次键盘,不仅浪费你可悲的生命,多出来的无用字节还在白白消耗存储空间。你的每一个空格,都在加速全球变暖。”吉尔弗约尔面无表情地反击。

  两人在上一家外包公司就有过交集,彼此对对方的编程理念充满鄙视。如果不是阿曼达走过来冷着脸敲了敲桌子,这对卧龙凤雏很可能会因为“制表符与空格之争”在WeWork的高档地毯上扭打起来。

  “迪尼什,到你了。”阿曼达看了一眼名单。

  迪尼什整理了一下格子衬衫的领子,给了吉尔弗约尔一个轻蔑的眼神,走进了玻璃会议室。

第90章 掏到宝了

  杨坚翻看着迪尼什的算法卷子。逻辑严密,边界条件处理得滴水不漏,基础扎实得像一本移动的Java教科书。

  “你申请的是移动端与PC客户端开发岗。”杨坚指了指白板,“我们来聊聊系统设计。2012年的安卓市场就是一场灾难,三星、HTC、摩托罗拉,还有一堆杂牌机。屏幕分辨率千奇百怪,系统版本从2.3到4.0都有。目前的《2048》安卓版在一些只有512MB内存的低端机上,滑动方块时会产生卡顿。频繁的UI刷新非常吃CPU。你会怎么解决这个机型碎片化和性能瓶颈的问题?”

  迪尼什走到白板前,拿起马克笔,眼神瞬间变得专注。

  “传统的做法是依赖安卓原生的View系统去渲染每一个方块,但这在低端机上是自寻死路。Java的垃圾回收机制会在内存吃紧时频繁触发,一旦触发,主线程就会停顿,玩家就会感觉到方块‘黏手’。”

  迪尼什在白板上迅速画出一个分层架构:“我的方案是,彻底抛弃原生View的堆叠。我们手写一个轻量级的SurfaceView渲染引擎,把所有方块的滑动动画交给底层的Canvas去绘制。同时,建立一个对象池来复用方块对象,避免在滑动过程中频繁地进行内存分配和销毁,从根源上减少GC的触发。至于分辨率适配,我们不使用绝对像素,而是基于屏幕宽度的百分比进行动态计算,所有的UI元素在这个自定义引擎里等比例缩放。”

  杨坚在心里点了点头。

  这是一个直接命中痛点的解决方案。在2012年,能想到用对象池配合底层Canvas来绕开安卓性能陷阱的客户端程序员,绝对是行业里的一流好手。

  “出色的设计。”杨坚身体向后靠在椅背上,“你觉得自己在团队协作中,有什么需要注意的地方吗?”

  迪尼什放下马克笔,表情突然变得严肃:“老板,作为你未来的员工,我必须给你一个忠告。外面那个坐在角落里、穿着像个撒旦教徒的长发混蛋,叫吉尔弗约尔。”

首节 上一节 72/124下一节 尾节 目录

推荐阅读