大家好,我叫何先振,今天给大家介绍下计算机,帮助想学编程的人对计算机有个基本认识。
首先我们来看什么是计算机?计算机是能够按照程序运行控制硬件,自动,高速处理海量数据的现代智能电子设备。计算机的作用就是可以对数据进行计算、存储。比如电脑的QQ,当我们鼠标点击QQ图标,QQ程序就弹出登录框。登录后就可以加载出你的好友列表信息。这都是QQ程序设计的控制我们的计算机硬件。
通过程序控制硬件计算数据,因此计算机是由硬件跟软件组成,通过软件来操作硬件,按照软件设计好的指令进行计算。
我们先来讲讲硬件,计算机的硬件可以分为:
计算机的输入设备,比如鼠标、键盘,用于给计算机输入信息,包括数据、指令。
计算机的存储设备,比如内存和硬盘。内存:临时性保存数据,关机后数据消失,通常是个中间人,从硬盘拿数据,给CPU提供数据。因为CPU处理数据很快对数据需要很急,可硬盘给数据却比较慢,所以需要一个中间人内存,问硬盘拿数据,给CPU提供数据。而硬盘是持久性保存数据,关机后依然保存着数据。
计算机以二进制存储数据,每一位里面都存着一个0或者1。1个字节(byte)就有8个位(bit)。字节是计算机中最小存储单元,计算机存储任何数据,都是以字节形式存储。
为啥10月24号被称为程序员节呢?这个跟内存和硬盘的容量大小换算有关。容量换算:1byte字节=8bit位,1024Byte(字节)=1KB(千字节),1024KB=1MB(兆字节),1024MB=1GB,1024GB=1TB。都以1024做为进级标准。
计算机的中央处理器,比如CPU,用于进行数据的计算和控制。常用的CPU有:酷睿处理器,AMD处理器。选择处理器重要的参数:版本号:比如酷睿的i7>i5>i3,而每一个版本号也会有几代,比如i78代,i7后面的4位数字就是几代号,例如“6700”,首位“6”表示代数。主频:GHZ 频率,CPU里面传递电子的速度,1秒传递多少个电子数,传的越多频率越高,也就越好。核数:核数越高,线程数越多,同时运行处理数据就越快。大家选电脑不知道怎么选处理器,多关注这几个。
计算机的输出设备,比如显示器可以看到计算机输出的信息。打印机可以把计算机输出的信息打印出来。
计算机的连接器,主板,作用通过把计算机中的输入设备、存储设备、中央处理器、输出设备连接在一起。
这些硬件设备的关系是:计算机通过鼠标,键盘等输入设备接收数据和指令,存储在计算机的硬盘中。需要处理计算数据时,先加载到内存中,通过计算机的CPU进行控制和运算,把处理计算的结果通过输出设备显示器,展示出来。
那计算机的这些设备怎么为啥这样划分呢?其实计算机的这些设备结构的划分由来,从最开始的计算机之父冯罗伊曼提出的结构论来的。他提出了计算机的结构,所有的计算机必有运算器、控制器、存储器、输出设备、输入设备。至今计算机还采用他提出的结构。
除了冯罗伊曼被称为计算机之父,图灵也是计算机之父。图灵提出的图灵机模型,就是由一个虚拟的机器替代人类进行数学运算。这个图灵机模型为现在的计算机逻辑工作方式奠定了基础。把图灵奖,作为计算机的最高奖项。被称为计算机界的诺贝尔奖。
硬件讲完,我们在来讲讲计算机的第二个组成部分软件:
软件可以分为操作系统软件和应用软件。操作系统软件,直接跟硬件打交道的软件,直接操作硬件的指令集。应用程序都要在操作系统的基础上才能运行。系统软件一般是购买时随机携带的,也可以根据需要另行安装。应用软件,运行在操作系统上的软件,是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。它可以拓宽计算机系统的应用领域,放大硬件的功能。比如QQ满足了聊天需求、电脑游戏满足了娱乐需求、网易音乐满足了听音乐需求、腾讯视频满足了我们看电视剧和电影的需求。
那么这些软件都是怎么来的,就需要谈到程序设计了,就是通过程序设计语言,设计出一套可以让计算机听的懂的指令集合,控制计算机运算完成相应的功能。
程序设计语言,就是能够让计算机听懂的语言,可以通过这个语言,操作计算机完成相应的功能。程序设计语言分为三类:机器语言、汇编语言、高级语言。
机器语言:是直接可以被计算机识别的语言,计算机采用二进制作为机器语言。计算机能够读懂的就是一堆由0跟1组成的数字。
汇编语言:相比只有0和1组成的机器语言,汇编语言通过不同的字符代替二进制机器码,这些字符通过汇编转化成机器指令。
高级语言:是一种独立于机器,面向过程和面向对象的语言,他参考自然语言和数学公式,是一种比较亲和自然语言,能够被人接受理解的方式编写程序。常用的语言有:C语言、C++、C#、Java、Pyton、SQL等。至于什么是面向过程和面向对象这个后面可以讲解,先可以理解是两种不同的设计思想。
高级语言的特点:
面向过程,比如C语言、C++,开发难度大,执行效率高,一般设计操作系统程序都用C、C++,因为操作系统直接跟硬件打交道,需要效率高。
面向对象,比如Java、C#,开发难度小,执行效率低,设计应用软件程序一般用Java、C#。面向对象语言,为啥说开发难度小呢?比如实现一个软件的功能,java要比C语言写的代码要少很多,能够大大提高开发效率,适合设计能够解决各种应用领域问题的应用软件。
讲完软件,我们会奇怪浏览器输入的网址是否属于软件呢?这就要讲到软件的方式。目前软件的实现方式有两种,一种是C/S 、一种是B/S模式。
C/S即Client/Server,客户机和服务器,这种软件是直接安装在客户机上也就是我们平时使用的电脑,就是我们电脑上安装的各种应用软件,比如QQ、微信、网易音乐等等这些。
B/S即Browser/Server,浏览器和服务器,这是一种特殊的C/S软件方式,只不过这个C,是安装在客户机上的浏览器,而浏览器可以输入网址访问很多种程序系统(各种网站)。 因此脱离独立出来一套软件方式。
当我们在浏览器输入网址,网址开头部分都有3W,就是万维网的意思,又叫环球信息网,把信息共享起来。提出了客户端和服务器的模式。每一个服务器存储的信息资源,都可以申请一个唯一的资源路径Id,也就是网址url。客户端通过访问对应的资源路径id就可以拿到服务器存储的信息,还可以跟服务器交互。比如我们输入www.baidu.com的网址,进入百度搜索页面,可以点击搜索按钮,发送搜索指令服务器处理过,把搜索的信息,发送给浏览器,让你们看到搜索的内容。
讲完了这些基本介绍,我们有想学编程的,可以看看这行的职业发展路线。学习编程职业发展路线,用Java举例。可分为:初级Java工程师、中级Java工程师、高级Java工程师、资深Java工程师。到了资深Java工程师继续上升,就有两个岔路口一个是管理方向、技术方向。管理方向项目经理、主管、CEO。技术方向有技术经理、CTO。至于每个职业的待遇怎么样,大家可以去招聘软件上面查看。
很多人说,这是个吃青春饭的,老了都不能做。其实中国互联网发展的晚,所以中国企业中看到大部分开发都没有很老。国外就有很多老的开发。另外有些年纪大的很多都升上去做主管,经理了,因此看上去才会出现做开发的都是年轻人。
如果决心想学这行,下面可以说下我的学习经验,学习编程的经验,主要注重知行合一,懂了理论看上去很简单,但是自己写的时候就很难。所以实践很重要,理论+实践是学习编程很重要的一个方法。要积累自己的代码量,懂了要多敲。
好了,本期的内容就到这里了,想学Java的可以关注我,下期正式开始讲Java。