浅谈MIT-6.102

常看我博客的朋友应该知道,我一直对软件工程这样集中于“生产关系”的学科不屑一顾。一部分原因是校内这些明面上搞“软件工程”的人每天就在研究GUI是不是所谓的“反人类”,然后研究在各种各样的corner case怎么用一个error来告诉用户我们崩了。你要光研究这个那还说啥呢?最后搞计算机的看本专业的所谓“管理学”不行,还得和隔壁的经管系取经,耽误了大量的时间,还把计算机真正该研究的东西变成了“黑箱”。
然而MIT-6.102不是这样的,它是一个全方位的习惯培养。先告诉你当你单人工作的时候怎么做可维护,问题早出现早治疗的程序,再告诉你团队里的人可以使用什么方法来使得一个更大规模的项目怎么做得更优雅,最后深入语言的实现细节,告诉你什么该用什么不该用。最后还做了一个关于五线谱的小型语言进行这些概念的实践。可以说,软件工程在这里真正变成了一个身体力行的学科,而不是所谓的“生产关系”的嘴炮与空谈,更不是挪移给经管系的高高在上还没什么用的课程。
另一面,你可以透过这节课对Rust祛魅。把变量设置在最小的可用范围,让绝大多数的变量不可变,注意内存问题,并发的时候善用promise,加入静态类型检查,加入对函数式编程的思想与内容……你可以惊艳于这些“身体力行”的概念在十多年前便经由一门语言实现了,也可以明白那些执迷于所谓“Rust至上”的人为何愚蠢——既然这一切是身体力行的理念,那为什么不自己实践一下呢?

Licensed under CC BY-NC-SA 4.0
Maybe making a better tomorrow...
Built with Hugo
Theme Stack designed by Jimmy