作者矢泽久雄,YAZAWA股份有限公司董事长兼总经理。本书是“计算机科学概论”图解趣味版,蹲着马桶就能看懂的硬件与软件基础知识。本书适合:菜鸟程序员入门进阶、中级程序员查漏补缺、高手程序员向家人普及计算机知识。读完本书,可以了解有关计算机的“基础中的基础知识”、“知识范围”以及“目标”。
一、基础中的基础知识
1、计算机的三大原则
现在的计算机看起来好像是种高度复杂的机器,可是基本的构造却简单得令人惊讶。大约50年前的第一代计算机到现在,计算机并没有发生什么改变。在认识计算机时,需要把握的最基础的要点只有三个,我们称之为“计算机的三大原则”。无论多么高深、多么难懂的最新技术,都可以对照着这三大原则来解释。
1)计算机时执行输入、运算、输出的机器
2)程序是指令和数据的集合
3)计算机的处理方式有时与人们的思维习惯不同
硬件和软件
2、试着制造一台计算机吧
要彻底掌握计算机的工作原理,最好的方法就是自己搜集零件,自己组装一台微型计算机,微型计算机(MicroCom)是Micro Computer的缩写,字面含义是微小的计算机,但一般也可用于指代IC(Intergrated Circuit,集成电路)元件外露的、用于控制的计算机。
3、体验一次手工汇编
通过编写程序使诸位亲身体验计算机的运行机制,为了达到这个目的,就需要使用一种叫做“汇编语言”的编程语言来编写程序,然后再把编好的程序通过手工作业转换成CPU可以直接执行的机器语言。这样的转换工作叫做“手工汇编”(HandAssemble)。体验过后,应该能加深诸位对计算机的理解,不仅能因“我能看懂程序了”,而获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。
二、知识范围
编程
4、程序河水一样流动着
本章的主题是程序的流程,程序员一般都是先考虑程序的流程再开始编写程序的。只有编写过程序的人才能体会到“程序是流动着的”,一个人编写的程序如果不能按照预期运行,就说明他还没有很好地掌握“程序是流动着的”这一概念。作为计算机大脑的CPU在同一时刻基本上只能够解释、执行一条指令,把指令和作为指令操作对象的数据排列起来就形成了程序。
5、与算法成为好朋友的七个要点
程序是用来在计算机上实现世界中的业务和娱乐活动的,为了达到这个目的,程序员们需要结合计算机的特性,用程序来表示现实世界中对问题的处理步骤,即处理流程。在绝大多数情况下,为了达到某个目标的需要进行若干步处理,而这些处理步骤就被称为算法。要点1:算法中解决问题的步骤是明确且有限的;要点2:计算机不靠直觉而是机械地解决问题;问题3:了解并应用典型算法;要点4:利用计算机的处理速度;要点5:使用编程技巧提升程序执行速度;要点6:找出数字间的规律;要点7:先在纸上考虑算法。
6、与数据结构成为好朋友的七个要点
程序员有必要把算法(处理问题的步骤)和数据结构(处理对象的数据的排列方式)两者放在一起考虑,选用的算法和数据结构两者要相互匹配这一点很重要。要点1:了解内存和变量的关系;要点2:了解作为数据结构基础的数组;要点3:了解数组的应用--作为典型算法的数据结构;要点4:了解并掌握典型数据结构的类型和概念;要点5:了解栈和队列的实现方法;要点6:了解结构体的组成;要点7:了解链表和二叉树的实现方法。
7、成为面向对象编程的程序员吧
面向对象编程(OOP,Object Oriented Programming)是一种编写程序的方法,旨在提升开发大型程序的效率,使程序易于维护。观点1:OOP通过把组件拼装到一起构建程序;观点2:OOP能够提升程序开发效率和可维护性;观点3:OOP是适用于大型程序的开发方法;观点4:OOP就是在为现实世界建模;观点5:OOP可以借助UML设计程序;观点6:OOP通过在对象间传递消息驱动程序;观点7:在OOP中使用继承、封装和多态。
数据库
8、一用就会的数据库
所谓数据库(Database)就是数据(Data)的基地(Base)。计算机是一种工具,它可以执行输入、计算、输出三种操作,并可以通过这一系列的操作处理某种数据。因此可以说计算机就是处理数据的装置。因为,可以说计算机基本上就是被当作数据库来利用的,只要不是游戏程序,几乎所有的应用程序中,人们都在巧妙地运用着数据库。为了了解计算机,数据库是门必修课。
网络
9、通过七个简单的实验理解TCP/IP网络
通常,人们把通过连接多台计算机所组成的、可用于交换信息的系统称为“网络”(Network)。互联网作为网络的一种,可以使我们计算机和远在千里之外的计算机连接在一起,而用于把全世界的计算机彼此相连的网线已然交织成了一张网。因为信息可以以电信号的形成在网线中传播,所以计算机彼此之间就能进行信息交换。但为了交换信息,还必须在发送者和接收者之间事先确定发送方式,这种对信息发送方式的规定或约束就称为“协议”(Protocol)。小到公司内部网络,大到互联网,TCP/IP(Transmission Control Protocol/Internet Protocol)协议已然成为了现行的标准。
10、试着加密数据吧
对于公司内部网络而言,由于只是将员工的电脑彼此相连,可能就不太需要对其间传输的数据进行加密。但在互联网中,由于它联结的是全世界范围的企业和个人,所以会面临很多需要对数据进行加密处理的情况。举例来说,在网购时用户输入的信用卡卡号,就是应该被加密传输的代表性数据。假设卡号未经加密就被发送出去,那么就会面临卡号被同样接入互联网的某人盗取,信用卡被其用来肆意购物的危险。因为像这种网店页面的URL,通常都是https://开头,表示数据正在使用加密的方式进行传输。
11、XML究竟是什么
XML是eXtensible Markup Language的缩写,译为可扩展标记语言。只有在像互联网那样的环境中,运行在不同机器中的不同应用程序相互连接,XML才会大有作为。在分布式计算中,如果由不同种类的机器互联组成的系统,那么使用基于XML的SOAP才有意义。反之如果环境中的机器和应用程序全部来自同一厂商,那么使用厂商自定义的格式而并非XML的格式,反而可以更加快捷的处理信息。XML是通用的,但不是万能的。
三、目标
12、SE负责监管计算机系统的构建
SE(System Engineer,系统工程师),负责构建计算机系统。SE的地位比程序员的高吗?不一定,想当一辈子程序员也很好,但要立志成为计算机行业的专家,就不能仅仅关注技术。虽然有懂技术又懂计算机确实让人感到兴奋,但如果只是这样的话,早晚有一天工作就会变得没那么有意义了。有些人在30左右就会选择离开计算机行业,不是因为他们追赶不上技术前进的步伐,而是因为他们感到工作变得无聊了。专家也好普通人也罢,只有为社会作出贡献才能有成就感,才会觉得工作有意义。
总结:能够很好的系统的重新认识计算机,以前知道会用,但是不了解它的基本原理;读完此书后,能全面的了解计算机,包括它的实现逻辑,及运用场景等。印象最深刻的是关于网络和和数据加密这块,让我明白了什么是MAC地址、IP地址、子网掩码,以及RSA加密和MD5加密,有一种恍然大悟的感觉。
网友评论