书架 |登录

第1497章 科技人才育

作者:诗海孤翁字数:1.87万字更新时间:2026-07-02 04:01:13
第1497章 科技人才育

第1497章科技人才育

一、白皮书与议会辩论

1995年3月,新德里国会大厦中央大厅的枝形吊灯在午后的闷热中泛着昏黄的光。三十四盏灯泡中有七盏已经不亮,维修申请在议会事务处的文件堆里埋了六个月。光线不均匀地洒在深红色地毯上,那地毯是1972年从伊朗进口的,经二十三年成千上万双皮鞋的踩踏,图案中的莲花纹样已磨成模糊的暗红色团块。

印度教育部长克里希纳·梅农站在讲台后,双手扶着讲台边缘。他六十二岁,个子不高,穿着传统的白色库尔塔和尼赫鲁马甲,马甲的左胸口袋微微鼓起——那里装着他的老花镜和一小瓶硝化甘油片。他有心脏病,医生嘱咐避免激动,但今天不行。今天他要宣读的,是印度独立以来第一份关于科技人才培养的国家级战略文件。

“尊敬的议长先生,各位尊敬的议员,”梅农的声音通过老旧的扩音系统传出,带着特有的嘶嘶回响,“今天我代表教育部和科技部,向本届议会提交《国家科技人力资源发展纲要:1995-2005》。”

他停顿,从讲台上拿起那份文件。文件很厚,超过两百页,蓝色硬质封面在灯光下反射出细碎光斑。他翻开第一页,纸张发出清脆的声响。

“这份白皮书的起草历时十八个月,”他继续说,声音提高了一些,“我们咨询了二十七所大学、四十三所工程学院、十九个科研院所、五十六家私营企业的意见。召开了九次跨部门联席会议,修改稿累积达二十三版。”

台下,议员们姿态各异。执政党国大党的席位区,大多数人坐得笔直,手里拿着文件的摘要本。反对党人民党的区域,有人靠在椅背上闭目养神,有人在小声交谈。左翼政党的议员在笔记本上记录着什么。后排,几个地方小党的代表在传递一盒薄荷糖。

“在开始宣读具体内容前,”梅农推了推眼镜,“请允许我读一下封面上的这句话。这句话没有出现在正文中,是我们的起草委员会在最后一天深夜讨论时,由科技部副部长苏迪尔·拉奥先生提议加上的。”

他清了清嗓子,用印地语念出:“भारतकीसबसेबड़ीखनिजसंपदालोहानहीं,कोयलानहीं,हीरानहीं,बल्किदसअरबदिमागोंमेंछिपीबुद्धिहै。”

翻译成中文是:“印度最丰富的矿藏不是铁,不是煤,不是钻石,而是蕴藏在十亿大脑中的智慧。”

念完,梅农抬起头。大厅里安静了片刻。然后,从国大党席位开始,掌声响起。先是零星的,迟疑的,接着蔓延开。人民党的议员们互相看了看,也拍起手。左翼政党的议员放下笔,加入鼓掌。地方小党的代表停下传递薄荷糖的手,拍掌。掌声持续了约四十秒,这在印度议会是罕见的——通常只有在总理发表重要讲话或通过重大法案时,才会有这样跨党派的掌声。

但梅农知道,这掌声不是给他的,也不是给这份白皮书的。这掌声是给那个念头的,给那个在1995年的印度听起来既充满希望又令人心酸的认知:在经历了外汇储备见底、卢比贬值、国际货币基金组织的严苛贷款条件、国有企业的艰难改革之后,这个国家终于不得不承认,它不能再靠卖铁矿石、煤炭和廉价劳动力参与世界竞争了。它必须开始卖更贵的东西——人脑训练后的产物。

掌声渐息。梅农开始宣读正文。他跳过技术细节,直接进入核心部分:“未来十年,印度需要每年新增二十五万名合格的工程师。这个数字是目前的二点三倍。我们需要在五年内,将工程类院校的容量扩大百分之六十。我们需要在信息技术、生物技术、材料科学三个关键领域,建立至少十五个达到国际水准的研究中心。”

台下响起窃窃私语。二十五万,每年。这个数字让许多人倒吸凉气。印度当时的工程学院每年毕业生约十一万,其中只有不到三分之一能达到国际雇佣标准。扩大百分之六十的容量意味着要新建校区、招聘教师、购置设备——这一切都需要钱,而政府的教育预算在过去三年连续被削减。

“钱从哪里来?”反对党席位传来一个声音。是人民党的资深议员穆克吉,他站起来,没等议长准许就发问,“部长先生,您说的这些都需要巨额投资。而我们刚刚接受了国际货币基金组织的贷款条件,要削减财政赤字。您打算从哪里变出这些钱?印更多卢比吗?”

大厅里响起零星的笑声。梅农等笑声停下,才回答:“穆克吉先生问到了关键。钱,不会从天上掉下来。但我们可以重新分配。白皮书中提议,在未来三年内,逐步减少对部分传统产业的补贴,将这些资金转向科技教育。同时,鼓励私营部门通过捐赠、设立奖学金、共建实验室等方式参与。”

“私营部门?”另一个声音响起,这次是左翼阵线的议员,“部长先生是在建议我们把国家的未来交给资本家吗?让塔塔和比尔拉来决定我们的孩子学什么?”

“我没有说交给谁,”梅农的声音依然平稳,但握讲台的手指关节发白,“我说的是合作。德国有校企合作,美国有校企合作,日本也有。他们没有被资本家控制,反而——”

“德国是美国占领下的德国!日本是美国扶持的日本!”左翼议员激动地打断,“我们要走自己的路!社会主义的路!”

议长敲槌:“请遵守秩序!请让部长完成发言!”

梅农深吸一口气,继续往下读。他读到了具体措施:在现有印度理工学院的基础上,新增三所分校;在三十所大学设立信息技术学院;设立国家科技奖学金,每年资助一万名贫困学生;建立校企合作示范基地……

他读了四十五分钟。期间有七次被打断,三次是程序性质疑,四次是实质性质问。每一次,梅农都停下来,回答,然后继续。他的额头上渗出细密的汗珠,马甲下的衬衫背部湿了一片。心脏位置传来熟悉的压迫感,他不动声色地将右手伸进口袋,摸到那瓶硝化甘油片,但没有取出。还不到时候。

读完最后一项,他合上文件,抬头看着台下。“这份白皮书,”他说,声音因长时间讲话而沙哑,“不是魔法,不会在一夜之间改变印度。它只是一个开始,一个承认——承认我们的未来不在于地下的矿藏,而在于教室里的孩子,在于实验室里的年轻人,在于那些在简陋条件下依然坚持学习的普通人。”

