2019/01/31
前端时间我对抽象的内容突然倍感疑惑,最主要的是,我希望通过分层的形式来对问题进行分解,问题在于,应该将数学形式分解后的解释放置在什么地方。(看文章[3],有实际的距离 2019/02/02)
在谷歌上找了抽象的概念[1],但是并没有解答我的疑惑。
按照最初我对抽象的理解,抽象是为了进行细节隐藏,那么抽象层次高的,细节越少;抽象层次低,细节越多。但是不知道数学形式上,跟这个怎么交叉比较;也就是说,可能针对同一个东西,你是可以定义相应的抽象级别的。
2019/02/01
个人感觉这部分的内容,应该是属于利用抽象的方法对问题进行分解,然后提出解决方案,所以我最开始是的时候直接搜索抽象的概念自然没什么意义。文章[2]中提出,抽象思考包括两个方面:
- 通过去除一些细节问题来找到突出特征
- 通过泛化找到关键本质
不过有一点我发现很重要,平时可能无时无刻都在使用抽象这个技术,但是这个过程我们是无意识的。可能学习新知识的时候感觉还挺好,但我总觉得实际在解决问题的时候,这种无意识可能就没有办法帮助我们,你就没有相应的解决方案。
2019/02/02
昨天在知乎上发现一篇文章[3],他将这个抽象级别进行了相应的定义,在第三个层次的时候变为了数学公式的形式,如果按照是越来越高的想法,也就是说,数学公式的时候,要比实际的事物抽象级别更高。不过在计算机科学中,一般抽象的概念是从底层的编程语言往上抽象的,跟文章[3]举出的物理结题思路不一样。从机器语言,再到汇编,再到高级语言这个过程。所以前面说的这个数学公式,我的理解,也应该是针对实际内容进行建模的产物,但平日中编程可能并不是这样一个层次。或者说,我应该去区分的实际上应该是在编程之前对问题进行建模的抽象过程,亦或是开始编程后,利用编程语言实现的抽象过程。例如SCIP-python中讲述的就是编程过程利用的抽象。
2019/02/03
看了SCIP的内容,但是看着看着发现不对,因为他的内容是针对编程语言中的抽象过程的。。
参考文献
[1] What does abstraction mean in programming?
[2] abstract-thinking-in-problem-solving
[3]抽象思维-程序员系列第一弹
·