【一】、学网络编程前的计算机知识普及
前言
可能有朋友会好奇,前两天刚发布了数据结构,现在突然又发布网络编程,那此刻的我到底在学些神马?哈哈,我这学期的目标就是学数据结构和网络编程,至于学的先后,我想你应该猜到了,没错,两不误,我就是要同步进行,世上无难事,只要肯攀登,趁我学习热情依旧高涨,学习就是我最大的乐趣。
在学习网络编程之前,我觉得有必要对计算机的硬件、软件、操作系统做一些简单的了解,你也不用去百度,我都给你安排好了,先看一篇《编程常识知多少》,等你看完后再紧接着看我下面要说的内容,包教包会,咱就稳稳的,不给失败找借口,只给成功找方法,咱们一起奔大厂。
计算机知识普及
如果你已经看了刚才推荐的文章,那接下来我给你普及一下计算机基础。首先来说我们学Java、Python、C、C++等编程语言的目的是为了干什么?无非就是写代码,编写程序。比如说你学完Java、学完Python以后你就能写像暴风影音,QQ、微信、浏览器等各种各样的应用软件。好,那我们买来一台新电脑就能立马装这些软件吗?知道的朋友都会说,得先在电脑上装操作系统,比如Windows系统,等装好了操作系统然后才能装那些软件。在没装操作系统之前,你的电脑就是一堆硬件,是死的,那现在你应该明白一台完整的计算机系统应该由三层结构构成(如下图)
现在我们想一想,一个完整的计算机系统是如何从无到有的发展起来的。我们知道,在早期社会有奴隶制度,一些生活在高层的人会指使奴隶去做一些事,不过后来被奴隶给推翻了。大家想一想,奴隶是不是也需要吃喝拉撒,你就算控制奴隶干活你也得管奴隶的生活需求。但是如果控制一台机器的话,机器不需要吃喝,一直工作就可以了,因此人们开始把注意力分散到了如何奴隶机器上,跟奴隶人一样,要想奴隶机器,就要找到能跟机器交流的表达方式,把我的思想传达给机器,让机器去执行。实际上这个机器就指计算机,所以说计算机的发展历程就是人类不断想用机器去取代或者说解放人力,最终极的理想是能够让计算机变的跟人脑一样,所以计算机也叫“电脑”。
我在刚才说我要找到一种机器所能理解的表达方式,这是不是我们学习编程语言的目的啊。编程语言就是机器所能识别的表达方式,基于编程语言把你的思想写给机器,写出来的结果就叫程序或者软件。所以现在大家应该明白,硬件是死的,你现在要想让硬件“活”起来,你得给它写好软件,但是软件不能单独运行,软件是一定要交给硬件去执行的,但硬件又是死的,硬件包含了内存、硬盘、CPU等,我们要想让这些硬件运作起来,你得控制硬盘转起来,得控制CPU工作起来,得控制内存也能工作起来,机器自己是不能控制自己的,那你得用程序控制它,就跟人的思维一样跟机器说你应该怎样,那你就得先写一段控制程序去让硬件“动”起来,然后再写应用软件,比如说QQ,这时候QQ需要用硬件,就先去找控制程序,然后让控制程序去调用相应的硬件,从硬件中拿到东西后再通过控制程序返还给QQ,这就是控制程序的作用。那现在又有一个应用软件Word,它的功能和QQ不同吧,它想从硬盘中读取信息,也要用到硬盘,那它的操作过程是不是和刚才的QQ一样,都要先找控制程序,通过控制程序操作硬件,达到目的。
这个控制程序好写吗?不见得吧,可能光给你一个硬盘都够你研究一辈子的,这时候有一批专业的程序员站出来了,他们说要专门写控制程序来控制硬件,控制好硬件之后提供一堆接口给应用程序调就可以了。那这个控制程序就是操作系统。
计算机硬件是负责执行具体干活的,操作系统的功能是在应用软件和硬件之间起承上启下的作用,软件其实就是我们给计算机传输的思想。
此篇完
可能我没必要写这么详细,但换个角度想,却觉得越是没有必要的东西越是有必要写,因为大家都这样想了之后就会产生一种都懂了的错觉,这样给新人就造成了一些困难,勿以善小而不为,从小事做起,从我做起。需要学习资料的话看《学习目录》
【原创声明】:本人原创:https://www.cnblogs.com/zyx110/