这次没有掌声。大厅里一片寂静。议员们看着他,看着这个六十二岁、有心脏病、在教育部长的位置上坐了三年却因预算削减而寸步难行的老人。他背后,透过国会大厦高高的窗户,可以看到德里灰蒙蒙的天空,和天空中盘旋的几只黑鸢。

寂静持续了十秒,二十秒。然后,议长敲槌:“现在进入辩论环节。首先请人民党代表发言。”

梅农走下讲台,回到自己的座位。助手递给他一杯水,他小口喝着,手指在口袋里紧紧握着那个小药瓶。辩论开始了,将持续四个小时。会有赞美,会有攻击,会有修正案提议,会有政党交易。最终,这份白皮书会以某种形式被通过,但会被修改、稀释、妥协。这就是民主,这就是印度。

但至少,他说出来了。至少,那份文件现在正式存在于国会的记录中,存在于国家的政策框架里。十亿大脑中的智慧——这句话会被媒体引用,会被印在报纸头版,会被教师们在教室里宣读,会被学生们记在笔记本上。也许,仅仅是也许,它会像一颗种子,落在某个年轻人的心里,在多年后长成什么。

梅农靠在椅背上,闭上眼睛。心脏的压迫感减轻了。他松开药瓶,手指在库尔塔的布料上轻轻敲击,无声地,像是在计数什么。也许是在数那些还未出生的工程师,那些还未写出的代码,那些还未被发现的定理。十亿大脑,十亿个可能。

窗外,一只黑鸢俯冲,抓起地上的一点什么,飞向高空。议会大厅里的辩论声嗡嗡作响,像一群困在玻璃罩里的蜜蜂。

二、机器人比赛与六轮奇迹

同一时间,孟买,印度理工学院。

机械工程系的老车间建于1962年,混凝土结构,高窗,屋顶是钢架支撑的波浪形石棉瓦。四月的孟买已经闷热,车间里更是如同蒸笼。但今天,这里挤满了人。学生、教授、记者、企业代表,还有从附近中学被邀请来观摩的优秀生,总共超过三百人,挤在车间中央临时清出的空地上。空气中弥漫着汗味、机油味、焊接残留的松香味,以及年轻人特有的亢奋气息。

Techfest机器人比赛决赛正在进行。这是IIT孟买年度科技节的重头戏,今年是第八届。比赛规则很简单:机器人在一个十米乘十米的场地内自主行进,避开障碍,捡起三个彩色球,放入指定颜色的桶中,然后返回起点。全程不能遥控,完全依赖预设程序和传感器。

赛场上,七台机器人正在“挣扎”——这是现场解说员用的词。他是一名电子工程系的大四学生,通过连接在破旧公共广播系统上的话筒喊话,声音因激动而变调:“看三号!三号又开始转圈了!它已经转了……我数数,二十八圈!二十九!它的设计者说用了陀螺仪,但看起来陀螺仪认为世界是个旋转木马!”

哄笑声。三号机器人的设计者——三个计算机系二年级学生——涨红了脸,冲进场地,手动把机器人抱起,关掉电源。他们的机器人有四个轮子,每个轮子都由独立电机驱动,本应能精准转向。但在现场灯光的干扰下,红外传感器把一切反光都当成了障碍,于是机器人不停转向,不停转向,直到一个轮子脱落。

“四号!四号成功了!它捡起了第一个球!”解说员尖叫。四号机器人是今年的夺冠热门,来自机械工程系研究生团队。它有一对精巧的机械臂,视觉系统用了从德国进口的CCD摄像头。它稳步前进,用机械臂夹起一个红色球,转向红色桶——

然后卡住了。机械臂悬在桶上方十厘米处,不动了。机器人的主板发出短促的蜂鸣,指示灯狂闪。

“程序死锁!”设计团队中的一人喊道,“内存泄漏!我告诉过你们要增加错误处理!”

“现在不是说这个的时候!”队长吼回去,“重启!”

但他们不能重启。规则禁止人为干预。他们只能看着自己的机器人僵在那里,像一尊现代雕塑。三十秒后,裁判举旗:四号,失败。

如此这般。五号在捡第二个球时翻车,六个轮子在空中徒劳转动。六号直接撞上障碍墙,前轮变形。七号最惨,刚出发就烧坏了电机,冒出青烟。

现在,只剩下二号。一台其貌不扬的六轮机器人,外壳是未经喷漆的原色胶合板,用螺丝和扎带固定。传感器是五个廉价的超声波模块,用热熔胶粘在四周。主板裸露,电线杂乱,但都用不同颜色的电工胶带仔细捆扎标记。它由三个三年级学生制造:阿琼,电子工程系;维克拉姆,机械工程系;普里娅,计算机系。他们自称“废品回收者”,因为机器人百分之八十的零件来自电子废品市场。

“看二号!”解说员的声音带着不确定,“它……它动了。很慢。非常慢。但它在动。”

确实在动。以大约每秒十厘米的速度,相当于人散步速度的五分之一。但它笔直。惊人的笔直。轮子与地面摩擦发出平稳的沙沙声,不像其他机器人那样有顿挫或偏移。它到达第一个障碍——一个三十厘米高的泡沫墙——停下,超声波检测,缓慢转向,绕开,然后恢复直线。完美。

“它绕过了!”解说员惊呼,“没有停顿,没有犹豫!它怎么做到的?”

阿琼在场地边,双手握拳,指甲陷进掌心。他不敢说话,怕打破什么咒语。他们的机器人没有用昂贵的陀螺仪或视觉系统,只用最便宜的超声波传感器。但维克拉姆设计了一套独特的算法:不用传感器直接控制转向,而是用传感器检测偏差,然后通过一个简单的PID控制器微调轮速。误差被限制在毫米级。代价是速度慢,但稳。

机器人到达第一个球——蓝色球。机械臂是普里娅设计的,用旧打印机拆下的步进电机驱动,夹爪是修改过的晾衣夹。它下降,夹起,抬起。球被稳稳抓住。

“它抓住了!”人群爆发出欢呼。不是为胜利——还早——是为这种简陋设备展现出的可靠性。

机器人继续前进。慢,但坚定。绕过第二个障碍,捡起第二个球。绕过第三个障碍,捡起第三个球。然后驶向三个不同颜色的桶。它需要将蓝球放入蓝桶,红球放入红桶,黄球放入黄桶。颜色识别是另一个难点。大多数团队用彩色摄像头,但他们用不起。普里娅想了个办法:在每个球的下方贴一小块反光胶带,在桶的对应位置安装红外发射和接收器。机器人不需要“看到”颜色,只需要检测反射。

蓝球入蓝桶。咔嗒一声,机械臂松开,球落入。红球入红桶。黄球入黄桶。每一次都精准,没有误判。

“它做到了!它做到了!”解说员几乎在尖叫,“二号机器人完成了所有任务!现在它正在返回起点!以它蜗牛般的速度,但它在返回!”

