Heaticy
lichf2025@shanghaitech.edu.cn
成就
获得 4 次赞同
发表 1 篇评价
评价 (1)
计算机编程
CS100 2025 Fall——为什么我支持“左转”
2025 年 秋学期
许岚 曹迎
CS100 2025 Fall HeadTA/ CS100 2024Fall TA
SI100B2022 - 至今常任 TA 和 EEpart 奠基人
lichf2025@shanghaitech.edu.cn
获得 4 次赞同
发表 1 篇评价
计算机编程
2025 年 秋学期
许岚 曹迎
CS100 2025 Fall HeadTA/ CS100 2024Fall TA
SI100B2022 - 至今常任 TA 和 EEpart 奠基人
CS100 2025 Fall HeadTA/ CS100 2024Fall TA
SI100B2022 - 至今常任 TA 和 EEpart 奠基人
如果你对 “编译” 这件事的全部理解就是 VSCode 右上角的小三角,那你不是 “会编程”,你是在使用一个按键驱动的黑箱。黑箱能跑的时候你很快乐,黑箱一报错你就崩溃 —— 而现实工程恰恰是:90% 时间都在处理 “为什么它没跑起来”。
去年期中大量同学答不出基本编译指令,这件事绝对不应该发生。你可以不会写很复杂的算法,但你至少得知道自己写的东西是怎么被编译出来、怎么被链接起来、怎么在系统里跑起来的。否则你只是 “会打字”,不是 “会开发”。
很多 EE 同学的课程体系里根本不会系统引入 git /make/ Linux 命令行这些工具。但你又只有一门 CS100—— 那这门课不补谁补?
有人会说:“这些不是信导该教吗?” 对,本该是。但现实是很多同学从来没被工具链教育过,于是技能树长得非常畸形:能写一点语法,不能独立构建项目;能跑 demo,不能 debug;能写作业,不能协作。
所以今年的 “左转” 是必要的:把工具链、工程习惯、可迁移的开发方式推到台前。
学期初引入 WSL,一手 Linux 一手 Windows 都教了,结果很多人还是死守 Windows 舒适区。
我不想讨论 “你喜欢哪个系统”,那是审美。我要讨论的是:** 你未来做工程 / 进组 / 实习,环境根本不会围着你的舒适区转。**Linux 不是宗教,是现实:服务器、集群、科研代码、很多项目的默认开发环境就是 Linux。你越早适应命令行、包管理、构建工具,你越少在未来交 “环境税”。
Windows 市占率高不代表它更适合训练工程能力。市占率高只能说明它更适合 “普通用户”,而工程训练要的是:明确、可控、可复现、可迁移。
今年几个动作我认为做得非常正确,而且应该更早做:
C 语言内存不安全不是段子,是日常。越界、UAF、野指针、各种 UB,你随手就能写出来。然后呢?然后你就开始 “玄学调参、玄学 printf、玄学重启”—— 这就是典型的低效工程。
Linux 的 sanitizer 是巨大优势:它能把 “我感觉哪里不对” 变成 “这里越界了,这里写错了”。今年把 sanitizer 考进考试,我完全支持:** 这比死记一些旧课纲知识点重要得多。** 因为它直接决定你能不能在真实项目里活下来。
手写代码脱离编辑器和编译器,本来就很抽象。更关键的是:它很难对应工程能力。
今年我刻意让期中更像现实:给你编译错误、给你 sanitizer 报错,让你 debug。因为现实里(包括 AI 给你一段有问题的代码时),你最需要的能力不是 “永远一次写对”,而是:
这也是我对 AI 的态度:** 只会用 AI 不行,不会用 AI 也不行。** 你可以不靠手写赢,但你必须能纠错、能把系统拉回正确状态。否则 AI 只会把你从 “不会写” 升级成 “不会写但更自信”。
这次期中成绩分布比较理想:均分 78,中位数 81,分段集中在高分段和 70–80。含义很简单:真正花时间的人、少数天赋哥能拿 A;但这门课的重头依然是作业 ——期中不理想但作业扎实的人,也应该拿到体面的分数。
至于大作业,以前有人吐槽 “拿 A 纯看期中”,工程能力强但考试不行吃亏。今年做的补偿(比如 “开荒者行动” 一周内完成额外加分)我认为是合理的:既补偿了工程型同学,也让 TA 能更早发现题面 / 测试 /bug,减少全员踩坑。
大作业改组队,并硬性要求用 git 协作,这件事我强烈支持。原因很简单:不会版本管理、不会协作流程,你就是独狼;独狼不是 “很酷”,独狼是 “很难融入生产力体系”。
更现实一点:我见过学过 git 的 CS 同学都不用 git、改用微信传文件造成协作灾难 —— 那 EE 同学连 git 都没摸过,未来进组不被嫌弃才怪。至少学会一个基本分支模型:main /develop/feature… 你用明白了就会发现它有多优雅:你不用重复劳动、不用胆战心惊改两份文件怕不一致,改一次合并就行。
我也知道春学期我无法掌控 TA 团队。如果没有 “统一意志”,你想要求大家统一用 WSL、统一用标准工具链、统一用工程化的态度去推动改革 —— 做不到。现实就是:改革最怕 “有人想做,有人摆烂”。
但至少今年让我更确定一件事:
引入新工具、建立好习惯、让能力可迁移,比你把课件每一页啃透更重要。 因为真实世界只奖励一件事:你能不能把东西做出来、维护下去、和别人一起做下去。