王和平的《计算机是怎样跑起来的》学习笔记

第1章 计算机的三大原则
初级问题
硬件和软件的区别是什么?
中级问题
存储字符串“中国”需要几个字节?
高级问题
什么是编码(Code)?
初级问题: 硬件是看得见摸得着的设备,比如计算机主机、显
示器、键盘等。而软件是计算机所执行的程序,即
指令和数据。软件本身是看不见的。
中级问题: 在GBK 字符编码下,存储“中国”需要4 个字节。
高级问题: 通常将为了便于计算机处理而经过数字化处理的信
息称作编码。
初级问题: 硬件(Hardware)代表“硬的东西”,而软件(Software)
代表“软的东西”。是硬的还是软的取决于眼睛能否看
得到,或者实际上能否用手摸到。
中级问题: 存储汉字时,字符编码不同,汉字所占用的字节数也
就不同。在GBK 字符编码下,一个汉字占用2 个字
节。而在UTF-8 字符编码下,一个汉字占用3 个字节。
高级问题: 计算机内部会把所有的信息都当成数字来处理,尽管
有些信息本来不是数字。用于表示字符的数字是“字符
编码”,用于表示颜色的数字是“颜色编码”。
本章重点
现在的计算机看起来好像是种高度复杂的机器,
可是其基本的构造却简单得令人惊讶。从大约50 年前
的第一代计算机到现在,计算机并没有发生什么改变。在认识计算机时,
需要把握的最基础的要点只有三个,我们就将这三个要点称为“计算机
的三大原则”吧。无论是多么高深、多么难懂的最新技术,都可以对照
着这三大原则来解释说明。
只要了解了计算机的三大原则,就会感到眼前豁然开朗了,计算
机也比以往更加贴近自己了,就连新技术接连不断诞生的原因也明白
了。本书以本章介绍的计算机的三大原则为基础,内容延伸至硬件和
软件、编程、数据库、网络以及计算机系统。在阅读之后的章节时,
也请诸位时常将计算机的三大原则放在心上。
1.1 计算机的三个根本性基础

  1. 计算机是执行输入、运算、输出的机器
  2. 程序是指令和数据的集合
  3. 计算机的处理方式有时与人们的思维习惯不同
    1.2 输入、运算、输出是硬件的基础
    1.3 软件是指令和数据的集合
    1.4 对计算机来说什么都是数字
    1.5  只要理解了三大原则,即使遇到难懂的最新技
    术,也能轻松应对
    1.6 为了贴近人类,计算机在不断地进化
    1.7 稍微预习一下第2 章
    第2章 试着制造一台计算机吧
    初级问题
    CPU 是什么的缩写?
    中级问题
    Hz 是表示什么的单位?
    高级问题
    Z80 CPU 是多少比特的CPU ?
    初级问题: CPU 是Central Processing Unit(中央处理器)的
    缩写。
    中级问题: Hz(赫兹)是频率的单位。
    高级问题: Z80 CPU 是8 比特的CPU。
    初级问题: CPU 是计算机的大脑,负责解释、执行程序的内容。
    有时也将CPU 称作“处理器”。
    中级问题: 通常用Hz 来表示驱动CPU 运转的时钟信号的频率。1
    秒发出1 次时钟信号就是1Hz,所以100MHz(兆赫
    兹)的话就是100×100 万 = 1 亿次/秒。M(兆)代表
    100 万。
    高级问题: CPU 上数据总线的条数,或者CPU 内部参与运算的寄
    存器的容量,都可以作为衡量CPU 性能的比特数。在
    Z80 CPU 中,无论是数据总线的条数还是寄存器的容
    量都是8 比特,所以Z80 CPU 是一款8 比特的CPU。
    而在Windows 个人计算机中广泛使用的Pentium(奔
    腾) CPU 则是32 比特的CPU。
    本章重点
    要想彻底掌握计算机的工作原理,最好的方法就
    是自己搜集零件,试着组装一台微型计算机。微型计
    算机(MicroCom)是Micro Computer 的缩写,字面含义是微小的计算
    机,但一般也可用于指代IC 元件外露的、用于控制的计算机。因为要
    制作一台真正的微型计算机既花时间又花金钱,所以本章就在纸上体
    验一下微型计算机的制作过程吧。需要让诸位准备的只有如图2.1 所示
    的电路图和一根红铅笔。将电路图复印下来后,请诸位一边想象着元
    件之间传输的信号的作用,一边用红铅笔描画出笔者所介绍的电路,
    以此来代替实际的布线环节。当所有的电路都描红了,微型计算机也
    就完成了。
    别看只是描了描线,却一样能学到很多知识,甚至可以说不费吹
    灰之力就能了解计算机的工作原理。从此之后不但消除了对硬件的恐
    惧感,而且还会感到和计算机更加亲近了。请诸位一定要借此机会体
    验微型计算机的制作过程。
    2.1 制作微型计算机所必需的元件
    2.2 电路图的读法
    2.3 连接电源、数据和地址总线
    2.4 连接I/O
    2.5 连接时钟信号
    2.6 连接用于区分读写对象是内存还是I/O 的引脚
    2.7 连接剩余的控制引脚
    2.8 连接外部设备,通过DMA 输入程序
    2.9 连接用于输入输出的外部设备
    2.10 输入测试程序并进行调试
    第3章 体验一次手工汇编
    初级问题
    什么是机器语言?
    中级问题
    通常把标识内存或I/O 中存储单元的数字称作什么?
    高级问题
    CPU 中的标志寄存器(Flags Register)有什么作用?
    初级问题: 由二进制数字构成的程序,CPU 可以直接对其解
    释、执行。
    中级问题: 标识内存或I/O 中存储单元的数字叫作“地址”。
    高级问题: 用于在运算指令执行后,存储运算结果的某些状态。
    初级问题: 不仅是汇编语言,用C 语言、Java、BASIC 等编程语
    言编写的程序,也都需要先转换成机器语言才能被执
    行。机器语言有时也叫作“原生代码”(Native Code)。
    中级问题: 内存中有多个数据存储单元。计算机用从0 开始的编
    号标识每个存储单元,这些编号就是地址(Address)。
    I/O 中的寄存器也可以用地址来标识。哪个寄存器对应
    哪个地址,取决于CPU 和I/O 之间的布线方式。
    高级问题: Flag 的本意是“旗子”,这里引申为“标志”。一旦执行
    了算术运算、逻辑运算、比较运算等指令后,标志寄
    存器并不会存放运算结果的值,而是会把运算后的某
    些状态存储起来,例如运算结果是否为0、是否产生了
    负数、是否有溢出(Overflow)等。
    本章重点
    本章的目标是通过编写程序使诸位亲身体验计算
    机的运行机制。为了达到这个目的,就需要使用一种
    叫作“汇编语言”的编程语言来编写程序,然后再把编好的程序通过手
    工作业转换成CPU 可以直接执行的机器语言。
    这样的转换工作叫作“手工汇编”(Hand Assemble)。也许会有
    人觉得听起来就好像挺麻烦的,事实上也的确如此,但是还是希望所
    有和计算机相关的技术人员都能亲身体验一下用汇编语言编程和手工
    汇编。
    这次体验应该能加深诸位对计算机的理解,使诸位犹如拨云见日,
    找到长期困惑着自己的问题的答案,不仅能因“我能看懂程序了”而
    获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。虽然
    本章的主题稍有些复杂,但是笔者会放慢讲解的步伐,还请诸位努力
    跟上。
    3.1 从程序员的角度看硬件
    3.2 机器语言和汇编语言
    3.3 Z80 CPU 的寄存器结构
    3.4 追踪程序的运行过程
    3.5 尝试手工汇编
    3.6 尝试估算程序的执行时间
    第4章 程序像河水一样流动着
    初级问题
    Flow Chart 的中文意思是什么?
    中级问题
    请说出自然界中河流的三种流动方式。
    高级问题
    事件驱动是什么?
    初级问题: 流程图。
    中级问题: 向着一个方向流淌;流着流着产生支流;卷成漩涡。
    高级问题: 用户的操作等产生事件后,由事件决定程序的流程。
    初级问题: 流程图(Flow Chart)是指用图的形式表示程序的流程。
    中级问题: 与河流的流动方式一样,程序的流程也分为三种。在
    程序中,把犹如水流向着一个方向流淌的流程称作
    “顺序执行”;把犹如水流流着流着产生了支流的流程
    称作“条件分支”;把犹如水流卷成漩涡的流程称作
    “循环”。
    高级问题: Windows 应用程序的运行就是由事件驱动的。例如,
    选择“打开文件”菜单项就能打开一个窗口,在里面可
    以指定要打开文件的名称和存储位置。之所以能够这
    样是因为一旦触发了“选中了菜单项”这个事件,程序
    的流程就相应地流转到了处理打开窗口的那部分。
    本章重点
    本章的主题是程序的流程。程序员一般都是先考
    虑程序的流程再开始编写程序的。只有编写过程序的
    人才能体会到“程序是流动着的”。一个人编写的程序如果不能按照预
    期运行,就说明他还没有很好地掌握“程序是流动着的”这一概念。
    为什么说“程序是流动着的”呢?因为作为计算机大脑的CPU 在
    同一时刻基本上只能够解释、执行一条指令。把指令和作为指令操作
    对象的数据排列起来就形成了程序。请想象把若干条指令一条挨一条
    地依次排列到一条长长的纸带上。然后把这条纸带展开抻平,从顶端
    开始依次解释并执行上面的每条指令,这样看起来程序就好像流动起
    来了。这就是程序的流程。但是程序的流程并不是只有这一种。那么
    下面笔者就先介绍一下程序流程的种类吧。
    4.1 程序的流程分为三种
    4.2 用流程图表示程序的流程
    4.3 表示循环程序块的“帽子”和“短裤”
    4.4 结构化程序设计
    4.5 画流程图来思考算法
    4.6 特殊的程序流程——中断处理
    4.7 特殊的程序流程——事件驱动
    第5章 与散发成为好朋友的七个要点
    初级问题
    Algorithm 翻译成中文是什么?
    中级问题
    辗转相除法是用于计算什么的算法?
    高级问题
    程序中的“哨兵”指的是什么?
    初级问题: Algorithm 翻译成中文是“算法”。
    中级问题: 是用于计算最大公约数的算法。
    高级问题:“ 哨兵”指的是一种含有特殊值的数据,可用于标识
    数据的结尾等。
    初级问题: 算法(Algorithm)一词的含义,不仅能在计算机术语辞
    典上查到,就是用普通的英汉辞典也能查到。
    中级问题: 最大公约数指的是两个整数的公共约数中最大的数。
    使用辗转相除法,就可以通过机械的步骤求出最大公
    约数。
    高级问题: 字符串的末尾用0 表示,链表的末尾用-1 表示,像这
    种特殊的数据就是哨兵。在本章中,我们将展示如何
    在“线性搜索”算法中灵活地应用哨兵。
    本章重点
    程序是用来在计算机上实现现实世界中的业务和
    娱乐活动的。为了达到这个目的,程序员们需要结合
    计算机的特性,用程序来表示现实世界中对问题的处理步骤,即处理
    流程。在绝大多数情况下,为了达到某个目的需要进行若干步处理。
    例如为了达到“计算出两个数相加的结果”这个目的,就需要依次完成
    以下三个步骤,即“输入数值”“执行加法运算”“展示结果”。像这样
    的处理步骤,就被称为算法。
    在算法中,有表示程序整体大流程的算法,也有表示程序局部小
    流程的算法。在第4 章已经讲解过了表示大流程的算法。那么本章的
    重点就是表示小流程的算法。
    5.1 算法是程序设计的“熟语”
    5.2 要点1:算法中解决问题的步骤是明确且有限的
    5.3 要点2:计算机不靠直觉而是机械地解决问题
    5.4 要点3:了解并应用典型算法
    5.5 要点4:利用计算机的处理速度
    5.6 要点5:使用编程技巧提升程序执行速度
    5.7 要点6:找出数字间的规律
    5.8 要点7:先在纸上考虑算法
    第6章 与数据结构成为好朋友
    初级问题
    程序中的变量是指什么?
    中级问题
    把若干个数据沿直线排列起来的数据结构叫作什么?
    高级问题
    栈和队列的区别是什么?
    初级问题: 变量是数据的容器。
    中级问题: 叫作“数组”。
    高级问题: 栈中数据的存取形式是LIFO ;队列中数据的存取形
    式是FIFO。
    初级问题: 变量中所存储的数据是可以改变的。变量的实质是按
    照变量所存储数据的大小被分配到的一块内存空间。
    中级问题: 使用了数组就可以高效地处理大量的数据。数组的实
    质是连续分配的一块特定大小的内存空间。
    高级问题: LIFO(Last In First Out,后进先出)表示优先读取后存
    入的数据; FIFO(First In First Out,先进先出)表示优
    先读取先存入的数据。本章将会详细地讲解栈和队列
    的结构。
    本章重点
    在第5 章中笔者曾经这样介绍过算法:程序是用来
    在计算机上实现现实世界中的业务和娱乐活动的,为
    了达到这个目的,程序员们需要结合计算机的特性,用程序来表示现
    实世界中对问题的处理步骤,即处理流程。本章的主题是数据结构,
    也就是如何结合计算机的特性,用程序来表示现实世界中的数据结构。
    程序员有必要把算法(处理问题的步骤)和数据结构(作为处理对
    象的数据的排列方式)两者放到一起考虑。选用的算法和数据结构两者
    要相互匹配这一点很重要。本章会依次讲解以下3 点:数据结构的基础、
    最好先记忆下来的典型数据结构以及如何用程序实现典型的数据结构。
    范例代码全部由适合于学习算法和数据结构的C 语言编写。为了让即
    便不懂C 语言的读者也能读懂,笔者会采取简单易懂的说明,所以请
    诸位不要担心。另外,为了易于理解,文中只展示了程序中的核心片段,
    省略了错误处理等环节,这一点还要请诸位谅解。
    6.1 要点1:了解内存和变量的关系
    6.2 要点2:了解作为数据结构基础的数组
    6.3 要点3:了解数组的应用——作为典型算法的数据结构
    6.4 要点4:了解并掌握典型数据结构的类型和概念
    6.5 要点5:了解栈和队列的实现方法
    6.6 要点6:了解结构体的组成
    6.7 要点7:了解链表和二叉树的实现方法
    第7章 成为会使用面向对象的程序员吧
    初级问题
    Object 翻译成中文是什么?
    中级问题
    OOP 是什么的缩略语?
    高级问题
    哪种编程语言在C 语言的基础上增加了对OOP 的支持?
    初级问题: Object 翻译成中文是“对象”。
    中级问题: OOP 是Object Oriented Programming(面向对象
    编程)的缩略语。
    高级问题: C++ 语言。
    初级问题: 对象(Object)是表示事物的抽象名词。
    中级问题: 面向对象也可以简称为OO(Object Oriented)。
    高级问题: ++ 是表示自增(每次只将变量的值增加1)的C 语言
    运算符。之所以被命名为C++,是因为C++ 在C 语言
    的基础上增加了面向对象的机制这一点。另外,将
    C++ 进一步改良的编程语言就是Java 和C# 语言。
    本章重点
    在本章笔者想让诸位掌握的是有关面向对象编程
    的概念。理解面向对象编程有着各种各样的方法,程
    序员们对它的观点也会因人而异。本章会将笔者至今为止遇到过的多
    名程序员的观点综合起来,对面向对象编程进行介绍。哪种观点才是
    正确的呢?这并不重要,重要的是把各个角度的观点整合起来,而后
    形成适合自己的理解方法。在读完本章后,请诸位一定要和朋友或是
    前辈就什么是面向对象编程展开讨论。
    7.1 面向对象编程
    7.2 对OOP 的多种理解方法
    7.3  观点1:面向对象编程通过把组件拼装到一起构建程序
    7.4  观点2:面向对象编程能够提升程序的开发效率和可维护性
    7.5  观点3:面向对象编程是适用于大型程序的开发方法
    7.6 观点4:面向对象编程就是在为现实世界建模
    7.7 观点5:面向对象编程可以借助UML 设计程序
    7.8  观点6:面向对象编程通过在对象间传递消息驱动程序
    7.9  观点7:在面向对象编程中使用继承、封装和多态
    7.10 类和对象的区别
    7.11 类有三种使用方法
    7.12 在Java 和.NET 中有关OOP 的知识不能少
    第8章 一用就会的数据库
    初级问题
    数据库术语中的“表”是什么意思?
    中级问题
    DBMS 是什么的简称?
    高级问题
    键和索引的区别是什么?
    初级问题: 表(Table)就是被整理成表格形式的数据。
    中级问题: DBMS 是Database Management System(数据库
    管理系统)的简称。
    高级问题: 键用于设定表和表之间的关系(Relationship),而
    索引是提升数据检索速度的机制。
    初级问题: 一张表由若干个列和行构成。列也被称为字段(Field),
    行也被称为记录(Record)。
    中级问题: 市面上的DBMS 有SQL Server、Oracle、DB2 等。无
    论是哪种DBMS 都可以用基本相同的SQL 语句操作。
    高级问题: 其上每个值都能够唯一标识一条记录的字段称为主键。
    为了在表和表之间建立关系而在表中添加的、其他表
    主键的字段称为外键。而索引是与键无关的机制。
    本章重点
    前面的章节讲解的是计算机的构造和程序设计。
    而本章一改之前的主题,来讲一讲数据库。像DBMS、
    关系型数据库、SQL( Structured Query Language,结构化查询语言)、
    事务(Transaction)之类的数据库术语,想必诸位都有所耳闻吧。可
    是应该也有很多人觉得自己好像是明白了这些术语的意思,实际上却
    并没有真正地理解。不仅是数据库,其他计算机技术也一样,不实际
    地应用,就不能充分掌握。
    本章首先介绍数据库的概况,然后通过文字的描述,请诸位体验
    一下编写简单的数据库应用程序的过程。这样就不但能理解数据库术
    语的含义,而且还能灵活应用这些知识了。还有一点请诸位明白,在
    编写数据库应用程序时,可以采用各种各样的方法,而本章所介绍的
    方法仅仅是其中的一种。
    8.1 数据库是数据的基地
    8.2 数据文件、DBMS 和数据库应用程序
    8.3 设计数据库
    8.4 通过拆表和整理数据实现规范化
    8.5 用主键和外键在表间建立关系
    8.6 索引能够提升数据的检索速度
    8.7 设计用户界面
    8.8 向DBMS 发送CRUD 操作的SQL 语句
    8.9 使用数据对象向DBMS 发送SQL 语句
    8.10 事务控制也可以交给DBMS 处理
    第9章 通过简单地实验理解TCP/IP网络
    初级问题
    LAN 是什么的缩略语?
    中级问题
    TCP/IP 是什么的缩略语?
    高级问题
    MAC 地址是什么?
    初级问题: LAN 是Local Area Network(局域网)的缩略语。
    中级问题: TCP/IP 是Transmission Control Protocol/Internet
    Protocol(传输控制协议和网际协议)的缩略语。
    高级问题: 所谓MAC 地址就是能够标识网卡的编号。
    初级问题: 通常把在一栋建筑物内或是一间办公室里的那种小规
    模网络称作LAN。与此相对,把互联网那样的大规模
    网络称作WAN(Wide Area Network,广域网)。
    中级问题: TCP/IP 协议族是互联网所使用的一套标准协议。TCP/IP
    这个名字意味着同时使用了TCP 协议和IP 协议。
    高级问题: 几乎所有的网卡都会在上市前被分配一个不可变更的
    MAC 地址。本章将介绍查看MAC 地址的方法。
    本章重点
    诸位都经常上网吧,在网上看看网页、发发邮件
    什么的,这一切似乎已经司空见惯了。通常,人们把
    通过连接多台计算机所组成的、可用于交换信息的系统称为“网络”
    (Network)。互联网作为网络的一种,可以使我们的计算机和远在千里
    之外的计算机连接在一起。而用于把全世界的计算机彼此相连的网线
    已然交织成了一张网。
    因为信息可以以电信号的形式在网线中传播,所以计算机彼此之间
    就能够进行信息交换。但为了交换信息,还必须在发送者和接收者之间
    事先确定发送方式。这种对信息发送方式的规定或约束就称为“协议”
    (Protocol)。小到公司内部的网络,大到互联网,TCP/IP(Transmission
    Control Protocol/Internet Protocol)协议族已然成为了现行的标准。
    哎呀,要是再这样说下去的话,就会越来越复杂了。也许有人会
    认为“只要会上网不就行了,没有必要去了解原理什么的”。但是,一
    旦了解了原理,也就能更加灵活地使用网络了。那么在本章,我们就
    通过一些可以随时进行的简单实验,来探索TCP/IP 网络的原理吧。
    9.1 实验环境
    9.2 实验1:查看网卡的MAC 地址
    9.3 实验2:查看计算机的IP 地址
    9.4 实验3:了解DHCP 服务器的作用
    9.5 实验4:路由器是数据传输过程中的指路人
    9.6 实验5:查看路由器的路由过程
    9.7 实验6:DNS 服务器可以把主机名解析成IP 地址
    9.8 实验7:查看IP 地址和MAC 地址的对应关系
    9.9 TCP 的作用及TCP/IP 网络的层级模型
    第10章 试着加密数据吧
    初级问题
    通常把还原加密过的文件这一操作叫作什么?
    中级问题
    在字母A 的字符编码上加上3,可以得到哪个字母?
    高级问题
    在数字签名中使用的信息摘要是什么?
    初级问题: 叫作解密。
    中级问题: 可以得到字母D。
    高级问题: 信息摘要是指从作为数字签名对象的文件整体中计
    算出的数值。
    初级问题: 本章将会介绍加密和解密的具体例子。
    中级问题: 因为字母表中的字母编码是按字母顺序排列的,所以
    在字母A 的编码上加3,即A → B → C → D,所以可
    以得到D。
    高级问题: 对比由文件整体计算出的信息摘要,可以证明文件的
    内容有没有被篡改。加密处理过的信息摘要就是数字
    签名。
    本章重点
    在前面的章节中,涉及的都是一些稍显死板的话题。
    那么在本章,就喝杯咖啡稍微休息一下吧,敬请诸位放
    松心情往下阅读。本章的主题是数据加密。对于公司内部的网络而言,
    由于只是将员工的电脑彼此相连,可能就不太需要对其间传输的数据进
    行加密。但是在互联网中,由于它联结的是全世界范围的企业和个人,
    所以会面临很多需要对数据进行加密处理的情况A。举例来说,在网店购
    物时用户输入的信用卡卡号,就是应该被加密传输的代表性数据。假设
    卡号未经加密就被发送出去,那么就会面临卡号被同样接入互联网的某
    人盗取,信用卡被其用来肆意购物的危险。因此像这种网店页面的
    URL,通常都是以https:// 开头,表示数据正在使用加密的方式进行传输。
    其实,大家在不知不觉中就已经都是加密技术的受益者了。
    然而,如何对数据进行加密呢?这的确是个有意思的话题。在本
    章中,我们将使用VBScript(Visual Basic Scripting Edition)语言实际
    编写几个加密程序来展开这个话题B。请诸位不要只是阅读文字内容,还
    应该实际确认程序的运作。加密技术真的有趣得令人兴奋的一项技术!
    10.1 先来明确一下什么是加密
    10.2 错开字符编码的加密方式
    10.3 密钥越长,解密越困难
    10.4 适用于互联网的公开密钥加密技术
    10.5 数字签名可以证明数据的发送者是谁
    第11章 XML究竟是什么?
    初级问题
    XML 是什么的缩写?
    中级问题
    HTML 和XML 的区别是什么?
    高级问题
    在处理XML 文档的程序组件中,哪个成为了W3C 的推荐标准?
    初级问题: XML 是Extensible Markup Language(可扩展标记
    语言)的缩写。
    中级问题: HTML 是用于编写网页的标记语言。XML 是用于定
    义任意标记语言的元语言。
    高级问题: DOM(Document Object Model,文档对象模型)。
    初级问题: 所谓标记语言,就是可以用标签为数据赋予意义的
    语言。
    中级问题: 通常把用于定义新语言的语言称作元语言。通过使用
    XML 可以定义出各种各样的新语言。
    高级问题: 本章将会介绍使用了DOM 的示例程序。
    本章重点
    在计算机行业,没听说过XML 这个词的人恐怕不
    存在吧。诸位也一定都知道XML 这个词,而且也应该
    能深切地体会到,XML 作为一种诞生不到10 年的新技术,却不断地渗
    透到了计算机的各个领域。例如,这个应用程序能够把文件保存成
    XML 格式;那个DBMS(数据库管理系统)的下一个版本将支持XML ;
    而那个Web 服务是基于XML 实现的……
    本章的主题将围绕“XML 究竟是什么”来展开。XML 其格式本身
    就是既简单又通用的。也正因为如此,XML 才会被扩充成各种各样的
    形式,应用于各种各样的场景。而且今后对XML 的利用方式也将不断
    地进化下去。为了不至于对进化后的XML 形态感到吃惊,趁着现在我
    们就先来整理一下XML 的基础知识吧。
    11.1 XML 是标记语言
    11.2 XML 是可扩展的语言
    11.3 XML 是元语言
    11.4 XML 可以为信息赋予意义
    11.5 XML 是通用的数据交换格式
    11.6 可以为XML 标签设定命名空间
    11.7 可以严格地定义XML 的文档结构
    11.8 用于解析XML 的组件
    11.9 XML 可用于各种各样的领域
    第12章 SE负责监管计算机系统的构建
    初级问题
    SE 是什么的缩略语?
    中级问题
    IT 是什么的缩略语?
    高级问题
    请列举一个软件开发过程的模型。
    初级问题: SE 是System Engineer(系统工程师)的缩略语。
    中级问题: IT 是Information Technology(信息技术)的缩
    略语。
    高级问题: 软件开发过程的模型有“瀑布模型”“原型模
    型”“螺旋模型”等。
    初级问题: 在计算机系统的开发过程中,SE 是参与所有开发阶段
    的工程师。
    中级问题: 一提到IT,通常就意味着充分地运用计算机解决问题,
    但Information Technology(信息技术)这个词中并没有
    包含表示计算机含义的词语。
    高级问题: 本章将会详细地介绍应用瀑布模型的开发过程。
    本章重点
    从第1 章到第11 章,讲解的都是各种各样的计算
    机技术。在作为本书最后一章的第12 章,请允许笔者
    再介绍一下将这些技术组合起来构建而成的计算机系统,以及负责构
    建计算机系统的SE(System Engineer,系统工程师)。本章不仅有技
    术方面的内容,更会涉及商业方面的内容。对于商业而言,没有什么
    可称得上是绝对正确的见解,因此本章的叙述中也多少会含有笔者的
    主观想法,这一点还望诸位谅解。
    “将来的目标是音乐家!”——正如以前新出道的偶像歌手都会有
    这句口头禅一样,过去新入行的工程师也有一句口头禅,那就是“将来
    的目标是SE !”在那时SE 给人的印象是计算机工程师的最高峰。可
    是最近,想成为SE 的人似乎并没有那么多了。不善于与客户交谈,感
    到项目管理之类的工作很麻烦,觉得穿着牛仔裤默默地面对计算机才
    更加舒坦等原因似乎都是不想成为SE 的理由。SE 果真是那么不好的
    工作吗?其实不然,SE 是有趣的、值得去做的工作。下面就介绍一下
    身为SE 所需要掌握的技能以及SE 的工作内容吧。
    12.1 SE 是自始至终参与系统开发过程的工程师
    SE 指的是在进行业务的信息化时,负责调查、分析业务
    内容,确定计算机系统的基础设计及其详细规格的技术人员。
    同时SE 也负责系统开发的项目管理和软件的开发管理、维护
    管理工作。由于主要的工作是基础设计,所以不同于编写程
    序的程序员,SE 需要具备从硬件结构、软件的构建方法乃至
    横跨整个业务的广泛知识以及项目管理的经验。
    12.2 SE 未必担任过程序员
    12.3 系统开发过程的规范
    12.4 各个阶段的工作内容及文档
    12.5 所谓设计,就是拆解
    原则1:计算机只能够做输入、运算、输出三种操作
    原则2:程序是指令和数据的集合
    原则3:计算机有自己的处理方法
    12.6 面向对象法简化了系统维护工作
    12.7 技术能力和沟通能力
    12.8 IT 不等于引进计算机
    12.9 计算机系统的成功与失败
    12.10 大幅提升设备利用率的多机备份

你可能感兴趣的:(编程思想)