是的,它在返回。沿着进场时的路径,分毫不差。最后五米,人群开始倒计时:“五!四!三!二!一!”

机器人前轮压过起点线。蜂鸣器响起,比赛结束。

沉寂。然后,掌声、口哨、欢呼如海啸般爆发。阿琼、维克拉姆、普里娅冲进场内,拥抱他们的机器人,拥抱彼此。他们脸上是汗水、油污和泪水。他们赢了。用废品市场的零件,用自学的编程,用无数个不眠之夜,赢了那些拥有进口设备、教授指导、充足预算的团队。

裁判长——机械工程系的拉古拉曼教授——走过来。他六十多岁,白发,戴厚眼镜,穿着沾满粉笔灰的衬衫。他蹲下,仔细查看机器人,用手抚摸胶合板外壳,检查裸露的电路。

“超声波传感器,”他说,声音不大,但周围安静下来,“五个,总成本不到一千卢比。主控板是改造的旧单片机。电机是从报废录像机里拆的。轮子是玩具车的,你们重新打了孔。”

阿琼点头,喉咙发紧,说不出话。

“但你们的控制算法,”拉古拉曼教授抬头看他们,“是谁写的?”

“我们一起,”维克拉姆说,“阿琼负责硬件接口,普里娅负责运动逻辑,我……我做了数学模型。”

教授看了他们很久。然后他站起来,对全场说:“他们赢了,不是因为他们的机器人最快、最先进、最昂贵。他们赢了,是因为他们的机器人完成了任务。在工程领域,完成任务是唯一的标准。优雅是次要的,成本是次要的,甚至速度也是次要的。完成任务,是工程师的尊严。”

掌声再次响起,这次更持久。阿琼感到眼眶发热。他看向自己的队友,维克拉姆在哭,无声地,肩膀颤抖。普里娅在笑,但眼泪顺着脸颊流下。

就在这时,车间一角的收音机——那是值班员平时听板球比赛用的,今天开着播新闻——传出一则简讯:“最新消息,内阁今天下午通过了《国家科技人力资源发展纲要》,计划新增三所印度理工学院分校,地点待定……”

声音被欢呼淹没,但阿琼听到了。他看向队友,三人眼神交汇。他们在彼此眼中看到了相同的东西:一种确认。他们的胜利,他们的废品机器人,他们那些不眠之夜,突然与某种更大的东西连接在一起。他们的国家,正在尝试重视他们这样的人。

颁奖仪式很简单。冠军奖杯是一个铜制的齿轮,固定在木座上。奖金五万卢比,用信封装着。三人接过,手在颤抖。

人群逐渐散去。三人留在车间,开始收拾他们的机器人。他们需要把它拆解,零件要还给实验室(那些是借的),要清理场地。做这些时,他们沉默着,但有一种奇异的平静。

阿琼跪在地上,用螺丝刀卸下机器人的一个轮子。胶合板外壳上有许多划痕,那是测试时撞墙留下的。他抚摸那些划痕,突然说:“你们听到新闻了吗?要新增三所IIT。”

“听到了,”维克拉姆说,他正在整理电线,“会有更多像我们一样的人。”

“或者比我们更好的人,”普里娅说,她在擦拭传感器镜头,“用更好的零件,写更好的代码。”

“但我们是第一个,”阿琼说,声音很轻,“用这些废品,我们是第一个完成任务的。”

维克拉姆停下手中的活,看着他:“你觉得他们会记得吗?很多年后,当印度有了一百家IIT,当机器人比赛用上人工智能,他们会记得今天,记得这台用晾衣夹和废木板做的机器人吗?”

阿琼没有立即回答。他看着车间高窗外,孟买的天空正在暗下,第一批星星出现。车间里,只剩下他们三人,和那台已经被部分拆解的机器人。它静静地躺在水泥地上,轮子朝上,像一只死去的甲虫。简陋,粗糙,但就在几小时前,它完成了一项任务。

“不会,”阿琼最终说,“他们不会记得具体的机器人。但他们会记得,在1995年,在印度,有一群学生用废品造出了能工作的东西。他们会记得,在这个国家,有人用极少的东西,做了极多的事。这就够了。”

他站起来,把卸下的轮子放进工具箱。工具箱是铁的,锈迹斑斑,是他父亲传给他的,父亲是铁路工人。轮子落进工具箱,发出沉闷的金属碰撞声。

车间外,校园广播开始播放晚间音乐。是拉维·香卡的西塔琴,弦音如水流动。三人继续工作,拆卸,整理,清扫。冠军的喜悦已经沉淀,变成了一种更坚实的东西:确认。确认他们的路是对的,确认他们的国家,终于开始认真对待他们这样的人。

夜深了,他们离开车间,锁上门。阿琼最后回头看了一眼。在昏暗的光线中,那台被部分拆解的机器人躺在地上,轮子反射着远处路灯的微光。它完成了它的任务。明天,它会被完全拆解,零件归还,胶合板外壳可能被扔掉。但今天,它赢了。这就够了。

他们走在校园小径上,抱着工具箱和奖杯。远处,孟买的灯火如星河倾泻。这座城市,这个国家,正在缓慢地、笨拙地、但坚定地,转向一个新的方向。而他们,刚刚为这个转向,提供了一个微小的、确凿的证明。

三、食堂里的指针与数据结构

卡纳塔克邦,胡布利市郊。国立工程学院的食堂在下午两点半后进入一种奇特的中间状态:午餐的喧嚣已退,晚餐的准备尚未开始。铝制长桌被擦过,但表面仍残留着水渍和油渍。塑料凳子倒扣在桌上,像一群沉默的彩色甲虫。空气中悬浮着咖喱、炸油、汗水、廉价肥皂和湿水泥的混合气味——这是印度所有公立机构食堂的统一气味,一种贫穷但充满生命力的气味。

但每周一、三、五的下午三点,这种常态会被打破。食堂工友——两个中年男子,穿着沾满污渍的白围裙——会不情愿地将凳子从桌上取下,摆成歪斜的行列。他们会嘟囔,因为这会推迟清洁,但他们会做,因为这是系主任拉马钱德拉·赫格德教授的命令。

赫格德教授五十七岁,头发灰白蓬乱,络腮胡延伸到衬衣领口。他总穿着同一条深褐色灯芯绒长裤,膝盖处已被磨得发亮,露出底下帆布般的纹理。今天,他拖着一块可移动白板进入食堂。白板是他用系里报废的置物架和一块白色白板贴膜自制的,轮子坏了两个,他得倾斜着拖,白板刮擦水泥地面,发出刺耳的噪音。

“让开让开,”他对还在收拾餐具的几名学生挥手,“上课了!”

