Variable and Data Structure are abstract modeling

编程里的变量,往往是初学者很难理解的概念。

我们说编程里最核心的是抽象建模的能力。实际上变量设置就是在抽象建模。通过变量的设置,我们就有了问题领域的抽象模型。

通过变量,我们把一个复杂领域分离出来了变化的部分和不变的部分,或者说我们识别出来了其中的生命中心。比如distance, speed这样的变量,就是这些领域的生命中心,代表那个不变的抽象模型,虽然它们的值是可以变化的。正是通过把变化中不变的部分识别出来,我们完成了对该领域或问题的抽象建模

程序员写一个程序,要创造很多自己的变量。优秀的程序员往往在对这些变量的设计包括命名上有卓越的能力,也懂得花费心思做好变量的设计与命名工作。会起名字的都是高手! 不仅仅是在编程领域,可以说在很多领域都是如此,比如音乐领域里窦唯就是有名的会起名。命名的过程,其实就是感知和创造生命中心的过程。

编程里的不同数据类型,同样是在抽象建模。比如字符串代表了我们这个世界里各种物品的名字或者语句,而数字则代表了可以计算的数值。这就是在对我们这个世界进行建模。更复杂的数据结构,如列表,是进一步的对我们这个世界进行抽象建模。

编程,就是这样的在不同的层面进行抽象建模的工作。我们必须感知我们的世界,获得本质的认识,并把这些认识转化为抽象模型。

所谓的本质的认识,正是我们上面说的,找到变化的世界里那些不变的东西,也正是建模的过程。

所以我们经常说编程是什么,或者讨论所谓的编程思维,其实就是对空间的感知能力和探索能力,掌握建模的方法,如何通过实验的方式去验证获得反馈并进一步改进,从而达到对世界的本质的认识。

这其实,也就是学习的过程。

知识,其实就是我们大脑里的抽象模型,我们每个人都在基于我们感知到的重要体验去总结我们自己的知识,创造我们自己的知识模型。

所以,编程的技能,与学习的能力是完全一体的。也是我们说“学会编程,学会学习!”的一个重要原因。

This entry was posted in Software, Software Education. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


three + = 10