学编程语言的各个阶段
基本概念阶段:
计算机组成原理,掌握计算机世界的实现的基本办法,了解基本环境。这个阶段的学习就是了解。同时培养抽象思维能力。
这里什么是抽象思维呢?有人说数学需要大量的抽象思维,这没错。但是这里提到抽象思维是一种语义和表达结果的对应。
比如语言里,汉语有一句话:“中国大败美国”和“中国大胜美国”。这2句话表达的意思是一样的,只要懂汉语的人都会抽象出来主语代表的个体赢了宾语代表的个体,而不会受谓语动词表达的意思的影响。这是语义有变,但是结果未变的形式。
在英语里,employ有雇用的意思,可以是动词也可以名词,把语义一变化,从employ变为employee就是雇员的意思,而employer就是雇主的意思。加上不同的语义,就有不同的结果。为什么不同?这也是抽象思维的结果。
有时候语义解释权不在于开发人员,在于计算机和编译器。换了个环境,用老眼光看待问题,就要吃亏。
图形是常用的语义,它的表达更为复杂,表示的有组成的意思,有关系的意思。电影里的图形更是会刺激人的喜怒哀乐。为什么呢?因为人小时候已经总结的有抽象的基础了。
在计算机组成原理里,有几个图形非常重要。
从组成和关系2方面多思考。流程图表示的结果,就是每个执行流的结果。执行流必定会串联起来一些过程,一个执行流就是一个语义,一个语义必定有一个结果。
CPU组成图
还是从组成和关系2方面去记忆,去思考。
寄存器变量是register,为什么快?因为它离控制器近,不用总线来协调访问,当然速度快。
假定也是一种重要的抽象思维。在不能理解情况下,先记住。在开始阶段要求太多,会适的其反。
关联互动是高级的抽象思维,多个步骤前后协调,多个模块互动协调,这些都是要培养的。
关键字阶段:
英语里有一个单词Token,汉语翻译为符号。符号是计算机世界的一个原子,它代表了一个最小的单位。在处理程序代码时,计算机内部以符号形式来识别代码。关键字是一个重要的符号,它是代码的基础。比如;分号,它是分隔多个行代码时用到的。这个阶段的学习方法是加强记忆,提到哪个关键字,它的功能就能立即反射到大脑里。
操作符和语句阶段:
操作符是一种特别的关键字。生成数据结果时要用到操作符。比如加减乘除。
关键字结合起来的最小单位就是语句。比如上面提到的;分号代表分隔多行代码,如果在一个分号后再直接带一个分号,哪只是添加了一个空语句。
形式是这样的
编程语言翻译1:int a;
2:;
哪第2行就是空语句。
最复杂的操作符是三元的,这里的元是指该操作符要工作需要的变量或值的个数。三元的操作符就是需要三个值的操作符。这个操作符是?:。下面是一个语句形式
1?1:2。它的结果是1。
下面是另外一种形式0?1:2。它的结果是2。
这个操作符的理解是这样,如果?前面的表达式的值是真,则整体表达式的值是?和:之间的值。如果?前面的表达式的值是假,则整体表达式的值是:后面的值。
这个阶段的学习方法是记忆加联想,把各个关键字的结合规则记清楚后,还要掌握它们之间配合工作的规则。语句的形式是有限的,如果实在记不住所有的规则,多看些代码,理解也是一种办法。
##在宏里把前后字符串粘在一起。#define A(a,b) CString##a##b
A(11,22) CString1122
生成一个新的标识符名。
函数阶段:
语句结合在一起,就是一个函数。一个函数往往是为实现一个子功能服务的,比如常用的2个整型变量的交换函数Swap。还有求绝对值的abs函数。当然你也可以自己写函数。函数要写好,需要掌握代码的执行顺序。执行顺序默认是向下执行下一条指令,但是指令也可
以影响执行顺序,比如最常用的goto语句,执行过goto语句,下一条指令就会变成goto里指定的标签对应的语句。执行顺序要求理解下一条指令在哪一行语句。
break,continue,if else.
函数里的规则还有很多,但是能够理解执行顺序是关键。
数据判断后才使用。数据无效,当然要返回。
switch break;
文件阶段:
多个函数放在一个文件里。多个代码文件形成项目。一个项目里除了代码文件,还会有别的文件,比如配置文件,资源文件等等。这个阶段要掌握的知识点很杂了,比如IDE集成开发环境的操作,比如怎样设置DEBUG或RELEASE生成模式,怎样导入图形到工程里。这时的学习多看看msdn,多网上的资料,就可以了。
类阶段:
类是一个抽象的概念,代表数据和函数结合的形式。但是它的思想并没有这么简单。要用好类,思想必须升华。一大堆任务,要把它分层,每一层再分为不同的实现类,这是一种拟人化的实现,和实际社会里的社会分工是类似的。这也和人体类似,人体分为哪些系统?每个系统的指令是由哪个器官实现的(人体的化学物质控制其它器官)?具体到哪类细胞受化学元素控制来进行响应?这些都是经过千万年自然形成的条件反射,如果没有分隔,层次化处理,只有一个单细胞,能实现这么多吗?
这个阶段的学习要多看好的例子,看技术点的深入剖析文档,多交流,多深入分析别人的实现方案。思路要开阔,大脑里要能形成设计点,并能推敲和演变,能够不用纸笔也能推算各类变化和处理应对。
设计阶段:
现在有一个系统分析员,就是对应这个阶段。系统分析员,能够分析系统如何实现,按什么方式进行实现?具体量化的目标就是写出设计文档,概要设计和详细设计。设计里元素一般有模块划分和接口。对于一些模块要划分好类和层次。
软件工程阶段:
项目经理的工作就是管理好软件开发,这是软件工程的主要目的。同时对个人素质来说,要有配合软件工程的习惯,比如写好文档,控制好代码的质量,按进度完成,写好注释等等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论