学生们匆匆将最后几口饭扒进嘴里,端着餐盘离开。赫格德教授将白板拖到食堂前端——那里原本是打饭窗口,现在窗口关闭,不锈钢卷帘门拉下,成了天然的“黑板”背景。他打开一个塑料袋,取出白板笔、板擦、和一沓用铁夹夹着的讲义。讲义是手写的,复印了五十份,纸张粗糙,油墨不均,有些字迹模糊。

三点五分,学生开始涌入。计算机科学系三四年级合上的“C语言数据结构与算法”,应到六十三人,实到五十九人。四人缺席,两人病假,两人未知。赫格德教授不点名,他说:“我的课,愿意学的自然来,不愿学的点名也没用。”

学生们找到位置。凳子不够,后来的学生从隔壁教室搬来方凳,或直接坐在窗台上。笔记本摊在膝盖上,或放在相邻两个凳子之间的缝隙。有人用书包当桌子,有人用硬纸板垫着。食堂没有课桌,这是最大的不便,但也是最大的平等:在这里,没有前排后排,没有好位置坏位置。所有人都得歪着身子,伸长脖子,在摇晃的凳子上保持平衡,记笔记。

赫格德教授开始讲课。今天的内容是链表和指针。他在白板上画了一个方框,里面写“data”,从方框引出一条线,线末端画一个箭头。

“这是指针,”他说,声音在空旷的食堂里回荡,“它不存储数据,它指向数据。就像……”他环顾四周,寻找比喻,“就像食堂的菜单。菜单本身不能吃,但它指向你能吃的食物。指针本身没有值,但它告诉你在哪里可以找到值。”

一个学生举手:“教授,指针为什么容易出错?”

赫格德教授看着他:“因为指针可以指向任何地方。可以指向有效数据,也可以指向垃圾,甚至可以指向虚空。如果你不小心,你的程序就会去不该去的地方找东西,然后……”他做出爆炸的手势,“崩溃。”

他转身,在白板上写代码。用蓝色笔画结构体定义,用红色画指针操作,用绿色画内存分配。颜色是他自己区分的,因为食堂光线不足,彩色能帮助区分。但问题是,食堂的日光灯管坏了三根,剩下的几根以不同频率闪烁,导致颜色在闪烁中变幻,有时蓝得像紫,红得像褐。

“看这里,”赫格德教授指着一段代码,“我们分配内存,用malloc。分配成功,指针指向一块内存。我们用完了,要释放,用free。但释放后,指针还指向那里吗?”

“指向。”几个学生回答。

“对,还指向。但那块内存已经还给系统,可能被其他程序用了。如果你再用指针去访问,就像……”他又在找比喻,“就像你吃完饭,把盘子还给食堂,但你还记着盘子的位置。第二天你去同一个位置拿盘子,但那个位置可能有别人的盘子,甚至可能有只老鼠。你拿了,就错了。”

学生们笑。赫格德教授不笑,他严肃:“指针错误是C语言里最危险的错误。它可能导致内存泄漏、数据损坏、安全漏洞。在银行系统里,一个指针错误可能让账户余额错乱。在航天系统里,可能让火箭偏离轨道。在我们这里……”他停顿,看着学生,“在你们未来的工作里,可能让公司损失百万卢比,可能让你被解雇。”

食堂安静下来。只有日光灯的嗡嗡声,远处厨房水龙头没关紧的滴水声,和某个学生肚子饿了的咕噜声——下午三点,午餐已消化,晚餐尚早。

赫格德教授继续。他写更复杂的代码:双向链表,循环链表,带头节点的链表。他画图,解释插入、删除、遍历。指针在图上飞舞,连接节点,断开又重连。白板上的图示越来越密,像一张蛛网。

“现在,问题。”赫格德教授放下笔,看着学生,“如果我们要在一个已排序的链表中插入一个新节点,步骤是什么?谁来写?”

一个女生举手。她叫阿南迪,三年级,来自农村,是家里第一个上大学的人。她走到白板前,接过笔,开始写。她的手在抖——不是紧张,是营养不良的轻微震颤。但她写的代码清晰,步骤正确。

“好,”赫格德教授点头,“但这里,第4步,你在插入前检查了指针是否为空吗?”

阿南迪愣住,回头看代码,脸红了:“没有。”

“没有。如果链表是空的,你的代码会访问空指针,然后崩溃。”赫格德教授不严厉,但坚定,“永远,永远检查指针是否为空。这是铁律。就像……”他又在找比喻,今天他特别需要比喻,“就像你进食堂,永远要先看看凳子是好的还是坏的。如果凳子腿断了,你一坐,摔倒在地。”

学生们又笑。这次赫格德教授也微微笑了。他的笑很浅,只是嘴角稍微上扬,但眼角的皱纹展开。他喜欢这些学生,尽管他们坐在食堂里,用膝盖当桌子,在咖喱味中学习指针。他们是他国家的未来,虽然这个国家现在只能给他们食堂当教室。

阿南迪回到座位。她坐下时,凳子腿发出吱呀声——那凳子确实有一条腿短了一截,她用纸垫着。赫格德教授看见了,没说话,但眼神柔和了一瞬。

课继续。讲完链表,讲栈和队列。赫格德教授用食堂打饭的队列做比喻:“队列是先进先出,就像排队打饭。你排第一个,你先拿到饭。栈是后进先出,就像……”他环顾,找不到合适比喻,最后说,“就像食堂堆起来的餐盘。最后放上去的,最先被拿走清洗。”

学生们点头。这些比喻不优雅,但实用。他们将记住,在未来的编程生涯中,每当用到队列,他们可能会想起食堂打饭的队伍;每当用到栈,他们可能会想起堆叠的餐盘。知识以这种方式嵌入记忆,与气味、声音、光线混合,永不褪色。

课到一半,意外发生。厨房里传来巨响——不锈钢大锅掉在地上,然后是厨师的咒骂。学生们惊得抬头,赫格德教授停顿,等噪音过去,然后继续,声音提高:“所以,当我们用数组实现栈时,必须注意上溢和下溢。上溢就像……”他看向厨房,“就像食堂的锅装得太满,饭溢出来。下溢就像锅空了,你还想舀。”

学生们笑,但这次笑声中有理解。他们懂了。上溢,下溢。锅满了,锅空了。简单,直观。

课继续进行。指针,内存,链表,栈,队列。概念一个个抛出,代码一行行写下。赫格德教授的笔迹时而工整时而潦草,取决于他面对学生的理解程度。当他看到困惑的脸,他会写得更慢,更详细。当他看到领悟的眼,他会加快,进入更深的内容。

日光灯在闪烁。一只麻雀从破了的窗户飞进来,在横梁上停留,歪头看下面的人类,然后飞走。食堂的挂钟指向四点半,钟是坏的,指针永远停在三点二十,但所有人都知道时间,因为光线在变化,西晒的阳光从百叶窗斜射进来,在水泥地上投下条纹状的光影。

