1.1 创造性和动机
因为本书不是针对专业编程人员。因为专业的编程人员所做的工作都须要考虑经济性。
为其他用户创建实用的、简洁的和聪明的软件是一件很有创建性的工作。你的PC或PDA通常都安装有许多专业人员为你开发的应用程序,每一个软件都会引起你的注意和兴趣。他们尽量让这些软件满足你的需求,而且让你体验得更好。
在某些程序情况下,当你提出一些需求时,专业开发者须要你给他们酬劳才会给你开发你所须要的软件功能。
当我们使用PDA时,专业人员开发好的软件都排列在界面上。仅仅要选择它就能够运行。但假设有什么特别需求时,就须要另外购买了。
对于我们这些非专业编程人员来说,我们的基本编程动机不是赚钱,也不是为了别人使用这个软件的体验好,而为了处理我们生活和工作上处理数据信息更加有创造性。当你開始时,你就将扮演着程序猿和终端用户的角色。
相同因为你学会这样的编程能力时,你的创造性就会发挥出来了,同一时候你也能够把这些想法变成软件为别人服务。
1.2 计算机硬件架构
在我们開始学习计算机编程语言之前,先来了解一下计算机的硬件架构是怎么样组成的。假设你以前拆开你的计算机或者智能手机,大体功能布局例如以下:
功能架构图主要由下面部分组成:
l 中央处理器(CPU):中央处理器就是用来运行“下一步做什么?”假设你的CPU运行在3.0GHz,就意味着你的CPU在每秒钟问30亿次“下一步做什么?”因此,你必须跟得上CPU的问你的节奏,以便它问你时,你就马上告诉它怎么做。
l 主内存:内存主要用来存储CPU须要知道的信息。
内存的速度必须跟得上CPU,否则CPU就会慢下来。只是内存里的信息会随着断电而消失。
l 次要储存:它也是用来保存信息,但它的速度相对主内存来说是很慢的。只是它有一个长处。就是当断电之后全部保存的信息是不会丢失的。次要储存主要有硬盘、固态硬盘(最開始使用在USB盘、MP3)。
l 输入输出设备:这类设备主要有显示器、键盘、鼠标、麦克风、音箱、触摸板等等。全部这些设备都是用来与计算机进行交互的设备。
l 在现代的日子里,绝大多数计算机都有网卡。以便从网络上获取信息。
我们能够觉得网络就是一个速度比較慢的存储外设。而且能够掉线的存储外设。
事实上,把网络当作一个速度很慢和不太可靠的硬盘就能够了。
当然。怎么样把这些部件做到最好,以及把它们联系起来做到最好。这些就不用去学习了,留给那些计算机设计人员去研究了。我们主要学习这些部件的专有名词,以便在我们在编程里能够知道编写的代码正在使用那一部分的计算机功能。
作为一个程序猿。基本的工作就是合理使用这些功能部件,以及协调这些部件来解决你须要解决的问题,或者从解决方式里所须要分析的数据。因此,程序猿基本的工作,就是与CPU进行对话,告诉它下一步做什么。有时。还须要告诉CPU那些地使用主内存,那些地方使用次要储存,什么时候使用网络。或者输入输出设备。
当你须要成为回答CPU下一步做什么的人时,就是作为一个程序猿了,可是很不幸,你不可能每秒钟回答CPU30亿次,意思就是说你不可能每秒钟打击键盘30亿次。也不可能说话30亿次,那么怎么样做呢?因此你须要在让CPU工作之前。提前把全部让CPU做事情的指令先写好。我们把这些提前写好的指令保存的文件叫做程序,而写这些指令和保证这些指令正确地运行的过程就叫做编程。
蔡军生 QQ:9073204 深圳