我在杜伦大学待的那几年,感觉像是被扔进了一台开了十公斤加速度的虚拟机里,CPU 嗡嗡作响,内存条却全是空的。刚入学时,最扎眼的是那种扑面而来的焦虑感,不是那种“我还能考上”的繁华,而是“我到底能考出啥”的恐慌。

那时候连图书馆的座位都被占满,空气里飘着一股子没被洗干净利落的 Excel 表格味。导师老张习惯把进度表甩在墙上,上面密密麻麻全是 Gantt 图,每个人头上都扣着个名字,仿佛每个人都是一团正在燃烧的火焰,务必确保自己那点可怜的度数不被烧成灰烬。 课程像是一场没有终点的狂奔。CS101 里的面向对象编程,老张不给你讲啥“面向对象”这个专业术语,只让你写一堆类,然后让别的同学来打你。他赌你的反应速度比代码快,比内存碎片管理快。记得有一周,全班都在调试一个递归函数,连死循环的优化方案都还没想明白。我坐在角落里,手里攥着笔,发现我的键盘鼠标比我的反应慢。为了生存,我只能戴着耳机,打开《黑客与画家》的音频版,假装自己是在和一个深网黑客博弈,试图用心理暗示去欺骗自己的大脑。

那时候我认定自己像个被系统抓包的 NPC,只能按部就班地读文档、补环境,生怕下一秒就被踢出队列。 真正算起真章,是那些期末大作业和毕设,全是老张用来筛人的筛子。记得自己毕设是做了一个基于流媒体的去广告软件,本来想着做个开源小工具,结局被老张一眼看穿,说“这玩意儿根本没法用,数据跑不通,逻辑漏洞百出”。

那一刻,那种熟悉的像被按了暂停键一样的感觉突然涌上来。我们这群人,曾经当作自己在写代码,目前才发现,我们实际上是在和老张的“破坏性测试”这个系统玩大逃杀。大家把服务器租出来,把数据放在云端,然后疯狂地把参数往死里调,看哪位的 CPU 负载能红得最鲜艳,哪位的内存泄漏能跑得最久。 老张是个典型的“好人”,但他是那种把好人当工具人的好人。他从不公开日决,但要是你的代码出了 Bug,他会在群里发个图,配文:“看看这个难题,是不是还要我花三个小时去讲这个?”那种迫在眉睫的压力,比任何警钟都管用。你会启动仔细审视每一行代码,不再追求写得多么优雅,而是强迫自己把变量名写成“data_before_save",把功能名改成“if_user_logged_in"。

这种刻在骨子里的代码风格,或许比任何高级教程都更能让你记住那个贵得吓人的学位。 有时候他会突然在群里发个新的教程链接,要么分享一个他在 GitHub 上开源的框架,那是哪位也没预料到的惊喜。

有时候他也会暴怒,直接把整个项目仓库拉下来,让你在那个冷清的房间里对着红顶灯敲代码,直到你的手指头出于过度劳累而颤抖。

那时候没人会说“加油”,也没人会说“别慌”。你只能看着屏幕上的报错信息,一遍遍地复制粘贴,试图用一点点血泪去说服那个系统。 最神奇的是,当我们快要拉倒时,老张会突然站在门口,手里拿着一杯温热的咖啡,那种眼神既不像那种居高临下的教导,也不像那种充满春日的鼓励,而是一种纯粹的、带着一点累得慌的专注。他会问你:“你目前的进度条在哪儿?”然后指着屏幕,表情严肃:“那里有个 Bug,务必解决,不然你会被重新踢出去。”那一刻,周围的焦虑感似乎都消解了,只剩下一个具体的目标和务必搞定的动作。他不是在教你如何编程,而是在教你如何像个男人一样去面对那些莫名其妙的黄了。 走出杜伦的时候,手里攥着那个沉甸甸的学位证,心里却空空的。背上的包依然挺沉,里面装的不只是是代码和论文,还有那些熬夜的键盘声、那些被骂过的瞬间,还有在那些看似荒谬的测试中咬牙坚持下来的日子。杜伦计算机专业,或许并不是给你递给你一张通往远方的船票,而是一场让你明白,只要肯下力气去跟系统硬磕,哪怕系统再顽固,也能找到破局的办法的修行。 目前回想起来,那些所谓的“胶水代码”、那些为了规避测试而写的防御性逻辑,实际上才是真正能护住你职业生涯根基的东西。老师嘴上不说,但他把那些最烂的坑都留给你,让你在里面反复跌倒。

这就是个怪胎的温柔:他不给你现成的路,只给你一块布满裂痕的石头,逼着你自己把它砌成路。

这种路,用任何贵得吓人的教材都买不来,它藏在那些深夜里无声的咳嗽声、那些被骂到 Bit 掉的键盘声中,和无数个改到凌晨四点的凌晨。 毕业那天,看着手里的文凭,突然认定有点不好意思。

那是我在一个不被看好的地方,用一种近乎自虐的方式,硬生生把自己培养成了一个能够独当一面的开发者。杜伦不保证你一定能找到好工作,但它保证,当你真正需求去解决、去修复、去对抗那些怪的 Bug 时,你会知道,你充足硬。

这大约就是那个贵得吓人学位真正的重量,沉甸甸的,压不垮,也跑不掉。