凌晨两点十七分,陈序的MacBook Pro屏幕是唯一的光源。
投影仪早就关了,Soundbar也断了电。四十平的老破小里,只有键盘敲击声在寂静中格外清晰。他开了罐鹅岛IPA,泡沫涌出来的瞬间抿掉一口,苦味在舌尖炸开,让他保持清醒。
三场比赛的录像,他已经看了第七遍。
不是用球迷的眼睛看,是用程序员拆解Bug的方式——逐帧、暂停、回溯、比对。Excel表格在第二块显示器上铺开,左边是他前天的预测,右边是实际赛果,命中率的单元格被条件格式染成深浅不一的绿色。
87.5%。
陈序盯着那个数字,指尖在触控板上滑动,把沙特左边锋的冲刺镜头倒回第三十七分钟。画面里,那名球员从边路内切,然后——
陈序眼前闪过蓝色数据流——
沙特左边锋冲刺速度: 31.2 km/h→ 26.8 km/h
左路真空带 detected
建议:打身后(置信度87.3%)
他暂停画面,实际比分牌显示沙特队正是通过这脚直塞打穿了阿根廷的左路。而他三天前的预测记录里,明明白白写着同一行结论。
这不是运气。第七次验证,不是运气。
陈序灌了口啤酒,冰凉的液体滑过喉咙。他打开新的Excel工作簿,命名为“足球战术分析_v0.1.xlsx”。三年前优化推荐算法练出来的手速,现在用来优化足球。
讽刺吗?他扯了扯嘴角。
窗外天光泛白的时候,陈序保存文件,合上笔记本。屏幕上最后的光消失前,他瞥见自己映在黑色屏幕里的脸:眼窝深陷,胡茬冒头,但眼睛是亮的。
像第一次写出能跑通的代码时那样亮。
周六傍晚,陈序被周扬拽到常去的那家烧烤店时,手里还攥着没喝完的半罐福佳白。
“不是,你真不出来透口气?”周扬把烤好的羊肉串往他面前一推,“失业了也不能把自己关屋里发霉啊。”
陈序没接话,低头看了眼手机。周扬是他前同事,干测试的,被裁得比他早两个月,现在靠接私活过活。两人认识六年,周扬知道他看球,不知道他现在看的是门道。
“玩个票?”周扬压低声音,从兜里掏出张皱巴巴的纸,“下周的球,随便猜猜,哥们请你吃顿好的。”
陈序瞥了眼那张纸,上面列了五场比赛的对阵。他接过周扬递来的笔,在纸背面写了五行字。
“曼联主场赢不了大球,最多一球小胜。皇马客场让球太深,穿不了盘。”
“剩下三场,一大两小。意甲那场,主队下半场会丢球。”
周扬愣了一下,随即哈哈大笑:“你这比算法还准——不是,你比算法还快啊?五场全给?”
“玩票。”陈序把笔还回去,语气平淡,“信不信随你。”
“信,我信,我自己买已经连输好几次了。”说着拿出手机拍照,“万一中了,下周我请你吃日料。”
陈序没再说话,仰头把福佳白喝完。那不是预测,是计算——那个他还没想好怎么定义的东西,把比赛拆解成速度、概率、空间,再组装成结论。
周扬把照片发进朋友圈,配文“程序员再就业之竞猜大师”,陈序看见了,没说什么。
周一,陈序在凌晨三点接到周扬的电话。
“全中了。”周扬的声音像是被掐住脖子,“五场,全他妈中了。”
陈序知道可能会中,但亲耳听到五场全中,后颈还是泛起一阵细微的麻。
“你这比算法还准!”周扬在电话那头喊,“不是,你老实交代,是不是有什么内部消息?还是说你黑进了什么数据平台?”
陈序愣住。
三年前,HR拿着“AI评估系统显示你的岗位可被替代,优化率97.3%”的通知来找他。他想起身反驳,却发现算法说得对。
而现在,周扬说“比算法还准”。
陈序低头看着自己的双手。这双手写过无数行代码,优化过无数条链路,最后却被优化掉了。现在它们正在键盘上敲击另一种东西——不是代码,是足球。不是被算法定义,而是重新定义算法。
“喂?喂?你听没听见?”周扬在喊。
“听见了。”陈序的声音很稳,“运气。”
“运气个屁!五场全中,你跟我说是运气?”
陈序没接话。他打开Excel,把上周的五场预测标记为“已验证”,然后在表格最下方新建了一行:系统准确率验证样本+5,当前累计命中率92.3%。
“下周还有球吗?”他问。
周扬那边顿了一下,随即声音压低:“序儿,我跟你说,我这有个局……”
陈序见到“那个圈子”的人,是在一家私人会所的地下室。
没有招牌,没有菜单,只有环形沙发和投影幕布。七八个人围着茶几,笔记本屏幕上滚动着实时水位和注单流向——这不是玩票,这是职业玩家的战场。
“这就是你说的朋友?”一个戴金丝眼镜的男人抬头笑了,“程序员?玩多大?”他递来一支雪茄。
陈序没接。有人想让他把脑子里的系统,变成赌桌上的筹码。
“不了。”陈序站起身,椅子腿在地毯上发出沉闷的摩擦声,“这钱烫手。”
周扬急了:“序儿,就试试,你这准确率……”
“收手吧。”陈序打断他,“你们玩的是概率,我玩的是足球。两回事。”
他转身往楼梯口走,周扬追上来:“不是,有钱不赚?”
陈序在台阶上停住,没回头:“三年前我写的算法优化掉了我自己。现在这套——”他指了指自己的太阳穴,“我不想让它再优化掉别的什么东西。”
车窗外的霓虹流成彩色的河,他想起Excel里那92.3%的绿色。
那不应该是用来赌钱的。
回到四十平的小房子,陈序没开灯。
他摸黑走到书桌前,打开MacBook Pro,新建文件夹,敲下名字:“足球战术分析系统”。
后缀:v1.0。
子文件夹:比赛录像、数据模型、预测记录、验证日志——像三年前搭微服务架构那样,模块化、可迭代、留好扩展接口。零散的笔记统一录入,直觉变成结构化的数据。
系统有了名字,但正经出路在哪?不可能竞猜,不可能捞偏门。那这套能力算什么?
手机震了一下,周扬:“那帮人问我你什么来头。你真不考虑?”
陈序没回。他打开新表格,命名为“职业路径分析.xlsx”,第一行写下:技术顾问?数据分析师?球探?
窗外,BJ的天开始泛白。他想起被裁那天发的那条微博——“今天被AI优化了,明天我要优化全世界”——当时以为是气话,现在发现可能是某种预告。
他在“足球战术分析系统_v1.0”的属性里敲下一行备注:用于提升足球比赛理解,非竞猜用途。
存款还够撑一段时间,但总不能坐吃山空。正经出路在哪?他没有答案,但至少有了系统。
陈序打开招聘网站,输入“足球数据分析”,顿了顿,删掉,重新输入:“足球技术顾问”。
陈序的手指悬在键盘上方,招聘网站的加载图标转了一圈又一圈。
搜索结果跳出来七条:三条青训机构招教练,要B级教练证书;两条招销售,挂羊头卖狗肉;剩下的要么过期,要么离谱。
他这三十五年的人生履历里,“足球”两个字只出现在爱好栏——HR看到简历三秒就会扔进回收站。
手机又震,周扬发来一个链接:“你真不考虑那个局?这人刚联系我,说可以技术入股,不用你出钱。”
陈序没点开,直接回复:“谢了,不用。”
发完这条,他把周扬的消息设成免打扰。
回到桌前,陈序打开“足球战术分析系统_v1.0”文件夹,盯着那个命名看了很久。文件夹图标在桌面上是个朴素的蓝色,和他以前写代码时用的默认图标一样。那时候输入是点击、停留、转化,输出是推荐权重。现在输入变成传球路线、跑动热点、攻防转换速率,输出变成进球概率和战术建议。
底层逻辑相通,但应用场景天差地别。
他打开验证日志,把五场玩票的记录单独标红,备注:“非正式样本,存在利益相关风险,后续排除。”
然后新建文档《系统能力边界与商业化可行性分析》:核心能力,静态录像战术预测,准确率87.5%;能力来源,未知,不可复制;商业化路径——
光标闪烁了将近一分钟。他想起地下室里那些屏幕,想起那支雪茄。那条路走不通,不是道德洁癖,是他太清楚终点:要么被更大的资本吃掉,要么被更准的算法替代。三年前的他自己,就是前车之鉴。
“商业化路径:待定。”
陈序保存文档,合上笔记本。屏幕暗下去的瞬间,他看见自己映在黑色屏幕里的脸,和一周前那个凌晨一模一样——眼窝深陷,但眼睛是亮的。
这次他知道自己在笑什么。
接下来的两周,陈序把自己关在房子里,像以前赶项目进度那样赶系统的验证样本。
凌晨四点看东亚联赛,上午十点挑欧洲中游球队的焦点战——这种比赛数据噪声小,最适合验证稳定性。下午补觉,晚上整理笔记、更新表格。系统给出的置信度会随观看完整度波动,这个规律他也摸清楚了。
样本量从8变成17,再变成31。命中率在86%到89%之间波动,始终没能再突破90%,也没跌破85%。那个数字像一道无形的墙,提示他系统的边界在哪里。
第三十五天,陈序在记录里写下:“样本量50,累计命中率87.2%,与初始值基本吻合。系统稳定性验证通过,但天花板明显。”
他盯着那行字,笔尖在纸上戳出一个墨点。
87.2%,够用吗?
对于玩票的人来说,这是印钞机。对于职业足球世界来说,这很可能是垃圾数据——没有历史纵深,没有对手针对性,没有伤病停赛等动态变量。他的系统是基于静态录像的战术推演,而真实的比赛是活的,是九十分钟里不断博弈的过程。
陈序打开招聘网站,这次没搜“足球”,搜的是“数据分析远程”。
跳出来一百多条结果,电商、金融、游戏,应有尽有。他扫了几眼,关掉页面。不是不能回去写代码,而是他现在写不了别的代码——脑子被系统占据了带宽,普通的数据分析工作像是用惯了CPU之后回去拨算盘。
晚上八点多点,他接到一个陌生电话。
“陈序先生吗?”对面是个女声,语速很快,背景有键盘敲击声,“我是体育专栏的编辑,看到您在微博发的战术分析帖子,想问问有没有兴趣合作?”
陈序愣了一下。他确实发过几条微博,都是系统验证过程中的随手记录,没配图,没排版,纯文字流水账,阅读量最高的一条不过两百。
“什么合作?”
“我们有个专栏计划,找懂球的人写深度分析。”女编辑顿了顿,“您写的预测真出了冷门——我们想请您从战术角度解读一下,稿酬按篇结算,也可以签长期。”
陈序没立刻回答。
他走到窗前。三个月前,他离足球最近的时候还是世界杯期间和同事的闲聊;现在有人愿意花钱请他写球,而他能写的东西,来自脑子里那套不可名状的系统。
“我先写一篇试试。”他说。
挂掉电话,陈序回到桌前,打开一个新的Word文档。标题空着,光标在左上角闪烁。
他想起身去冲咖啡,又坐下。系统在他专注时才会激活,而写分析文章需要的是另一种专注——不是接收数据流,是把数据流转译成普通人能懂的语言。
这对他来说不难。推荐算法工程师,核心能力就是把复杂的模型输出包装成用户友好的“猜你喜欢”。现在他要把系统的结论,包装成战术分析的文章。
陈序敲下标题:《沙特爆冷背后的空间博弈:从阿根廷左路真空带说起》。
手指在键盘上飞舞,他写得很慢,比写代码慢,比记笔记慢。但每敲下一个字,他都能感觉到某种东西在成形——不是系统的迭代,是他自己的迭代。
从被算法优化掉的人,到用算法优化足球的人,再到用文字解释算法的人。
窗外天色由暗转明的时候,他保存文档,发给那个女编辑。
然后起身,倒掉那杯凉透的咖啡。
手机在身后震动,他不用看也知道,是周扬或者别的什么消息。但现在不重要了。系统有了第一个正式输出,哪怕只是篇文章,也是正经出路的第一步。
咖啡机的嗡鸣声里,陈序端着杯子回到桌前,打开招聘网站,在搜索框里重新输入:“足球数据分析技术顾问青训球探”。