六月初的BJ已经有些燥热。一个周日下午,刘星从共享办公室出来——他们刚完成第一个付费客户(一家小型设计公司,二十人团队)的部署,李艳提议庆祝一下,但他还是选择按计划度过一个充实的周日:上午工作,下午去图书馆。
国家图书馆北区,四层的计算机科学阅览室。这里是他最近常来的地方,不只是为了查资料,更是为了那个氛围:安静,专注,周围都是埋头学习的人。在这种环境里,他更容易进入深度思考状态。
他找了个靠窗的位置,打开电脑,开始研究推荐算法的优化方案。上周那个电商客户的数据反馈显示,他们的推荐准确率只有68%,而行业标杆(如Netflix、今日头条)能达到80%以上。差距不小。
问题出在哪里?他调出算法日志,一页页分析。用户点击了推荐A,但学习五分钟就退出了;推荐B完全被忽略;推荐C学习完成但测试分数很低……每个失败案例都像一道待解的谜题。
沉浸其中,时间过得很快。下午四点,他感到眼睛有些酸涩,决定休息一会儿。起身去接水时,注意到斜对面坐着一个年轻人,大概二十出头,正对着电脑屏幕抓耳挠腮,表情痛苦。
刘星接了水回来,经过年轻人身边时,无意中瞥见他的屏幕——上面是几行代码,Python写的,好像是在处理一个数据分析问题。代码里有明显的错误:一个无限循环的边界条件没设置好。
他犹豫了一下。在图书馆,贸然和陌生人搭话不太礼貌。但看到年轻人越来越焦虑的样子,他想起了自己刚学编程时的困惑:一个问题卡住,怎么都想不通,那种无助感。
他轻轻敲了敲桌子。
年轻人抬起头,眼睛里满是血丝,显然已经熬了很久。
“抱歉打扰,”刘星压低声音,“我刚好看到你的代码,那个循环的边界条件好像有点问题。”
年轻人愣了一下,然后眼睛一亮:“真的吗?哪里?”
刘星指了指屏幕:“第23行,while i < len(data),但你在循环里没有更新i的值,所以会无限循环。”
年轻人盯着代码看了几秒,突然拍了下额头:“天啊,我怎么没想到!谢谢您!”
“不客气。”刘星点点头,准备回自己座位。
“那个……前辈,”年轻人叫住他,“您好像很懂Python?我还有个问题,可以请教一下吗?”
刘星看了看时间,休息时间还有几分钟。“你说。”
年轻人把电脑转过来一点:“我在做一个数据分析项目,要处理十万条用户行为记录,计算每个用户的行为序列的相似度。我写了个双重循环,但跑起来特别慢,要几个小时。有什么优化方法吗?”
刘星扫了一眼代码。典型的O(n²)复杂度问题,确实是性能杀手。
“你试试用pandas的向量化操作,或者用NumPy。”他说,“双重循环在Python里很慢。另外,相似度计算可以考虑用矩阵运算,而不是逐个对比。”
他简单画了个示意图,解释如何把用户行为转换成向量,然后用余弦相似度批量计算。年轻人听得很认真,不时点头。
“明白了!我这就改!”年轻人兴奋地说,“太感谢您了,您救了我一命!这个作业明天就要交……”
“你是学生?”刘星问。
“对,北邮计算机系大三。”年轻人说,“在做暑期项目,想申请实习。”
大三。刘星想起自己二十年前,也是这样在图书馆里熬夜,为一道编程题绞尽脑汁。时光荏苒。
“加油。”他笑笑,回到自己座位。
本以为这个小插曲就此结束。没想到二十分钟后,年轻人又过来了,这次端着一杯咖啡。
“前辈,请您的。”他把咖啡放在刘星桌上,“刚才按您说的方法改了代码,速度快了十倍!真的太感谢了。”
“不用这么客气。”刘星说,“顺手而已。”
“对您来说是顺手,对我可是救命之恩。”年轻人在旁边的空位坐下,“我叫陈默,沉默的默。您怎么称呼?”
“刘星。”
“刘哥,”陈默很自来熟,“您是做数据挖掘的吗?感觉您特别懂算法优化。”
“算是吧,在做推荐系统相关的创业。”刘星说。
“创业!”陈默眼睛更亮了,“太酷了!我以后也想创业,但感觉现在什么都不会……”
刘星看着这个年轻人热切的眼神,想起了曾经的自己:对技术充满热情,对未来充满憧憬。那种纯粹的状态,他已经很久没有过了。
“你现在最需要的是打好基础。”刘星说,“把数据结构、算法、系统设计这些基础课学扎实。创业需要的不只是技术,但技术是地基。”
“嗯!”陈默点头,“刘哥,我能加您个微信吗?以后有问题可以请教您吗?不会经常打扰的,就偶尔……”
刘星犹豫了一下。他现在的日程很满,创业、陪孩子、维持自己的作息,几乎没有多余精力。但看着陈默真诚的眼神,他想起了那些曾经帮助过自己的人:大学时耐心解答问题的学长,第一份工作时的导师,甚至王涛在他离职时多争取的补偿金。
也许,传递善意也是重建的一部分。
“可以。”他拿出手机,扫码加了微信。
陈默如获至宝:“谢谢刘哥!您忙,我不打扰了。”
年轻人回到自己座位,但显然情绪高涨,敲键盘的节奏都轻快了许多。
刘星笑了笑,继续自己的工作。
***
第二天周一,刘星在共享办公室和李艳开会时,提到了这个小插曲。
“帮助陌生人的感觉很好。”他说,“好像找回了一点……技术社区的感觉。”
在大公司后期,技术讨论常常变成政治博弈:不是探讨最佳方案,而是争夺资源、推卸责任、站队表态。那种纯粹的技术交流氛围,早就消失了。
“我懂。”李艳说,“创业的一个好处就是,我们可以重新建立那种文化:开放,互助,以解决问题为导向。”
正说着,刘星的手机震动了。是陈默发来的消息:“刘哥,我按照您说的方法优化了代码,作业拿到了A!老师还表扬了!再次感谢!”
附带一张截图,是作业评分页面。
刘星回复:“恭喜。继续努力。”
很简单的互动,但带来一种微小的愉悦感:自己的知识帮助到了别人,并且看到了积极的结果。
周三晚上,刘星在家准备晚餐时,陈默又发来消息:“刘哥,我们学校有个技术讲座,讲大规模推荐系统实践,主讲人是字节跳动的工程师。您有兴趣吗?我可以帮您弄张票。”
讲座时间是周五晚上七点,在北大。刘星原本的计划是:周五下午工作,晚上陪清清视频,然后读书休息。
但他想了想,回复:“好,谢谢。把时间地点发我。”
也许,走出自己的舒适区,接触一些新鲜的人和事,也是重建的一部分。
***
周五傍晚,刘星提前结束工作,坐地铁去北大。校园里梧桐树郁郁葱葱,学生们三五成群,抱着书或背着书包,脸上是那种特有的、未经世事的朝气。
讲座在一间阶梯教室,能容纳两百人,几乎坐满了。听众大多是学生,也有少数像刘星这样的社会人士。他找了个靠后的位置坐下。
陈默已经在前排,看到他就挥手。讲座开始前,他还特意跑过来:“刘哥您真来了!太好了!”
“谢谢你的票。”刘星说。
七点整,主讲人上台。是个三十多岁的工程师,戴眼镜,说话条理清晰。讲座内容很扎实:从推荐系统的基本原理,到字节跳动在实际业务中的应用,再到遇到的挑战和解决方案。
刘星听得很认真。虽然这些知识他大部分都懂,但听到业界最新的实践案例,还是有启发。特别是讲到“多目标优化”部分——如何平衡点击率、停留时长、互动率等多个指标,这正是他们产品目前遇到的难题。
提问环节,有学生问:“推荐系统会不会加剧信息茧房?如何确保推荐内容的多样性?”
主讲人的回答很谨慎:“这是一个业界都在探索的问题。我们在算法中加入了多样性因子,也会定期进行人工评估。但坦率地说,平衡个性化与多样性,确实是个挑战。”
刘星在笔记本上记下这个问题。他们的企业学习平台,目标是帮助员工成长,如果推荐系统只推荐用户熟悉和喜欢的内容,反而可能限制成长。这个伦理问题,他们也需要思考。
讲座结束后,陈默拉着刘星去和主讲人交流。排队的人很多,轮到他们时已经快九点了。
“张老师,这是我朋友刘星,他也在做推荐系统相关的创业。”陈默介绍。
主讲人张工和刘星握手:“创业?什么方向?”
“企业学习平台,用推荐算法匹配员工的学习需求。”刘星简要介绍了产品理念。
张工听得很认真:“这个方向很有意思。企业场景和消费互联网很不一样,用户目标更明确,数据更稀疏,但价值可能更大。”
他们聊了十分钟。张工分享了一些企业服务场景下的特殊考量:数据隐私、结果可解释性、与现有系统的集成等。这些都是刘星正在面对的实际问题。
“你们现在做到什么阶段了?”张工问。
“刚有一个付费客户,二十人团队。还在完善产品。”刘星说。
“不容易。”张工点头,“如果有具体的技术问题,可以邮件联系我。”他递上名片。
“谢谢。”刘星接过名片,感到有些意外。这种来自业界资深人士的认可和支持,他已经很久没收到了。
离开教室,陈默兴奋地说:“刘哥,张工好像很看好你们的方向!”
“他只是礼貌性鼓励。”刘星说,但心里确实有暖意。
“我觉得不是礼貌,”陈默认真地说,“他是真的感兴趣。刘哥,你们产品如果需要实习生……我暑假可以来帮忙吗?不要工资,就想学习!”
刘星看着这个热情的年轻人,想起了自己大学时求实习的样子。“我们需要和合伙人商量一下。但如果你有兴趣,可以先看看我们的技术文档,了解一下我们在做什么。”
“好!我今晚就看!”陈默说。
***
周末,刘星收到了一封意外的邮件。是张工发来的:
“刘星,你好。周五交流后,我查了一下你们公司的简单介绍(李艳在领英上有些信息)。方向确实很有价值。我们部门最近也在探索企业服务的机会,虽然不一定直接合作,但想保持联系,也许未来有交流的可能。附件是我整理的一些企业级推荐系统的技术资料,希望对你有帮助。”
附件是一个PDF文件,三十多页,内容详实:从技术架构到数据治理,从算法选型到评估指标,甚至还有一些失败案例的总结。
刘星花了一下午认真阅读。这份资料的价值,远超一场讲座。它提供了很多实操层面的洞见,能帮他们少走很多弯路。
他回复邮件表示感谢,并分享了自己在技术选型上的一些思考。邮件发出后,他以为对话就此结束。
没想到周一上午,张工又回复了,针对他提出的几个技术问题给出了详细建议。还问:“你们目前在数据冷启动问题上是怎么处理的?”
这正是刘星在头疼的问题:新企业客户没有历史数据,推荐系统无法工作,需要手动配置初始内容,效率很低。
他如实说明了现状。几小时后,张工回复了一篇论文链接和一段简析:“这篇论文提出了一种基于知识图谱的冷启动方法,不需要用户行为数据,而是基于岗位描述和技能图谱来推荐。也许可以借鉴。”
刘星点开论文,快速浏览。思路确实新颖,而且有开源实现可以参考。
他把资料分享给李艳:“一个意外收获。”
李艳看完后也很兴奋:“这位张工人真好。也许我们可以邀请他做技术顾问?”
“先不急。”刘星说,“等我们产品更成熟一些,有更具体的问题时再请教。现在最重要的是把现有的想法落地。”
“对。”李艳点头,“但这件事让我想到:也许我们应该更开放一些。不只是埋头做事,也要和行业里的人交流,互相学习。”
“我同意。”刘星说,“技术社区的本质就是分享和互助。我们得到了帮助,将来也应该帮助别人。”
***
接下来的两周,刘星在忙碌之余,会抽时间回复陈默的技术问题。有时是简单的代码调试,有时是算法理解,有时是职业选择建议。每次都不会花太多时间,但足够给年轻人一些指引。
他发现自己很享受这个过程。不只是因为“被需要”,更是因为在解答问题的同时,他也在梳理和巩固自己的知识。有时候陈默问出一个他从未深入思考过的问题,迫使他去查资料、去思考,反而有了新的收获。
有一次,陈默问:“刘哥,您觉得做技术最重要的是什么?是精通各种框架,还是深入理解底层原理?”
刘星想了想,回复了一段很长的语音:
“我觉得最重要的是**解决问题的能力**。框架会过时,语言会变化,但解决实际问题的能力永远不会过时。这包括:如何把模糊的需求拆解成具体的技术任务,如何设计既满足当前需求又考虑扩展性的架构,如何调试复杂的bug,如何在资源有限的情况下做出取舍。这些能力,需要通过实际项目来锻炼。”
陈默回复:“明白了!谢谢刘哥!我最近在跟着您的建议,做一个完整的小项目,而不是只刷题。”
六月中旬,刘星和李艳的产品有了新进展:他们基于张工推荐的论文,实现了基于知识图谱的冷启动功能。测试显示,新企业的初始推荐准确率从随机推荐的30%提升到了55%,虽然不是很高,但至少可用。
第一个付费客户也给了正面反馈:“员工开始用起来了,特别是新入职的同事,说这个平台帮他们快速了解岗位需要的技能。”
虽然只是小小的成功,但足以鼓舞士气。
周五团队复盘时,李艳说:“我注意到你最近状态很好,不只是工作状态,整个人的精神面貌都不一样了。”
“可能是因为……”刘星想了想,“感觉到自己不仅在为自己做事,也在为别人创造价值。客户、陈默这样的年轻人,甚至未来可能使用我们产品的员工。这种连接感,很重要。”
李艳点头:“这就是意义感吧。创业不只是为了赚钱,更是为了创造某种价值,连接某种关系。”
***
周日,刘星带清清去科技馆。在编程体验区,有一个简单的图形化编程游戏,孩子们可以通过拖拽积木块来控制角色移动。清清玩得很开心,但有一个关卡怎么也过不去。
“爸爸,帮我!”清清求助。
刘星蹲下来,没有直接操作,而是指着屏幕:“你看,这个小猫要吃到那条鱼,但中间有障碍。你需要先让它往前走三步,然后右转,再往前走两步……”
他一步步引导,清清自己操作。失败两次后,第三次成功了。
“我做到了!”清清兴奋地跳起来。
那一刻,刘星忽然意识到:帮助别人解决问题,无论是陈默这样的陌生人,还是自己的儿子,本质都是一样的——**给予工具,给予方法,给予信心,然后看着对方自己成功**。
这是一种更深层次的满足感:不是自己取得了什么成就,而是帮助别人取得了成就。
晚上在日记里,他写:
“帮助陈默这个陌生人,最初只是随手之举,却带来了一系列意外的收获:技术资料、行业联系、甚至一个潜在的实习生。更重要的是,这个过程让我找回了技术社区那种互助分享的精神,也让我重新确认了自己作为技术人的价值:不只是写代码,更是用技术帮助他人解决问题。
“创业路上,我们常常盯着商业目标:用户增长、收入、融资。但也许,那些不经意的、非功利的善意连接,才是支撑我们走下去的真正养分。帮助别人,也是在帮助自己重建与世界的连接。”
窗外,六月的夜晚温暖而宁静。刘星关掉电脑,准备睡觉。
明天又是新的一周,新的挑战。但他知道,无论遇到什么,他都可以用两种方式应对:一是用自己的专业知识解决问题,二是在适当的时候,伸出援手。
而这两件事,本质上是一体的:用自己所长,创造价值,连接他人。
这就是重建的另一个维度:**在帮助他人中,确认自己的价值;在连接世界中,找到自己的位置**。
简单的道理,但需要亲身经历才能真正理解。
现在,他理解了。

