HIT-软件构造blog-软件构造课程的内涵思考

本文探讨了一门名为‘软件构造’的课程,作者认为更恰当的名称应为‘软件构造方法’,强调其本质在于提供一套工业实践的方法论而非理论探讨。课程关注如何使开发者适应已有的工具,提升开发效率,而非优化程序性能。尽管作者对管理理论不感兴趣,认为课程中的许多理念朴素且与自身经验相符,但他承认这门课程对于培养工业界所需的‘工人’而非科学家或工程师具有实际价值。软件构造的美感在于其工业应用,与理论的数学和优雅不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在复习的这门课叫做“软件构造”。我以为,叫做“软件构造方法”可能更为合适。这样,能够让学生更能看出这门课程的本质,而不是在学习的过程中(甚至是期末)才体悟到。

其实这门课是面向工业的课程,而非面向理论问题(指计算机工业和计算机理论问题)。整门课其实是一套方法论,只是恰好用于管理软件,软件的载体恰好是计算机,所以我们计算机的学生需要上这门课。

课程的内容并非面向机器,主要是面向人类。它极力针对的不是如何帮助人类设计某种工具,而是如何让人类适应已经设计好的工具。具体地,课程的理论有助于提高开发效率,而对程序效率无益甚至有害。许多理论基于的是对人性的分析——比如永远相信人的疏忽之类。

然而,就我本人来说,虽然我擅长,也深知其重要性,但我并不喜欢学习针对人的科学,讨厌管理理论。我自以为自己做事有条理。这门课的许多思想其实十分朴素,我一直就拥有,许多指导意见其实是我一直在做的事情(只是并没有理论化和体系化)。将这些我早已为然的思想与计算机科学结合起来,总给我一种奇怪的违和感——如果软件构造能称得上是计算机科学的话。这给人一种硬造方法论,强行约定的感觉。

这种感觉并不自在,因为我感到自己并没有向真理学习,而是向人学习——不是人的知识,而是人的规定。如果我出生更早,可能我就是制定规定的人(或之一),我就能构造出达到相同效果但与现有规定有区别的规定,然后让后人学习、考试。

计算机科学就是人造的。但是,其中的理论问题也是很数学和优雅的。软件构造课程的美,在于工业之美,硬核而暴力——这与严谨的数学、优雅的理论是不同的。

我并无批判之意,不过,与其说这门课培养科学家、工程师,不如说这门课培养的是工人。虽然大多数同学未来都将成为工人,我也很大可能成为工人,但将这门课和研究理论问题的形式语言那门课一对比,到底哪个能带来知识的快乐就不言而喻了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值