第五十六章 破茧
回到宿舍是比赛后第三天。
火车是早上八点的,从长沙到学校所在的城市要坐六个小时。方小满在车上睡了一路,头歪在靠窗的位置,口水差点淌到肩膀上。陈一鸣戴着耳机看技术文档。苏雨晴坐在最靠过道的位置,翻一本不知道什么书。
林知行坐在方小满旁边,没睡。
窗外的风景从城市的楼变成农田,从农田变成山,从山变成楼。六个小时,他没怎么看手机,也没怎么想事情。就是看着窗外,偶尔眨一下眼。
到站的时候是下午两点。四个人在出站口分开。方小满说他要回宿舍补觉。陈一鸣说他要去实验室还钥匙。苏雨晴说她叔来接她。
"那就……"林知行说。
"群聊。"方小满挥了挥手,背着包走了。
陈一鸣点了一下头,转身往另一个方向。
苏雨晴说了句"学长再见",朝停车场的方向走了。
林知行站在出站口,背着包,看着他们三个的背影消失在人群里。
他没有打车。从车站到学校走路大概要二十分钟。他走回去的。
九月初的天气还是很热。马路两边的法桐树叶子还是绿的,阳光从叶子的缝隙里漏下来,在人行道上打出一地碎影。他走在碎影上,包带勒着肩膀,有点酸。
宿舍楼很安静。这个时间点大部分人都在上课或者午休。他刷卡进门,上楼,推开401的门。
宿舍里没人。方小满还没回来,估计还在路上磨蹭。
林知行把包放在椅子上,没开灯。九月的阳光从窗户照进来,在地板上铺了一层暖色。他坐在床沿上,什么也没做。
坐了多久他没算。可能是十分钟,可能是半小时。阳光的位置从地板移到了桌腿上。
他起身,把笔记本电脑从包里拿出来,放在桌上,掀开盖子。
屏幕亮了。桌面还是那张默认壁纸,蓝色的渐变。任务栏上停着几个他常用的软件——VS Code、Chrome、微信。
他打开了一个新文件。
不是代码文件,是文本文件。他习惯用.txt记东西,不用Word。
文件名他打了几个字:人生算法_vN。
N是版本号。他已经不记得这是第几版了。
光标在第一行闪烁。
他开始打字。
function lifeAlgorithm(input) {
let ability = input.ability; // 能力
let education = input.education; // 学历
let effort = input.effort; // 努力
let luck = input.luck; // 运气
let recognition = calculate(ability, education, effort, luck);
return recognition;
}他盯着这段代码看了很久。
这段代码他写过很多次。有时候变量名不一样,有时候函数名换一个,有时候多加几个参数。但本质是一样的:输入是一堆东西,输出是"认可"。
从第一章开始他就在跑这个算法。走廊里听到"大专生就是混日子的"那句话时,他在想怎么提高ability。答辩翻车时,他在想effort够不够。投十七份简历被拒时,他知道education这个变量他改不了。比赛没得奖时,他把所有变量都检查了一遍——ability够了,effort满了,education改不了,luck……
luck是个什么?
他在代码后面加了一个函数。
function calculate(ability, education, effort, luck) {
// TODO: 这个公式到底是什么?
if (education < threshold) {
return null; // 直接被过滤
}
return ability * effort * luck;
}不对。他删掉了。
他把整个文件里的代码删掉,重新打。
function lifeAlgorithm(input) {
let ability = input.ability;
let education = input.education;
let effort = input.effort;
let luck = input.luck;
// 第一版:ability + effort → recognition
// 实际结果:ability够了,effort满了,recognition不稳定
// 第二版:加education
// 实际结果:education是硬门槛,过不了就是null
// 第三版:绕过education,用作品说话
// 实际结果:作品够了,比赛规则偏好不同
// 第四版:——
return ???;
}他盯着问号看了很久。
这个问号他填不了。不是因为他不会写代码,是因为这个算法本身就是错的。
能力、学历、努力、运气。这四个变量,他一直在调。能力他提上去了——从不会用AI到做出排课系统到做出半结构化输入。学历他改不了——那是过去的标签。努力他一直在做——从第一笔五百块到现在,他没有一天不在写代码。运气……
运气是什么?运气是沈渡刚好看到他的帖子。运气是方小满刚好认识张老板。运气是姜意刚好在评论区批评他。运气是李教授刚好在评委席上给满分。
这些事情发生了,他的"认可"就多一些。这些事情没发生,他的"认可"就少一些。
但他控制不了这些事情。
他一直在算一个他控制不了的算法。
鼠标光标在问号后面闪烁。一下,一下,一下。
他选中了整个文件。
delete键。
文件变成空白。
光标在第一行继续闪烁。
他没有关掉文件。他把手指放在键盘上,打了一个新的标题。
产品路线图 v1.0不是人生算法了。是产品路线图。
他开始往下写。
一、现状
比赛没得奖。
但比赛过程中——
- 17家商户在用我们的产品
- 3家在付费(100元/月)
- 其中水果店王老板损耗减少30%(月省约2000元)
- 张老板的排课系统仍在运行(37校区零投诉)
这些东西是真的。
二、接下来要做三件事
1. 开源
- 把产品的核心代码开源
- 让更多商户能免费使用
- 让更多开发者能在上面二次开发
2. 继续服务
- 17家商户继续维护
- 3家付费商户继续迭代
- 把产品打磨到真正好用
3. 下一步
- 参加下次比赛(如果还有)
- 或者不参加,直接把产品推向市场
- 目标:让100家商户用上这个产品
三、团队
林知行——技术
方小满——商务/运营
陈一鸣——后端开发
苏雨晴——用户对接/数据他写完了。看了一遍。
没有提沈渡的技术授权。没有提赵鸣岐的清华团队。没有提评委的满分。
只有那些真实的东西。
他把文件保存了,关掉。
方小满还没回来。估计是到校门口吃了个饭,或者在哪个角落抽烟。他想起方小满在面馆里说的那句话——"行吧"。两个字,轻轻的,但比任何安慰都管用。
他拿起手机,打开了团队群。群名叫"3847",是他们的参赛编号。比赛结束后没有人改过这个名字。
他把产品路线图截图,发到群里。
发完之后他放下手机,等着。
一分钟。两分钟。
手机响了。
方小满第一个回:"开源?你确定?"
陈一鸣第二个:"开源的话我可以把代码整理一下。注释也补一补。"
苏雨晴第三个,过了两分钟才回:"我叔说他的朋友也想要这个。开出去的话是不是更多人能用?"
林知行看着这三条消息。
他想起凌晨三点在宿舍里改方案的那些夜晚。想起方小满在阳台上抽烟的背影。想起陈一鸣发的第一个表情包——一只猫竖起大拇指。想起苏雨晴在水果店蹲点时被老板娘塞了一袋橘子。
这些东西不是数据点,不是变量,不是算法里的参数。
它们是真的。
他在群里回了一条消息:"确定。代码整理的事麻烦一鸣了。苏雨晴你帮我问问你叔的朋友,具体需要什么功能。"
陈一鸣回了一个字:"好。"
苏雨晴回了一个字:"嗯。"
方小满没有再回。但林知行知道他在看。
晚上九点。
宿舍的灯开着,方小满在上铺看手机,偶尔发出一声"啧"。
林知行坐在自己的位置上,打开了微信。
他在通讯录里翻了一下,找到了沈渡的名字。
上次跟沈渡的消息停留在比赛前,沈渡说"不急"。那是关于技术授权的事——沈渡想把他的解释层技术作为底层模块接入灵犀科技的教育AI项目。
林知行当时没有回复。
现在他要回复了。
他打了一段字,看了一遍,删掉。重新打,又看了一遍,删掉。
最后他打了这样一段话:
"沈总,技术授权的事我考虑过了。我不打算授权单个模块。但如果你有兴趣,我们的产品准备开源。开源之后你可以在上面做任何事,不需要我的授权。"
发出去之前,他又看了一遍。
这段话里没有犹豫,没有客套,没有解释原因。
他点了发送。
消息发出去了。对话框里多了他那条绿色的气泡。
他等着。
方小满在上铺翻了个身,床架子晃了一下。
林知行拿起手机又放下。放下又拿起。
他知道沈渡不会秒回。沈渡不是那种人。
十分钟过去了。
二十分钟过去了。
手机响了。
沈渡回了一条消息:"开源?你想清楚了?"
四个字加一个问号。没有表情,没有语气词。跟沈渡这个人一样,干净利落。
但林知行读出了那个问号背后的含义。
你想清楚了?——开源意味着放弃商业壁垒。意味着别人可以在你的代码上做任何事,包括做一个比你更好的产品跟你竞争。意味着你辛辛苦苦写的东西变成公共财产。一个创业公司,开源核心产品,这是自杀。
林知行打字回复:"想清楚了。开源意味着放弃商业壁垒。但我想做的不是卖技术,是让更多商户能用上AI。如果灵犀科技愿意在开源版本上做商业化,我们是合作伙伴,不是授权关系。"
发出去了。
他等着。
一分钟,两分钟,五分钟。
沈渡没有回复。
林知行把手机放在桌上,往椅背上靠了靠。
方小满在上铺说了一句:"跟谁聊天呢?"
"沈渡。"
"哦。"方小满顿了顿,"他怎么说?"
"他问我有没有想清楚。"
"那你有没有?"
林知行想了一下。
"有。"
方小满没再问了。
第二天早上七点。
林知行被闹钟叫醒。他睁开眼,第一件事是拿手机。
微信里有几条新消息,不是沈渡的。
他打开邮箱。
收件箱里有一封新邮件。发件人:沈渡。时间:今天早上6:47。主题:转发。
他点开。
邮件是一封转发。沈渡把他的产品介绍文档转给了一个邮箱——名字后面跟着"@lingxi-tech.com"。
邮件标题是:"这个项目值得关注。"
邮件正文只有一句话。
"创始人是一个大专生。"
林知行盯着这句话看了很久。
"创始人是一个大专生。"
从第一章开始,这句话一直是贬义的。
走廊里听到的"大专生就是混日子的"。HR回复的"公司目前只接受统招本科及以上学历"。周建华听完演示后说的"哦,那挺好的"。赵鸣岐在走廊里说的"如果你以后不想做了可以找我聊"。
现在,沈渡把它写在一封发给商务团队的邮件里。
不是贬义。不是标签。不是歧视。
是一个卖点。
林知行把手机放下,坐起来。
阳光从窗户照进来,在地板上铺了一层暖色。跟昨天下午他坐在这里的时候一样。
但有些东西变了。
昨天他坐在这个地方,打开电脑,写了一段人生算法的伪代码,然后删掉了。
今天他坐在同一个地方,打开邮箱,看到了一封邮件,上面写着"创始人是一个大专生"。
他想起方小满说的那句话——"行吧"。
他想起陈一鸣说的那句话——"开源的话我可以把代码整理一下。"
他想起苏雨晴说的那句话——"我叔说他的朋友也想要这个。"
他想起李教授说的那句话——"你那个'让用户能看懂AI在想什么'的理念,比一等奖的作品更让我印象深刻。"
他想起父亲说的那句话——"嗯。"
这些人都没有说"你很厉害"或者"你一定会成功"或者"学历不重要"。
他们只是在做自己的事。方小满在帮他拉客户。陈一鸣在帮他整理代码。苏雨晴在帮他对接商户。李教授在帮他证明理念的价值。父亲在用一个"嗯"字回应他的一切。
这些东西不是算法能算出来的。
也不是算法需要算的。
林知行把邮箱关掉,打开了昨天写的产品路线图。
他在文档末尾加了一行字:
"产品路线图 v1.0——2024年9月。"
然后他保存文件,关掉电脑,起身去洗漱。
方小满还在上铺睡着。呼噜声很轻,像猫打的那种。
林知行拿上毛巾和牙刷,打开了宿舍门。
走廊里很安静。早上七点十分,大部分人还没起。
他走在走廊里,脚步声在地板上轻轻回响。
走到楼梯口的时候,他停了一下。
他想,人生算法跑不出来的那些东西——认可、运气、学历——他以后不去算了。
他要算的是另一个东西。
产品路线图。
输入是:十七家商户的需求,三个付费用户的数据,一个开源的决定。
输出是:让更多人能用上AI。
这个算法很简单。不需要伪代码。不需要版本号。
只需要一步一步往前走。
车到山前必有路。
他下楼了。
(本章完)