身处小众神秘专业,贵系课一半 A+,GPA 3.45,躲开最热门的 AI,挑战无人问津的的课程项目,跳过打杂阶段独立进行科研,然而保研前 0 pub……
没有参考价值,不能作为经验分享,一个离群点的故事。
大一上
大一上是和计算机最不沾边的,只有一个离散 1,连隔壁数学都还有个程设。后来我甚至去要来了他们程设的大作业,一人写了三人合作的份。并没有提供给室友,就写着玩。
刚来到学校还没开始上课的时候,隔壁有个数学的同学来讨论 的证明1,我兴致勃勃地把它证了出来。高中在镇海集训摸鱼的时候还玩过 QED、natural number game 之类的,我确实是对这种(简单的)严密逻辑推理很感兴趣。总之,此时的我还对好好学数学抱有一些幻想。
第一次数分作业,应该算是比较简单的,我做了 20 多个小时,是花的时间最长的一次,之后不再有这么多时间精力和耐心来反复思考这一道道题了。一开始还会因为记了笔记就没时间看懂课上的证明而苦恼,放弃记笔记之后很快也放弃了看懂定理证明。
期中考试,数分平均分比 60 略高,我理所当然地比 60 略低,也迅速习惯了数学课的这个考试分数。我选的老师高代考得很简单,有一堆满分,而我摆大烂,只比及格高一点。
数分作业逐渐开始即使参照着网上的答案也写不完,我也一直坚持要先看懂答案而非纯抄,在零散的几次迟交后,期末攒了几周一起交上去。后来这位数分助教陪伴了我三个学期的数分和半学期的实分析,历经 czj 和 ly 两任老师2,在我补交的时候给我发了各种表情包。
大家都在害怕高代期末会考得很难,但是依然很简单,有向下调分的嫌疑。没公布期末分数,我感觉能满分,最后拿了 3.3。当时有点难受,而后续是,它数学课最高分的身份一直保持到了现在。
这时我也应该想起来了,除了更想学计算机这个因素,初中的时候我课内就不擅长平面几何,奥赛不擅长恒等变换,高中也长期做不出导数大题第二问。总之这种需要一定巧思(虽然其实会了就知道很多只是套路而已)的东西我从小就是不擅长的,初中数学不仅本身简单,我也只是会按部就班地计算而已,早在当时我就已经不能称得上是擅长数学了,只是现在到了这个地方更突出地表现出来而已。
不会数学,倒也并不是说对逻辑推理感兴趣就完全扯淡,离散 1 我学起来还是挺轻松的。有一个选做作业是生成真值表,说是不算分,但如果差两分到 4.0 可以用这个捞之类的。我当然会抓住这个机会,但主要是用作 Vue 的练手,当时学了后还没太写过。实现了不少功能,不只是画真值表;可以辅助离散作业,后来数设作业也稍微有用到。最后考试 92 分只给了 A-,感觉这个选做真没给加分。
入学不久还没到百团大战的时候,我就按照 tuna 官网的指引,发了封邮件申请加入,但好像一般并没有人会这么做(。现在三年过去了,我在 tuna 的参与度还不如班级活动的参与度高(,tunight 去得也越来越少,基本上就和班级有点类似,大家只是群友(。但是水群也挺好的,而且以杰哥、哈利、谭院士等为代表的群友真的是好课的象征。另外,经不完全统计,tuna 现本科生(不算零字班)群友中,似乎仅有我、一名为先同学、一名软院同学,情况堪忧;虽然但是,我个人感觉这也从侧面反映出了一些贵系现状(,与此同时,计网联合实验和 OS 大实验的参加人数都在大幅缩水。
另外,我还去租了个 VPS,自己部署了一些服务。要说这些服务有多有用,其实好像也就一般,但有一个自己的服务器很多时候真的很方便,也能学到很多。
这个学期到最后最意外的可能还是写沟拿了唯一一个 A,明明是乱写的 VirtuaReal 和 b 站大会员(
大一寒假
我是在 THUWC2019 第一轮3 听说智能体大赛的。2019.3 在雅礼集训的最后一天,一道娱乐题是五子棋,我没写另外两道正常题,写了一整场五子棋,大致是一个自己随便糊出来的只有两三层的估价 min-max,当时还是打遍全场。2019.10 在杭二的时候看到旁边同学在 Botzone 上写黑白棋,于是把之前写的五子棋搬到了 Botzone 上,然后又进行了优化和重写,加上 alpha-beta 剪枝,进了排行榜第一页。上大学前的暑假,我还学了 MCTS,在 Botzone 上写了几个游戏。
总之,我来看了一眼这次的智能体,恰巧这次的游戏是近几年中最适合搜索的一次,就写了个简单的 MCTS 交上去,一开始还挺猛的,后来懒得去优化也不太会人类智慧,一直放着混到了八强。
寒假本来还想读一读 Artificial Intelligence: A Modern Approach,但就像之后的每个寒假一样,没读多少,只不过这次是最少的。结果后来我首先排除 AI 方向科研,人智导又年年时间冲突(
大一下
这学期还是很数学,但离散 2 多少是稍微沾点边了;另外还选了个通识课计算机系统研讨,我感觉挺水的,聊以慰藉。
离散 2 还有个“图论创新训练”,之后一路选大作业的我不知道为什么这次没选,但后来听同学说这个比较垃圾,几乎就是在帮忙编教材,不知道如果我当时选了的话后面其他课会不会变得不想选。智能体的加分是用在了这里,于是最后混了个 A。
zeven 还去选了个 OOP,这课我们不用上,只不过据我观察他确实不太会 OOP(。这课不用选课就能做题,作业是比赛,还有公开排行榜,于是我每次去蹲点做题刷榜。有一次本来可以 rk1 的,结果题目一开始出了问题,本来可以等重测,而我选择了重交,罚时爆炸。
2022.3.16 的史纲课,历史总是充满了偶然,我看到前排是 PinkRabbit 在刷闭社。之前老洞倒闭的时候注册了闭社,但一直没看过。这个偶然的契机让我也逛起了闭社,很快在这里遇到了驰雨——
——也看到了大家都在玩 Medle。玩了几天 Medle 和 Semantle 之后,手上缺项目的我 也想自己写一个什么 dle,最后爆肝一周写出了 Codle,只不过一直都没什么人玩。
zmx 的课是几年中为数不多我会认真听的课之一,授课风格我比较喜欢,美中不足就是考试太难。高代 2 期中过了平均分,期末题目很难,而唯一的送分题我算错了,最后 2.6,有点难绷,毕竟是认真学了的,宁愿和数分互换一下,即使数分多 1 学分(
这学期因为疫情可以两门课记 P/F,在老师的警告/提醒下没有选数分/高代,而是选了体育和大物,后面秋季也是这两门。现在想来怕记数学课造成不良影响完全是扯淡,但凡会看我数学课成绩就已经寄了,还管是不是 P/F 吗(
大一暑假
暑假的开头先是去上了个逻辑专题,主要是因为驰雨想上(;可惜是线上(。感觉又水又不水的,一周一下就过去了,有点恍惚(。最后抢在程设训练之前拿到了首个 A+,是唯一一门培养方案外的课,也是唯一一门非贵系课 A+。
本来想这个暑假就去上致理交叉实践的网安专题,结果它似乎是因为疫情等因素取消了,就这样错过了提前一年接触网安的契机(
后来去搭了现在这个博客,实现了很多我想要的小功能,还对着各种 validator / benchmark 优化性能、SEO、无障碍访问之类的,好玩。唉,为啥要用 iles4(
最后去学了 Rust,见《初学 Rust》。刚入学看到培养方案的时候,我就在想这课是最能拿 A+ 的,事实上它也是目前唯一一门出分前我有把握拿 A+ 的,毕竟是测试全过,得到助教好评,拿了 20 + 40 + 40 + 5 的满分(。要我从个人角度来评的话贵系体验最好的课就是它了,文档要求清晰,自学 Rust 即可无额外需求;想当助教(;主要是他在问卷里问我想不想当(
比较遗憾的是暑假太摸了,没读 CS:APP。其实我当时是有些担心系统课的,毕竟之前也没太接触过,感觉会没什么优势;但是(;感觉主要是一般人都不想学系统(
只不过,想起这个暑假,我的印象还是,一个人独自宅在寝室,每三天去工会俱乐部做一次核酸。
大二上
终于开始学计算机了(
这学期的主线任务是读 CS:APP,见学习笔记。我当时觉得啃书进度有问题,看完第三章后咕了很久,最后也好几章没看完或者只简单浏览了一下。但最后的结果是成功的,在这门摧毁了无数同学 GPA 的课程上 拿到了 A+。能完全自己看书而不需要听课/看课件的课我感觉体验还是非常好的,当然也是 CS:APP 这本书的功劳。
很久之前就听说过 OIer 不要觉得自己会邓公的 DSA,真的去上了才知道原来是这么一回事,原来这个算法这个数据结构这个函数可以叫这个名字,原来课件可以如此内容丰富而又啥都没有,原来这个不恰当的比喻在初学者眼中是生动形象的,原来快速排序有五种写法(。后来批判计组查重的时候还有人说 DSA 的 honor code 很好,但我还是觉得,大一点的工程项目只要是自己写的就有把握说一定和别人不一样,而 DSA 全是经典算法,并且我 从小 就是照着别人教程里的写,我究竟是参考了还是没参考呢。或许是,一般人觉得越分辨不出是不是抄的越好,这样即使抄了稍微改改就不会被发现,而我刚好相反吧。总之这门风评最好的贵系课对我来说或者可能对 OIer 来说体验实在是不太好,虽然考试倒是给 OIer 送了分,最后一题考了个需要维护修改 tag 的平衡树基础应用,可惜我看错了题,只不过最后勉强还是保住了 4.0。
没选电子学基础,而是选的物理实验。练习了 LaTeX(和 R),感觉还是比隔壁期末默写原题好一些(。其实我不太理解大家为什么觉得实验报告难写,要对着往年报告拟合,我感觉这课拿 A 有手就行(,我也没多做什么,还溢出了几分,A- 就更简单了。难道是大家真的没动手做实验(。可惜一开始误以为物理实验 A 对标大物 A,就选了物理实验 B,按我们的培养方案,这样凑满两学分需要比 A 多做三个实验。
这学期很重要的一个突破是偶尔会出去自习了。动机是看到驰雨说会出现在三教(,而迫使我走出寝室的是热爱 CS:GO 的室友,让我们说,谢谢室友(
后半学期疫情逐渐严重而信息纷杂,一段时间里,基本上只有 zmx 的抽代网课会当作 bgm 挂着,其他课就当不存在,整天不知道在刷着些什么。数分作业攒到了最后,抽代作业后半学期因疫情而不用交,大物几乎放弃了量子部分而记了 P/F,最后申请了抽代和大物的缓考。
大二寒假
这个寒假给自己定的任务是看 DDPP,完成进度比预期低。但这本书真没啥用,看 CS:APP 看得,以为什么课都可以啃书(
最后还得稍微学一下缓考的课,虽然也没学多少(
大二下
这学期记录了两篇博客,数设/实验和软工(后半部分写得有些潦草)。
在 tuna 群友,杰哥的推荐下,选了数设。体验还是不错的,好玩;虽然,我到底为什么要学硬件设计呢;总比学数电强吧(。在一开始想的几个选题里,我们当时还觉得小恐龙算是有点水的,后来才明白,大家一般都做不出自己想要的效果,完成度足够高就很难得了,不需要项目有多么复杂。我的工作量主要在于把外设调通,而代码写得似乎比 abmfy 少很多,所以总感觉是不是我在摸;但好像大家都觉得写逻辑是简单的(
我们组的软工助教是一位即将硕士毕业的学长,是十余个助教中的“首席助教”。然而不知道是一向如此还是这次忙于毕业,他似乎不是很关心我们写的项目,感觉例会和验收的体验都和别的组不太一样。虽然 Web 开发是我擅长的,在工作量上做了很多贡献,但我的沟通协作能力着实欠缺,其实并没有安排好队员的协作,进度有些混乱,最后还是惭愧惶恐地收下了 A+。说到底我感觉这课最根本的问题在于,软工不是一个可以有评分标准的东西,不适合放在 GPA 这套评价体系中。再加上 SECoder 的糟糕使用体验(例如难以使用而偏离实际的部署系统,例会前的超长 CI 队列),小作业的一些细节问题,较大的任务量,授课和签到,以及我们组的助教等等一系列问题,这课给我的体验实在糟糕。
还在最忙的时候去随便写了一下智能体,最后甚至没进 16 强,唉(
这学期和驰雨一起上了概率论和实分析,以此为契机拉近了距离,最后走到了一起,贴贴喵!
在实分析体验了我的第一次和大家的最后一次期中退课,很遗憾没能陪 zzj5 走过最后半个学期(啥
lzx 的概率论期末确实就是背诵,本来感觉虽然没背到能拿 4.0 的程度但 3.0 总该不成问题,结果还是给 GPA 来了重重一击,唉(
上学期体育选的游泳,在进度严重落后于其他同学的情况下,因疫情课程又提前结束,最后只勉强能做到连续游 100m。这学期报了游泳测试,本来想提前多练几次,但是只去了一次,而且人太多了,不好展开练,最后测试游一半还是呛水了。之后两个学期也都摸了,没提前练,于是干脆咕掉测试(
这学期的班会上 myc 又在宣传什么,GPA(比贵系)低不要紧,老师也明白信计这个情况,A- 没用要 A/A+ 才行……正好这学期拿到三个 A+,推动着我本就不在正轨的大学学习生活继续驶向岔路(
大二暑假
因为下学期是网原计组,还是想继续啃书,先去把 top-down approach 看了,选这本是看推荐它的人似乎多一些。本来的计划是暑假再把 Network Security Essentials 和 Computer Organization and Design: The Hardware Software Interface 也看了,但是(
这次去上了本来一年前就想上的交叉实践网安专题。第一次课配网就劝退了好多人,最后只剩下 8 个人,CTF 排行榜是 10、10、8、2、2、1、0、0 题(,凭借微弱的一血优势拿了 rk1。这课实验设计的还不错,体验还可以,确实对网络攻防有了一点基本的感觉,还第一次打了 CTF 比赛(虽然高中就摸鱼做过几道题)。结束后这个交叉实践(各个专题)有个神秘分享会,明明是致理的课,我还拿了 rk1,最后请的 rk2 的贵系同学去的,不仅如此,助教还告诉我,虽然没选上我参加活动,但也要我总结一下实验报告之类的,我充满问号(,虽然也不是很想参加这种神秘活动,但后来申奖学金的时候总感觉会不会亏了(
高中的时候对 AI 还稍微有点兴趣(甚至在 THUWC 面试说我有一点了解,不是,我只是看过 3b1b 的视频,不改代码跑过一两个项目,这算哪门子了解),但一方面近年来 AI 越来越火,而我几乎在无论什么场合都不喜欢凑热闹(,另一方面 AI 给我一种又玄学又数学的感觉,而除了顶尖的研究,貌似很多就是调参,以及大模型爆火后的 prompt engineering、agent 之类的;于是我首先排除了 AI 这个方向。剩下的方向倒也没有什么绝对的要求,偏好的话,我希望能干净一些,不要太 low level 太脏,而且最好是在我的电脑上就能搞定,不需要什么外部设备或者非得去实验室。总之偏应用层这块的网安还是挺符合这些条件的,虽然也会偶尔让我怀疑学习这么多 low level 系统知识是为了什么(,但这些怀疑也很大程度上来自于其他人的吐槽抱怨,我自己倒是明白学的这些东西对综合能力(底力6)的锻炼作用,而就算只看知识本身也不是完全没用。
其实到了这个暑假才尝试科研略微有点晚了,但事情就是发展成这样了,不仅没主动找老师,创新思维训练7都没选。本来是想着上了这个交叉实践正好可以去找 dhx,但走流程报名新星计划还是比主动联系老师更适合我(。打开新星计划项目列表,屏蔽关键词“AI”
迷迷糊糊地定下了暑假的课题,主要是拿一个学长写的工具去挖漏洞,看看能不能做一些优化改进之类的。最后漏洞是挖了几个,第一次体验到了报漏洞是多么看运气的事,对面可能完全不管(。优化改进的话,稍微有一点点,但并没有创新性/学术价值。我也就想着把这个新星计划混过去算了,结果后来才知道另外几个报了 cjj 新星计划的同学都跑路了没干活(,我还算不错的。
但最后这个新星计划完全没有后续,发材料过去都没有回应,证书评优之类的都没有,不知道是真这么逆天还是信计这边信息传达有问题,对我来说就是纯用来找导师了。
大三上
这学期的主线是声名远扬的计网联合实验,当初应该是 THUSC2019 的时候恰逢第一届硬件路由器实验,选手须知里还写了建议熟悉 WireShark,于是当时就有所耳闻。说是可以报 15 人,但最后只进了 9 人,好少,而且让我感到意外的是没有其他数设同学来(只不过我们组一名同学是后来大三选的数设)。但没两周贵系组就寄了,只剩下两个信计组,人好少啊(。在各个课程的大作业/实验中,硬件路由器是氛围最好的一个,由谭院士(twd2)和快乐小猪(zyx)等助教主导,qcb 也有参与;总之感觉助教参与度越高的实验就是体验越好的,而这些课程的助教恰好都是 tuna 群友(。其实我科研主要关注应用层的东西,不太研究网络层;而且,我到底为什么要学硬件设计呢(;但造路由器还是学到许多;主要还是好玩(
分工上,一开始还是相对均匀的;中期队友去造 CPU,我主要还是在造路由器;到了后期,一方面我感觉我没怎么造 CPU 得另外多干点活,一方面队友忙着准备期末而我不想学别的也想早点搞定,再就是后期不想再帮队友修锅了,而且整个路由协议这块正好可以我全部搞定就不用向队友解释一些设计(,于是最后两周包括考试周期间进行了一些疯狂赶工(。最后在考拓扑前我就基本搞定了,测试的过程中感觉手动配地址太麻烦,想写个 DHCP,考完拓扑发现只用发 router advertisement 用 SLAAC 即可。虽然上板压测遇到了一些不能稳定复现的问题,但考完网原就把组员叫来联网了,互联互通没什么问题。组内验收时还是遇到了之前压测时的问题,经过各种调试之后,没有发现问题在哪,但关了 O3 只开 O2 就似乎没有问题了(。连接国际互联网时,我发的 RA 还成功劫持了谭院士的默认路由(。最后,我们通过自己的路由器进行了小型 Minecraft 联机活动以及合影(
这个实验的一大特色是没有固定的 ddl,同时也没有固定的回家时间,等大家都做得差不多了再验收 & 跑路(。在我们完成组内验收后,另一组通宵爆肝,非常辛苦,最终验收时间推迟了一些,最后他们还有一些 bug 没修复完,存不下全网路由表,但可以互联互通了。我们紧急完成了组间联网测试,在完成最终汇报后,我扔下路由器,前往天津(
另外,顺利完成本实验可以收获小包线速奖学金、IPv6 全网路由表奖学金以及纪念电路板,好评(
秋季网原的教材是 Tanenbaum,我本以为它只是 bottom-up approach 罢了,上课/做作业/复习之后才发现它讲的内容和 top-down approach 差别非常大,尤其是多了很多物理层内容,其他部分也多不少内容,导致学起来其实有点痛苦,但最后还是考完拓扑写完路由器两天速通了(tips: 可以选吴院士的课来听故事感受建设一级学科的不易,但课件一定要看 xmw 的)。本来感觉不小心错了好几道题有点可惜,但从 Soha 处获悉,我最后总评 rk1,不知道是大家错的更多还是硬件路由器给分好(,明面上的硬件路由器给分只是比例不一样,对于 4.0 很有帮助,而对 A+ 甚至 rk1 帮助似乎不大(,但最后实际上我们两组都有大量 A+。
虽说是“联合实验”,但基本上只是借用了一下计组造的 CPU 而已,计组助教都一副对路由器实验一无所知的样子,也不知道计组这边最后对路由器给分如何。因为 CPU 大部分交给了队友,我对造 CPU 其实不是特别熟悉,书也没看多少。最后复习的时候不知道是怎么想的,感觉存储这块应该不太考,或者是疏忽了,cheatsheet 上甚至连 PCI、USB 都记上去了却跳过了存储这块,最后判断题一个 DRAM 一个 SSD 给我击垮了(,再加上后面的 CPU 大题错了一些,喜提贵系课唯一一个 3.6。
yx 的网安技(计网安)似乎风评不错,主要是事少考试简单,yysy 这么说倒也没错;但我的体验为什么总是和风评相反(。网络安全是一个日新月异的领域,而这门课讲授的都是十几年前的过时内容,协议的过时版本,软件的过时版本,古老的漏洞攻击案例,可以看出十几年来内容完全没有更新,但即便过了这么多年还仍有大量 typo;两次实验以配网为主,无论对于掌握课程知识还是真正的网络安全知识来说都作用不大,而且不仅是陈年老作业,哪怕你信息渠道闭塞,还有助教手把手教你每一个步骤如何操作,连配网都不需要学会一点,颇受同学喜爱;考查重点是课件概念 + 手算位运算,不知和掌握网络安全技术有多大关系;考前小测中有部分原题,但答案出错指正后也不予回复。另外,令人回想起 DSA 的是,我同样不喜欢 yx 的授课,我觉得她的语言风格很适合给初中生讲课(。因为对课程不太满意,我最后本来觉得拿个 A- 差不多得了,考完试又感觉总体还不错,但就是有个 Playfair 加密因为考前去查了一个课上没讲的 corner case,题又看错了一点看成了是这个 corner case,也没意识到没讲的不可能考,就寄了,最后是 A。
暑假的科研课题我感觉没什么可以深入做下去的点,开学后就找了个新课题。不知道是网安/这个方向就是这样的,还是我们组是这样的,还是导师觉得我可以单干了,还是我太 i 了(我觉得是这个,加上导师不 push),总之我没有跟着学长干活,而是开始独立缓慢推进自己的研究课题了。
一部分是因为交叉实践最后的 CTF,一部分是之后应该就是做网安了,总之对 CTF 有了一点兴趣。倒也没很系统地去学,主要就是硬打比赛,考验底力,现学(。先是在 HITCON 捡漏拿了个一血,但也就只做了这一题;然后去做了 NewStarCTF week1,很多基础题,就当是入门练手,后来从 week2 起公开赛道比校内赛道延迟放题,而且也没时间打了。重头戏是 THUCTF,爆肝一周拿到了 rk1,只不过它是面向新生的,而且正常人不会像我这么肝吧;也是从这里开始拓扑掉线了,正好讲到数分完全没学过的部分,又没怎么听课。拿了一些奖金,虽然没拉到赞助稍显寒酸(,但就我个人而言感觉比智能体划算(;但是你(们)证书呢(
这学期大家都在抱怨拓扑难,虽然期中后的内容学明白着实困难,但要混过去其实也不比数分难,而我摆大烂,一方面 zzy 是真的完全不接收作业迟交,另一方面,期中前我抱着代拓一下学不会干脆放弃的神奇想法白送至少 15 分,期末又没有认真学习往年原题,还在考前学不动而去造路由器(,虽然抱着不挂就行的想法,其实还是有点可惜。只不过相对来说更可惜的还是 ODE,这门课不仅完全可以拿到更高的成绩,想要真的学懂在数学课中也是相对容易的,可以看出我真的放弃 GPA 了(
这学期终于报上了日语课,只不过是 2,暑假又没能预习,上课上得云里雾里,但龙太好,可爱汪;主要是,作文测验和期末的作文都是提前公布题目,所以并不需要当场写作文,只要提前背下来就好;考试比想像中容易一些,或者说 4.0 可以不会做的题比想像中多一些(
另外,竟然混了个科创奖学金,申请材料是没什么学术成果的新星计划 + 并不怎么科创但致理看起来很喜欢的交叉实践 + 感觉差不多能算是黑历史的 智能体 32 强 + 只是课程项目而已的数设,也没怎么吹牛,不知道是不是比我强的都去拿综奖了,所以能把科创剩给我(
大三寒假
寒假还是太短暂了,摆烂的方式太多了。
去了趟天津,打了两场 CTF,科研进展不比在学校快,OSTEP 也没看多少。
大三下
寒假看到 OS 课件上写的大实验是单人还能免考试,非常心动,单看这个条件简直是各个大作业里最好的(。本来想抢救一下 OSTEP,但最后还是只看了 first easy piece, virtualization,然后赶紧把 rCore lab 写了。一开始群里还有好多人,正式开始前的讨论会上就没多少了,开题时只来了 5 个,其中一位有点犹豫然后还是放弃了,剩下 4 个;我和另外两位正好是应邀负责 Saiblo 评测机升级改造,只不过寒假咕了,开学后一起大实验一起接着咕;还有一位是数设同学,一开始是唯一一个对选题有明确想法的,但做到期中情况不太好,感觉继续做下去有难度,于是换了个比较打工没什么意思的选题,最后跑路考试去了;后来 cy 让我们报 OS 比赛,还可以作为暑期专业实践,我先报了,其实是想着做了课程大实验可能比赛就不用再多做太多,但后来意识到是我想得美(,而且最关键的是它一直要到 8 月中下旬,时间太长了(360 实习 8 月初就能结束),而我暑假还想赶论文,于是最终决定在夏季学期选课开始前紧急跑路。
我选到的大实验题目是形式化验证,后来感觉是没仔细看选题列表,不然可能会选 differential testing 相关,和科研方向更相似。上文也提到过,我高中由 natural number game 接触过一点 Lean,但不多,也没接触到用来证明代码正确性,只是觉得不考虑难度的话还是挺好玩的(。后来做大实验的过程是各个课程大作业中最痛苦的一集(,有几方面的原因:一是形式化验证本身有难度,而 OS 相关的验证更有其难点,好玩归好玩,我确实不擅长证明,本来上数学课就应该上明白了,这次来接触代码形式化验证更验证了这一点;二是每位同学做的东西都不一样,没有可参照的标准,像以前经常会觉得虽然没达到自己的预期但好歹比隔壁强(;三是例会安排在上午,看似鼓励早睡早起,实则鼓励通宵;而最主要的,我感觉是,cy 太 push 了(,让我意识到 cjj 真好(。最后 push 得我怀疑会不会 A-,好在还是拿到了 A+,不然真亏吧(
网安导的课程内容还是很不错的,覆盖的话题比较全面,也每年都在更新,实验更是比隔壁某门课不知道高到哪里去了;但实验给分非常水,不建议太认真对待(;考试是开卷,是这门课比较坏的部分,它有教材,但 1700+ 页课件中粗略估计有 1/3 的内容是教材中没有的,基本上还是得打印下来(我挑了 1/3 打印,而且复习看的是教材,感觉还是不如课件,小后悔),题目就有点太考翻书翻课件了,感觉甚至不如网安技。一开始看到考核标准就在想好像没法 A+,但后来老师在群里说了一句可以做加分扩展实验,就去做了,是验证两个路由器漏洞,配一下路由器发发包然后报漏洞就可以了,还比较简单。因为不太熟悉国内的 CNVD、CNNVD,只报了 CVE,感觉小亏。出分前我觉得它是这学期最可能 A+ 的,结果 A,后来听说这学期大家都低一些,但是(
现代密码学要签到,所以都去听课了,yhb 讲课我觉得算挺好的,虽然我没怎么听(,就是那个,作为 bgm 很舒适,和什么 djh、yx 形成鲜明对比(。三次作业,第一次的难点在于看懂 Enigma 在干什么,其实很简单,不知道为什么课件和各种资料都讲不清楚,只能拟合;第二次写 AES 和 SHA256、SHA3,本身是不难的,但我强行用 Rust,写 trait 和 const generic 写得很爽,代码具有扩展性,性能达到要求的十倍以上,浪费了大量时间(;第三次基于第二次和提供的 C++ 框架,体验到了 Rust C++ interoperability(。考前感觉好像都不太会,速通了一下课件,好在是开卷,而且我不会的几个恰好没考,做得很顺利,最后扣了一点过程分,虽然我觉得扣的有点严了(,但成功 A+,大概是这辈子考前复习最成功的一次(
数值分析和数学规划都有点不知道是数学课还是什么课(;数值分析期中考的比较难,但期末更高就可以覆盖,最后考前边整理 cheatsheet 边学,竟然压线 4.0 了,我觉得这是考前复习第二成功的一次(;数学规划还是 3.0,就是说,每门课该是什么课确实就会是什么课(
成功选上了手球,可惜 lyb 快退休了,这学期是实习老师代课,就开头结尾,以及考试,见到了 lyb。确实是几乎没有挂科压力,但放水程度比我想像中低一些(,本来想控分 2.0 来达成全绩点收集成就,结果控过头了,又懒得阳光长跑,于是成就变成了体育课全 1(
这学期的科研其实几乎就是一直在报漏洞,事后想来有点没抓住重点,和老师学长交流太少,没有往对发论文来说最重要的方向努力,就像一直以来没有往提高 GPA 的方向努力。
导师还让我去申请了本科生国自然,我觉得名额至少扩大十倍才可能有我的事,我也清楚我和自然科学有多不沾边,但还是去混了一下。我知道我会对评委的质疑无话可说,但没想到让我无话可说的是,数学老师还能看出来我的问题在于不够自然科学,贵系老师则 be like,你这玩意对 AI 有啥用,我:?(。我一开始以为这个评选对化生比较有利,结果最后选出来是物生信计,我知道他 GPA 高还发了共一,但是,唉,AI(
大三暑假
又来上 qcb 的课了(,似乎是我唯一上过 三 四门课的老师(差点只想起来不是主讲教师的三门课,反而忘了唯一是主讲教师的数字逻辑实验)如果不算舒美的话),虽然当年让我自己焊接数设外设还骗我焊得很好给我留下了不太好的初印象,但不得不说 qcb 还是人挺好的(
群里开抢实习课题之前没有提前通知,晚了 10min,发现 Web 漏洞挖掘和 fuzz 都无了,看了半天感觉勒索病毒是相对 match 的,还在思考怎么强行扯上关系。结果去了之后发现安排的任务和想像中完全不一样,先是反编译,后来尝试破解密码学漏洞;这都还算正常的,但是我发现了一篇 2006 年的 A natural language approach to automated cryptanalysis of two-time pads,想起了我对 GPT 仅有的一丝了解,感觉 18 年过去了,应该与时俱进(,愣是现学 nanoGPT,写了个训练 GPT(small language model);就是说,你跟我说在哪会遇到 AI 我都想不到会是这里(。360 的食堂被大家一致认为质量稍差、分量过少,但我却没什么感觉;只不过我毕竟当年连外高食堂都没什么感觉,更别提小学的伙食我都没吐槽过,虽然小学是小学(。在公司的自习效率还不错(,感觉很摸,但是毕竟竟然真做出了一点东西,混到了个没什么用的优秀实习生,感觉摸鱼学导论挂科了(;最后还去了两天 ISC.AI,它是怎么好意思继续叫互联网安全大会的,怎么不改名叫 AI.360(,感觉不如在工位摸鱼,比较有意思的环节是听老周发表暴论(;不是,这实习都能给我发一个参加研学证书和一个优秀学员证书,你 THUCTF 还有智能体呢(;倒也不是,它们好歹给我发钱,比证书强(
实习期间基本上还是在报最后一些漏洞,结束后才开始考虑写论文。时间很紧,无论是实验还是写作需要讨论修改的地方都比我想像中多,不太来得及,感觉很悬。
这段时间刷树洞的频率异常地高,就像是 22 年底。现在和当时一样,对未来感到强烈的不确定。
后记
没有人会问 GPA 有用吗;大家在问的是,系统课有用吗,A+ 有用吗,GPA 靠后还有希望吗,在贵系认真上课是不是就毁了,大作业能算项目经历吗,网研院会有人想去吗……我不懂,我从小学起就一直认为总成绩是最没用的(虽然说这话的立场在逐步发生变化),myc 也一直在这么忽悠我们。
我模糊地知道,我不仅选择的大作业项目和大家不同,也几乎从不参考往年代码;大家可以复习两晚拿到 A+,而我逃避考试的不确定性;大家研究 AI 的算法或是 prompt,和 system 的距离比网络应用层更远;大家一般只用学一个专业,更不会有数学系这样的给分……但我还是不知道,没有可供参考的样本。
有时我会想起这三年,想起可以交互推理的真值表,想起 Codle 的 feedback,想起 release mode 暴打 rayon,想起对 segregated fit 调参拟合数据,想起跳跃腾空的加速度曲线,想起第一次拿到的 CVE,想起 89 byte 的 Ethernet frame,想起 affine type 和 linear type……期末考试前的作业压缩包、周四中午的 CI 队列、周日凌晨的日出终会过去,留下的不仅是 C 和 A+。
在我还不知道答案时,在此先将这段故事记录下来。