Books Reading
现在的学生缺乏对大型工程动刀子的能力
我的接触的同学和我的观察力都比较有限。但是在这些天做研究、跟朋友聊科研,问大家迷茫/卡在哪,都感受到这一点。 现在的学生缺乏对大型工程动刀子的能力。 XX github proj 跑不起来。编译/安装阶段超过10条命令就束手无策。超过30页的文档找不到对应的命令。甚至连问GPT都问不明白 ...... 以前总有学生吐槽说,实验室里学长不愿意带学生。但是没有基础实在是太难带了,简直是拖累节奏,并且心很累。虽然我也经常几小时干出蠢事,但是…
我的接触的同学和我的观察力都比较有限。但是在这些天做研究、跟朋友聊科研,问大家迷茫/卡在哪,都感受到这一点。
现在的学生缺乏对大型工程动刀子的能力。
XX github proj 跑不起来。编译/安装阶段超过10条命令就束手无策。超过30页的文档找不到对应的命令。甚至连问GPT都问不明白 ......
以前总有学生吐槽说,实验室里学长不愿意带学生。但是没有基础实在是太难带了,简直是拖累节奏,并且心很累。虽然我也经常几小时干出蠢事,但是每次我都有点小生气,当然只是对事不对人。
既然是我“身边的普遍现象”,产生的原因是什么?
这些学生没有上一门专门教大家改大型程序的课。 我原本以为大学里没有这种课,后来我发现这门课,叫《软件工程》。 而很多学生都是大三大四才上的。
我最近在看《构建之法》这本软件工程书,还没有看完,但是讲的真的很生动、很精彩。在第一章里,它把不同阶段的软件比做航空里的纸飞机、气球、莱特兄弟,和成熟的航空业。而大部分学生大一大二的课程,很多作业都是如同 “完成这个算法/demo” 这种纸飞机,大部分proj都是3000行左右的demo气球 。遇到要编译科研代码这种莱特兄弟飞机,改Pytorch这种大引擎,哪怕是修螺丝,内心都做不下去。
| 航空 | 软件 |
|---|---|
| 纸飞机 | Hello world;数据结构、算法 |
| 简陋的气球 | 写网站 |
| 莱特兄弟的探索 | 新技术 |
| 成熟的民航工业 | 大型软件系统 |
我现在很希望,大家能提早去上这门课,或者提早去接触修飞机。比如,我希望软件工程课的作业可以多一些这样的作业:
“这是XX框架(比如SGLang)在2024年9月的一个issue。我们回退了所有针对其的commit,现在请你基于这个版本,去重新复现/解决这个issue”
“这是一篇 NIPS24 年的文章及github仓库,作者在H200上跑了起来。但是我们只有A100,请你配出在我们实验室能跑出来的环境,并且运行实验3”
“这篇 Eurosys 文章通过A方法让系统在运行目标B时时间下降了X%。但是,我们想profile A方法带来的overhead,请你设计实验观察它”
我原本以为只有要找工作的同学才需要重视软件工程课。我错了。哪里有软件,哪里就要有软件工程。 哪怕是科研也是如此。
希望大家能早点从课程里的“完形填空”里走出来。有空就和我一起读读这本书。
If you need to cite this post
Haibin Lai. (November 6, 2025). “现在的学生缺乏对大型工程动刀子的能力” [Blog post]. Retrieved from https://www.haibinlaiblog.top/posts/%E7%8E%B0%E5%9C%A8%E7%9A%84%E5%AD%A6%E7%94%9F%E7%BC%BA%E4%B9%8F%E5%AF%B9%E5%A4%A7%E5%9E%8B%E5%B7%A5%E7%A8%8B%E5%8A%A8%E5%88%80%E5%AD%90%E7%9A%84%E8%83%BD%E5%8A%9B/
@online{lai--,
title={现在的学生缺乏对大型工程动刀子的能力},
author={Haibin Lai},
year={2025},
url={https://www.haibinlaiblog.top/posts/%E7%8E%B0%E5%9C%A8%E7%9A%84%E5%AD%A6%E7%94%9F%E7%BC%BA%E4%B9%8F%E5%AF%B9%E5%A4%A7%E5%9E%8B%E5%B7%A5%E7%A8%8B%E5%8A%A8%E5%88%80%E5%AD%90%E7%9A%84%E8%83%BD%E5%8A%9B/},
}
Haibin's blog