本文,适合家中小孩喜好电脑的、适合对电脑软硬件技术比较爱好、或感兴趣的人群阅读。
今天写这个主题,是因为做软件开发的人,在大多数人眼里,这件事情很高深莫测,这个人应该能处理与电脑相关的所有问题。
事情果真如此吗?
在普通人眼里,他们这群人,应该会修电脑,装操作系统,使用办公软件,会做PPT。其实,这个问题不是绝对的,不是每个做软件开发的人会,如果他有兴趣,或许工作中遇到过,处理过,他可能会一点,但是,绝对不是精通。
其实,从事软件开发的人,只是整个庞大的电脑体系中的一部分,而且电脑体系中每一个部分都需要相当专业背景的人,才能把与它相关的问题处理好。从事软件开发的人,说白一点,就是学会了一门电脑能识别的语言,根据语言的语法规范,以保留字和常用数学符号来组织编写一定的逻辑,称之为写代码,即软件开发。
软件开发在最开始,是不存在的。它发端于在第二次世界大战期间。盟军为了计算炮弹弹道,也就是炮弹在不同当量火药作用下,在不同射击仰角下,计算炮弹的弹着点,提高炮弹的打击精准度,提升作战效能。这就是软件开发最开始做的第一件事情:需求调研。
那个时候,基本不存在软件开发概念,需求调研中的问题如何解决与实现,其核心方法是数学方法,把数学问题进行转换,演变成最简单的数学处理过程(加、减、乘、除4个数学方法)。这些事情在现在看来,仍然是按照普罗大众做事的方法进行的,并没有什么高深之处。高光之处在于有人想到用电子电路来代替一些高频次、大量简单计算、重复计算的数学处理过程,做成专用电子电路。最后把这些电子电路以一定的规范连接起来,构成了一套自主计算的计算机系统。
现在看来,可能是当初灵光一闪的念头,想到这样天才的方式来处理数学计算问题。
利用电子器件组装成一个逻辑电路组,有些逻辑电路做加法,有些逻辑电路做乘法,还有一些电路做成计算方程,而这些电路只能处理1和0两个数据,即二进制数据。逻辑电路输入或输出端加电时表示输入输出1,断电时表示输入输出0。然而,我们现实中数值计算采用十进制计算,所以可以将十进制数值转换成以1和0二进制数值。而十进制取值范围比较大,把十进制数据转换成二进制,对应的二进制数据的位数需相应的增大。
如8位二进制数最大十进制数是127,即0111 1111,
如16位二进制数最大十进制数32767,即0111 1111 1111 1111,
如32位二进制数最大十进制数2147483647,即0111 1111 1111 1111 1111 1111 1111 1111。
举例说明:5 + 5 = 10,二进制是 0000 0101 + 0000 0101 = 0000 1010。
二进制数值读取,从右到左开始读取,由低到高来计算。二进制数位取值非零的情况下,第1位非零二进制代表十进制1,第2位非零二进制代表十进制2,第3位非零二进制代表十进制4,第4位非零二进制代表十进制8,故高位二进制代表的十进制值是次高位二进制代表的十进制值的2倍数值。而对应二进制数位取值为0即代表十进制数位取值为0。
这样,人类的数学问题变成了电子机器的数学问题,人类让机器可以识别人类的数学问题。
现代软件开发,经历了多个发展阶段,第一阶段,纸带打孔,纸带每一行规定有8个孔位。打孔即表示当前二进制数位为1,否则表示当前二进制数位为0。把需要处理的数据事先转换成二进制数据,通过打孔机把转换后的二进制数据打孔到纸带上,然后通过读卡机把二进制数据输入电子机器中进行计算,最后再利用打孔机把计算结果打印出来。这个时候纸带打孔仍不是一种使用便捷、可推广的方式,只有少数专业人员使用,这种方法很早就被淘汰了。
第二阶段,是用汇编语言编写。汇编语言,它是一种低级语言,这个语言引用了部分人类的自然语言作为指令,使得由它编写的代码具备一定的可读性,便于人员之间的交流。但是可读性仍然很差、编写难度更大。当今能写汇编代码的人群,在电脑领域犹如神一般的存在。一般由“解释器”和汇编代码两个部分组成。而这个时期的电子机器,也可以称之为电脑。解释器事先在电脑上运行组装好,汇编代码输入电脑后,经解释器进行转换,变成二进制数据,再交给电脑进行计算处理。
第三阶段,高级语言编写时代,它充分利用人类的自然语言来组织编写。它的代表语言种类繁多,如Java、C、C++、PHP、Python等。每种代表语言都有它所尊崇的语法规范,要按照标准的语法进行编写。不过,可读性大大提升,编写难度也降低了许多。到这里,你可能会感到奇怪,电脑怎么会理解我们用自然语言编写的东西呢?其实,我刚才提到每种代表语言都有它所尊崇的语法规范,要按照标准的语法进行编写。这样,每个软件开发人员编写的代码样式均是统一规范的。而且每一种高级语言都有一个编译器的东西,负责把高级语言编写的内容编译转换成汇编语言内容,再由解释器转换成二进制数据。所以,现代软件开发均是站在前人努力的肩膀上进行的。
回到现实生活中,现在生活中无时无刻,无处不在电脑帮助人们处理许许多多的事情。这些形形色色的事情,就是软件开发人员负责把这些事情进行总结和分类,用数学方法进行分析,然后用数学方法进行表达,利用高级语言进行软件开发来实现。你明白了吗?
后续我会接着讲一些原理性的内容,敬请关注!
立即咨询: 13716188458 / 18588225959,助您抢占市场先机。项目经理在线