前言
就在今天,我已结束本科生涯中最后一门课程的考试了,也就是说,在此之后,直到毕业,我都再也不需要在学校里必修一门课程以及考一场试了。
还是挺感慨的,三年如此之快地过去了,虽然身体上早已适应了大学生活,和高中生活早就不可同日而语了,但是内心实际上还是没有完全接受,还是或多或少带有学生时代的内向、腼腆和焦虑。更重要的是,在三年过去后,就如同在高中三年平平无奇地度过那般,我还没找到任何能够把握的东西来将两者区分开来 —— 日子悄然而逝,但没有在记忆中留下痕迹。
有些不甘,我想要写一篇文章,回顾我度过的本科三年生活,什么都好,至少当别人问起我本科生涯都干了什么的时候,我总能说出口,不仅是为了向别人诉说,更是为了向自己证明,在这三年中,我仍有所值得我诉说的,令我有所回味的美好的记忆。
大一
刚入学 (2023.9)
刚进中科大,印象最深刻的应该就是开学考了,不知道别的学校有没有,刚进来有个考试真是让我措手不及,而且考之前,我不仅不知道如果考的好可以进入英才班提前转院(本来是工院的,但是想转到计科),而且我还没有任何数学、物理竞赛基础和超纲的英语水平。这就很难绷了,开学考考得很一般,不过也无所谓,即使考得很差,也不会有任何惩罚。
考完试就是军训,两周的军训,还挺水的,平时并没有很严苛的训练条目,主要就是走方阵,就当熟悉熟悉校园,过得也挺轻松的。军训期间有一个小插曲就是选课。由于大一刚入学,对于选课机制和系统完全不了解,在反复查阅刚入学发的学生手册后才得知,必须在军训中午休息的 12:00 的时候和别的同学抢课(为什么我记得这么清楚呢?因为 12:00 的时候教务系统崩了,硬是等到快 13:00 的时候才抢上课)。
军训完后的一周就是游园会社团招新了。由于我是从小城市来的,高中完全没有所谓的社团的说法,更别说参与社团了,因此社团招新这几天到处逛来逛去充满好奇地捡小礼品玩。我对文艺活动基本上不是很感兴趣,也就日常看看番、玩玩 galgame,也不玩二游、逛漫展,因此没有参与那类的社团;相反,我对于计算机方面比较感兴趣,尤其是看上去就很厉害很酷的 Linux 系统,于是果断加入了 ustclug 和算法竞赛两个社团。
刚上大学,还保留着学生时代做题家的思维,对接触新事物和与人社交方面欠缺了太多,可能这也间接导致了本科期间我对未来缺乏规划,以至于上大学感觉就是在纯凭兴趣到处玩,但是玩得也挺开心的,因此我也不后悔。
大一上 (2023.9 - 2024.1)
大一上其实应该没有什么值得讲的,因为刚上大学嘛,一切都是在熟悉大学生活 —— 自己去澡堂洗澡,自己洗衣服、晒衣服,自己打扫;按时上课,认真听课(存疑),期中/期末复习;和同学约出去玩,逛逛校园,参加二课。
突然想起来,其实应该是有的,参加 lug 的二课活动!但是我不善社交,每次参加活动都不敢和 lug 内部负责人们打成一片,而且当时我的计算机水平也不够,很多话题我也听不懂(sad),就默默参加二课支持一下。
而在当年 lug 举办的 SFD (Software Freedom Day) 中国科大站 中,我有幸从一位宣讲 RISC-V 开源生态的宣讲者那里免费拿到了一块名为 Milkv Duo 的 RISC-V 开发板,并在中区的创新实践基地用免费的电烙铁和焊锡焊上弯排针(为什么是弯的呢?单纯是因为感觉如果焊直的容易在桌子上放不稳):

不过在焊排针之前,我还买了一个 Ethernet 模块,因为使用基于 USB 的网络实在是太难受了,必须供电和网络共用同一个接口,不能直接插到我额外的连在电源适配器上的 USB 线。但是难绷的是,这个板子的设计实在是有点神秘,如下图所示:

模块突出的引脚会把 SD 卡挡住放不进去,真是给我气笑了。
此外,当时我还参加了 lug 举办的 HackerGame 2023,这个面向初学者的 CTF 比赛是真的好玩(虽然现在因为 AI Agent 的原因马上就要入土了),对于我这种以前从来没接触过 CTF 比赛的新手来说玩得可起劲了,但是非常难绷的是,这个比赛开在期中考试附近,还只有一周,导致我不得不以期中复习为重,完全没时间玩啊!
然后就是至今依旧受益匪浅的一件事 —— 在宿舍里搭建 Debian 服务器,改装自原本放在家里的小型台式主机,简简单单刷了个 Debian 12(现已更新至 Debian 13)的镜像进去,其内部结构如下图所示:

这台机器目前依旧在我的宿舍里工作中,主要用于部署一些个人的重要服务,具体可见前文校内个人服务器搭建和配置方案。
最后就是两门令我受益匪浅的课程:
一是工院的机械制图,教会了我 CAD 入门,让我对工程设计方面有一定了解,我觉得还是很有趣的,而且对我之后 3D 建模,EDA 画板子之类的都很有帮助!

图 4 机械制图作业题(工图还在追我)(23.9.27) 二是计算机程序与设计进阶班,让我躲过了枯燥无聊的普通班的 C 语言课程,得以写一些复杂但有趣的算法,并和一群有着丰富 coding 经验的同学相识!
以下是 C1 题随机生成 1024 位大素数的示例输出:
$ gcc -o C1 ./C1.c ./C1_mr.c -O3 && ./C1 Please input the mode (t to test, g to generate, q to quit): g How many prime numbers do you want? 5 try count: 277, runtime is 13s. c1c57071168405a11430050cf9633e58fa4c7e939976e65dbb52aed4b27c2c9f35700d5cae2aab8a85c62171295e0a57021140843ec0cfb0eca33b288fbee3efa9632a58826d609becadfb2ba879ea1e9b5126d40073801cef0bbbc20e8d03a39c4aa712fcc83f3288c422317887de21c6a9f1aa124b0492134b84d2c8623607 try count: 41, runtime is 1s. d90d7643ca2f728b435110d480cf60333e424f90ac886b22dd7ff75f5e2e578b7e1cdf87670ed9c34048101296b625ad47e651f9951e25479766a5d90572015cf42ffd0b9d6067582577895dd1c134708e27a389841c61072f2fcbcb18ddc6374fd213f41f8ac7e20573c15cb1646c59e0b5782de907ba4116ae85ab583e1661 try count: 251, runtime is 12s. c232508c8cb0232c1dad876b52aad4aa525994962af80abecb64b2d9e5c139708fa7a3e9ce8f73a347db51f6348ecd2332b1ccace625b989ee183b8688d3e2340d6cc35b97e2a5f88bd1e2f461e8987a0fa943ea35e00d7871fddc7fbd122f44a0fca83fdd433750a85aea16c059f01644ae912bdaf5f6bd9a8f26a3ef887f6b try count: 169, runtime is 7s. eef61bbdd754b5d5dd24b749d39eb4e7871da1c71ac586b11280c4a0a8392a0e911864463c614f18f118bc46a3c128f080f9a03e1be606f9cfeff3fba362e8d874d55d35482e520ba0246809f4413d109f73a7dc37af8debfa35fe8deff6bbfdfe5c7f973bab4eea906fa41b1c7e471fe28bf8a20a2e428b0937824d9b5868cb try count: 587, runtime is 34s. 902cc40bcfa533e91a6546997f905fe4eede3bb7474251d08de4237984dba136fd0eff43adda2b76179ac5e6f16fbc5b64e8593a7ae51eb930fb8c3ef0747c1de7ad39eb337dccdf1d6ac75a1164c45983f620fd6f065bc1159a45660e57439587ea61facd217348dcd9373664a3d92880846021e99f3a678f4f23d3909c6de7
寒假 (2024.1 - 2024.2)
回过头来想想,我才发现,这不仅是我在妮可的第一个假期,也是最后一个假期,最后一个什么都没做纯粹就是休息的假期。
大一下 (2024.2 - 2024.6)
大一下的主线事件应该就是转专业了,因为大一结束后有提前转专业的机会,为此我跨院选修了计科大一下的专业必修课以防之后补修,再加上工院本身的课和科社的 ddl 逼近,这个学期当之无愧是我这三年里最累的一个学期了。
在课内课程方面,令人印象深刻的还得是工程科学实践,运用各种工业设备和工具制造各种各样有趣的小玩意:


