1、计算机的三大根本性原则
1)计算机是执行程序(输入、运算、输出)的机器(三者一定成套出现。计算机无法自己产生数据,不运算就是电线,不输出就是个垃圾桶)
2)程序是指令和数据的集合(数据分两类—指令执行对象的输入数据、处理结果的输出数据)、(机器语言代码每个数值要么是指令要么是数据)
3)计算机的处理方式有时与人们的思维习惯不同(能力不同决定)
要彻底掌握计算机的工作原理,最好的方法就是自己搜集零件,自己组装一台微型计算机,微型计算机(MicroCom)是Micro Computer的缩写,字面含义是微小的计算机,但一般也可用于指代IC(Intergrated Circuit,集成电路)元件外露的、用于控制的计算机。
2、计算机的组成:CPU(处理器)、内存和I / O。
计算机工作原理:CPU在时钟信号的控制下解释、执行内存中存储的程序,按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输出到内存或I/O中。
3、体验一次手工汇编
通过编写程序使诸位亲身体验计算机的运行机制,为了达到这个目的,就需要使用一种叫做“汇编语言”的编程语言来编写程序,然后再把编好的程序通过手工作业转换成CPU可以直接执行的机器语言。这样的转换工作叫做“手工汇编”(HandAssemble)。体验过后,应该能加深诸位对计算机的理解,不仅能因“我能看懂程序了”,而获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。
4、程序河水一样流动着
本章的主题是程序的流程,程序员一般都是先考虑程序的流程再开始编写程序的。只有编写过程序的人才能体会到“程序是流动着的”,一个人编写的程序如果不能按照预期运行,就说明他还没有很好地掌握“程序是流动着的”这一概念。作为计算机大脑的CPU在同一时刻基本上只能够解释、执行一条指令,把指令和作为指令操作对象的数据排列起来就形成了程序。
5、与算法成为好朋友的七个要点
程序是用来在计算机上实现世界中的业务和娱乐活动的,为了达到这个目的,程序员们需要结合计算机的特性,用程序来表示现实世界中对问题的处理步骤,即处理流程。在绝大多数情况下,为了达到某个目标的需要进行若干步处理,而这些处理步骤就被称为算法。
算法:Algorithm
学习算法的7个要点:
要点1:算法中解决问题的步骤是明确且有限的;(与人的直觉思维形成对比)
要点2:计算机不靠直觉而是机械地解决问题;(计算机不能自发地思考)
要点3:了解并应用典型算法;(总结学习)
要点4:利用计算机的处理速度;(计算机计算速度比人快的特性)
要点5:使用编程技巧提升程序执行速度;(执行速度快才是最终目的,有些技巧比算法还有用,学习这些技巧-如哨兵)
要点6:找出数字间的规律;( 所有信息都可以表示成为数据,找出数据间的关系或者规律。)
要点7:先在纸上考虑算法,活用流程图。算法必须和数据结构一起考虑。
6、与数据结构成为好朋友的七个要点
学习数据结构的7个要点:
要点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)协议已然成为了现行的标准。
实验1:查看网卡的MAC地址
实验2:查看计算机的IP地址
实验3:了解DHCP服务器的作用
实验4:路由器是数据传输过程中的指路人
实验5:查看路由器的路由过程
实验6:DNS服务器可以把主机名解析成IP地址
实验7:查看IP地址和MAC地址的对应关系
MAC信息 | IP信息 | TCP信息 | 数据 | 错误检查信息 |
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加密,有一种恍然大悟的感觉。
参考1:https://blog.csdn.net/qifu_8/article/details/51684590
参考2:https://blog.csdn.net/fly19951216/article/details/52892588