与恶龙斗,其乐无穷

2021-01-19 星期二

从如何看待上交「迟先生」的言论在知乎上出现到上热榜,大概只过去了三天的时间。静下心来想了想为什么自己会变成喷子,为什么会从儒雅随和、口吐芬芳的迟先生变得阴阳怪气、不讲人话的迟先生。写这篇文章当然不是为了博得各位的同情,也不过是从我自己的角度,讲讲我对我系同学失望情绪的来源。

我的背景大家估计也比较清楚。大一下看完了 CS:APP,大一暑假依葫芦画瓢照着 CA:AQA 写了 Tomasulo + Speculation 的 RISC-V 模拟器。大二上跟着 6.828 写了 xv6-riscv 的多个 lab,粗略读完了 OSTEP,之后的寒假用 Rust 实现了半个 xv6。总之,在大二下到来之前,我所学的内容基本上已经覆盖了这一学期的专业课:操作系统(+实验)、计算机组成、计算机体系结构(+实验)。

原来上课是可以划水的啊。

第一件比较失望的事情大概是对课程设计的失望。

  • 体系结构实验,实验做的东西和上课讲的东西根本不在一个频道上。不知道该怎么吐槽了。
  • 操作系统实验,是魔改 Linux 内核。老师就给个完成的目标有几点几点,具体怎么改让同学“自行搜索”。
  • 操作系统、计算机组成、体系结构三门课完全脱节,没有整体感。一学期能看到的汇编就有三种:8086 汇编、MIPS 汇编、x86 汇编。恐怕以正常同学的水平还得纠结到底是 mov dst, src 还是 MOV SRC, DST 吧。

一些人喷我没提出建议改变现状。我评教的时候每门课都写了至少 300 字。恐怕你评教的时候也只会写“感谢xx老师,xx老师上课真好”这样的话吧。

最终,我在《CS 自救指北里》这样写道:

然而,理想很丰满,现实很残酷。当计算机系的同学发现一些专业课老师上课连 PPT 都念不利索;当课程的大作业是脱离课程内容的“空中楼阁”,缺乏有效的指导,不知如何下手时;当一些“大佬”一边在同学面前吐槽老师讲的不行,而一边又向老师反映讲课“太慢了”时,我不由地怀疑:计算机系真的是完美的选择吗?
一方面,陈旧的课程大纲限制了老师的教学效果,也无法让同学掌握足够的计算机思维和编程能力。另一方面,对实操的轻视,对科研的追求,也加重了价值观的单一和内卷。如何在计算机系通过自学打下扎实的基础,又如何在内卷的氛围中调整心态,这是本篇 CS 自救指北所探讨的两大问题。

为了弥补课程和实践之间的鸿沟,我整理了许多资料发在群里。每次同学有问题,往往都是我(甚至比助教更抢先)出来回答。