还造了个小锤子:

但论印象最深刻的,以上都不及这一年我参加的我校机器人比赛 RoboGame 2024 了!
其实一开始我对这个机器人比赛还不是很感冒,但是那一年 5 月份,我心血来潮,自制了在宿舍里整了一个自动关灯的小装置,如下所示:

原理很简单,就是一个 esp8266 芯片的最小开发板加上一个最便宜的舵机,通过两个 18650 锂电池通过 3.3V 到 5V 升压模块提供供电,然后开发板连接到宿舍的路由器上,每隔一定时间向路由器轮询当前是否需要关灯。
但是这个实现的最大问题就是,锂电池的续航不够,每隔一周我就必须给这个锂电池充电,非常麻烦。本来我想着至少能续航撑过一个月,如果乐观的话能撑过一个学期,但是事实证明,即使我开着低功耗模式,尽可能提高轮询间隔时间,静息电流还是能达到 0.x mA 左右,不可能挺过一周。
就是这么一个不够实用的粗糙小玩意,吸引到了一个正在参与 RoboGame 的同学,他邀请我参加 RoboGame 担任电控职务,在一番斟酌下,秉持着当时对于嵌入式、单片机的热情,我欣然接受加入到他们的队伍中,丝毫没有意识到接下来我将面对什么。
补充一下背景,RoboGame 是我校工程科学学院举办的一项机器人比赛,每年 RoboMaster 的负责人可能会从前年打 RM 的经验中找出一个简化的工程问题作为 RoboGame 的题目。参赛选手需要 5 人组队,运用有限的经费(通常其实很够用),从头设计出一个机器人用于比赛使用。按照职责,通常五人需要分别承担:
- 机械(机器人的整体外观、材料使用、建模等等)
- 电控(负责下位机,通常是单片机,对于可运动部件的控制的代码编写)
- 视觉(负责上位机,通常是树莓派,对于视觉目标的数量和位置检测,以便定位)
- 算法(负责上位机,根据下位机和视觉给定的信息,通过下位机控制机器人的运动,从而达成题目的要求)
- 财务(管理材料购置费用,根据发票报销等等)
时间线上,RoboGame 分为一审、二审、三审和正式比赛这几个阶段,只要达到各阶段标准,即可按阶梯式逐步增加经费报销额度,然后在最后正式比赛中根据成绩颁发奖金和发放学分和绩点。
RoboGame 2024 的题目是,给定对战双方的机器人场地,双方场地内最初均有等量的橙色方块,机器人需要识别并将方块扔到对方的场地里,如果扔出场外则永久记录为己方方块数量,在给定时间过后,谁的场地内的方块数量最少,谁就获胜。
我们组的情况是,视觉和算法被一位同学全包了,然后机械、财务分别被两位同学包了,还有一个队长,会一些机械和电控方面的,但是不太擅长程序编写,最后就是我,顶替之前担任电控职位的同学。
说实在,一上来,情况非常之不乐观,有没有懂别人车子都搭出来一个完整的了,我看到我们组内只有,三根独立的带电机的轮子,两个独立的锂电池组,一个独立的自带单片机的机械臂,两个独立的带电调的飞轮,一根独立的推杆,然后就是零零散散的独立的各种机械部件 —— 也就是说,我之前的电控几乎什么都没干!连车子都完全没搭出来!
问题是,我一点也不懂单片机编程,不敢乱花经费试错,而且 5 月份其实已经快要到期末了,暂时没有精力搞,因此从 5 月到 7 月我所做的就是一直看网课学习单片机编程。这里不得不推荐一下 B 站上江科大的 stm32 单片机教程,非常好课程,使我完全理解,比那些个需要一定基础才能看懂的开发板厂商给的学习资料好看多了!
暑假 (2024.7 - 2024.8)
时间来到 7 月中旬,此时学校内的考试也早就结束了,我也刚学习完 stm32 单片机编程,是时候开干了!我选用的是 stm32f407zgt6 最小系统板,通过杜邦线连接到各个控制模块实现控制。(为什么不打 PCB 板呢?因为二审的 ddl 就在 8 月中旬,而此时我还不会 PCB 画板,即使画出来了也要至少 3 天才能到,从快速开发赶 ddl 的角度来讲实在是太慢了!)
首先调试的是轮子:

通过 TIMER 的 PWM 模式控制继电模块的平均输出电压实现,不过此时我还没有连上闭环控制所需的编码器,因为主要目标是先保证其他部件能正常运行和受控。
然后调试机械臂:

调试这个机械臂还是很简单的,因为厂商已经配套了一个单片机用于控制机械臂,我只需要通过 UART 串口输出就可以直接指定提前记录好的机械臂动作。
接着调试飞轮:

这个也很简单,通过 TIMER 的 PWM 模式控制电调从而指定飞轮的旋转速度。
本次接下来应该调试推杆的,但是之前机械设计时计划使用的弹簧推杆过于剧烈,很容易卡住或者弹出场外,因此在重新设计机械后,必须等新买来的推杆到了才能调试,因此接下来调试的是轮子的编码器:

本来调试这个也是很简单的,只要额外加几个引脚读就是了,但是令人难绷的是,有个轮子的编码器烧坏了,导致读数一直为 0,也要等到货才能开始接着调试。
接下来的几天,可能由于不小心不恰当的操作,我们的 stm32 的开发板直接烧了!虽然不是字面意义上的烧,但是只要拿手放到芯片上立刻就能触发条件反射。于是我们重新加急买了两块新的开发板。
直到二审当天,我们才得以开始调试新的推杆:

也是有惊无险,赶在二审当天,我们成功在场地内拾取并发射了方块,通过了二审:

到此为止,我的工作就告一段落了,因为接下来的两周,我也要难得回家休息一趟了(二审前几天天天熬夜,甚至有几天都熬穿到早上了,实在受不住)。
大二
大二上 (2024.9 - 2025.1)
时间来到大二上,在过了二审后,我们队就开始准备国庆期间的 RoboGame 比赛了,这时候我就退居二线了,因为车子的框架已经搭好了,主要看视觉和算法那边的工作了,我主要就是参与日常的车辆维护工作,保证电控部分的稳定运行。
不过,随着车辆调试的进行,之前没有打 PCB 板和使用更牢固的线缆的缺陷逐渐暴露出来 —— 线缆太容易松动了,车辆一撞到墙就容易松动,造成线缆脱落,导致下位机和受控模块的连接,上位机和下位机的通讯全都可能被破坏。我也没有什么好办法,因为当时我还不太会画 PCB 板,而即使画出来了,受限的车辆大小导致板子根本没地方放。

除此之外,做视觉和算法的同学还额外加上了一些的定位模块,最终,我们的车子的成品如下所示:

额外多出来的高杆主要是为了视觉能通过摄像头尽可能搜索周围的方块,并且车辆前下方还放置了一个距离传感器,不仅是为了防止车辆碰撞到墙壁,同时也是为了车辆能够检测是否碰到方块而选择是否停止运动。
由于车辆做得太仓促了,等到了国庆比赛当天,我们还在调试车辆,甚至还在添加新功能(写了一个类似于 RTOS 的抢占式调度机制),最后的结果就是只拿了一个二等奖,不过也对得起我们这几个月来的工作,还是非常开心的!