最后,赫格德教授布置作业:用C语言实现一个链表,完成插入、删除、查找、排序。要求写注释,测试边界条件,提交可运行代码。

“下周一交,”他说,“纸质版和软盘。没有打印机的人,可以手写代码,但必须工整。”

学生们记下。有人低声抱怨打印机又坏了,有人商量去网吧打印,有人决定手写。

赫格德教授开始擦白板。他擦得很仔细,先擦字,再擦图,最后擦角落的演算。白板渐渐恢复空白,只留下淡淡的笔迹残影,像记忆的痕迹。

学生们收拾东西,离开。食堂又空了,只剩下倒扣的塑料凳子,空气中的粉笔灰,和渐渐散去的咖喱味。赫格德教授将白板拖到墙角,收起笔和板擦,将剩下的讲义装回塑料袋。他站着,看着食堂。夕阳的光从百叶窗斜射进来,照亮空气中飞舞的尘埃。那些尘埃在光柱中旋转,上升,下降,像指针在内存中游走。

他想起自己年轻时,在苏联留学。莫斯科大学,冬天,零下二十度。教室温暖,设备先进,教授是世界级的。他学编程,用穿孔卡片,一排排机器,绿灯闪烁。那时他想,总有一天,我要把这一切带回印度,在我的国家,教我的学生。

现在他在印度,在胡布利市郊,在食堂里,用自制的白板,教指针和数据结构。学生们坐在摇晃的凳子上,用膝盖当桌子,在饥饿和嘈杂中学习。这不是他年轻时想象的样子。但也许,这才是真实的样子。真实的教育,不在温暖的教室,不在先进的设备,而在渴望学习的眼睛,和不放弃教学的心。

他提起塑料袋,走出食堂。外面,天色渐暗,校园路灯亮起,昏黄的光晕染开。远处传来学生打篮球的声音,球撞击水泥地的砰砰声,奔跑的脚步声,年轻的呼喊声。

赫格德教授走向他的办公室。那是一个小房间,堆满书和论文。他将批改作业,准备明天的课,写研究报告。日子一天天过,课一周周上。指针,链表,栈,队列。循环,递归,排序,查找。基础知识,永远的基础。没有这些,一切高楼都是沙上城堡。

他打开办公室的门,开灯。灯管闪烁几下,亮了。他坐下,从塑料袋里取出学生的作业,开始批改。第一份是阿南迪的,上次的作业,关于数组。她的代码整洁,注释清楚,但有一个边界错误。赫格德教授用红笔圈出,在旁边写:“检查下标是否越界。永远记住,数组从0开始,到n-1结束。就像食堂的窗口,第一个窗口是0号,最后一个窗口是n-1号。没有n号窗口。”

他写完,停笔。看着那个比喻,他笑了笑。然后继续批改下一份。

窗外,夜色完全降临。食堂的灯灭了,厨房的水龙头修好了,滴水声停止。校园沉入夜晚的安静,只有赫格德教授办公室的灯还亮着,像一艘夜航船上的孤灯,在知识的海洋中,缓缓前行。

四、实训室与父亲的领悟

浦那,辛贾瓦迪工业区。废弃纺织厂的细纱车间,现在成了印孚瑟斯与浦那理工学院合作的产学研实训基地。

拉梅什·奈克第一次走进这里时,以为走错了地方。他想象中的企业实训室应该是明亮的办公室,隔间,电脑,空调。而这里:高挑的厂房空间,裸露的砖墙,生锈的钢梁,空气中悬浮着陈年棉絮和机油的混合气味。只有那些成排的计算机工作站,提示这里的功能已改变。

工作站是Sun SparcStation,银灰色外壳,17英寸CRT显示器,键盘厚重。总共一百台,分成十排,每排十台。所有机器通过头顶的钢木走道布线联网,网线如藤蔓垂挂。最前方,一块白板上写着本周任务:完成供应链管理系统的库存模块。

拉梅什是浦那理工学院计算机系四年级学生,来自普通家庭,父亲是铁路信号工。他是通过激烈竞争被选入这个实训项目的:两百人申请,二十人入选。他以为这是荣誉,现在他开始怀疑。

第一天,实训主管——一个三十出头、曾在硅谷工作三年的工程师——给了他们每人一个账户和密码。“登录,”他说,“你们的第一个任务:在本地环境搭建完整的开发工具链。包括操作系统、编译器、版本控制系统、测试框架。文档在内网,自己看。三天后检查。”

学生们坐下,开机。拉梅什输入账户密码,进入系统。屏幕是UNIX命令行,黑色背景,绿色字符。他学过UNIX,但只在课本上学过。实际用,这是第一次。

他找到文档,开始阅读。文档是全英文,专业术语密集。他查字典,做笔记。第一步,安装操作系统补丁。他键入命令,等待。进度条缓慢移动,10%,20%……然后报错:依赖缺失。

他重新读文档,发现漏了一步。重来。又是漫长等待,再次报错:权限不足。他举手问主管,主管过来,键入一行命令,解决了。“仔细读文档,”主管说,“每一步都有原因。”

拉梅什点头,脸发热。他是系里前十名,但在这里,他像个文盲。

第一天结束,他只完成了环境搭建的十分之一。回宿舍,他继续,熬夜到凌晨两点。第二天,他遇到更棘手的问题:版本控制系统。他从未用过。文档说,这是团队协作的基础。他学,试,失败,再试。第二天结束,他完成了三分之一。

第三天,他遇到最难的:测试框架。他写了一个简单程序,试图运行测试。失败,失败,再失败。错误信息模糊,他上网搜索,但那时互联网刚起步,资料极少。他问同学,同学也在挣扎。最后,他去问主管。

主管没直接解答,而是问:“错误信息是什么?”

“Segmentation fault。”

“在哪儿?”

“运行到第45行。”

“第45行是什么?”

“一个循环。”

“循环里有什么?”

“数组访问。”

“数组下标?”

“i从0到n-1。”

“n是多少?”

“数组长度。”

“数组长度是多少?”

“10。”

“你分配了多少内存?”

拉梅什愣住了。他查看代码,发现他只分配了9个元素的空间。他脸红了:“我……我少了一个。”

主管点头:“这就是问题。内存错误。在C语言里,这是最常见的错误,也是最危险的。在真实项目里,这样一个错误,可能导致系统崩溃,数据丢失,客户投诉。你运气好,只是测试框架报错。在真实环境,可能直接宕机。”

拉梅什修改代码,重新运行。测试通过。他松了口气,但主管说:“还没完。这只是单元测试。还有集成测试,系统测试,压力测试。继续。”

三天后,检查。二十名学生,只有八人完成了完整的环境搭建。拉梅什是其中之一。主管宣布下一阶段任务:加入真实项目组,修复bug。

