第四章: 编程社招新
周五下午的社团招新广场,热闹得像是节日庆典。
银杏树的叶子在初秋的风中微微泛黄,阳光透过枝叶缝隙洒下来,在水泥地面上投下晃动的光斑。整条林荫道被各社团的摊位占满,五颜六色的海报、各式各样的展示品、热情招揽新生的学长学姐……空气里弥漫着青春的喧嚣和无限可能。
林浅夏站在天文社摊位前,手里拿着那张深蓝色的招新传单——正是昨天被风吹到篮球场,又被陆星野捡起的那张。此刻传单在她手中显得格外沉重,仿佛承载着某种超越纸张的意义。
“同学,对天文感兴趣吗?”
天文社社长周明热情地迎上来。他戴着圆眼镜,笑容温和,深蓝色的社服上印着小小的星座图案。摊位布置得相当用心:背景布是深邃的夜空色,贴着手工剪的荧光星星;长桌上摆着几架望远镜模型,还有几块真正的陨石标本,被小心地放在玻璃罩里;最引人注目的是那台投影仪,正在侧面的白墙上投射出旋转的猎户座星云,红蓝色的光芒缓缓流淌,如梦似幻。
“我想报名。”林浅夏递出已经填写好的表格。
周明接过表格,推了推眼镜仔细看:“林浅夏……咦,你高一是不是参加过市里的天文知识竞赛?我好像见过你的名字。”
林浅夏有些意外。那场比赛她只进了决赛圈,并没有拿到名次,没想到还会被人记住。
“是的,但只是入围,没拿奖。”
“那也很厉害了!”周明眼睛一亮,“我们社正需要你这样有基础的同学!来,我给你介绍一下我们的常规活动……”
就在周明滔滔不绝地介绍时,林浅夏的目光却不由自主地飘向旁边的摊位。
那是编程社的位置。
与天文社的浪漫梦幻不同,编程社的布置极简而充满科技感。摊位就是几张并排的长桌,上面摆着五台笔记本电脑,全部黑屏,只等着有人操作时亮起代码的荧光。背景海报是纯黑的,上面只有一行发光的白色代码:
print("Hello, World!")
简单,直接,充满了理工科的冷峻美学。
此刻摊位前已经围了不少人,大多是男生。他们挤在一起,盯着某台电脑屏幕,不时发出惊叹或讨论声。
而操作那台电脑的人——
是陈一鸣。
林浅夏的后桌,那个戴黑框眼镜、沉默寡言的男生,此刻正坐在电脑前,手指在键盘上飞快敲击。屏幕上的代码如瀑布般滚动,黑色的背景,彩色的字符,复杂的逻辑结构在他手下仿佛有了生命。
陈一鸣的表情是林浅夏从未见过的专注。平时在教室里,他总是低着头,要么看书要么做题,眼神很少与人对视。但此刻,面对屏幕,他的眼睛亮得惊人,嘴角甚至带着一丝几乎看不见的、属于掌控者的微笑。
这就是他真正的世界。
林浅夏忽然理解了为什么苏晓晓说陈一鸣是“编程天才”。有些人只有在做自己热爱的事情时,才会显露出真正的光芒。
她的目光继续移动。
然后,在陈一鸣身边,她看到了陆星野。
他今天没有穿运动服,而是规规矩矩地穿着校服——白色衬衫,深蓝色裤子,外套搭在手臂上。他就站在那里,微微侧头看着陈一鸣操作,双手插在口袋里,姿态放松却依然挺拔。
从这个角度,林浅夏能看到他专注的侧脸。阳光从侧面照过来,给他的睫毛投下细小的阴影,鼻梁的线条清晰而利落。他的目光在屏幕上移动,偶尔会俯身,指着某行代码问些什么。陈一鸣则简短地回答,两人之间的默契显而易见。
他们在讨论什么程序?
林浅夏忍不住好奇,脚步不自觉地往那边挪了一点。
“同学?同学?”
周明的声音把她拉回现实。
“啊,对不起。”林浅夏收回目光。
“没事。”周明笑了笑,顺着她的视线看向编程社摊位,“那边确实很吸引人,尤其是对理科生来说。”
林浅夏注意到他话里的含义:“周社长也懂编程?”
“略懂皮毛。”周明推了推眼镜,“其实天文学现在也离不开编程。数据处理、星图模拟、望远镜控制……我们社里也有同学在学。对了,你知道吗?天文社和编程社的活动时间都是周三下午。”
林浅夏心里一紧:“都是周三?”
“对,学校规定的社团活动时间就那几段,好多社都冲突。”周明有些抱歉地说,“所以如果你要正式加入我们,就不能同时报编程社了。学校规定每人最多参加一个主要社团。”
选择。
林浅夏的目光在两个摊位之间游移。
天文社,那是她从小的梦想。六岁那年,父亲带她去郊外看流星雨,那是她第一次亲眼看见银河。那么多星星,那么多光芒,像碎钻洒在黑丝绒上。她当时太小,不懂得什么叫“宇宙的浩瀚”,只记得自己张大了嘴,半天说不出话来。
后来父亲送了她一台入门级望远镜,虽然看不了多远,但足以让她看清月球的环形山、土星的光环、木星的卫星。那些遥远的、冰冷的天体,通过镜筒变得如此清晰,仿佛触手可及。
那是她热爱星空的起点,也是她梦想的起点。
而编程社,那是她理性的爱好。初一时偶然接触到Python,发现用代码创造东西的乐趣。她自学了两年,能写一些简单的程序——计算器、小游戏、数据可视化工具。去年她还帮父亲做了个班级管理的小工具,虽然简陋,但确实提高了工作效率。
编程给她的满足感是完全不同的。那是逻辑的、精确的、可控的。每一步都有原因,每一个结果都有依据。在代码的世界里,混乱被秩序取代,复杂被简化。这对她这种喜欢条理的人来说,有着致命的吸引力。
而此刻,这两个选择之间,似乎还多了一层微妙的因素。
陆星野在编程社。
如果她选择天文社,那么每周三下午,当陆星野在编程社活动时,她就在天文台观星。除了班级上课和项目合作,他们几乎没有其他交集。
如果她选择编程社……
“浅夏!你也来啦!”
苏晓晓突然蹦出来,挽住她的手臂,打断了她的思绪。苏晓晓今天穿了一件粉色的卫衣,头发扎成两个丸子,看起来格外活泼。
“你选哪个?”苏晓晓眼睛发亮,“我准备去话剧社试试!听说他们下学期要排《雷雨》,我想演四凤!”
“话剧社?”林浅夏有些意外,“你不是说要报舞蹈社吗?”
“哎呀,改变主意了嘛。”苏晓晓吐了吐舌头,“人生就是要多尝试!你呢?决定了吗?”
林浅夏还没回答,就看到陆星野和陈一鸣朝这边走了过来。
他们似乎是要穿过摊位去另一边的饮水机。陈一鸣手里拿着两个空水瓶,陆星野跟在他旁边,两人边走边低声讨论着什么。
距离越来越近。
五米,三米,一米。
陆星野的目光扫过天文社的摊位,在投影的星云上停留了一瞬——林浅夏捕捉到了那个细微的停顿,他的眼睛微微眯起,仿佛在辨认什么。然后,他的目光落在了她脸上。
他认出了她。
林浅夏能确定这一点,因为他的眼神有细微的变化——从随意扫视到聚焦,眉毛轻轻挑了一下,似乎在回忆昨天的两次短暂接触。
但他什么也没说,只是点了点头,算是打招呼。
然后和陈一鸣一起走了过去。
就这么简单。
“喂喂,他跟你打招呼了!”苏晓晓激动地掐她的手臂,“看到没?看到没?”
“看到了。”林浅夏平静地说,但心跳确实快了几拍。
“那你还不快做决定?选编程社啊!”苏晓晓压低声音,“近水楼台先得月!”
林浅夏摇头:“我不是为了这个选社团的。”
“那你为了什么?”
为了什么?
林浅夏看向天文社的摊位。投影仪还在工作,猎户座星云在墙上缓缓旋转。那是距离地球1500光年的巨大星云,是无数恒星诞生的摇篮。光从那里出发时,人类还处于中世纪。而现在,她站在这里,看着那些古老的光芒,感受着时间的重量。
她又看向编程社的摊位。陈一鸣已经回到了电脑前,正在给围观的同学演示一个物理模拟程序——小球在重力场中的运动,轨迹精确地符合抛物线方程。那是另一种美,数学的美,规律的美,人类智慧构建出的精确世界。
“我只是……”她轻声说,“想选择自己真正喜欢的。”
苏晓晓看着她,忽然不说话了。几秒后,她拍了拍林浅夏的肩膀:“我懂。那就按你的心来。”
林浅夏深吸一口气,转向周明:“我加入天文社。”
“太好了!”周明递给她一份厚厚的社团手册,“欢迎加入星空探索者大家庭!这是我们的活动安排和注意事项,下周三是第一次正式活动,如果天气好,我们去学校天文台观星!”
林浅夏接过手册。封面上是市一中的天文台照片——圆顶建筑,坐落在校园西北角的小山坡上,周围树木环绕,像是守护秘密的堡垒。
她翻开第一页,是社团成员的名单。去年只有十五个人,大多是高三的学长学姐,这学期就要退了。新生名单上,目前只有她一个人。
“今年招新情况怎么样?”她问。
“不太好。”周明苦笑,“大家都觉得天文太‘冷门’,不如篮球、舞蹈、编程这些实用或有趣。你是今天第三个报名的。”
第三个。
林浅夏心里涌起一种复杂的情绪。一方面是庆幸——人少意味着更纯粹的氛围,更深入的交流。另一方面是忧虑——如果人太少,社团可能会被取消。
“不过没关系,”周明似乎看出了她的想法,“社团的意义不在于人数,而在于有没有真正热爱的人。我相信你就是这样的人。”
这种信任让林浅夏有些感动:“谢谢。”
“不客气。”周明笑了笑,“对了,虽然你不能正式加入编程社,但可以去听听他们的课。只要不占名额,他们很欢迎旁听生。”
林浅夏点点头。
她收起手册,准备离开摊位。经过编程社时,她忍不住又看了一眼。
陆星野已经回到了摊位边,正和一个高三的学长讨论着什么。那个学长应该是编程社的社长,戴着黑框眼镜,穿着印有“Code or Die”字样的T恤,看起来很有极客风范。
陆星野拿起一支白板笔,在白板上画了个简单的流程图。他的动作流畅自信,线条干净利落,完全不像一个只会打篮球的体育生。
阳光照在他身上,给他整个人镀上一层温暖的光晕。
似乎是察觉到她的视线,他忽然转过头。
这一次,两人的目光没有立刻移开。
隔着五六米的距离,隔着喧闹的人群,隔着两个不同的世界。
编程与天文。
代码与星空。
理性与浪漫。
陆星野看着她,嘴角微微上扬,露出了一个很浅的笑容。
不是礼貌性的点头,也不是昨天在篮球场那种公事公办的语气,而是一个真实的、温和的、带着些许善意的笑。
林浅夏的心跳漏了一拍。
她也回了一个微笑,然后转身离开。
走向教学楼时,她能感觉到那个目光还停留在背上,像九月的阳光,不灼热,却让人无法忽视。
---
“所以你最后还是选了天文社?”
放学路上,苏晓晓一边咬着冰淇淋一边问。秋天的下午吃冰淇淋是她的怪癖,她说这样能“保持清醒”。
“嗯。”林浅夏点头。
“不后悔?”
“不后悔。”
苏晓晓叹了口气:“好吧,我支持你。不过你错过了一个大好机会啊!编程社和陆星野每周三下午都在一起,而你只能在天文台看星星。”
“看星星也很好。”林浅夏说。
“是是是,我知道。”苏晓晓舔了舔冰淇淋,“不过说真的,你觉得陆星野为什么选编程社?他明明对天文也有兴趣。”
林浅夏想了想:“可能因为编程更实用?或者和陈一鸣一起?”
“也有可能。”苏晓晓忽然眼睛一亮,“诶,你说他会不会是那种……外表理性内心浪漫的人?白天写代码,晚上看星星?”
这个描述让林浅夏心里一动。
外表理性内心浪漫。
她想起陆星野在球场上的样子——专注、凌厉、充满力量。那是完全理性的世界,需要计算角度、预判轨迹、团队协作。
但她又想起昨天他捡起天文社传单时的眼神,想起今天他在编程社摊位前画流程图时的从容,想起他手腕上那根深蓝色珠子的编绳。
也许,苏晓晓说得对。
人本来就是复杂的,可以同时容纳看似矛盾的特质。
“对了,”苏晓晓换了个话题,“明天下午就要第一次项目会议了,你准备得怎么样?”
林浅夏想起书包里那两张设计图——星空版和简洁版。
“还行。”她说。
“紧张吗?”
“有一点。”
“别紧张!”苏晓晓握拳,“你要相信自己的实力!我听说陆星野最讨厌那种只会说不会做的人,你有真才实学,他肯定认可你。”
林浅夏笑了笑:“你怎么又知道了?”
“我有我的情报网嘛。”苏晓晓神秘地说,“总之,加油!我看好你!”
两人在路口分开。
林浅夏独自走回家。夕阳把影子拉得很长,街道两旁的店铺陆续亮起灯。经过一家书店时,她停下了脚步。
橱窗里摆着几本新到的天文书,封面是绚丽的星云照片。其中一本的标题吸引了她的注意:《当代码遇见星空——计算天文学入门》。
她走进书店。
那本书被放在科普区的显眼位置。她拿起来翻看,前言写道:“天文学是最古老的科学,计算机科学是最年轻的科学之一。当两者相遇,会碰撞出怎样的火花?”
书里讲了如何用编程处理天文数据,如何模拟天体运动,如何从海量观测数据中寻找规律。有Python代码示例,有实际案例,有深入浅出的讲解。
林浅夏看得入了神。
等她反应过来时,已经在书店里站了二十分钟。
她买下了这本书。
走出书店时,天已经快黑了。路灯一盏盏亮起,车流如织,城市的夜晚开始了。
林浅夏抱着新书,心里涌起一种奇异的兴奋感。
代码与星空。
也许,这并不一定是非此即彼的选择。
也许,她可以同时拥有两者——在天文社仰望星空,在编程项目中应用代码,在某个看不见的交汇处,找到属于自己的平衡点。
回到家时,母亲正在做饭。
“回来啦?今天社团招新怎么样?”苏月从厨房探出头。
“我报了天文社。”
“还是喜欢星星啊。”苏月笑了,“你爸刚才还打电话说,望远镜已经订好了,下个月到货。”
“真的?”林浅夏眼睛一亮。
“骗你干嘛。不过——”苏月关掉火,端着菜走出来,“你得保证成绩不掉,高二很关键。”
“我知道。”
吃饭时,林浅夏说起编程社和天文社的时间冲突。
苏月听了,想了想说:“其实这样也好,专注一件事。天文是你从小喜欢的,坚持下去会有收获的。”
“嗯。”林浅夏点头。
但她心里想的却是那本新买的书。
代码与星空。
也许她不需要选择。她可以创造自己的道路。
晚饭后,她回到房间,迫不及待地翻开那本书。
第一章讲的是如何用Python绘制星图。代码很简单,只有几十行,但运行后生成的图像却让她屏住了呼吸——那是精确的星座连线图,基于真实的天文数据,可以在任意时间、任意地点模拟星空。
她打开电脑,按照书上的示例敲代码。
导入库,定义函数,读取数据,计算坐标,绘制图像……
运行。
屏幕上出现了北半球秋季的星空。北斗七星、仙后座、天鹅座……每一个星座的位置都精确无误,每一颗星的亮度都符合实际。
林浅夏盯着屏幕,心脏在胸腔里有力地跳动。
这是她第一次用代码创造星空。
不是简单的图案,而是真实的、可交互的、基于科学数据的星空。
她忽然有了一个想法。
那个图书馆预约小程序,也许……可以加入这个功能?
不,太复杂了。项目时间只有两个月,她们需要的是实用、稳定、易于使用的系统,不是花哨的天文展示。
但也许,可以做一个简化版?
比如,在用户成功预约座位后,弹出一张小卡片,上面显示当晚的星空图,并标注一个幸运星座?
太幼稚了。
林浅夏摇摇头,关掉了星图程序。
她打开项目文件夹,再次审视那两张设计图。
星空版,简洁版。
明天下午五点,图书馆讨论室。
她会展示哪一个?
这个决定,似乎不仅仅关乎项目,更关乎她想要向陆星野展示什么样的自己。
是那个浪漫的、热爱星空的天文爱好者?
还是那个理性的、注重实用的编程合作者?
或者……两者都是?
夜深了。
林浅夏关掉电脑,走到窗边。
今夜天气很好,云层稀疏,能看见不少星星。她仰起头,在熟悉的位置找到了北斗七星。那个大勺子挂在北方的天空,亘古不变地为迷路者指引方向。
她想起小时候,父亲教她认星座时说:“星星不会说话,但它们一直在那里。只要你抬头,就能找到方向。”
现在,她站在人生的又一个十字路口。
天文还是编程?浪漫还是理性?遵循内心还是考虑现实?
她不知道。
但她知道,明天下午,当她和陆星野坐在同一张桌子前,讨论同一个项目时,她会做出选择。
而那个选择,可能会改变很多事情。
风吹进来,带着夜晚的凉意。
林浅夏最后看了一眼星空,然后拉上了窗帘。
但在黑暗中,那些光芒似乎还在她眼前闪烁,像是某种启示,又像是某种承诺。
她躺上床,闭上眼睛。
梦里,她看见自己站在一个巨大的十字路口。
左边是璀璨的星空,右边是流淌的代码。
而路的中央,站着一个人影。
他转过身,对她伸出手。
星光和代码的光同时落在他身上,让他看起来既真实又虚幻。
而林浅夏知道,她必须走过去。
必须做出选择。
必须面对那个可能和她仰望同一片星空的人,告诉他:
这是我。