至此,RoboGame 2024 的旅程就到此结束了,实在是一段难忘的经历啊!在和队友们一起吃了一顿饭之后,我就和队友们分道扬镳了,希望有缘再会了!
除了 RoboGame,在主线方面,大二上也是我从工院转到计科的第一个学期,不过除了计科大二上必修和选修的课以外,我还选了一个大三上的计算机网络,主要是因为这门课程几乎没有什么前置课程再加上高考完的暑假我已经把课本全都看过一遍了,所以学起来很轻松(但是两个早八,还是要掂量掂量?不过不点名,那我还说什么了!)。
论大二最有趣的课当属是模拟与数字电路实验了,由于我选择的是提高班,所以每个人都能拿到一块 FPGA 的开发板,如下所示:

虽然每人能拿到一块板子很舒服,不需要使用在线的 fpgaol 和别人抢板子用,但是有趣的大作业只有普通班有 —— 用 FPGA 开发板和 VGA 显示器开发一个游戏。所以我就没有做任何游戏,只能引用一下别人做的优质游戏:
- 东方project系列二创游戏:https://www.bilibili.com/video/BV1KoCJYUEZ1
- Flappy Bird 复刻:https://www.youtube.com/shorts/InrxOJ-FaT0
还有一门课程就是计算系统概论,简称 ICS,主要讲述 lc3 虚拟计算机从晶体管到汇编的构建过程,相比于之后的 OS 和 COD 算是比较简单的了。但是课程本身不是重点,重点是在课程期中考试过后,该课程的老师在群里推销了一下 ASC 超算比赛,以此契机,我参与了 ASC 25 超算比赛(从此入了超算的坑),不过到正式开干还得是寒假的事,因为初赛从寒假开始。
最后,就是社团相关的事情了。这年 lug 的 SFD 我没有什么印象深刻的,不过 HackerGame 2024 依旧好玩,可惜的是,这也是最后一届了。不过有一个额外的新奇好玩的东西,那就是在游园会上新添加的 Nerdle 小游戏:


这原本是 23 级程设进阶班 C2 大作业的题目内容,复刻一个到本地并加上打印机,搬到游园会上来玩真是夯爆了!
寒假 (2025.1 - 2025.2)
时间来到 1 月下旬,此时 ASC 25 初赛的题目早已出来,但是只有考完期末考试才有时间精力搞比赛。
第一次打超算比赛,看到长长的还全英文的初赛文档实在是不知从何下手,不过实际上就是由几道赛题组成的,所以我只需要管我负责的赛题就行了。
初赛赛题要求使用学校自己的服务器来跑,因此实验室给我们腾出了 4 台服务器,每台服务器配置如下所示:
$ fastfetch --logo none
wuqingyu@icarus0
----------------
OS: Ubuntu 22.04.5 LTS (Jammy Jellyfish) x86_64
Host: NF5280M6 (0)
Kernel: Linux 5.15.0-179-generic
Uptime: 33 days, 6 hours, 34 mins
Packages: 2493 (dpkg)
Shell: zsh 5.8.1
Display (VGA-1): 1280x1024 [External]
Terminal: /dev/pts/27 8.9p1 Ubuntu-3ubuntu0.15
CPU: 2 x Intel(R) Xeon(R) Platinum 8358 (128) @ 3.40 GHz
GPU 1: NVIDIA A100 PCIe 40GB
GPU 2: NVIDIA A100 PCIe 40GB
GPU 3: ASPEED Technology, Inc. ASPEED Graphics Family
Memory: 25.63 GiB / 503.52 GiB (5%)
Swap: Disabled
Disk (/): 298.24 GiB / 1.79 TiB (16%) - ext4
Local IP (ens17f0): xxx.xxx.xxx.xxx/24
Locale: en_US.UTF-8为了不和以后其他正常用户的使用造成冲突,我们的系统是放在额外的硬盘里的,因此我们需要重新安装新的系统,而我们选择了 Ubuntu 24.04 LTS 这个当时最为中庸的发行版。
配置方面,主要问题是 Mellanox 网卡和交换机的驱动配置是在是太恶心了,轻轻松松打破系统包管理器的依赖关系,但是 Nvidia 只发布二进制的内核模块和库,我们也没什么办法,只能说能用。
我和一位学长共同负责的赛题是一个生物信息的 C++ 工作流,由多个对数据做不同方式处理,比如排序,过滤,匹配等的程序构成,需要在给定各个子程序的参数和执行顺序的情况下优化总体的运行时间,具体的优化方式就不在这里展开了(别搞得跟面试样的)。
而在初赛将要结束的时候,我还有幸蹭到了代表实验室参加华为超算人才峰会的机会(虽然我完全是超算方面的新手),并在华为的欧洲小镇观光了半天:

而随着寒假即将结束,初赛也随之结束。最后,我们队伍成功拿到一等奖,并获得到参加 ASC 25 决赛的资格!至此,ASC 25 就告一段落了,因为步入大二下,开始上课了,我投入到准备 ASC 25 决赛的精力就很少了。
大二下 (2025.2 - 2025.6)
大二下是一个主要在凑学分的学期,因为过了暑假我就要搬到高新了,但培养方案里所要求的各种通识课基本上都不在高新开设,因此这个学期我必须尽可能把培养方案要求的课程都提前选好,并且还要选一些额外的课程以达到总学分要求,否则大三大四我就不得不在高新和本部之间两头跑了。
在课程方面,这个学期实在是有很多可以吐槽的。首当其冲的就是妮可特色量子物理,烂完了,我又不是学物理的,学 nm 量子物理干什么?等什么时候可商用的量子计算机出来再说吧!
其次就是 OS,并不是因为课程烂,相反课程还是可以的,但是和南大的 OS 相比实在是相形见绌了,上课纯理论,严重缺乏在 Linux 系统上的实操,即使是实验,也是很无聊,丝毫比不上南大 OS 那种优质、有趣还紧密结合时代的特色课程。
最后是一门 Linux 系统管理与应用的通识课,虽然但是,这门课程有点过于老旧了,比如 Linux 内核的版本号早就没有任何语义了,还在讲早就过时的 2.6 以前的偶数稳定版、奇数测试版的规则;又比如常见 Linux 发行版文件系统,还在 ext3,现代发行版早就用上 ext4 并提供 btrfs、xfs、zfs 等其他各种各样文件系统支持了。
不得不说,我觉得这个学期可以被评为本科三年最无聊的一个学期了。
时间来到 5 月份,我们前往青海大学参加 ASC 25 了,开始度过这学期最有趣的几天了。
首先就是饭菜,富有西北特色,具体来说就是,很多很多香软的羊肉,就算没有任何酱料本身也非常软烂可口,反正我是真吃爽了,而这样的餐食我还可以吃 4 天 4 夜。

然后在第一天调机器的时候,我和我在其他队伍的高中同学再会了,而且幸运的是,我们两个队伍不仅在同一个小组里,还刚好被分配到两个“门神”的位置(顾名思义,大门两边一边 USTC,一边 NUDT,往那一镇)。久别重逢,还是非常激动的,而且他是一个资深 Linux User,所以我们也交流谈论了很多有关 Linux 相关的话题,非常开心!
而在当天结束调试,准备关机器的时候,一件令人意想不到的事情发生了:

主办方的功率测量有问题,疑似是 32 位无符号整数被赋值为 −1 导致功率数值飙升到 231,谁家小型核聚变反应堆?
接着第二天,还是调机器,主要是各自应用的适配、迁移以及各自机器的功率的控制问题,没有什么特别的发生。

