记18年的人生旅程:高考落幕,在遗憾、幸运与折腾中走向下一站
写在18岁之后
不知不觉,我已经 18 岁了。
准确来说,我是 2008 年 6 月 23 日出生的。按照前几年的习惯,这篇文章本来应该在 6 月 10 日左右开写:2024 年的 16 岁总结是 6 月 10 日开始写的,2025 年的年度总结是 6 月 9 日开始写的。今年 6 月 9 日高考结束,6 月 10 日对一个选物化技的浙江考生来说已经没有考试了,怎么看都应该立刻开工。
结果新电脑到了,要迁环境、调系统、做编程,To Do List 又排得满满当当。等我真正坐下来录第一段语音时已经是 7 月 7 日;录着录着,温州肯恩大学的录取结果又出来了。于是这篇“18 岁生日总结”一路拖成了一篇在 18 岁之后才完成的总结。嗯,很符合我过去叫“砂纸鸽”时的传统——“鸽”本来就是“咕咕咕”、总会拖一拖的意思(虽然现在已经改名洛元了)。
这里的 To Do List 并不是一句夸张。2025 年 3 月,我真的在博客里公开列过三十多项想做的东西:AI 漫画检索、语音知识库、Xreal 空间交互、AMLL 镜像站重构、3D 打印自动换料、大学团队建设……其中 Immich 家庭相册已经落地,AI 漫画检索、Venera 相关工具和 Xreal 项目也都至少动过手,当然还有更多项目至今只停留在一行文字里。我的问题从来不是没有想法,而是想法太多,时间和精力根本不够分。
和去年一样,这篇文章先由我把记得的事情全部讲出来,再借助 AI 整理。但经历、判断和那些不太体面的细节都是真的,我也会逐段检查。AI 可以帮我把重复的“然后”收一收,却不能替我拥有这 18 年。
这一次,我想先把 2025 年 6 月到 2026 年 7 月讲完,再回到 2008 年,从头补一遍那篇写得有些匆忙的《记 16 年的人生旅程回顾与反思》。两年前,我给 18 岁的自己留了四个问题。现在终于轮到我回答了。
从一次“通过”开始的高三
上一篇年度总结停在 AdventureX 的申请还没有结果。2025 年 6 月 23 日,也就是我 17 岁生日那天,我收到了通过审核的消息。
现在回头看,入围本身甚至比最后拿不拿奖更重要。那段时间大概是我高中阶段的低谷:项目没有做成,成绩在往下掉,我也不断怀疑过去几年的折腾到底有什么意义。AdventureX 给我的第一个回答不是奖项,而是“你可以来”。有人看完我的经历,认为我值得出现在这里。这种被认可、被需要的感觉,正是当时的我一直在找的东西。
7 月我去了杭州参加比赛。团队最后决定做一个带有“软性 PUA”心理学元素的 AI To-Do List,但前两天一直在改方向,排期和理念也没有真正统一。我把当时能接的代码写完后,提出项目想法的队友一时也无法继续推进,其他人又暂时不在;眼看时间一点点过去,我有些着急,便花十多个小时额外搭了一套 AI 漫画检索工具。它并不是我想撇开团队另做一套东西,更像是不想让能动手的时间白白流走。可它最后因为缺少能演示的素材,加上最后一天还要回去赶主项目,最终也没有提交。比赛最后没有拿奖,团队协作、排期、临场部署都留下了一大堆可以吐槽的东西,我甚至在演示前还在抢修 HTTPS。但我认识了很多人,也第一次真正体会到,一个人能写代码和一群人能把东西做出来,完全是两种能力。它没有替我完成一个传奇项目,却把我从“独狼开发者好像也挺酷”的想象里拽了出来。
同一个月,我发现了 Apple Music-like Lyrics 这个音乐播放器。它的动画做得非常漂亮,社区也有很多人贡献逐字歌词,但当时镜像站不多也不稳定。我花了五个多小时写了一个镜像源,提交给官方,后来真的有不少人用。因为第一版写得太快,里面当然也留了一些屎山(当时没想到会有这么多访问量啊)。不过它让我再次确认:我最喜欢的事,还是看到一个具体的问题,然后想办法把它解决,最后真的有人用。
8 月以后,高三要来了。我没有完全停下代码,只是让它慢慢退到周末。9 月我同时报名了 CSP-J 和 CSP-S:J 组初赛过线,11 月复赛拿到省一等奖,可惜没有满分;S 组则差一两分没进复赛。
一个高三学生重新回去打小时候并不喜欢的信竞,多少有点绕远路的意思。小学时的我以为信竞会教人做软件,阴差阳错从 Pascal 学到 C++,后来停了大约六年。高二时学校开过面向高一学生的 CSP 课,我因为老师熟、社员也有不少在那里,偶尔过去听听,顺便摸摸电脑,并没有真正恢复训练。到了高三,我已经靠软件项目拿过奖,机器人比赛也拿过奖,反而只有经常被我挂在嘴边的信竞没有一项像样的结果。于是这一次没人逼我刷题,也没有升学指标,我只是想认真回来一次,看看自己还能做到哪里。
那段时间我还写了一个把词典笔数据转成单词书的小工具,给漫画阅读应用 Venera 做过邮件订阅,也继续给开源社区提 Issue、做贡献。原本以为 8 月以后 GitHub 会彻底变绿,结果 9 月几乎每个周末还有提交,10 月也没有完全停下。真正安静下来已经是 12 月;首考结束后的 2 月、3 月,我又给 QQ 机器人补了两个小功能。高三没有让我和计算机断开,只是把“想到就写”改成了“先看明天考不考试再写”。
Venera 的订阅管理工具本身只花了几个小时,真正折磨人的是部署:服务器 Glibc 太旧、无头环境仍然缺 GUI 库,换成 Docker 后又要塞进 Xvfb,镜像一路膨胀到 1.1GB,最后还因为挂载点跨文件系统导致rename失败。听起来只是一个“小工具”,背后却把 Linux、Docker 和文件系统的坑几乎踩了一遍。
博客也留下了高三没有完全停手的证据。2025 年 11 月,我把曾经因为机器人比赛缺课而落下的化学反应平衡重新整理成了一篇笔记;2026 年 2 月,我记录了 Playwright 在 Docker 里离线部署 Chromium、补动态库和中文字体的过程;3 月又在 LXC 里折腾 OpenClaw 和 Homebrew 的 Root 限制。它们都不是什么宏大的项目,却说明我并没有在高三彻底放下计算机,只是把折腾切成了更小的块。
六门成绩,以及不太愿意接受的580分
说到高三,当然绕不过高考。
语文一直不是我的强项,最后的成绩反而比预想中好一些。数学是最直观的失利:平时模考常常有 110 多分,高考只有 100 分。题目确实难,但选择题看错、选错这种低级失误,一道就是六七分,实在太贵了。
英语倒是给了我一点意外。首考 108,高考 111。在明显感觉题目更难、后期也没有把最多时间放在英语上的情况下,反而涨了 3 分。它当然算不上很高,但和我以前不太好的英语相比,已经是确实存在的进步。
物理是我最难接受的一门。平时赋分几乎没有低于 85,返校考和高考前的模考都进过全校十几名。2025 年暑假的物理作业要求每人出一道题,我直接写了 22 页 A3 纸、8 个大题,几万字的分析;普通暑假作业反而没怎么写(这很难评价)。那套题的题目、答案、Markdown、TeX 和 PDF 文件,现在还完整保存在共享目录里。我一直认为自己的物理感觉不错,也确实花了很多时间研究,但首考 78、高考 76,择高后最终还是 78。能力、状态和考试结果没有在那两天对上,这是遗憾,不需要假装豁达。PS:我高三七八次模考也都没低于 85 分过😭
化学走了完全相反的路线。高中前两年,我的化学经常只有六七十分。高三 9 月、10 月,我终于意识到不能再这样下去,开始主动刷题。对于很多人来说刷题是日常,但对平时题量很少的我而言,那已经是人生中最主动的一段。
我把语文、数学课里一部分比较零碎的时间,连同化学课和回家后的时间重新分配出来,不再跟着今天一课、明天一张卷子的节奏走,而是自己规定每天固定往后推进一课。我用《步步高学习笔记》和《练透》一课课刷,答案留在手边,每做完一部分就立刻订正,把前两年漏掉的基础一点点补回来。首考 71 时,题量还没有积累到真正的质变;我没有因为这个分数停下,到寒假结束时进度已经比大多数同学快了十几课,之后仍然按自己的节奏继续。最后高考到了 87。最有把握的物理没考好,长期最弱的化学反而救了我一把。老天爷有时候确实挺会写反转。
技术首考 93、高考 96,单看分数不差,我却仍然不满意。毕竟写了快十年代码,也学过信竞、Linux 和运维,模考还摸到过 99。我原来想的是至少 98,作为班级第一才比较说得过去,结果总在通用技术和信息技术的某些角落各丢一点。
最后总分 580,没有到特控线。数学和物理各自都比我的正常预期低了十几分;我原本的目标是 600 分以上,按平时状态至少也觉得自己应该有 595 分左右。即使考到 600 分,最后也可能仍然是在中国计量大学和温州肯恩大学之间选择;但 580 分已经低于温肯的普通统招线,选择一下子从“去哪所”变成了“三位一体能不能把我留下”。
高考前我当然设想过失利,但当它真的变成一个数字时,还是不好受。18 岁并没有因为“成年”就突然学会接受一切。有些结果就是不好,我可以继续往前走,也可以承认自己不满意,这两件事并不冲突。
三位一体把另一扇门留了下来
我的学考只有物理、数学和技术 3 个 A,走三位一体并不占优势。最后真正给我机会的是温州肯恩大学。
它是一所中外合作大学,专业课、数学课等大量课程采用全英文教学,因此三位一体校测也很特别:全英文笔试加全英文面试。笔试里有逻辑题、简单数学和常识,面试则现场给题,短暂准备后用英文表达观点。我以前英语底子并不好,语法也常常一团糟,所以一开始并不觉得这会是我的优势。
但高三这一年,我得感谢我课外补课的英语老师。她要求我每天听写、听 TED,把听到的词记下来,还让我翻译真正的英文杂志文章。刚开始的一段时间,每节课前五分钟甚至要做纯英文表达。后来因为高考不考口语,这部分训练少了,但它没有消失。3 月开始,我每周末又去练三位一体面试,老师前后给了四五十个可能遇到的问题,让我不断组织观点。到最后,我不需要背多少套话也能讲下去。
校测结果比我想象中好得多:在 B 组约 500 人中拿到第 11 名。高考出分后我知道自己考差了,但也知道这个名次几乎替我保住了三一第一志愿。7 月 12 日,结果正式落定:温州肯恩大学,计算机科学与技术。
我是在 2026 年 3 月才认真了解这所学校的。此前从没把中外合办当作主要选项,几个月后却真的会去那里读四年。全英文环境肯定会难,但计算机的资料、论文和社区本来就离不开英语,能被逼着把这块短板补起来,对我未必是坏事。
如果高考再高 30 分,选择或许会发生变化;但如果只是回到我正常预期的 595 分左右,我大概率仍然会认真考虑温肯。到现在为止,这就是我在成绩、校测、兴趣和现实之间得到的答案。
高三科技节:我没有再错过它
我们高中三年依次举办文化节、英语节和科技节。高一轮到文化节,高二轮到英语节,科技节偏偏在高三。按惯例,高三已经不参与了。对于一个靠机器人特长进入高中、又当过创客社社长的人来说,这个安排实在有点精准绕过。
首考结束后,我还是买了一台 1200 元左右的 3D 打印机,和已经接过社团的学弟学妹们一起准备科技节。我们打印了很多小东西,十几个人一起搬机器、摆摊、售卖。主要的两个小时里,竟然卖出了将近 600 元的打印成品。
比销售额更让我记得的,是大家围在一起做事的感觉。社团虽然已经交接,但我并不是一个偶尔回来搭把手的“老社长”。从联系、准备到现场摆摊,我仍然像从前一样参与组织;高一、高二、高三三个年段的社员和社长副社长一起围着同一件事忙,我也仍然能感到自己站在社长的位置上,只是这一次有人和我一起把事情托了起来。高中里许多科技活动都和我错开,这一次我总算没有站在外面看。
两块安卓手表,以及高三的一点安心
高二时,我曾用 120 元从同学手里买过一块三手 TicWatch 2021 Pro 4G,折腾 Wear OS、ADB 和各种应用,那更多是一块拿来“玩机”的手表。到了高三,我又花 400 元买了一块华强北的完整安卓手表,主要用它联系家里。
它续航不强,看起来也谈不上多精致,但能直接收 QQ 和微信,让我在学校里随时联系父母,不用来回跑电话机。高中有一段时间,我的心态差到几乎每天五六点就回家,不再上晚自习。
高考以后,终于去上海见了认识多年的网友
6 月下旬,我去了趟上海。因为高三很久没有出省,也因为有些网友已经认识五年,其中一位朋友明年可能要出国读大学,所以我们很早就约好了这顿饭。最后来了四位朋友,我们吃饭、逛二次元商店,在上海走了很久。
我们原本打算吃完饭再去外滩,最后却还是没能走到江边。那天我们已经坐地铁到了外滩一带,也逛过附近的商业街;其他人在蜜雪冰城等饮料时,我走进旁边一栋楼上厕所。进去时几乎还没有雨,前后只差几秒,等我出来时雨已经大到像突然换了天气。我们用手机互相问位置,最后只能各自回家,连告别都被切得很仓促。第二天仍然下雨,外滩就这样留到了下一次。
这是我第一次和网友在线下见面。屏幕里认识的人真的坐到同一张桌子旁边,当然还是很奇妙。2020 年疫情最严重的时候,我被困在湖北,靠 Minecraft 公开服认识了 MOYAN 等朋友,也在 UP 主无聊、子枫的群里慢慢混成管理员和直播间房管。后来到 2022、2023 年前后,我在群服务器、QQ 机器人、戴森球计划和 Minecraft 里又认识了云玩家等另一批人;子枫群里不少熟悉的 ID,后来也成了我自己群里的老成员。它们并不是同一批人,也不是一个群从 2020 年原封不动地延续到现在,而是几段网络关系在不同时间交叉到了一起。
以前我常常觉得自己的社交是被互联网“替代”掉的,现在更愿意说,它只是沿着另一条路长出来。五年前屏幕上的 ID,五年后也可以一起在上海吃饭。
18 岁前后,我换掉用了多年的电脑,结束高考,确定大学,去了上海,也重新开始写那些高三搁置的东西。高中确实落幕了,但生活没有像游戏通关一样弹出结算界面。旧问题还在,新的环境已经开始加载。
重新从2008年讲起
我出生在浙江丽水云和,幼儿园前在那里生活,后来回到宁波。爷爷参加了父母的婚礼,却在我出生前一个月左右去世。我听说爷爷很会做木工,父亲学自动化,我准备学计算机。三代人做的事情并不一样,又好像都和“把东西做出来”有一点关系。没能见到爷爷,始终是一个只能从照片和家人口中想象的遗憾。
幼儿园的我非常爱哭,是能给老师留下深刻印象的那种。入园第一天,其他小朋友已经坐好,我在教室里一直哭;学号又刚好是 1 号,多少有点公开处刑的意思。
但我也在那里交到了记忆中的第一个朋友。刚开学没多久,ta 跑过来问“我们交个朋友吧”,后来因为住在同一个小区,我们经常一起回家。二年级转学后又非常巧地分到同一个班。小时候我们拉过钩,说要一起长大,一百年不许变。现在回头看,开局越美好,后面的变化就越容易显得刀人;不过那段关系给过我的信任和快乐都是真的。
幼儿园还有一位对我很好的夏老师。我在绘本里看到猪笼草,非常感兴趣,她竟然真的送了我一株。毕业时她还送过合照和小立牌。18 年里会遇到很多老师,有些人的影响来自严格,有些人的影响只是愿意认真看见一个小朋友喜欢什么。夏老师属于后者。
两所小学、二十多人的生日,以及没有同桌的义务教育
小学一年级,我先在姜山的一所百年老校读书。校门旁还有砖墙和黄土地,教室门口有桂花树,秋天大家会摇桂花泡水喝。学校科技节里,我和父亲做了一座木棍、回形针和木工胶搭成的桥,看着细细垮垮,却承住了二十多瓶水。因为舍不得把它压坏,我主动叫停了测试。那座桥后来一直放在家里,算是我最早的“工程项目”(主要贡献者显然是我爸)。
二年级我转到刚建成的惠风书院,因为刚建好,全班都算是转校生。那时的我比较皮,想象力很多,也敢把话说出来。生日会经常请同学来家里,小学毕业那年我担心 6 月 23 日和毕业考冲突,于是提前邀请了很多人。结果考试在 6 月 19 日,大家全有空,最后来了二十多人,家里到处都是同学。我和父母看着消息一个接一个跳出来,都有点傻眼。
小学还有一段很荒谬的座位经历。三四年级时,旁边同学上课问我下一节是什么课,我说下课再讲,被老师看到嘴在动,于是被安排到讲台旁边。后来我考好后短暂回到下面,另一个真爱讲话的同学又被调上去;老师觉得他一个人太孤单,竟然又把我叫回去当“左右护法”。五六年级换成有同桌的座位,我还在讲台边;六年级下终于放下来,疫情又把所有桌子拆成单人单列。到了初中,防疫安排继续存在。于是非常神奇地,我在义务教育阶段几乎没有真正体验过同桌。
也有些事情现在想起来仍然不舒服。比如体育课前发生冲突时我踩着上课铃才到,却和所有男生一起罚站;班主任追问“知不知道错了”,我解释自己根本不知道发生了什么,反而被当成顶嘴,还挨了两巴掌。小时候很难让成年人停下来听完解释。长大后,我能理解老师愿意管我、没有放任我,也仍然认为那件事本身是错的。一个人可以有多面,感谢和不认同并不需要互相抵消。
我想做的是软件,却阴差阳错学了信竞
真正改变我后来路线的事情,发生在小学二年级。
母亲带我去宁波图书馆听了一节 Scratch 公开课。老师在讲怎么让小猫移动,我几乎没听,已经在屏幕上拖按钮、做菜单,脑子里想的是“我能不能做一个软件给别人用”。后来母亲给我买了《教孩子学编程 Python 语言版》。那本书连 Python 怎么安装都讲得很细,我跟着一行行敲代码,直到讲到 pip 和 Pygame 附近突然结束。虚拟环境、IDE、工程结构这些概念,当时当然完全没有。
没有完整课程,反而让我到处乱搜。我研究完全数、素数,写函数、循环和递归;看到手机全景照片,就去查 OpenCV 怎么拼接图片,再把只支持横向的示例改成横向纵向都能用;二维码、CUDA、Pygame、NumPy、爬虫、Matplotlib,看到一个词就顺手挖一点。很多东西最后只跑通了 Demo,根本算不上项目,但我学会了搜索、排错和在没有 AI 的时代一行行调试。
同一时期,学校开了所谓的“编程校队”,要求成绩靠前才能报名。我认真复习,考到班级第二,顺利进去,然后发现它教的是信息学竞赛,不是我以为的软件开发。刚开始用 Pascal,后来竞赛取消 Pascal 又转 C++;using namespace std为什么要写、万能头文件是什么、最后要不要return 0,当时基本靠背。
我其实从没真正喜欢过信竞,只是父母觉得拿奖对升学有帮助,我也误以为算法是做软件前必须走完的路,于是坚持到六年级。寒假里,家长要求每天在 OJ 刷够题量,我发现评测页面会显示期望输出,于是写程序原样输出输入,反过来套出测试数据和答案。最后当然被老师发现,也被踢出校队。这个做法不对,没什么好洗的;但那个老师也曾把我写的简易计算器发到朋友圈,说这个小朋友“很有悟性,以后必成大器”。他既给过我自信,也把我踢了出去。这可能是我很早就学到的“人不能只用一个结论概括”的例子。
2025 年,我又自愿回到 CSP 考场,反而拿到了小学时一直没拿到的省一。绕了十年,这段故事总算补上一个有点好笑的结尾。
旧电脑、游戏和第一台服务器
我最早用的是父亲淘汰下来的 Windows 7 笔记本,后来卡到浏览器都很难正常运行。那时我不知道 Steam,看到《木筏求生》《异星工厂》《深海迷航》之类的游戏就去网页上搜离线版,在最低画质、三四帧的速度里勉强打开。小学一年级玩《植物大战僵尸 2》和《保卫萝卜》,二三年级玩《迷你世界》,四年级以后逐渐转向 Minecraft。
2019 年家里在线下买了一台拯救者 Y7000:八代 i7、8G 内存、1050Ti,标价 8888,打折后 7999。以当时的行情看大概率被坑了,但它相对旧电脑已经像神仙一样流畅。后面发现很多游戏还是跑不满 60 帧,不过我小学到高中毕业的大部分编程、服务器维护和项目开发,都是在它上面完成的。2026 年高考结束,它才终于退居二线。
Minecraft 对我的影响远远超过“玩了一个游戏”。我先在网易版和联机侠里和人联机,后来逐渐转到国际版,用 HMCL、PCL2 折腾模组和整合包,研究红石,也到不同的服务器里玩。公开服常常删周目,我不喜欢自己花很久搭出的东西跟着存档一起消失,便开始想:那为什么不自己开一个不会随便删档的服务器?
第一台“服务器”是一台奔腾 G2xxx、4G DDR3 的报废电脑,后来加到 12G 内存,主要用来跑 Minecraft。性能很差,开个稍大的整合包就够呛,却一直陪我到初中毕业。为了让别人进服,我研究端口、内网穿透和公网 IP;为了不总在命令行里手忙脚乱,我接触了 MCSManager 和 Linux;为了找游戏、模组和整合包,我学会 BT 下载,也慢慢知道怎样使用搜索引擎。备份、面板、网络和服务端配置这些今天看起来属于“运维”的知识,当时的起点很简单:一个小学生想让服务器别崩,也不想让大家辛苦玩的存档突然消失。
疫情把现实按停,网络却没有停
2019 年末,我第一次和父母分开回湖北老家。疫情爆发时,我们赶到收费站,那里刚关闭几分钟。我因此和父母分开了四五个月。
那段时间,学校和现实活动都停了很久,Minecraft 和互联网却继续往前。我受 2B2T 影响,想做一个任何人都能加入的公开服,在这个过程中认识了 MOYAN,也开始使用 MCSManager。我还做过视频、投稿 B 站,继续折腾服务器和整合包,也认识了 UP 主无聊和子枫,后来慢慢成了群管理员和直播间房管。
到 2022、2023 年前后,因为手上有一个不错的整合包,我又在子枫的群里开了群服务器,并通过群服务器、自己的游戏服务器、QQ 机器人和戴森球计划认识了云玩家等朋友。后来我自己的群慢慢聚起一百多人,其中不少早期成员也来自子枫的群。大家早就不只聊 Minecraft,还会分享各自的学校、项目和生活。小学毕业后,现实里的同学渐渐走散,网络上的关系则沿着公开服、UP 主群、群服务器和我自己的群一层层长出来,陪我跨过了初中、高中,最后有人在上海和我坐到了一张桌子前。
先学了一年机器人,再把周末留给软件
小升初的暑假,母亲大概已经在为高中升学考虑,给我找了一位老师学习机器人。那一年我从马达、传感器、单光电循迹和 PID 开始学。老师并不只给我一套“直走到线、遇到路口转弯”的现成模块,而是要求我理解两侧电机为什么要给不同动力、偏离黑线后怎样算误差、参数改动会让机器人出现什么反应。这种教法很慢,在比赛里也未必占便宜:别人可能直接用成熟的循迹卡和上层模块,我们却要从更底层的控制开始写。但现在回头看,它给我留下的工程基础,比当时的一张奖状更重要。
那一年参加的区域赛和市级比赛都没有得到结果,而且坏得很有戏剧性:一次是 EV3 主控在正式比赛时死机,另一次是笔记本死机后项目文件损坏。那时我还没有备份习惯,文件打不开就真的什么都没了。平时训练没有出过的问题,偏偏连续在比赛现场出现。
初一结束后,我没有继续上机器人课,而是把周末的整块时间留给自己写软件。于是我的机器人学习停在了“基础很扎实、比赛没拿奖”的状态,QQ 机器人获得的创意编程市二等奖反而让我满足了鄞高计算机相关特长生的报名条件,并被归入机器人特长生类别。后来校考既考机器人也考 Python,这两块刚好分别接上了初一的控制基础和小学二年级开始积累的编程基础,所以我的特长考核成绩并不低。再和中考成绩综合排名,最终取前 8 位,我进入了其中。
初中:终于做出真正能用的东西
“砂纸鸽”这个名字也是在小学升初中前后取的。那时我看过一位叫“砂纸大魔王”的创作者,很羡慕他身边总有许多朋友可以一起玩,于是给自己取了一个相似、又不完全相同的 ID。“鸽”后来成了我对自己总会“咕咕咕”的调侃。今天我已经叫洛元,但Shapaper仍然留在不少旧项目名里,Luorix则开始出现在 Linux 用户名和新项目中。洛元以后会不会再改,我也说不准;名字会变,留下的代码和经历倒是一层层叠在那里。
初一我进过学校电视台和编程校队,剪视频、渲染 Minecraft 故宫,也继续开服。真正“开始发力”是在初一升初二的暑假。我写了第一个实用工具:视频转字符画;接着又做了 B 站 UP 主桌面小工具,在桌面显示最新视频和粉丝变化。代码多起来后,IDLE 终于扛不住,我也转向 PyCharm。
我还做过一个光线追踪渲染器。最初的核心代码确实是从 CSDN 上复制来的,这一点没必要给小时候的自己硬镀金;但后来的优化、渲染逻辑和呈现方式是我自己一点点改的。我尝试在屏幕空间里用四叉树逐层细分:先用很大的像素块快速铺出大致画面,再逐步细化,用类似 LOD 的方式渐进渲染。它不是在三维空间里用八叉树加速射线求交,而是改变屏幕像素被计算和显示的顺序。这个项目没有多少用户,也没有拿去比赛,却很像我当时学编程的方式:先从网上找到一个能跑的核心,再把每个看不顺眼的地方拆开,改成自己想要的样子。
初二上,我成功搭起 Mirai QQ 机器人,写出了约 1500 行的砂纸 AIQQbot 框架。这是我第一个称得上“大型”的项目。后来信息老师问有没有项目参加科创比赛,我把一直在服务器上运行的机器人改了一版交上去,意外拿到市二等奖。原本只是给自己的服务器和群聊解决问题的代码,第一次变成了被正式评价、也真的影响了升学路径的作品。
后来我和朋友学过 PyQt、玩过戴森球计划联机;初三 12 月又花四天给服务器整合包写了一个专用启动器,可以一键切换运行的整合包。代码现在看当然很屎,但它能用,而且真的解决了我们的问题。视频转字符画、桌面小工具、渲染器、QQ 机器人和整合包启动器并不是一条提前设计好的学习路线,它们只是每次都从“我想要这个功能”开始,最后慢慢把我推到了真正的软件开发里。
初三最后半年:从两百多名到鄞高
如果只写“靠机器人特长生进入鄞高”,会把初三最后半年的学习完全抹掉。我并不是从小就认定自己只有普高线水平:初一时考进过年级前 100,后来学习上变得懒散,又把大量时间放到计算机和项目上,名次才一路掉到两百多。初三最后半年不是突然证明我原来“不笨”,而是我终于决定把已经松掉的那根弦重新拉紧。
初三那年 12 月的一次考试,我还在年级 220 到 240 名左右,名次确实落到了普高线附近;到 1 月已经上升到约 160 名。之后每次考试,我好像都会往前走十几到二十名。最后一次模拟考到了约 86 名,前后半年几乎可以用“脱胎换骨”来形容。
那段时间也不是每天都能感受到自己在变强。更常见的情况是,考完觉得“完蛋了,这次好像考差了”,结果排名出来又向前挪了一截。越学越有劲,代码反而可以暂时不写,脑子里也没有后来高中那么多杂念。以前我总觉得自己学习不算好,突然有一天,班里最前面的同学开始把我当作可以比较的对象,我和班级头几名的关系也越来越近。这种变化比单纯看到一个名次更让我恍惚。
变化不只发生在文化课上。刚上初中第一次测 1000 米时,我跑了大约 6 分 30 秒,几乎是全班最慢;后来从 5 分多、4 分多一点点压到 3 分 50 秒左右。实心球的起点更低,最初只能扔四五米,练到后来超过 14 米,体育中考最终拿到满分。对一个曾经默认自己“体育就是很差”的人来说,这同样是一场脱胎换骨。
这件事也留下了两次很荒谬的运动会遗憾。初三时我第一次想报实心球,老师告诉我其他同学大概能扔十四五米,我以为自己的十一二米根本不够,便没有报名;比赛当天才发现前几名大多只有七到九米,再想补报已经来不及。高一我真的报了名,开幕式延迟后项目时间却没有传达到我这里。我问过同学和老师,也一直等着广播通知,最后等了一个多小时才发现比赛已经结束,事后还被反过来问为什么没到。一个我曾经最不擅长、后来足以争第一的项目,就这样连续两年和我错开。
中考科学考了 176 分,满分 180。最后四分丢得也很有我的风格:一道大题前面算出的中间结果带着.5,做到最后两问时却漏看了这个小数,后续答案都产生了很小的偏差;偏偏题目只留了写结果的横线,没有过程分,于是两问一起丢掉。正常至少应该有 178 分,但考试不会因为“只差一点”把分送回来。
当时按各科估分,总分大约在 645 到 650 之间。等最终录取结果的那两天依然很紧张,因为只有中考成绩、特长考核和综合排名全部落定,前面几个月的努力才算真正有了去处。最后,我通过机器人特长生的综合录取进入鄞高。从两百多名重新爬到能够进入鄞高,再把录取通知真正拿到手,这件事在很长一段时间里都像一场没有完全醒来的梦。
中考结束后,我强烈要求把家里宽带换成电信,终于拿到公网 IP;又用攒了多年的零花钱配了一台 i5-12600K、32G 内存、Tesla P40 的服务器,装上 PVE,把旧服务逐个迁过去。那台小学时期的老服务器终于退役,被父亲拿去看电影和股票。
高中开场:像一场没有醒来的梦
刚进入鄞高时,我有一种持续很久的不真实感。它不是简单的开心,也不完全是恐惧,更像是突然站到了一个过去不敢默认自己能到达的位置。军训结束以后,有一次我走在学校连廊里,仍然会突然意识到:“这里真的是鄞高,我真的在这里读书了。”这种恍惚从 8 月、9 月延续到 10 月,甚至更久。
但现实中的第一天并没有按照“新学校、新开始”的剧本展开。我到教室时不算很早,座位已经坐得七七八八,只剩后排几个位置。我问旁边的同学:“这边有人吗?”对方说没有,我便坐下。后来在寝室里,这句话被人模仿、复述,语境里带着一点拿我开玩笑、觉得我幼稚的意思。那一刻我没有先感到生气,反而开始想:是我的语气不对吗?我刚才是不是做错了什么?
入学第一天,我又因为寝室里的另一起连带事件被扣了分。事情本身现在不在这里展开,但它让我担心自己刚报到就在老师和同学眼里留下了不好的第一印象。单看一次模仿、一次扣分,都不是什么决定人生的大事;可当它们发生在一个本来就觉得自己“不应该站在这里”的人身上时,很容易变成滚雪球的起点。
从初中开始,我给自己立过一条有些朴素的规矩:尽量做一个讲道理、给别人带来正面影响的人。与人发生不愉快时,我的第一反应常常不是“对方是不是有问题”,而是“我到底哪里做错了”。别人回复慢一点、表情冷一点,甚至只是没有回答问题,我都会先回看自己的语气。这让我很少直接和人冲突,也让我在很多关系里把责任过多地收回自己身上。
所以入学初期那些不太友好的经历并没有随着事情结束而立刻过去,它们变成了一种持续的压力。我想当一个“乖”、正直、不给别人添麻烦的人,却始终想不明白自己究竟做错了什么。站在当时的感受里,那段经历甚至接近我所理解的校园欺凌;这不是要在多年后给谁下一个确定结论,而是解释为什么一些在旁人看来不大的事,会让我从高中开场起就长期处在不舒服和自我怀疑里。
我想找的不是“会不会写代码”,而是愿不愿意一起折腾
初中时,我对高中的想象非常具体:学校会有更强的信息老师,会遇到能力更好的同学,也许能组成一个小团队,在老师帮助下认真做出一个项目。等真正进入高中,我才发现课内教学、竞赛训练和我想做的软件之间仍然隔着很远。课堂能完成它的任务,却不一定能回答我对 Linux、服务器、软件工程和真实项目的兴趣;我原本期待的项目伙伴,也没有自然出现在班级里。
有些机会甚至总在和我错开。学校里有一位更偏软件项目和基础设施的信息老师,会做服务器、软路由、机房和网站,也是我很想跟着做事的类型;可我高二时他主要带高三,等我升到高三,他又去带高二、高一,还给低年级开了 Arduino 之类的拓展课。学校后来有了两台 H100 时,我也已经在高三,几乎不可能再挤出时间去折腾。机器人比赛倒是恰好在我们这一届重新开展,让我赶上并拿到了国赛金奖;可总体来说,我仍然常有一种感觉:许多和计算机有关的机会从身边经过,却很少正好落到我这里。
我想找的并不是一个已经什么都会的人。技术水平低一点完全没有关系,重要的是他有没有真正的自驱力:前一天晚上把东西跑起来,第二天醒来还想把不完美的地方修掉;看到一个新项目,会想亲手部署一次;愿意追着一个小问题去理解背后的原理;也想拥有自己的项目、博客或社区。会多少只是现在的状态,愿不愿意继续学,才决定我们能不能一起走很久。
现实里,我有同学、有社团成员,也有很多网上认识的朋友。从 Minecraft 公开服、UP 主群和后来几次群服务器里聚起的熟人,最终进入了我自己一百多人的群聊,大家早就不只讨论游戏,也会分享各自的生活。可“有很多朋友”和“写项目时有人并肩”并不是一回事。很多时候,当我真正打开编辑器、服务器或调试工具时,旁边还是只有我自己。高中最重的孤独感,并不是没人说话,而是没有一个人能和我在同一个问题上持续兴奋很久。
机器人:金奖、市二,以及一朵刚好飘来的云
我对机器人比赛的期待,也和单纯拿奖不太一样。更早学习机器人时,老师会让我从马达、传感器、循迹和 PID 开始理解:为什么起步要慢,转弯时两侧轮子的动力为什么不同,机器人怎么知道自己压到了线。那种学习方式不只是教我完成某个任务,而是在培养一种工程素养,让我知道机器为什么会动、出了问题应该往哪里查。
高中参加的比赛为了降低门槛,很多动作已经被封装成现成模块。它当然更容易组织训练,也能让更多人完成比赛,但我偶尔仍会产生落差:如果只是在“直走到线”“到路口左转”之间拼装流程,我到底是在理解机器人,还是在熟悉一套比赛工具?这并不影响奖项的真实性,只是解释了为什么我拿到奖后仍然觉得少了点什么。
国赛前,省赛和国赛的场地图大部分相同,只有中间一块任务区不同。学校训练场上的这部分是照着尺寸手工复刻的。比赛前一周,我们把官方图按 1:1 打印出来核对,才发现几个任务点的位置存在误差,于是赶紧修正。2 号点看起来偏差不算大,我们当时没有继续改;正式比赛偏偏随机抽到了 2 号,机器人第一次没有抓到,回到终点后我又调用预先写好的补做流程,连续重试仍然失败。那一刻我以为金奖肯定没了,最后结果出来却仍然拿到了国赛金奖,也就是全国一等奖。
另一场市级双人机器人比赛则更像一个概率故事。机器人开场要用摄像头识别数字,比赛场馆旁有一排大窗户。轮到我们时天气本来是晴的,却刚好有一朵白云移动到合适的位置,把强烈的反射光送进摄像头,画面瞬间过曝成一片白,识别流程从开头就卡住。等我们结束、下一组选手上场时,云已经飘走了。最后我们拿到市二等奖,但几个月的准备被一朵云改变结果,怎么想都还是有点难受。
机器人给了我省赛、国赛和市赛的经历,也拿走了一部分课堂时间。备战国赛时,我错过了提前返校讲授的化学反应平衡,此后三四个月一直在补这个缺口。奖项、缺课、工程经验和遗憾是绑在一起的,很难只挑其中一面出来评价。
没做成的AR眼镜,以及68分英语
高二时,我越来越焦虑于“高中还没有做出一个真正属于自己的项目”。初中有 QQ 机器人和科创市二等奖,高中参加了机器人比赛,却总觉得那些模块化任务不能完整证明我的编程能力。于是高二上学期的 12 月,我把目标放到了 AR 眼镜上:让 Windows 窗口悬浮在三维空间里,用头部转动改变视角,再通过摄像头识别手势完成点击。
3D 界面和手势识别都做出了能运行的版本,代码写到三四千行,真正拦住我的是硬件。Xreal 没有向个人开发者开放稳定的原始传感器数据,我通过 DLL Hook 拿到四元数后,又遇到固件周期校准造成的漂移;磁力传感器数据也无法完整取得。今天回头看,新的设备和方案或许已经能解决这些问题,可在当时,我尝试了很多算法仍然压不住漂移,只能在春节前放弃。
项目失败时,学习也没有给我多少安全感。高二上期中考试,我的英语只有 68 分。这个数字让我和父母都慌了,于是寒假报名雅思班,不是为了立刻出国,也不是为了拿一张雅思成绩,而是想逼自己重新背单词、练阅读和听力。
高二下的心态一路往下,并不只因为项目焦虑、英语低谷和首考逐渐逼近。一段维持了很多年的关系也在那时发生了让我难以接受的变化。我能够理解对方为什么做出自己的选择,却无法因此假装自己没有被伤到。别人的生活没有必要在这里展开,但如果完全删掉这件事,高二那次下坠就会被解释得太轻。后来英语能从 68 走到首考 108、高考 111,并不是突然开窍,而是那段打卡、背词、听力和表达训练慢慢留下来的结果。
从服务器日志到这间小屋
技术本身倒没有完全停下。高一开始,家里的服务器就一直运行着 PVE,里面的 LXC、Ubuntu 和 Debian 大多没有桌面环境;我买书系统学习 Linux,很多最初的经验来自在命令行里维护这些服务。2024 年 5 月,我第一次认真把带桌面环境的 Debian 装到笔记本上,尝试让 Linux 成为日常使用的桌面系统;同年 9 月再从 Debian 换成 Arch,并逐步把它变成自己的主力环境。为了在学校相机里看番,我研究 Motion JPEG、H.264 和音频格式,最后写脚本批量转码并生成缩略图;为了维护家里的服务,我继续折腾 PVE、LXC、Docker、Nginx 和各种看起来很小、实际能耗掉一整晚的问题。
2024 年 5 月,我开始在这个博客记录服务器和 Linux 的踩坑。最早几篇文章写的是 Docker 内存溢出、PVE、LXC 和小机房改造,后来逐渐扩展到 Arch、Wayland、NVIDIA、脚本、博客工具,以及每年的回顾。很多内容写下来的原因很简单:这个坑我已经踩过一次了,总不能下次再从头搜索,也希望刚好遇到同一个问题的人能少绕一点路。
到 2026 年 7 月 13 日,也就是我录完这次总结的时候,博客已经发布了 41 篇文章。其中 2025 年一年就写了 31 篇。它们不全是完整教程,有些只是几百字的排错记录,但连起来看,几乎就是我从高中到大学前夕的一份技术日志。项目可能会烂尾,代码仓库可能会吃灰,写下来的问题和解决过程至少还留在这里。
2025 年 6 月,我把用了多年的网络 ID“砂纸鸽”改成了“洛元(Luorix)”。“鸽”原本就是对自己总会咕咕咕的调侃,“洛”是我一直很喜欢的字,“元”又能和未来的社区、工作室产生联系。与此同时,原来的“锋电”也逐渐变成“次元(Dimension)”,域名换成了 dimeta.top。这不代表旧名字和旧经历被删掉了:Shapaper仍然留在旧代码里,Luorix则进入了新的用户名和项目。洛元也未必会是我永远不改的名字,但至少在这段时间,它更接近我想怎样介绍自己。
社团、位置和被看见
我接过创客社,给学弟学妹上 Python 和 Vue。Python 课的效果还不错,Vue 因为大家基础不足,没有达到我最初的设想。站在社长和学长的位置上,我终于能比较自然地和一群人讨论技术、安排课程、一起做事。后来回头看,这两个身份也替不太会社交的我搭了一座桥:大家先因为社团和项目认识我,之后才有机会知道我是怎样的人。
这也是为什么高三科技节的那个下午会让我那么感动。社团虽然完成了交接,我却没有变成一个偶尔回来帮忙的旁观者;三个年段的人一起搬 3D 打印机、摆摊、卖打印件,我仍然参与组织,也仍然能感到大家围着同一件事聚在一起。它没有解决高中三年所有孤独,却证明我并不是从未被接住。至少在自己真正投入过的地方,关系和信任确实会慢慢留下来。
从先怪自己,到重新理解团队
回头看,高中很多不舒服的瞬间都有同一个开头:别人态度冷一点,我先想是不是自己说错了;遇到分歧,我先退让,担心坚持自己的想法会显得自私;团队进度出现问题,我会把缺口接过来,觉得“总要有人把它做完”。这套方式让我避免了很多正面冲突,也让我在一些时候把自己的需求放得太靠后。
AdventureX 把这个问题放大到了最明显的程度。我不认同团队最初的方向,却还是接受了主项目;自己的 AI 漫画检索工具已经接近可提交状态,又因为担心团队被拆散而没有独立报名;路演前队友和物料没有按计划到位,我仍然先去找人、搬设备、修反向代理、配置 HTTPS、处理跨域并打包应用。没有任何一个单独决定是“错误”的,它们甚至都可以叫团队精神;但当每一次取舍都由同一个人退让时,最后留下的无力感也是真的。
我现在仍然愿意合作,也仍然愿意在关键时刻补位。只是 18 岁的我开始明白,团队精神不是无限放弃自己的判断。合作需要沟通,也需要边界;需要有人愿意妥协,也需要所有人对共同结果承担同样真实的责任。下一次再遇到相似的情况,我希望自己能更早说清楚分歧,更早保护已经做出的成果,而不是等到最后再问“是不是我哪里做错了”。
回答16岁时留下的四个问题
两年前的我在《记 16 年的人生旅程回顾与反思》结尾写道:
在接下来的两年里,我都经历了哪些重要的事情?我考入了哪所学校?在这两年中,有哪些事情让我感到特别开心?我最终选择了什么专业?
现在终于可以认真回答,而不是像当时一样留下一个“以后再补”。
这两年里,我经历的重要事情当然包括高考,但远远不只有高考。我拿到了机器人国赛金奖,也在另一场被白云改变光线的比赛中拿到市二等奖;接过创客社,教过 Python 和 Vue;写了三四千行 AR 眼镜代码,最后败给当时无法解决的传感器漂移;从年级 230 名左右一路掉到 380 名,经历过项目、学习和关系同时压过来的低谷;参加 AdventureX,没有拿奖,却第一次把团队协作的问题看得那么具体;高三重新回到 CSP-J,拿到了省一等奖;做了 AMLL 镜像源、词典笔转换工具、Venera 订阅管理和一些零散的开源贡献。最后,我参加高考,考得不理想,又被三位一体留下的另一条路接住。
我考入了温州肯恩大学。它不是我两年前就写在纸上的唯一目标,而是直到高三下学期才真正进入视野的学校。高考 580 分、校测 B 组第 11 名、全英文面试和三位一体综合录取,这些原本看起来分散的事情,最后把我带到了同一个结果上。
特别开心的事情也有很多。AdventureX 审核通过时,我第一次强烈感到自己的经历被别人认真看见;科技节大家一起抬着 3D 打印机、围着摊位忙的那个下午,让我知道社团留下的不只是几节课;AMLL 镜像真的有人使用,说明五个小时写出的东西也能进入别人的生活;三位一体校测拿到第 11 名,是英语训练在意料之外的地方给我的回报;在上海见到认识多年的网友,则把屏幕里的关系带进了现实。还有录取页面上出现“计算机科学与技术”的那一刻,它没有消除高考的遗憾,却确实让高中有了一个可以落脚的结尾。
专业没有悬念,还是计算机科学与技术。小学二年级的我以为“学编程”就是做软件给很多人用;后来绕进信竞、Minecraft 服务器、Linux、机器人、前端、AI、开源和一大堆没做完的项目,18 岁的我还是想做这件事。变化的不是方向,而是我终于知道:真正把软件做出来,除了代码,还需要合作、表达、选择和把事情收尾的能力。
18岁并不是总结完毕
如果一定要给 18 年找一条主线,我觉得不是“坚持就会成功”。物理认真学了却考差,AR 眼镜写了几千行还是失败,AdventureX 没有拿奖,很多关系也不会因为真诚就回到想象中的样子。把它们硬说成“所有努力都有回报”,反而不像我的经历。
更准确的说法是:做过的事情会留下东西,但留下来的不一定是最初想要的结果。
信竞没有在小学给我奖项,却让我接触了代码;Minecraft 没有变成什么事业,却把我带进服务器、网络和 Linux;没做成的 AR 眼镜让我摸过 3D、手势识别和 DLL Hook;英语训练让我从 68 分慢慢走到 111 分,又在三位一体面试里帮了我;AdventureX 没给我奖杯,却给了我一群朋友,也让我知道自己并不想永远一个人开发。
我从小就想做软件,想让很多人使用,想证明自己“很厉害”。18 岁时,这个愿望还在,只是比二年级时多了一点现实:一个产品不只需要代码,还需要沟通、判断、时间和运气;被认可很开心,但不能把继续前进的许可一直交给别人。
接下来,我会去温州肯恩读计算机科学与技术。全英文课堂会不会听不懂,大学里会做出什么项目,AdventureX 今年还去不去,新的朋友会是什么样,现在都不知道。我甚至不能保证四年后还会沿着今天想象的路线走。
但至少,16 岁时留下的四个问题已经回答完了。
至于 18 岁的我该给未来留什么问题,我想先不列清单。等下一次年度总结时,直接看看我又折腾出了什么吧。