二分法理解计算机世界
1.计算机可分为硬件和程序。
硬件是软件实现的基础,计算机的逻辑单元从电子管到晶体管,再到大规模和超大规模集成电路。集成度越来越高,功耗越来越低,性能越来越强。
处理器可分为冯诺依曼架构和ARM架构,前者由冯诺依曼提出,后者由哈佛提出,主要区别是冯诺依曼架构指令和数据储存在一起,ARM则分开储存,理论上效率更高。
2.程序可分为裸机程序和系统程序。
玩过单片机的都清楚,裸机程序就是直接操作寄存器,来实现对内外设的操作。这要对电子元件,硬件接口以及库程序等知识有所了解。
系统程序,内核层作为连接硬件层和应用层的桥梁,为程序员提供了进程线程,文件系统,等机制,以及各种标准接口,使得程序员能更好的利用硬件资源,实现更高级的功能。
3.软件又分为BS和CS。就是网页/服务器,和客户端/服务器模型。
BS代表技术HTML,CSS,JS等。
CS代表技术,
Windows平台的winform,WPF等。
Linux平台的Qt,GCC等。
还有Androud和IOS移动端系统的技术。
4.既然提到了BS,那就不得不提到互联网了。
蒂姆·伯纳斯·李(Tim Berners-Lee)、温顿·瑟夫(Vint Cerf)、罗伯特·卡恩(Robert Elliot Kahn)等人发明了互联网。
互联网实现了全世界不同设备的连通。
其中蒂姆·伯纳斯·李是万维网的创始人,W3C的主席。
下面这段话是万维网概念的解释(来自百度):
WWW (World Wide Web,万维网)是存储在Internet计算机中、数量巨大的文档的集合。这些文档称为页面,它是一种超文本(Hypertext)信息,可以用于描述超媒体。文本、图形、视频、音频等多媒体,称为超媒体(Hypermedia)。Web上的信息是由彼此关联的文档组成的,而使其连接在一起的是超链接(Hyperlink)。
可以看出万维网是BS架构的基础。
各种技术一次次的改变人们的生活,是人类智慧的结晶,每种技术都有其特殊的作用。程序员是一个用智慧造福人类的伟大职业。
当我们在学习编程知识的时候,要了解技术产生的背景,以及我们学它的目的。当我们以面和体的视角去学习知识才能学得有条理有方向,才不会在知识的海洋里迷失,才能真正的将知识为己所用。