在学校的这几年,一直断断续续地在接触python,从一开始的分词作业到后来的话题发现,主要集中用python处理自然语言处理方面的问题。但是,后来又有一段时间集中精力专攻前端开发方面的程序问题。所以现在感觉自己整个编程体系都很混乱,每个部分都略懂一点,深感基础知识薄弱,故重新通过mooc网的视频教程温习了一遍python 基础入门知识,查漏补缺。本篇为学习Python基础入门知识课程的知识梳理和感受。
一、计算机时代发展
目前为止,主要划分为四个阶段。
(1)1946年-1981年, 计算机系统结构时代,这一阶段主要是解决计算能力问题
(2)1981年-2008年,网络和视窗时代,这一阶段主要是解决交互问题
(3)2008年-2016年,复杂信息系统时代,这一阶段主要是解决数据问题
(4)2016年-现在, 人工智能时代,这一阶段主要是解决人类的问题
第一次听到这个,就怀疑自己是否研究得走火入魔了,对于每个阶段解决的问题,会不自觉地跟学者的研究和互联网就业扯上关系。如交互问题联想到学者们研究用户行为,数据问题想到大数据处理的技术兴起和学者们提出对现有的非结构化数据高效处理的算法,人类的问题想到自然语言处理的应用如个性化推荐,决策,人机对话等等以及软件产品设计、设计心理学等等。最后,深深感慨,导师的眼界很宽广和深厚,一开始就定位在人的情感的最高点来指引我们。
二、 具有代表性的编程语言
其次是对于目前具有代表性的编程语言进行梳理。从学习内容,语言本质和解决问题三方面进行比较。
C 语言 | C++语言 | Java 语言 | Python 语言 | |
学习内容 | 指针,内存,数据类型 | 对象,多态,继承 | 对象,跨平台,运行时 | 编程逻辑,第三方库 |
语言本质 | 理解计算机系统结构 | 理解主客体关系 | 理解主客体关系 | 理解问题求解 |
解决问题 | 性能 | 大规模程序 |
跨平台 | 各类问题 |
此外,编程语言的发展主要经历了从机器语言(与CPU型号有关)→汇编语言(与CPU型号有关)→高级语言(与CPU型号无关)的过程。
若要立志作为一个程序员,不仅仅掌握一门语言即可,应该根据实际问题和需求,掌握多种语言。我认为编程语言仅仅是工具,最重要的是选择一种最快捷和有效的方法解决当前所面对的问题,达到最终的目的。
三、Python 程序思维
人类的思维主要分为三种:
(1)逻辑思维:推理和演绎,以数学为代表
(2)实证思维:实验与验证,以物理为代表,
(3)计算思维:设计和构造,以计算机为代表,表现在抽象和自动化,主要通过编程的方式实现。
我认为,这三种思维并不是相互独立的,而是相辅相成的。从问题研究的角度,我们需要逻辑推理和实证思维,同时在实证过程中也需要计算思维来帮助我们快速的解决实际的现实问题。
四、Python 程序设计模式
(1)IPO程序设计模式
IPO = Input , Process ,Output
(2)模块化设计模式
紧耦合、松耦合
(3)配置化设计模式
引擎+配置,关键在于接口设计
五、计算生态
(1)定义和特征:
以开源项目为组织形式,主要特征为①竞争发展 ②相互依存 ③快速更迭
(2)典型的开源运动:
① 1983年 Richard ,GNU项目,GNU通用许可协议<