我的毕业小结主要写了我的前三年,避开了当时只过了大半的大四。毕业后一个月,偶然独自回到上海,该静静反省一下这独特的最后一年了。
我在今年4月的分享会上将我的本科划分为3+1年,其中一个解释是我觉得第四年像是gap year。这是最轻松的一年,也是最忙碌的一年;是最纯粹的一年,也是烦扰最多的一年;是我获得认可最多的一年,也是我最迷茫的一年。
这一年有非常丰富的体验。大半在海外实习,那段时间大概是难得的只需单线程工作的纯净时光了。暑期和秋季前半学期的实习称得上“亢奋”,可以把全部精力投入到手头的一个工作中。导师和师兄们很尊重、支持我的想法,在我求助时也非常及时地提供指导和帮助。项目推进也比较顺利,几乎每天都能有点进展,偶尔有些小卡顿,但基本一两天也能想出些解决方案。科研工作持续给我提供强正反馈,特别上头。
25年暑期实习的第一个居所,工作上头的时候根本不会嫌设施简陋
秋季学期中我被赋予了很高的自由度去探索些很有意思的事:旁听上了很有趣的课,玩上了新的实验机器,干上了些开源项目的开发和维护……随后的申请季、毕业季、尤其发展速度恐怖的 AI Agent 带来越来越多杂音,侵蚀道心,渐渐影响我的精力和学习工作效率。3月底回国之后,身份和工作多元性剧增,是毕业生也是将入学的新生,同时还有助教工作、未完的实习工作等等。几乎平均每周有一个答辩或是分享汇报,每周有新的deadline。单线程工作久了,突然提高并发度又开始调度紊乱,犹记得五一假期为了赶5月3日毕业设计定稿的deadline在图书馆狂写了三天,所幸都顺利完成了。最后一学期和同学们闲聊更多,吹牛八卦,听彼此聊研究和选择;最后一学期也借着助教的身份和学弟学妹们一起探索,不同年级的学生有着各自的迷茫。
我和我
这一年收获了不少认可,挺让我意外。实习期间收到挺多积极评价,甚至很少收到严肃评判意见,让我有些惶恐。毕业季又多次被老师同学推荐做分享或是评荣誉。
自己还是小朋友时,特别崇拜每年在“学长去哪儿”和“学术节”上做分享的学长学姐,没想到自己在大四时一个都没落下。站在讲台上的我宛若“成功者”了,分享我的“负基础小白逆袭”故事。我或许听上去很自信、坚定,一切挣扎和选择听着都很轻巧自然。分享会后有学弟来寻求建议,提到他听了我们的分享后其实更焦虑了。仔细想来,是我们在回忆时淡化美化了曾认为困难到“过不去”的痛苦,以一个回忆者的姿态笑谈曾经的挣扎。现在的我也决不如我声称得那么坚定和放松,我深知我同样迷茫,也仍挣扎于一些困局,需要自己去找到这一次的破局之法。
我和人
“相遇”和“离别”似乎是这一年的最频发事件。在这一年认识了比前三年更多的新朋友,与之相应的则是更多的离别。
最“浩大”的应当是和ACM班老师同学的离别吧。从大一入学到大三,我们从未分离过超1个月,但离校实习分离了一年,短暂几个月的相聚后又毕业各奔东西。不知何时起,ACM班已经成为我的精神支柱了,我的工位角落别着22级ACM班的徽章,状态欠佳时会穿上学术节发的班服……
工位角落有些褪色的徽章
第一次特别想念大家是25年的中秋节,和新结识的朋友们登上McGraw Tower,看着钟楼下刚下课的学生三五成群,格外想念和大家一起上课的时光。很忙或很闲的时候都会想念和同学们“并肩作战”,在黑暗中阴暗coding时会想念一起在宿舍楼里赶大作业deadline,理智的时候讨论design choice,崩溃的时候一起疯疯癫癫。
McGraw Tower (2025年中秋)
许是分开太久了,思念在即将回国相聚的前一两个月尤为强烈。回到上海的第二天没顾上倒时差,先赶去了班级团建。
随后的三个月过得飞快,一轮轮答辩、拍毕业照、班级毕业活动、学院和学校的毕业典礼……毕业像是一场断舍离。我在最后的时光逛了校园的角角落落:去主图喝交圕创咖的气泡咖啡,去包图在大一军训时翻过的书架上找一本散文集;去三年从未去过的食堂尝各式各样的菜品;去教学楼教室、学院自习室、宿舍楼公共空间再工作一会……找老师们聊天,和同学们约饭、制作好一张张寄语和照片……班级毕业活动属实“浩大”,给足了仪式感,让我们享受到了前所未有的宠爱。俞老师说举办仪式是画一个句号,归零进入下一段旅程。
[2026.7.1]
学生身份过期的第二天,我也要离开东19楼了。搬来的那天是大雨,搬离的这天也是大雨。
这里有我生活过的三间宿舍,我和室友们一起度过难忘时光;有6楼的(曾)女生专属自习室,我在这通宵写过大作业,也和不同专业的同学一起为各班的概率论期末考临时抱佛脚到凌晨三四点;有逼仄但静谧的小阁楼,是我的半个OS教室,24年的梅雨季我曾在这蜗居写OS大作业;有1楼的活动室,大一时我在这被答疑被CR,最近一周则在此和朋友们度过了更多的时间,作为助教给学弟学妹们CR、听大师课、看播客、一起闲聊到凌晨两三点……
收拾行李时发现本科前几年留下的神奇物品,只滑过两次的滑板、几乎没翻开过的闲书、完全没穿过的漂亮衣服小裙子……可见本科四年的生活和我入学前和初期幻想的截然不同,我也变成了和我曾经模糊幻想中完全不同的我。
感谢相遇,感谢陪伴,感谢离别。
我和 AI Agents
我是弱小、低效、却自负的人类。
这一年我迷茫的核心是 AI agents,尤其是 coding agent。它不是这一年出现的全新事物,但在这一年发展得极其迅猛。我第一次直接接触类似如今 coding agent 的工具是2024年夏天,我担任了下一级同学编译课程的助教,发现有同学开始用 copilot 完成课程大作业。当时的生成效果非常糟糕,生成产物根本过不了编。而到了今年,本科学生的编译课程作业已经会成为模型发布的showcase了。
我获取信息和接触 agent 的渠道并不多,也并没太关注各家模型和agent的发布,似乎和前沿脱节颇严重。谨在此记录我近一年多的一些接触经历,夹杂一些个人意见。
25年春季学期,我选修了《自然语言处理》,课程作业是一个数学题benchmark打榜。题目很简单,用当时最廉价的 LLM,写点还不错的prompt、调API、写个输出解析处理脚本,就能刷到97%的正确率。后来意识到存在题面语义歧义、输出不符合解析格式等问题,又一拍脑袋写了个 iterative loop,正确率直接提到99%。(题外话:写这个作业时,我最初的想法是写一个类似编译器的工具,将用自然语言表示的题面分析变换成可计算的数学表达式,其计算结果就是问题的解。显然这个想法实现难度过大,现成的廉价黑盒工具(LLM)又足够强大,惰性使然,没多做探索。)后来偶然看过几个agent工作,发现这看起来很呆的大作业居然算得上是个agent workflow了。
25年年底参加了实验室的agentic hackathon,这是我第一次正儿八经搭建coding agent workflow并用它来解决代码任务。我当时做的是基于Pydantic AI开发一个agent workflow,用于给一个compiler加特定的新后端。实验结果一塌糊涂,只有在经过我多次拆解的简单子任务上表现相对可接受。最终的成果分享会上,我的汇报风格清奇:控诉生成的代码繁冗、几乎没有清晰逻辑、布满“作弊痕迹”。这次agent workflow的使用体验并不好,当然一个重要原因是我开发的简易workflow本身很弱。
后续一两个月我也尝试使用过coding agent产品,但我依然否认它能提高我当时的工作效率(我当时关心的代码任务是组内compiler项目仓库的开发和维护)。于我而言,指导它理解code base并完成我需要的修改,远比我自己去实现麻烦得多。另外,我喜欢思考更简洁的修改方案、整理代码逻辑,而由coding agent来完成这些代码任务与我的这些偏好背道而驰:我会挑剔它冗长混乱的代码风格,也不喜欢由它剥夺我享受coding带来的宁静和乐趣的机会。加之我当时基本有足够的精力来完成所需的代码任务,也没有足够强的动机去寻求加速方式。
26年年初,我身边的agent用户急剧增加。项目仓库中多了很多agent协助或是自主开发的PR,有人开始用agent写proposal、有人开始用agent协助讨论……弱小但自负的人类在其中逐渐喘息艰难。生成的代价是低的,而人工理解生成内容的代价高得离谱。微薄的人力根本review不动雨后春笋般冒出的PR,坚持挑剔“coding agent在代码中注入无意义注释、打补丁式修改,代码逻辑混乱甚至重复”显得无力、迂腐且可笑。在讨论中有时甚至发现对方的论证观点在一句句“you are absolutely right, but …”中漂移,也不知我论了半天究竟是和谁讲清楚了什么。
那是我最迷茫也最无助的一段时光。我依然不喜欢coding agent,甚至在越来越多的糟糕体验中愈发讨厌它。但身边越来越多的人在使用它,似乎所有人都说它很好用、很提效,都在驾着它狂奔。不愿意用它的愚蠢人类像是在“和全世界为敌”,注定被落下。那段时间我反思过很多,怀疑过很多,一度“道心破碎”。
从四年前第一次接触计算机科学以来,我渐渐形成了一条用得趁手的认知路径,也形成了我学习思考的正反馈循环。coding是其中至关重要的一环,而coding agent对我的认知路径和反馈循环造成了非常大的冲击。我的认知和思考大部分都是在coding中发展的,这个过程让我获得对一个想法是不是合理的判断能力,能给我一些反馈让我能去定位是什么合理什么不合理,然后引导我去思考。面对一份我设计实现的代码,我需要清楚我在做什么,如果我要加feature或者改feature我该怎么做,做什么是可能的什么是不可能的。有人说 vibe coding 也是coding,我为什么没法接受 vibe coding 来替代自己 coding 呢?我认为关键原因还是“失控感”,vibe coding 像是 higher-level programming,隐藏了太多细节。前几年的训练让我知道这些更底层细节的存在,也深刻认识到一些细节的重要性,突然让我交出这种控制能力太痛苦了。那由 coding agent 写,我只负责 review 不就好了吗?并不。我逐渐意识到我有些“不健康”的代码习惯:轻微洁癖,对debug和重构有瘾。写代码本身在满足我的心理需求,是我反馈循环中提供正向激励的重要部分,也作为“情绪镇定剂”维持我学习工作的精神稳定。用 coding agent 写满足不了我的心理需求,目前而言我也看不惯它生成的内容,任由它自主构建或者和我协作构建一个我关心的代码系统反而给我造成巨大的心理负担。
我看到技术发展的趋势,我知道我不该固步自封、应当去积极改变。但我该怎么做?我不知道。将它融入我已经形成的惯用路径几乎是死局,那我该重构我自己吗?时隔多年我又不知道怎么写代码了。
困顿中有越来越多的胡思乱想:我们前几年培养“动手能力”的意义是什么?编程似乎越来越不重要了,这几年培养的能力和习惯本该是底气,为什么如今像是“进步”的累赘?技术加速究竟是想为人类带来什么,人想通过技术最终达成的目的是什么?解放生产力,让人们获得更好的生活,能更自由全面发展吗?技术发展该让人获得更多的满足感吧?但为什么我却觉得我获得满足的方式在不断被剥夺?
回国后工作量剧增,倒是没那么多闲工夫纠结了。任务多且杂,优先级和难度也参差不齐,劳动力需求给了我足够强的使用agent动机。4月到6月毕业前,我在agent的辅助下写过书面材料、做过答辩slides、学过新知识、做过科研项目……这段时间我也在担任大二同学的《高级编译》课程助教,负责同学们的自选课程项目。同学们或多或少在项目的开发过程中使用了 coding agent,我也借此机会收集到了更多的样本点。
我的一个体会是“割裂”。传闻中的agent已经强大到足以端到端做项目,但我的实际体验却是它在简单任务上也依然差强人意。从我收集到的样本点看,agent目前能达到让我满意效果的任务基本是:指令及其明确且有大量可参考材料的(比如根据数据写画图脚本);任务成果非常抽象、难以评估质量优劣的(比如生成图像、写文稿)。另外在学习新技能时也会觉得agent生成得不错,但主要因为自己几乎没有优劣判断力。
我依然因“失控感”感到不安。我在做毕业设计时尝试使用了agent,且我的毕业设计项目的一个目标便是为蓬勃发展的coding agent提供某些编译工具链开发的便利。我曾使用coding agent协助开发,完全认可它的知识库比我的小脑瓜广得太多,它也提供了一些挺不错的方案。生成量不算大,我也会非常仔细review生成产物(以及会非常“吹毛求疵”地忍不住去改),以确保我清楚一行行代码在干什么、能为此负责,如此一算工作成本或许并不比独立开发低。
我也为“使用agent之后我是否还能明白自己都做了些什么,能否真正理解新知识”感到忧虑。在当助教期间遇到一些典例:有的同学本身对项目内容有不错的理解和思考,在agent的辅助下如虎添翼;有的同学本身对项目涉及的领域并不熟悉,不过能用agent把项目功能实现得大差不差,自认为通过使用agent对项目有了很好的理解和掌握,但在CR时的表现算得上一问三不知,对agent在功能实现时犯的“原则性”问题也并没有足够判断力……我深知我自己身上会有同样的问题。我能相对安心地使用agent辅助我顺利推进我的毕业设计,因为这是我在古法学习时代接触过一两年的领域,我基本清楚我想做什么、该做什么,也有一定判断力。但我是个刚起步的学习者,我又该如何去学习新的东西?曾经我通过coding实践来学习,我想这算是经过检验的学习模式,我自认为用这套方法学得不错,学习成果也获得过不少人的认可。但在加速狂奔的时代这个学习模式是否“跟不上”了?而借助agent这种看上去“更快”的工具我真的能学会吗?我难免像那一部分学生那样,自认为会了、理解了,实际没摸到多少皮毛。
4到6月模型更强了,coding agent产品更好了,我确实能体会到使用coding agent的一些甜头,但与之俱增的是浮躁和焦虑。我在今年的“学长去哪儿”分享中向学弟学妹们宣传大作业,提到写大作业能让我进入“心流”状态获得心灵宁静和情绪稳定。确实如此。24年春季学期,高压的期末周叠加连月梅雨,复习到快崩溃时我会去写我的OS大作业,敲几个小时就平静下来了。而现在呢,我甚至发现我越来越难静心思考写代码了。
有时候会选择禁用agent爽写一天
遇到这个问题的并非只有我一人,我在和学弟学妹的交流中发现,随着coding agent越来越强,有不少人不太想自己动手了。
[我的聊天记录]
我可以理解为 agent出现之后在对待“完成代码任务”上变得更浮躁了 吗?
说实话这也是我这几个月在经历的难题,有时候想自己好好写点东西但总会想到“是不是agent能直接替我写了”,这样反而很难静下心思考和实现。我自己还没找到一个平衡点,但可以分享一些我收到的建议:你可以通过agent来完成功能实现,但如果你觉得你需要通过写来理解些东西而不是仅实现功能,那动手过程是不可替代的。知道用agent不能实现你的某个目标,那也就不太会在实现这个目标时被他分心了 (可能听着像自我催眠)。
那段时间经常和人聊到agent,也逐渐意识到我在agent使用上的困扰并非技术或是研究问题,更多是心病。让我觉得最有收获的建议来自毕业前和俞老师的最后一次聊天。对话有些玄妙,我从中大致摸到了些破局的法门:“第一性原理”和“静心”。学习方法、科研方法从“第一性原理”出发,最本质的东西不会被技术手段动摇。agent应当为我所用,作为我能力的外延,我该找到我的方法去拥抱和适应。不可否认,我现在因为它产生的冲击静不下心来。学习“静心”,学习“屏蔽杂音不受干扰”,是很重要的课题。
现在是26年7月末,过去的一段时间里我也遇到了更多促使我去拥抱agent的动机。要怎么去做,怎么做好?我依然不知道,但我会继续尝试。
过去未来
时隔4个月,再次试图回答“如果让我重来一次,我会怎么就读ACM班”这个问题。我想还是和这四年一样吧。不带上记忆和先知,不带上新的知识和技术,踏踏实实磨一遍。
我有时会预设:如果我大一那年有如今这么强大的 AI agents,我会怎么学习?我想我可能很难成长起来。我还会手写大小作业、瞪着一行行代码debug吗?或许在时间充裕时会,但我不太可能在有可用的便捷工具的前提下冒着赶不上deadline的风险去坚持这么做。而那些作业只是让我知道怎么编写一个能跑的程序吗?远非如此,我觉得更重要的是思想、是知可为和不可为、是审美、是更多……私以为这些是曾经的“忧患”和“苦”教给我的,而至少对于我来说,在 AI agents 的辅助下我无法学到这么多。
前几天收拾旧物时发现大一、大二学期结束时写给自己的明信片,字字句句让我有些吃惊。我看到一个笨小孩,她的世界小小的,只有眼前的小作业、大作业、机考、数理课。她看上去被折磨得不轻,但一直在积极用一些傻傻的苦办法扛。有时会鼓励自己“过去的一年有起起落落,但也一次次证明‘做三四月的事,在八九月自有答案’,努力会有所得;也一次次证明身边的光一直都在,也要尽己所能地去发光”;有时会记录大作业debug心得,劝自己“遇到bug保持平静,把逻辑理清楚”。回看几年前写给自己的话,我有时会怀疑如今的我是否还有那种心性。如今的我眼前有个更大的世界,但也有更多的杂音,该如何处世、如何静心戒躁,我还在摸索。
想和未来的自己说些什么呢?就借用今年“学长去哪儿”送给自己和学弟学妹们的话吧。 3月campus visit时有人给我的建议是:面对选择,“在自己能力范围内去尽可能做些难的事” 。俞老师给我们的毕业寄语的第三条也提到“做难而正确的事”。站在一个个选择路口,希望我能一直有勇气和魄力去选择我当下最认可的事,不要因为畏惧而退缩。另外,万事不可能一帆风顺。乐事可能只能带来短暂的欢喜,苦事也可能带来更长远的收获。“无论快乐还是痛苦都是特别珍贵的经历。这一场体验,请尽兴。”
毕业快乐