返回

抽象的概念化:为什么“你懂了”并不等于“你真的懂了”

IOS

在这个给予的季节,让我们停下脚步,思考一个现代计算机系统赐予我们的最棒的礼物:抽象。在数百万 CPU 晶体管、SSD 扇区和 LCD 像素共同协作下,全球数十亿人能够日常使用计算机和移动设备而对此全然不知。这一切都应归功于像文件,目录,应用和文档这样的抽象。

这周的 NSHiPS 电台节目中,我与长期的 NSHiPS 合作撰稿人 Jen Musielak 谈论了抽象概念及其对编程的含义。抽象是计算机科学的基础,同时也是其最高层次的任务。从某种意义上说,编程就是创造抽象的艺术。我们使用抽象来创建既能满足我们的需求,也能满足机器需求的系统。

我们认为我们理解了抽象,但在某个地方,我们并没有真正的理解它。Jen 举了一个简单的例子:“我们经常听到人们说,‘哦,我知道文件是什么’”。事实上,几乎每个人都知道文件是什么。即使你是一位计算机领域的外行,也能够定义文件,并列举出常见的格式。然而,文件真正是什么?这个答案非常复杂。那么,为什么如此简单的东西对我们来说却如此难以理解?

因为文件就是一个抽象概念。我们很容易混淆“我知道文件是什么”和“我理解文件是什么”这两者的含义。前者是一个简单的定义,后者却要求我们掌握大量的细节。绝大多数人可能永远都不需要掌握这些细节,因为文件系统是一个封装得很好的抽象。

但对于程序员来说,情况却并非如此。我们有必要理解文件到底是什么。因为我们经常会与文件系统交互。因此,我们需要了解文件系统是如何工作的。

在现实世界中,抽象无处不在。就拿语言来说吧。语言就是一种抽象。语言允许我们用符号来表示概念,而这些概念本身是无法被直接感知的。例如,“爱”这个概念无法被直接感知,但我们可以用“爱”这个词来表示它。

抽象是人类思维的本质。我们总是用抽象的方式来思考。我们不可能完全用具体的方式来思考。因为具体的方式太复杂了。抽象使我们能够用一种更简单的方式来思考问题。

在计算机科学中,抽象也起着非常重要的作用。抽象允许我们用一种更简单的方式来思考计算机系统。我们不可能完全用具体的方式来思考计算机系统。因为计算机系统太复杂了。抽象使我们能够用一种更简单的方式来设计和实现计算机系统。

抽象在计算机科学中的应用非常广泛。例如,文件系统就是一种抽象。文件系统允许我们用一种更简单的方式来存储和检索数据。操作系统也是一种抽象。操作系统允许我们用一种更简单的方式来管理计算机资源。

抽象是计算机科学的基础。它使我们能够用一种更简单的方式来思考和设计计算机系统。没有抽象,计算机科学将变得非常复杂,甚至是不可能。

但是,抽象也可能成为一种障碍。如果我们对抽象理解不够深入,那么我们就可能无法理解计算机系统是如何工作的。这可能会导致我们犯错误。因此,我们需要对抽象有深入的理解。

如何理解抽象?这是一个很难回答的问题。但我们可以从一些简单的例子开始。例如,我们可以从文件系统开始。我们可以尝试理解文件系统是如何工作的。我们还可以尝试理解操作系统是如何工作的。通过这些简单的例子,我们可以逐渐对抽象有更深入的理解。

抽象是一种思维方式。我们需要用抽象的方式来思考问题。只有这样,我们才能真正理解计算机系统。