上课的内容基本上都会,就按照自己的想法记点笔记,传到 GitHub 上。听说开卷考试的时候有很多同学打印了我的笔记,很开心(

这一学期正好是线上授课,Zoom 可以免费用。我花了很多时间和我的同学讨论问题、解答题目、在线 debug。期末的时候也经常开小组聊天做题。总之过得还挺开心。

当然,之后发生的事情,就有些令人失望了。

既是个好人,也是个对手。

第二件比较失望的事情就是揭开了一些同学虚伪的面纱,也发现了无私奉献所带来的后果。

  • 某课程到最后老师发现“能达到 A+ 的人数相比于往届非常的多”,于是采用了一些不合乎寻常的方法控分。
  • 也就是在这个课程里,某些同学通过给老师私发邮件的方式影响我(或是其他同学)的分数,在微信群里被老师爆出来。
  • 你的同学并不会为自己在他人的指导下达到了基本要求而满足。他们会继续做 bonus,不停地问你,希望你能帮助他们满分。
  • 原来我并没有帮助到所有人,我不过是加速了内卷!
  • 有一次我在 QQ 空间里发了一下大作业的进展。第二天就有人复刻出了一样的东西出来。(当然后来我们发现是个误会,他不过是借用了一下我的概念)。很夸张吧。我不得不在大作业截止前一天做了个新功能。
  • 既然大家都能完成基本功能,评分的标准就自然而然落在了实验报告上。某些同学 200 行的代码写出了 30 页的实验报告。太扯淡了。
  • 某课我真的听不懂啊!!!数学我是真的学不会啊!!!为什么还有人在群里 at 老师说他讲的太慢了?????做个人吧!!!!

与我有竞争关系的人,大多把我当作工具人。我不过是帮助他们得到高分的工具,我做再多的努力也不过加速了内卷水平。

失败是命中注定的吧。

第三件事情是对自己彻底的失望。

三月份,我从所在的实验室主动退出。原因不想展开,我在某些地方也记录过。我的同学人均在实验室打工,而我半年什么也没干。总之,我陷入了是否要做科研的迷茫之中。硅胶的宣传和教育让我觉得不做科研就是失败的,CS 同学就应该直博 PhD 做学术贡献。

好在之后在 TiKV 社区里遇见了几位很有趣的人,让我发现人生不只是学校所宣传的那几种方式。我们还有很多路可以走。在这个时间段,我坚定了做开源软件的想法。在之后的许多项目里,我都带入了 TiKV 社区里学到的一些习惯。开源不仅是代码开源,整个协作流程(这些代码是基于什么考虑写出来的?)、文档、工具链,都应当能直接访问。渐渐认识到了自己在学校的层面上是彻底的失败,找到失败者能享受的生活方式,大概是我比较幸运的地方。

打个广告。SJTUG Mirror (https://mirror.sjtu.edu.cn) 和 SJTU-Plus (https://plus.sjtu.edu.cn) 都是我参与维护的项目。具体是干啥的点进去就能看到了。代码也全部都是开源的。欢迎大家使用。

我病了,我得了卷病。

多件事情加起来,我对计算机系的产生了极为厌烦的情绪。这一情绪终于在本学期爆发,促使我用更激进的方式,希望课程能向我预计的方向调整。

  • 人 xx 能。一听到这课要按排名给分,我就知道上学期的事情要重演。于是,我提出了提前 ddl 的方案,尽早停止内卷的发生。
  • 工 xxx 与科 xxx。此课是典型的上课啥也不讲,下课造火箭。有了上学期某课程的经验,我提出了加大作业难度的方案,来避免最后按页数评分。

An eye for an eye. 除去这些事情外,我把去年发生在我身上的事情原原本本地还原了一遍。

  • 计 *** 络:两小时写完了一学期的大作业,发朋友圈,很爽,配字“两个小时,总算写完了这,xxxxx行的,计网大作业”。当然我觉得这个太水了,后来又重新写了一个。
  • 忘了哪门课,作业发布两小时就交了,顺便“友善地”咨询了老师作业里不合理的地方。类似这个样子:“老师我已经提交了,但是我的做法是xxxxxx,感觉和xxxxx不太匹配,请问是否影响xxxxx,谢谢解答。”
  • 在群里散布我要写 50 页报告的信息,类似这样“感觉 50 页可能不太够写,有没有页数上限,我有点担心。”然后私底下和老师交流了一下,促使老师限制了页数。
  • 当然给老师单独发邮件影响分数这种事情,超越了我的道德底线,没敢做。

总之,很爽,非常爽。希望各位读者能像读爽文一样爽。

没救了,彻底没救了。

抄袭和作假的事情我当然和各方反映过。老师觉得无所谓,教务处觉得“抄 GitHub 不是传统的抄袭”。我大概也无能为力了,只能用道德的方法来阴阳怪气一下现状了吧。

一点无关的总结

计算机系要改变现状,首先就是要给所有同学找到合适的出路。在当今的环境下,保研似乎成了大多数人的唯一选择。对分数的追求使得一些同学在内卷中迷失了自我。计算机系本科毕业能做的事情确实很多。这一导向大概是需要一点修改的。

其次,课程设计应当与工业界接轨。不是所有人都只做科研,会写代码也是很重要的。

再次,要提升课程水平。像这种计算机组成、操作系统、体系结构割裂着上的事情,估计已经十几年了。参考一下隔壁系的情况做一些调整,似乎不是很难。

最后,“倡议”所有同学大二去 AI 实验室做科研(标数据)这种事情我觉得还是不要做来的比较好。我也希望某思政在往通知群里发文章的时候,少发一点没有内容,只是在传播焦虑的文章。在这个阶段发个面经比让我们保研保不上考研考不上只能去春招斩获 offer 靠谱多了。

后记:能把我这一年来的遭遇讲成故事,我的内心达到了前所未有的满足和平静状态。未来几天我大概是不会刷知乎了。谢谢。

后记 2:在写完这篇文章后,某匿名社区里出现了超出我底线的诽谤内容。我很失望,再加上之前回答里提到的关于某性命相关帖子的诽谤,可能你系的同学素质不过如此吧。

后记 3:其实我的卖弱和失败还不太一样。Medium 上有关于我为何失败的三篇文章(简称“迟三篇”)。如果你感兴趣,或许可以自己阅读一下。我的 ID 是 iskyzh。

原文地址:点击此处查看原文