终于见到标准实现了 UEFI 规范的固件真实执行各阶段的过程了 —— 从 SEC 到 PEI 到 DXE 最后到 BDS 选择进入 BIOS 还是系统。
接下来的三天就是正式比赛了,时间是真的紧张,一会儿是主办方发各种新数据但是原有程序没有覆盖到要重新适配,一会儿是功率风扇都拉太高了需要一直盯着监控面板和微调风扇。
至于我负责的赛题除了初赛的赛题,还有一道小组题,也是毫无优化地硬着跑完了。但是初赛的那道题却有一个致命问题 —— 硬盘不够用,原始数据占到了 1 个多 TB,但是每台机器只有一块 500GB 的 SATA 盘,因此我们不得不使用内存盘,将数据切分存放到每台机器的内存里,也是非常别扭且极限地跑完了所有用例。
而最后,到最后一天,比赛结束,参赛选手需要将所有机器按原样拆成比赛前的样子时,我的手机屏幕非常不幸的,被我摔坏了,而且是内屏坏了,屏幕外观还好,但是完全不能触控,这导致我最后想和其他学校的同学加好友的时候,tmd 我的手机坏了扫不了码一个好友没加上,气死我了!
不管怎么说,这次 ASC 25 决赛的经历依旧是收获满满,不仅是爽吃,爽玩,出来旅游,更是为能和其他在超算领域有着深入了解的外校同学们而感到非常幸运和感激,而在最后比赛结束的晚宴过后,第二天中午,我们便启程返回本校,结束了这趟令人流连忘返的旅程。
除此之外,在翻阅以往的照片时,我还想起来了在 5 月底的时候,另一位学物理的高中同学前来我校访学,真是非常幸运,一个月同时能遇到两位很久没见的高中同学了,他还送了一些小礼物:

无疑是非常开心的,但是我实在没准备什么礼物,只能带着他到处逛了一下妮可的校园了。
暑假 (2025.7 - 2025.8)
这一年的暑假不像去年那样忙碌,但是同样还是有一些可以说的。
首先就是 NIC (Network Information Center,网络信息中心) 的主任在 github 上找到了我写的 reccli-ts 项目,一个将学校网页端的网盘转换成能在终端中访问的工具,想让我写一个新旧网盘数据迁移的工具。
花了几天把这个工具做好了,前端主要是 vibe coding 出来的,后端除了重要的文件传输和校验部分是我严格把控手写的,其余有关 session 管理和前端 API 的部分依旧是 vibe coding 出来的(该省省该花花)。
其次就是找了个线上的实习干了几天,主要是 AI agent 相关的开发和测试工作,但随着暑假的结束,精力要重新放到学业上了,就提前跑路了。
最后就是宿舍从本部搬到高新了,不得不说,高新宿舍的空间明显比中区的小好多,而且宿舍内的厕所还时不时会飘出下水道反上来的奇妙味道,条件比中区差多了,但是好歹比东西区的好。然后就是周边设施,除了一家麦当劳和一家老乡鸡,要想去吃点别的,逛点什么还得至少走个 1km 才行。最后就是环境,我还是很喜欢绿化很多的东西区,感觉空气都比高新好很多(不知道是不是错觉),相比于高新区,在本部我更有到处闲逛的欲望。
大三
大三上 (2025.9 - 2026.1)
时间来到大三,此时我的学分基本上各方面都够了,除了一些专业选修课,因此这学期依旧是凑学分的一个学期,但是当时我丝毫没有意识到这个学期将是我上过最神烂课的一个学期。
首当其冲的就是机器学习 A 了,仅仅一个学期,就创造了评分从 9.x 被冲烂到 1.x 的奇迹!你可以在评课社区中看到各位同学对这门课程的“亲切问候”。这门课的最大问题就是课程内容安排实在有大问题 —— 前一半都在讲传统机器学习,只在最后几节课讲了一些 DL 和 RL 的知识;课程内容偏重数学部分太多,但是数学部分讲得又不够深入,高不成低不就的令人非常难受,计科的同学学不懂,数院的同学不屑一顾。除此之外,还有明明当初选课的时候说是 15 周结课,但是直到 13 周才通知要更改为 18 周结课的神秘调课问题。总而言之,这门课完全可以和量子物理做一桌,甚至有过之而不及。
其次是多媒体技术基础,课程实验有点强依赖于 Windows,只能挑几个可移植的,或者方便迁移到 Linux 的实验来做,但是这倒不是什么课程上的问题,主要是用 Linux 做桌面系统的用户还是太少了;但是期末考试有点难绷,全开卷,甚至可以带电脑和手机,那这门课的考试的性质就不一样了,完完全全就是比拼谁的 LLM 更强和谁的打字/写字速度更快,考了个寂寞。
社团方面,这个学期我加入了 lug internal,成为了 lug 管理层的一员,开始在 lug 中做事了。不过说到底,也就是举办了几场小聚,单纯来玩的。还有一件令人悲伤的事情,在 AI Agent 的冲击下,HackerGame 终于破产了,一并破产了还有一众 CTF 比赛,全被 AI Agent 一一破解,想当初还是 gpt 5.2 还是 5.3 来着,就已经展现出不凡的做题水平了,到现在应该早就框框乱杀了。

