认知的方法论
--以学习python编程语言为例
人之初,使用感觉来体验世界。触觉,味觉,视觉,听觉。
从而形成了感性优先。
从接受教育开始,更多的是理性教育,比如语言文字的语法逻辑,数学的算术逻辑,科学的物理逻辑。
后续是一个感性理性不断的螺旋缠绕的过程。
人类至今,理性并不能解释和解决所有问题,因此人类还是常常会求助于信仰、情绪等等非理性因素。使得自我将要做出的行为和做出后的行为形成自恰,而不至于混乱。
认知(也就是人了解世界)的过程,是由点到线,由线到面,由面到立体的层层递进的过程。
为什么人之初是用感觉来体验世界?因为人一出生,客观的三维世界已经存在了,还包括流动的时间。初生儿不可能在一开始就获得认知这个世界的能力。但是他的基因序列里面蕴含了天然的感受力。
以上是背景,接下来,说python。
python是一门计算机编程语言,计算机能理解它,且根据其语义执行对应的指令,从而完成具体的工作。
学习python,本质上是学习和计算机沟通的方法,然后让计算机完成我们的工作。
学习python,是一个认知的的过程。如前所述,认知的过程,必然是循序渐进,从单维度到多维度的过程。对于python来说,这个过程是这样的:
第一步:
1. 基本数据类型,可以认为是语言里面的原子,他是一个点。包括:整数类型、浮点数类型、布尔类型
2. 二维数据类型,他是由基本数据类型组成的序列,包括:字符串,列表,元组
3. 多维数据类型,他是由基本数据类型和二维数据类型组成,主要有:字典
学习python的第一步,是准确理解这些数据类型,对这些数据类型的字面表达方式,组合,分离等等操作有非常明确的理解。
第二步:
数据是静态的,是原材料。如果我们要完成一件事情,需要让这些原材料动起来,包括:
获取原材料,运输原材料,对原材料进行加工处理,最后生成产出品。也就完成编程语言要做的事情。可以抽象为:
“数据输入===》数据处理===》数据输出”
为了实现上述过程,编程语言必须要提供对数据进行处理(输入,处理,输出)的必要语法元素。在python中,这些语法元素包括:
条件判断(if...else语句)
流程循环(for in语句,while语句)
数据计算(基本的数学运算,和数据的CRUD操作,Create/Requery/Update/Delete)
时间运算(获得时间,定时执行,。。。)
。。。
第三步:
就如同人类一样,人脱离社会是无法运行的。计算机语言也一样,他的运行是基于一个计算机环境,这个环境包括:计算机硬件,以及在硬件之上的软件操作系统(windows,linux,android,ios等等)。python语言所有的执行行为,就是在软件操作系统之上。
因此,如果要用python实现我们的想法,帮助我们解决问题,就必须对语言的运行环境,也就是操作系统,有基本的认知。这个环境,就是用python语言去使用操作系统提供的功能。这些功能包括:
文件管理(日常我们使用电脑的时候,打开文件,编辑文件,保存文件,删除文件这些操作)
网络通信处理(比如我们从网上下载文件,或者是用浏览器流量网络上的资源,或者微信和网络另一端的朋友通信)
图形图像处理(比如我们打开一个windows窗口, 看到播放器里的画面)
内存管理(python底层已经帮我们处理好了)
这些基础的与操作系统交互的功能,都在python的标准库里面。python的文档非常的详细。标准库,就是一门编程语言除了提供基本的数据类型和针对这些数据类型的处理方法之外,提供的一套与操作系统交互的工具箱。
值得一提的是,标准库的功能是非常庞大而完整的,你并不需要完全学会这些功能。你只需要了解他有哪些东西,用的时候过来取即可。其中文件管理,是必须掌握技能,网络处理也很重要。
第四步:
在有了前三步的学习成果之后,我们可以认为,我已经学会了使用python这件武器。接下来我要用它来完成我要做的事情。一般来说,数据分析和处理是python的强项。世界本来就是由数据和信息组成。学习python一个重要的目的,就是用他来协助我们理清这个复杂的世界,研究数据,得到我们要的答案。从这个方面来说,numpy库和panda库,是多维数据分析、计算、表达的有力工具。因此后续要学的就是这些库了。
话说回来,python及其第三方丰富的工具箱(代码库),本质上只是工具,无论这件工具多么强大,多么趁手。假设我们要分析一堆数据的时候,我们必须了解数据从哪里来,目标是什么,采用什么理论。比如说我们要看某一个班的同学的成绩是否服从正态分布,那么我们必须首先了解什么是正太分步。如果我们想知道广告展现在不同地区,不同时间的比例,以及差异度,我们能首先要了解概率论,平均、加权平均,以及方差、标准差。理解这些参数能给我们带来什么样的结论。也就是我们需要基础的统计学知识。
总结:
学习是一个认知的过程,认知是一个从单维度到多维度,从静态到动态的过程。语言是越用越活的,语言也可以影响人的思维方式。只有多训练,形成思维惯性,就能培养个人更多的逻辑性和理性思维,学习更多的知识,互相助益,从而可以更好的认知这个世界。而不是一直处在用感觉去感受世界的人之初的阶段。这可能是学习python的最大价值所在!