拉梅什被分配到一个正在为美国零售企业开发供应链管理系统的项目组。他的导师是项目组的资深工程师,一个沉默寡言的中年人,给他一个清单:“这是十个未解决的bug。优先级从高到低。你先看最高的三个,尝试修复。代码在版本控制系统里,自己拉取,自己构建,自己测试。有问题先查文档,再问同事,最后问我。”

拉梅什点头。他登录系统,拉取代码。代码库庞大,超过十万行。他花了半天时间只是浏览目录结构,理解模块关系。然后他开始看bug报告。

第一个bug:库存数量偶尔显示为负数。发生在高并发场景。报告附有日志,但日志不完整。拉梅什读代码,相关模块是库存更新逻辑。他写测试程序模拟并发,但自己的机器性能有限,模拟不出生产环境的压力。他去问同事,同事说:“你需要用性能分析工具。”

他学工具,用工具,分析。发现问题是线程同步缺陷:两个线程同时更新同一库存项,一个读,一个写,没有加锁,导致脏读。他修复,加锁,测试。通过。

第二个bug:订单状态有时不更新。发生在网络超时后。拉梅什查代码,发现状态更新是异步的,但错误处理不完整:网络超时后,状态回滚,但日志记录不准确,导致后续处理出错。他修复,完善错误处理,测试。通过。

第三个bug:最棘手。报告说,在特定条件下,系统内存缓慢增长,最终耗尽,导致崩溃。条件不明确,只说“长时间运行后偶尔发生”。拉梅什用内存分析工具监控,运行测试程序,但测试程序无法重现。他尝试了三天,无果。

第四天,他决定换个思路。他仔细阅读所有相关代码,一行行读,做笔记。他发现一个函数:每次调用,会在堆上分配一小块内存,但只在某些路径下释放。如果走另一条路径,内存不释放。这块内存很小,每次泄漏几KB,但系统长时间运行,成千上万次调用,累积起来就很可观。

他修复,确保所有路径下内存都释放。然后他需要验证。但如何验证?内存泄漏在测试环境难以重现,因为测试运行时间短。他写了一个脚本,循环调用该函数十万次,监控内存。运行,内存稳定,不增长。他确信找到了问题。

提交代码,等待评审。导师看了他的修改,问:“你确定所有路径都覆盖了?”

“我分析了代码,所有条件分支都考虑了。”

“测试过了?”

“单元测试通过,压力测试通过。”

导师沉默,然后说:“好。但记住,在软件工程里,没有‘应该没问题’。只有‘证明没问题’。你证明了吗?”

拉梅什想了想:“我写了测试,模拟了十万次调用。内存不增长。”

“十万次不够。生产环境可能运行几个月,调用数百万次。你的测试只能增加信心,不能证明。”

“那怎么证明?”

“无法完全证明。这就是软件工程的本质:基于有限测试的合理信心。但我们可以增加信心。写更多测试,覆盖更多边界情况。然后,提交代码,我会合并。但你要知道,你的代码现在进入了真实系统。如果出问题,会影响真实客户。你准备好承担责任了吗?”

拉梅什感到脊背发凉。他从未想过,几行代码,可能影响远在万里之外的商店的库存,影响供应链,影响企业运营。他点头:“我准备好了。”

代码被合并。几天后,bug报告关闭。没有欢呼,没有奖励,只是状态从“打开”变为“已解决”。但拉梅什感到一种奇异的满足。他修复了真实系统的真实问题。他的代码,现在运行在某个美国的服务器上,处理着真实的订单。

实训继续。他修复了更多bug,学习了更多工具,参与了代码评审,甚至提交了一个小功能。他开始理解软件工程不是写代码,而是解决问题。是理解需求,设计方案,实现,测试,调试,交付,维护。是一个循环,永无止境。

八周实训结束。最后一天,主管召集所有人,宣布结果。二十人,八人获得印孚瑟斯的录用通知。拉梅什是其中之一。通知信是纸质,装在信封里。他接过,手在抖。

当晚,他回家。家在浦那的老城区,两层小楼,父亲曼格什·奈克在铁路公司工作三十年,刚刚退休。母亲是家庭主妇。弟弟还在上学。

他把通知信给父亲。父亲戴上老花镜,仔细读。读得很慢,每个词都默念。读完,他把信纸翻过来,看背面,又翻回来,看正面。然后他摘下眼镜,用衬衫下摆擦拭镜片,很久。

“印孚瑟斯,”父亲说,声音平稳,“是那个软件公司?”

“是。很大的公司,做软件外包,客户在美国。”

“工资多少?”

拉梅什说了数字。父亲沉默。那数字是他退休金的三倍。

“要签合同?”

“是。三年。”

“三年后呢?”

“可以续,或者去其他公司。”

父亲点头。他把通知信放在膝盖上,用手压平。窗外,天色渐暗,邻居家传来电视声,是宝莱坞电影的音乐。

“我修了三十年铁路信号,”父亲缓缓说,眼睛不看儿子,看窗外,“从机械信号,到电气信号,到电子信号。信号臂,色灯,继电器,轨道电路。我保证火车不撞车,不脱轨,准时到站。”

他停顿,拿起桌上的茶杯,喝了一口冷茶。“信号工的工作,是看得见的。信号臂举起,放下。灯变红,变绿。继电器咔嗒响。你看到它在工作,听到它在工作。如果坏了,你打开箱子,看到烧焦的电路,断了的线,生锈的接点。你修,换零件,测试,好了。你看到结果。”

他又喝一口茶。“你的工作,是修计算机里面的问题。我看不见。你在修什么?代码?代码是什么?是写在纸上的字?是屏幕上的光?它坏了,怎么看?怎么知道修好了?”

拉梅什想解释,但父亲抬手制止。

“我不需要懂,”父亲说,“我只是想说,我修了三十年看得见的机器,你修看不见的机器。我修的机器,载人,载货,从一个城市到另一个城市。你修的机器,载信息,从世界这边到那边。我修的机器,坏了,火车停,人等着。你修的机器,坏了,信息停,人等着。一样,又不一样。”

他放下茶杯,拿起通知信,又看了一遍。“工资是我的三倍。为什么?因为我修的是铁,是铜,是电。你修的是……是什么?是想法?是逻辑?为什么修想法的,比修铁的值钱?”

拉梅什不知如何回答。父亲也不需要他回答。

“时代变了,”父亲说,把通知信还给他,“我修的东西,越来越旧,越来越少人需要。你修的东西,越来越新,越来越多人需要。这就是进步。但进步不是免费的。你要学新东西,一直学。我学一种信号系统,可以用十年。你学一种……编程语言,能用几年?”

“三五年吧。技术在变。”

“三五年。”父亲重复,摇头,“那你要一直学,学到老。”

“是。”

