01 编程入门

一 编程语言

1.1 什么是语言?什么是编程语言?为什么要有编程语言?

语言其实就是人与人之间沟通的介质,如英语,汉语,俄语等。

而编程语言则是人与计算机之间沟通的介质。

那么为何要有编程语言,或者说人为何要与计算机沟通呢?这是因为在编程的世界里,计算机就好比是人的奴隶,人与计算机沟通的目的就是为了奴役计算机,让计算机按照人类的思维逻辑自发地去工作从而把人力解放出来。

学习编程语言之前,首先要搞清楚「编程语言」这个概念。

很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们竟然在不知不觉中学会了说话,同时也能听懂其他小朋友说话的意思了,我们开始向父母要零花钱买零食和玩具、被欺负了向父母倾诉……

我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。

“中国语言”有固定的格式,每个汉字代表的意思不同,我们必须正确的表达,父母才能理解我们的意思。例如让父母给我们10元零花钱,我们会说“妈妈给我10块钱吧,我要买小汽车”。如果我们说“10元给我汽车小零花钱妈妈”,或者“妈妈给我10亿人民币,我要买F-22”,妈妈就会觉得奇怪,听不懂我们的意思,或者理解错误,责备我们。

我们通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去控制他人。

同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。

编程语言也有固定的格式和词汇,我们必须经过学习才会使用,才能控制计算机

总结:编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的目的。

这些具有特定含义的词汇、语句,按照特定的格式组织在一起,就构成了源代码(Source Code),也称源码或代码(Code)。

那么,编程语言肯定规定了源代码中每个词汇、语句的含义,也规定了它们该如何组织在一起,这就是语法(Syntax)。它与我们学习英语时所说的“语法”类似,都规定了如何将特定的词汇和句子组织成能听懂的语言。

编写源代码的过程就叫做编程(Program)。从事编程工作的人叫程序员(Programmer)

1.2 什么是编程?为什么要编程?

编程就是人把自己想命令计算机干的事用编程语言翻译出来并写到文件里(这一系列的文件就是程序)

人类编程的目的就是为了让计算机按照人类的思维逻辑(程序)自发地去工作从而把人力解放出来

综上,我们接下来的学习应该分为两个层面

1、为了更好地控制人类的奴隶(即计算机),我们需要学习计算机是由什么组成的、它能做什么事、它是怎样工作的(详见计算机组成原理、操作系统概述)

2、我们需要学习编程语言,从而把原来需要人力来完成的业务(比如ATM和购物)交给计算机去做

二 计算机组成原理

2.1、什么是计算机?

俗称电脑,即通电的大脑,电脑二字蕴含了人类对计算机的终极期望,希望它能真的像人脑一样去工作,从而解放人力

2.2、为什么要用计算机?

为了执行人类的程序,从而把人类解放出来

2.3、计算机的五大组成部分

计算机有五大组成部分,既然计算机是人的奴隶,那么计算机设计核心肯定也是在模仿真正的人,所以我们完全可以把计算机的五大组件比喻成人类的各种器官

2.3.1、控制器

控制器是计算机的指挥系统,用来控制计算机其他组件的运行,相当于人类的大脑

2.3.2、运算器

运算器是计算机的运算功能,用来做算术运算和逻辑运算,相当于人脑

ps:控制器+运算器=CPU,cpu相当于人的大脑

2.3.3、存储器

存储器是计算机的记忆功能,用来存取数据

存储器主要分为内存与外存:

内存(基于电工作):存取数据都快,断电数据丢失,只能临时存取数据

外存(硬盘,基于磁工作):存取速度都慢,断电数据也不丢,可以永久保存数据

ps:内存的存取速度要远远高于外存

内存===》人类的大脑的记忆功能
外存===》人的笔记本
数据真的要用,一定是先从硬盘放到内存中来,内存交给CPU

2.3.4、输入设备input

输入设备是计算接收外界输入数据的工具,如键盘、鼠标,相当于人的眼睛或耳朵

2.3.5、输出设备output

输出设备是计算机向外输出数据的工具,如显示器、打印机,相当于人说的话,写出的文章。

ps:存储器如内存、磁盘等既是输入设备又是输出设备,统称为IO设备

cpu是人的大脑,负责控制全身和运算
内存是人的记忆,负责临时存储
硬盘是人的笔记本,负责永久存储
输入设备是耳朵或眼睛或嘴巴,负责接收外部的信息存入内存
输出设备是你的脸部(表情)或者屁股,负责经过处理后输出的结果
以上所有的设备都通过总线连接,总线相当于人的神经

一个非常重要的基础知识:与运行程序相关的三大核心硬件

我们编写的程序一定是要运行于计算机硬件之上,而站在硬件的角度,与运行程序有关的三大核心硬件为CPU、内存、硬盘。

程序最先是存放于硬盘中的,程序的运行是先从硬盘把代码加载到内存中,然后cpu是从内存中读取指令运行。

三 操作系统概述

3.1、操作系统的由来

大前提:我们编程目的就是为了奴役计算机,让计算机硬件自发地运行起来,然而硬件毕竟是”死的“,硬件的运行都是由软件支配

倘若我们要开发一个应用程序,比如暴风音影,该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑,必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序,然而这仅仅只是一个开始,事实上,在编写应用程序的业务逻辑前,需要开发者编写出一套完整的控制程序用来控制所有硬件的基本运行(这要求开发者需要详细了解计算机硬件的各种控制细节,例如我们必须把CPU里面所有指令集都掌握一遍),如此,所有的开发者在开发程序时都必须依次开发两种:

  1. 编写一套完整的的控制程序,用来控制硬件的基本运行,以及把复杂的硬件的操作封装成简单的接口
  2. 基于控制程序的接口开发包含一系列业务逻辑的程序,为了与控制程序区分,可以称为应用程序,以ATM这款应用程序为例,业务逻辑有提款、转账、查询余额等

综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。

操作系统的功能

  1. 控制计算机硬件的基本运行
  2. 把硬件运行的复杂操作封装成简单的功能,给上层的程序使用
操作系统是一个协调,管理,控制计算机硬件资源和应用软件资源的一个控制程序
作用:
	1.控制计算机硬件的基本运行
	2.把使用硬件的复杂操作封装成简单的功能,给上层的应用程序使用
举例:
	文件就是操作系统提供给应用程序/用户操作硬盘的一种功能
tips:
文件扩展名也称为文件的后缀名,是操作系统用来标记文件类型的一种机制。让系统快速识别文件类型,然后交给相应的应用程序处理。扩展名几乎是每个文件必不可少的一部分。如果一个文件没有扩展名,那么操作系统就无法处理这个文件,无法判别到底如何处理该文件(Linux系统则没有文件后缀名这个概念,Linux不像Windows是依据后缀名调用相应程序的。但是实际操作中考虑到跨平台的问题,所以学习一些常用的后缀在Linux中进行规范命名是很有必要的。)

3.2、系统软件与应用软件

计算机硬件是死的,计算机硬件的运行都受软件控制,所以说,软件相当于计算机的灵魂

具体来说软件分为两种:

  1. 应用软件:应用程序相关逻辑(我们学习python就是为了开发应用软件的)
  2. 系统软件:控制底层硬件的

3.3、计算机系统三层结构

综上,我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层,如下

在这里插入图片描述

一个非常重要的基础概念:平台

应用程序都是运行于操作系统之上,而操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台,即:硬件 + 操作系统 == 平台

在这里插入图片描述

常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等,我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的关键因素往往是编程语言的选择,python恰好是一款跨平台性语言,这也是我们学习它的原因之一

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值