键盘敲了又停。
林楠盯着屏幕上的代码,眼皮子打架。
这是他跟信息中心磨了两天才拿到的数据——校园卡消费流水,脱敏处理过的。文件不大,也就……三十几个G。
“不大个屁。”
他小声骂了一句,揉了揉眼睛。
下午试着跑清洗脚本,跑了俩小时,进度条才走了百分之三。照这个速度,得跑三天三夜。项目总共才多久?一个月。他光数据清洗就得花一星期,后面还干不干了?
手机震动。
林楠拿起来看,是小组群消息。
晚上九点,线上会议。
他叹了口气,在群里回了句“收到”,然后继续盯着屏幕发呆。
***
九点整,视频会议开始。
陈屿在屏幕那头,背景是宿舍书桌,台灯的光挺柔和。另外两个组员也在,一个叫刘浩的男生,还有个女生叫赵雨。
“都到了吧。”陈屿开口,声音清楚,“简单同步下进度。”
刘浩先说,他负责数据可视化部分,已经选好工具了,等数据清洗完就能上手。
赵雨负责写报告,大纲列好了,也在等数据。
轮到林楠。
他清了清嗓子:“数据拿到了,三十几G。正在清洗,但是……”
“但是什么?”陈屿问。
“但是脚本跑得太慢。”林楠实话实说,“我写的那个循环处理有问题,内存占用高,效率低。估计得优化一下。”
“多久能优化好?”赵雨问。
“我尽量快。”林楠说,“周末前应该能搞定。”
他说这话的时候,心里其实没底。
陈屿在屏幕那头点了点头:“行。有困难及时说。”
“嗯。”
会议又说了几句别的,十分钟就结束了。
林楠关掉视频,整个人瘫在椅子上。
累。
***
宿舍里又安静下来。
林楠盯着屏幕上的代码,越看越烦。那些循环嵌套,那些数据读取,怎么看怎么别扭。他试了几种改进方法,效果都不明显。
算了。
他关掉编辑器,打开游戏。
是个单机解谜游戏,他玩了好久了。画面简单,音乐舒缓,玩起来不用动脑子。正好放松放松。
游戏加载进去,角色站在一个古堡里。
林楠操作着角色往前走,解开一个个谜题。墙上的机关,地上的石板,需要按顺序触发。他玩得很投入,手指在键盘上敲着,暂时忘了数据的事。
玩到一半,手机震动了一下。
林楠没理。
又震动了一下。
他瞥了一眼屏幕——是社交软件的消息提示。发消息的人是陈屿。
林楠手一抖,游戏角色撞墙上了。
他赶紧切出去看。
陈屿:“还在为数据清洗头疼?”
林楠盯着那句话,愣了两秒。
他看了眼自己的状态——显示“游戏中”。这他妈就尴尬了。
他犹豫了一下,打字:“没有,在休息。”
发送。
那边很快回复:“游戏玩得开心吗?”
林楠脸有点热。
他还没想好怎么回,陈屿又发来一条消息。
这次不是文字,是张图片。
林楠点开看。
是一段代码截图。
Python写的,挺长一段。他扫了一眼——分批读取CSV文件,多进程并行处理,内存优化……
卧槽。
林楠坐直了身子,把图片放大,仔细看。
这段代码的思路,正好能解决他刚才提到的问题。读取大文件不用一次性全加载,分批处理。用多进程而不是多线程,避免GIL锁的问题。内存管理也做了优化,不会爆掉。
而且代码写得很干净,注释清楚,变量命名规范。
一看就是老手写的。
林楠盯着屏幕,手指在键盘上悬着,不知道该打什么。
陈屿又发来消息:“仅供参考。”
林楠深吸一口气,打字:“你怎么知道我需要这个?”
发送。
那边停顿了几秒。
陈屿:“你开会的时候说脚本效率低。大文件处理,常见问题就是内存和速度。猜的。”
猜的?
猜得这么准?
林楠心里有点乱。他盯着那段代码,又看了看陈屿的头像——是个简单的风景照,看不出什么。
他打字:“谢谢。我明天试试。”
“嗯。”陈屿回复,“早点休息,明天再试。”
“你也是。”
“好。”
对话结束了。
林楠退出聊天窗口,回到游戏界面。角色还卡在墙边,一动不动。
他操作角色继续往前走,但心思已经不在这上面了。
满脑子都是那段代码。
***
夜里十一点。
林楠关了游戏,重新打开编辑器。
他把陈屿发来的代码复制进去,对照着自己的脚本,一点点改。
改着改着,他发现这段代码不只是解决了性能问题——很多细节处理得比他想的周到。错误处理,日志记录,进度显示……该有的都有。
他一边改一边想,陈屿写这段代码花了多久?
二十分钟?半小时?
还是更久?
改到一半,手机又震了。
林楠拿起来看,还是陈屿。
“还没睡?”
林楠看了眼时间——十一点二十。
他打字:“马上睡。在改代码。”
“别熬太晚。”
“嗯。”
对话又停了。
林楠盯着那三个字——“别熬太晚”,心里有点怪怪的感觉。
像是被关心了。
但又不太像。
陈屿的语气一直这样,不冷不热,但做的事又挺周到。帮他整理头发,发代码,现在又提醒他别熬夜。
这人到底想干嘛?
林楠想不明白。
他甩甩头,继续改代码。
***
改到十二点,终于改完了。
林楠保存文件,运行测试。
脚本开始跑,进度条跳得飞快。之前两小时才走百分之三,现在十分钟就走了百分之二十。
成了。
林楠松了口气,靠在椅子上。
累是真的累,但问题解决了,心里也轻松了不少。
他拿起手机,想给陈屿发个消息说一声,又觉得太晚了,打扰人家休息。
算了。
明天再说。
他关了电脑,洗漱上床。
躺下的时候,脑子里还是那段代码。
陈屿写代码的样子是什么样的?也是坐在书桌前,台灯照着,手指在键盘上敲?
应该挺认真的吧。
林楠翻了个身,把脸埋进枕头里。
别想了。
睡觉。
***
第二天早上,林楠是被手机震醒的。
他迷迷糊糊抓起来看,是陈屿发来的消息。
“代码试了吗?”
发送时间是七点半。
林楠揉了揉眼睛,打字:“昨晚试了,效果很好。谢谢。”
发送。
那边很快回复:“那就好。今天可以正常推进了。”
“嗯。”
“上午有课吗?”
“有,三四节。”
“一起走?”
林楠盯着那三个字,愣了一会儿。
一起走?
从宿舍到教学楼,也就十几分钟的路。平时他都是一个人走,或者跟苏晓一起。
跟陈屿一起走……
他打字:“好。”
“八点半,楼下等你。”
“嗯。”
放下手机,林楠坐起来,发了一会儿呆。
然后他下床洗漱,换衣服,整理书包。
出门前,他照了照镜子。
镜子里的人,头发有点乱,眼睛底下有黑眼圈。他用手扒拉了两下头发,勉强看得过去。
算了。
就这样吧。
***
八点二十五,林楠下楼。
陈屿已经在楼下等着了。
他穿着简单的白T恤和牛仔裤,背着个黑色书包,站在树荫底下。早晨的阳光透过树叶洒下来,在他身上投下斑驳的光影。
林楠走过去。
“早。”陈屿说。
“早。”
两人并肩往外走。
路上人不多,偶尔有晨跑的学生经过。空气挺清新,风吹过来,带着点凉意。
“昨晚几点睡的?”陈屿问。
“十二点多。”林楠说,“改完代码就睡了。”
“效率挺高。”
“是你代码写得好。”林楠实话实说,“我没想到能用多进程处理,之前一直卡在内存上。”
“常见问题。”陈屿说,“以后遇到类似的,可以直接用那个模板。”
“嗯。”
走了一段,林楠问:“你写那个代码,花了多久?”
陈屿想了想:“二十分钟吧。”
二十分钟。
林楠心里算了一下——他之前自己折腾了两天,没折腾明白。人家二十分钟就解决了。
差距啊。
“怎么了?”陈屿看他没说话。
“没什么。”林楠摇摇头,“就是觉得……你挺厉害的。”
陈屿笑了:“这就算厉害了?”
“反正比我厉害。”
“术业有专攻。”陈屿说,“你算法部分不是做得挺好?我看你调研报告写得很详细。”
林楠一愣:“你看了?”
“嗯,昨晚看的。”陈屿说,“思路清晰,参考文献也全。做得不错。”
林楠脸有点热。
他没想到陈屿会看他的报告,还给了评价。
“谢谢。”他小声说。
“不用谢。”陈屿说,“本来就应该互相看进度。”
话是这么说,但林楠心里还是有点高兴。
被人肯定的感觉,挺好的。
***
走到教学楼,离上课还有二十分钟。
两人在走廊分开,各自去教室。
林楠找到座位坐下,掏出手机看了一眼。
苏晓发来消息:“早啊楠楠!今天中午一起吃饭不?”
林楠打字:“好。吃什么?”
“食堂二楼新开了个窗口,听说不错,去尝尝?”
“行。”
“那就这么说定了!下课见!”
“嗯。”
放下手机,林楠翻开课本。
老师还没来,教室里吵吵嚷嚷的。他坐在靠窗的位置,阳光照进来,暖洋洋的。
他忽然想起刚才和陈屿一起走路的画面。
很平常的一段路,没什么特别的。
但就是……挺舒服的。
不用刻意找话题,也不用担心说错话。安安静静地走,偶尔说两句,就够了。
林楠转过头,看向窗外。
楼下的树在风里摇晃,叶子哗啦哗啦响。
他看了很久。
***
中午,食堂二楼。
苏晓端着餐盘过来,在林楠对面坐下。
“尝尝这个!”她把一个小碗推过来,“新窗口的招牌,据说绝了。”
林楠看了一眼,是碗拌面,看着挺有食欲。
他尝了一口,味道确实不错。
“怎么样?”苏晓眼睛亮晶晶的。
“挺好。”
“是吧!”苏晓得意,“我打听过了,这家老板以前在城里开面馆的,手艺正宗。”
两人边吃边聊。
聊到一半,苏晓忽然问:“哎,你那个小组项目,进展咋样了?”
“还行。”林楠说,“数据清洗搞定了,接下来做特征工程。”
“陈屿是不是也在你们组?”
“嗯。”
苏晓眨眨眼:“他怎么样?好相处不?”
林楠筷子顿了顿:“还行。”
“就是还行?”苏晓凑近一点,“我听说他可厉害了,专业课全优,还会写代码,长得又帅……哎,你说他有没有女朋友?”
林楠差点被面呛到。
他咳嗽两声,喝了口水:“我哪知道。”
“你跟他一个组,没打听打听?”
“我打听这个干嘛。”林楠低头吃面。
“好奇嘛。”苏晓托着下巴,“这种级别的帅哥,肯定很多人追。你说他喜欢什么样的?温柔的?活泼的?还是……”
“吃饭。”林楠打断她。
苏晓撇撇嘴,不说话了。
但没过两分钟,她又开口:“哎,说真的,你觉得陈屿这人怎么样?”
林楠抬起头:“什么怎么样?”
“就是……人怎么样?”苏晓说,“好相处吗?靠谱吗?会不会摆架子?”
林楠想了想。
“靠谱。”他说,“代码写得好,做事认真,也不摆架子。”
“那就好。”苏晓点点头,“我还怕他那种条件的,会不好相处呢。”
林楠没接话。
他继续吃面,但心里在想苏晓的话。
陈屿好相处吗?
好像……确实还行。
虽然话不多,但该做的事都做了,该帮的忙也帮了。而且帮得很自然,不会让人觉得有压力。
这样的人,应该挺难得的吧。
***
下午没课。
林楠回宿舍,继续搞项目。
清洗完的数据已经可以用了,他开始做特征工程——从原始消费记录里提取有用的特征,比如消费频率、消费时段偏好、消费金额分布等等。
这活儿也挺费劲,得写很多代码,还要不断调试。
他埋头干了三个小时,脖子都僵了。
站起来活动活动,倒了杯水。
手机震了一下。
陈屿:“特征工程开始了吗?”
林楠打字:“开始了。在提取基础特征。”
“需要帮忙就说。”
“暂时不用。”林楠想了想,又加了一句,“有问题再问你。”
“好。”
放下手机,林楠看着屏幕上的代码。
他忽然觉得,有个人可以问问题,也挺好的。
以前他都是自己硬扛,遇到难题就上网搜,搜不到就硬想。现在……好像不用那么累了。
他坐回去,继续写代码。
窗外的天渐渐暗下来。
宿舍里很安静,只有敲键盘的声音。
林楠写着写着,忽然笑了一下。
他自己也不知道为什么笑。
就是……心情还不错。