父亲看着他,看了很久。然后他站起来,走到柜子前,打开,取出一个小铁盒。铁盒锈迹斑斑,是装饼干的。他打开,里面不是饼干,是各种零件:旧保险丝,小螺丝,线头,焊锡。他在底层摸索,拿出一个用油纸包着的东西。打开,是一枚勋章。

“铁路公司发的,”父亲说,把勋章放在儿子手里,“服务三十年,安全无事故。铜的,不值钱。但每次火车安全通过我维护的信号区,我就觉得,这勋章有点用。”

勋章躺在拉梅什手心,冰凉,沉重。正面是铁路标志,背面刻着父亲的名字和年份。

“你也会有勋章,”父亲说,“但不是这种。是你的代码运行在别人的机器上,不出错。是你的名字在……版本控制系统里,被人看到。是你的工作,让人看不见,但用得到。这是你的勋章。”

拉梅什握紧勋章,边缘硌手。他点头,说不出话。

父亲拍拍他的肩,很轻。“去吧。修好那些看不见的机器。让信息跑得比火车快。这就是你的工作。我的工作结束了,你的刚开始。”

那天晚上,拉梅什躺在床上,握着那枚勋章。他想父亲的话。他想信号臂举起放下,色灯红绿变换,继电器咔嗒响。他想代码在服务器上运行,数据在网线中流动,信息从浦那到加州,从印度到美国。他想,父亲修了三十年铁路信号,保证了成千上万列火车的安全。他将要修的,是另一种信号,另一种轨道,另一种交通。

他闭上眼睛。黑暗中,他看到代码在流动,绿色的字符,黑色的背景。他看到bug报告,测试用例,内存分析。他看到自己提交的代码,被合并,被构建,被部署,运行在远方的服务器上,处理着真实的订单,影响真实的世界。

他想,这就是他的路。从浦那理工学院,到纺织厂改造的实训室,到印孚瑟斯的真实项目,到未来。路还长,但他开始了。带着父亲的勋章,带着对看不见的机器的责任,开始了。

窗外,火车经过,汽笛长鸣。那是父亲修了三十年的信号所指引的火车,载着人,载着货,在铁轨上奔跑,从过去驶向未来。而在这栋房子里,一个新的修理工已准备好,去修理另一种轨道,另一种奔跑。

夜更深了。火车声远去,城市沉入睡眠。只有计算机屏幕的光,在无数个房间里亮着,绿色的字符在黑色背景上流动,像信号灯,在数字的黑夜中,指引着不可见的交通。

五、归国者与雨夜断电

班加罗尔,1995年雨季。雨已经下了三天,没有停的迹象。不是倾盆大雨,而是绵密、持久、无孔不入的雨,从低垂的灰色云层中均匀洒下,浸透一切。街道成了河流,低洼处的房屋进水,老城区的排水系统彻底崩溃,污水和雨水混在一起,在狭窄的巷子里流淌,散发出复杂的气味。

阿比吉特·达斯坐在半栋老民房改造的办公室里,盯着屏幕。这是一台Sun SPARCstation 20,他从美国海运回来的二手服务器,花了他积蓄的三分之一。机器到的时候,外壳在运输中撞凹了一块,他用螺丝刀撬,用锤子轻敲,现在凹痕还在,但至少不划手了。

屏幕上是代码。他正在写印度第一个本土电商网站的后端支付网关接口。不是完整的电商网站——那太庞大——而是网关,核心中的核心,安全、可靠、能处理交易。他已经连续工作了七十二小时,期间只睡过几次,每次不超过两小时。睡在从旧货市场买来的行军床上,床脚用砖垫平,因为地面不平。

他的合伙人维斯瓦纳坦蹲在水泥地上,修复被老鼠咬坏的网线。老鼠是雨季的常客,它们从墙缝钻进来,寻找干燥和食物。昨晚,它们咬断了三根网线,一根电源线。维斯瓦纳坦用电烙铁修补,松香的焦味混着潮湿的空气,形成一种奇特的、属于初创公司的气味。

“好了吗?”达斯问,眼睛没离开屏幕。

“快好了。”维斯瓦纳坦说,声音因嘴里咬着焊锡而含糊。他三十岁,从未离开过印度,英语带浓重的卡纳达语口音,但代码写得干净利落。他是达斯在IIT马德拉斯的同学,毕业后一直在本地小公司工作,直到达斯从硅谷回来,找到他,说:“我们创业吧。”

创业。这个词在1995年的印度,听起来像梦话。但达斯相信。他在硅谷六年,看到互联网如何改变一切。他看到网景上市,看到雅虎崛起,看到亚马逊卖书。他想,为什么印度不能有?为什么印度人不能在网上买东西?

所以他回来了。带着积蓄,带着经验,带着一个想法。维斯瓦纳坦辞了工作,加入他。他们租了这半栋老民房——房东住在另一半,是个退休教师,耳朵有点背,不介意他们深夜敲键盘。他们买了二手服务器,拉了电话线,申请了VSNL拨号上网。开始了。

“网关的加密模块,”达斯说,敲击键盘,“我用的是RSA,但密钥交换部分有问题。在测试环境通过,但一到生产环境就失败。”

“日志呢?”维斯瓦纳坦问,放下烙铁,吹了吹焊点。

“日志显示握手失败,但没细节。我怀疑是网络延迟导致的超时,但重试机制也没用。”

维斯瓦纳坦站起来,走到达斯身后,看代码。他个子不高,微微驼背,因常年蹲着修东西。他看了几分钟,说:“这里,你假设对方服务器会在三秒内响应。但印度网络,三秒可能不够。而且VSNL的拨号连接,延迟不稳定。改成十秒,加指数退避。”

达斯想了想,点头。他修改代码,重新编译。编译要几分钟,他靠在椅背上,闭眼。疲倦如潮水涌来。七十二小时不睡,他的眼球在眼皮下跳动,太阳穴抽痛。但他不能睡。他们的钱只够撑三个月。三个月内,必须做出可演示的原型,找到投资,否则就得关门。

编译完成。他部署到测试服务器,运行脚本。屏幕滚动日志,绿色字符闪烁。握手开始,1秒,2秒,3秒……5秒,成功。加密通道建立,数据开始传输。

“好了,”达斯呼出一口气,“延迟容忍。指数退避。我怎么没想到?”

“因为你在硅谷呆久了,”维斯瓦纳坦回到他的位置,继续修网线,“那里网络好,三秒足够。这里,什么都慢,什么都可能断。你要假设最坏情况:网络会断,电会停,老鼠会咬线,雨季会淹服务器。然后写代码。”

达斯苦笑。是的,印度。网络不稳定,电力不稳定,一切都不稳定。但正是这种不稳定,逼出了某种韧性。在硅谷,他写代码,假设千兆带宽,不同断供电,恒温机房。在这里,他写代码,假设拨号连接,随时断电,服务器泡在水里。两种代码,两种哲学。