突然想起,这个学期好像我写的项目还是挺多的,有多媒体技术基础的作业 jpegify —— bmp 和 jpeg 图片格式互转工具;有不满于 Typst 中底层画图工具而做的 typst-tdtr —— 对 typst-fletcher 的高级封装,用于方便快捷地画出一棵树状图;还有当计算机网络课程助教搓的课程实验 dns-relay —— 简易无缓存 DNS 中继器,使用 C 语言编写。都是些简单实用的小玩意。
可能是这学期忙于学校的事情吗?感觉这学期实在没有什么有趣的事情可以讲,难道我以后参加工作了也要变成这样吗?有股说不上来的无奈感。
最后就是,这个学期我接着参加了 ASC 26 超算比赛,不过现在看来,是不是应该早点进组搞科研才好?其实这个时候我已经联系到了一位导师,并且也在其手下做了一些活,但是之后我才发现,我对这个方向并不是很感兴趣,不过这已经是下个学期的事情了。唉,纠结,感觉这时候我开始什么都做不好了…
寒假 (2026.1 - 2026.2)
这个寒假和去年寒假一样,都是准备着 ASC 26 的初赛,同样的机器,只不过这次我选择使用 Debian 13 作为主力系统(依旧 Debian 忠实用户)。其他的和 ASC 25 几乎差不多,除了我这次去北京参加了 ASC 26 的初赛训练营,不过到最后我发现,我其实只是过去玩的…
来到北京,首先,当然是来中科大学生的必经打卡点:

然后就是品尝北京经典小吃(可太 tm 难吃了,又酸又涩):

最后我们还吃了北京烤鸭,不过可惜我好像没有拍照(吃美了说是)。
而至于训练营嘛,几乎全忘了,就记着个:

因为 ASC 26 有着 AMD 的赞助支持,所以初赛文档中的推荐 CPU 从 Intel Xeon 改成了 AMD EPYC,但是我们自己的机器还一直都是 Intel Xeon 的,虽然在初赛时没什么差别,因为可以随意使用各种类型的 CPU,但是在决赛时 ASC 26 官方提供的机器采用了 AMD EPYC 的 CPU,我们在做程序优化的时候就必须考虑到 Intel CPU 和 AMD CPU 的架构差异,才方便做出针对性的优化。
大三下 (2026.2 - 2026.6)
时间来到大三下,也就是这个学期,我终于不用凑学分了,因此除了两门必修课,这个学期什么其他的课我都没选,实在太爽。
不用凑学分,就说明我的空闲时间多起来了,因此我在 lug internal 中也愈发活跃起来了,时常干一些修订文档,举办小聚之类的活。
至于 ASC 26,很可惜的是,我们并没有拿到一等奖进入决赛,只能止步于二等奖。而正因如此,这个学期实际上我所做的事情更多的是去年的延续,比如 typst-tdtr 的长期维护,lug internal 事务的接管,以及新增的对于校内服务器/集群的运维管理。
同时,步入大三下,我也必须开始准备保研/推免相关的事情了,提前和导师联系并在组内干活,准备夏令营和对大四的规划。因此,这个学期其实并没有什么值得说道的事了。
结语
虽然本文于 6.26 开始编写,但是直到今天 7.1 才最终结束编写,本来我以为应该写得挺快的,但是在不断回忆和翻阅以往照片的过程中,我发现能写的东西越来越多,只能切分成多个 wip 的 commit 每天写一点,终于,花费了 6 天的时间,把这一篇回忆录似的文章写完了,感到一阵如释重负。
谨以此文,纪念我在中国科学技术大学生活过的三年!