窗外,雨声变大。不是雨点声,而是雨砸在铁皮屋顶、塑料布、水泥地上的混合交响。班加罗尔的雨季,有一种摧毁一切的气势。但在这摧毁中,又有一种奇异的生命力:植物疯长,青蛙鸣叫,一切被洗刷,被更新。

突然,灯灭了。屏幕黑了。服务器风扇的嗡鸣停止。一切陷入黑暗,只有维斯瓦纳坦的电烙铁还亮着一点橙红,但很快也暗下去。

停电了。

“又不,”达斯说,声音平静。习惯了,三天停了八次。

维斯瓦纳坦在黑暗中摸索,找到蜡烛和火柴。划亮,点燃。烛光照亮一小圈:旧木桌,屏幕已黑的服务器,散落的网线,吃了一半的萨摩萨——那是邻居孩子满月派对送的,冷了,油凝在表面。

烛光摇曳,在墙上投出巨大的影子。达斯看着服务器,那台他从美国运回来的机器,现在成了黑暗中的一块废铁。他想,在硅谷,有不同断电源,有发电机,有备用电网。在这里,只有蜡烛,和等待。

“写到哪儿了?”维斯瓦纳坦问,坐在地上,背靠墙。

“支付网关的加密握手,刚调通。”

“保存了吗?”

“自动保存每五分钟一次。但最后一次是四分钟前。可能丢了一点。”

维斯瓦纳坦点头,从地上捡起一个冷萨摩萨,掰开,吃。土豆馅已干,但他嚼得仔细。“电会来的。每次都来。”

“但每次停,我们就耽误几小时。三个月,很快就过去了。”

“那就别耽误。电来了,继续。电不来,想。脑子又不用电。”

达斯笑了。维斯瓦纳坦总是这样,务实,冷静。他是那种在绝境中也能找到出路的人。一次,他们的服务器硬盘坏了,数据丢失。维斯瓦纳坦拆下硬盘,用各种工具尝试修复,最后竟恢复了大部分数据。他说,是他父亲教的——他父亲是修收音机的,什么都能修。

“你在想什么?”维斯瓦纳坦问。

“想硅谷,”达斯说,看着烛光,“想那里的办公室,窗明几净,零食免费,咖啡机永远有咖啡。想那里的网络,千兆光纤,从不断线。想那里的投资人,听你讲十分钟,就写支票。”

“那为什么回来?”

达斯沉默。为什么回来?因为硅谷再好,是别人的。代码写得再漂亮,产品再成功,是为别人的公司,别人的国家。他在那里六年,升了职,加了薪,拿了绿卡。但他还是觉得,自己是客人,是外来者。他的皮肤颜色,他的口音,他的文化,永远提醒他,你不属于这里。

他想做点什么,在自己的国家,为自己的同胞。他想证明,印度人不仅能写代码,还能创造产品,还能创业,还能改变。也许幼稚,但他三十一岁了,还想幼稚一次。

“因为这里需要,”他最终说,“硅谷不需要另一个电商网站。但印度需要。印度有十亿人,有商店,有商品,有买家,有卖家。但他们被距离隔开,被信息隔开。互联网能连接他们。我想建那座桥。”

维斯瓦纳坦吃完萨摩萨,舔舔手指。“桥会有的。但先要有电。”

他们笑了。笑声在黑暗的房间里回荡,被雨声吞没。

电没来。雨继续下。蜡烛烧短了一截,蜡油滴在桌上,凝结成不规则的形状。达斯看着那形状,想起小时候,他家也常停电。母亲点蜡烛,他在烛光下写作业。那时他想,什么时候才能永远有电?现在他长大了,从美国回来了,在创业,但还是在烛光下工作。

有些东西,变得很快。互联网,计算机,代码。有些东西,变得很慢。电力,道路,雨季。印度就在这快与慢之间,拉扯,撕裂,生长。

突然,灯闪了一下。屏幕亮了一瞬,又灭。维斯瓦纳坦坐直:“来了。”

又闪。这次更久。风扇开始转,又停。第三次,灯亮,屏幕亮,服务器嗡鸣。电来了。

“四十二分钟,”维斯瓦纳坦看表,“比上次短。”

达斯已经回到屏幕前。服务器启动,系统自检,服务恢复。他打开代码编辑器,最后自动保存的时间是断电前四分钟。丢了一些,但不致命。他继续写,手指在键盘上飞舞。

维斯瓦纳坦吹灭蜡烛,继续修网线。电烙铁重新加热,松香味又起。雨还在下,但已不重要。电来了,工作继续。

凌晨三点,支付网关的核心模块完成。达斯运行完整测试,一百多个测试用例,全部通过。他靠在椅背上,长长吐出一口气。维斯瓦纳坦走过来,看屏幕,点头。

“可以演示了,”他说,“给投资人看,够了。”

“还差前端。”

“前端我做。你给我设计。”

达斯点头。他站起,走到窗前。雨小了,成了毛毛雨。窗外,班加罗尔在沉睡,只有零星灯火。远处,城市的轮廓在雨中模糊,像一幅未干的水彩画。

他想,这就是他的国家。古老,混乱,充满问题。但也充满可能。十亿大脑,十亿个梦想。互联网来了,连接开始了。会有电商,会有社交网络,会有搜索,会有一切。但首先,要有电,要有网,要有代码,要有像他和维斯瓦纳坦这样的人,在雨夜,在烛光下,在断电和复电之间,写下一行行指令,建起一座座桥。

他回到桌前,关机。服务器嗡鸣停止,屏幕暗下。房间重归黑暗,只有街灯的光从窗户透入,微弱,但足以看清轮廓。

“睡吧,”维斯瓦纳坦说,已在行军床上躺下,“明天继续。”

达斯躺上自己的床——那是两张旧办公桌拼成的,铺了薄垫。硬,但能睡。他闭上眼睛,听雨声。雨落在铁皮屋顶,落在酸角树叶,落在水洼,落在班加罗尔无数个这样的夜晚。

他想,明天,电可能还会停,网可能还会断,老鼠可能还会咬线。但他们会继续。写代码,修东西,建桥。直到桥建成,直到十亿人能在上面相遇,交易,交谈,连接。

直到印度不再是地理,而是网络中的一个节点,一个活跃的、生长的、不可忽视的节点。

他睡着了,梦里有绿色的代码在黑色的背景上流动,像雨,像河,像即将到来的一切。

七律·第1497章

重教兴邦育俊英,理工学府竞相增。

编程研码精微术,校企联培实干能。

百万英才储国力,无边智慧化鹏程。

人才基石撑科技,引领风骚举世惊。

设置
作品详情 加书架
章节进度
评论 (0条)
评论加载中...
0/1000
作品封面 正序
目录加载中...
加书架
上一章 目录 下一章