每个程序员应该知道的冷门小知识
常娜娜
【嵌牛导读】:想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方。下面就为大家普及下。计算机发展历程中的8个冷门小知识!
【嵌牛鼻子】:电脑驱动、电脑病毒、电脑游戏 、bug
【嵌牛提问】:电脑病毒的设计初衷是什么?史上第一位程序员是男性吗?bug是怎么来的?
【嵌牛正文】:
1.第一台电脑为蒸汽驱动
作为公认的编程之父的Charles Babbage发明了世界上首批计算机之一,他将这台新设备称为分析引擎,其体积超过一栋房屋,由六台蒸汽机驱动并使用打孔卡进行编程
分析引擎有四大主要组成部分:
(1)转盘——相当于现代计算机中的CPU;
(2)存储——相当于现代计算机中的内存与存储介质;
(3)读取器——相当于输入机制
(4)打印机——用于实现信息输出
2.电脑病毒的设计初衷并非是造成损害
史上第一款电脑病毒竟然是由防御技术专家Fred Cohen亲手设计出来的,目的仅仅是为了证明程序对电脑感染的可行性,从未希望借此对电脑造成任何危害,但这款程序却能够对电脑进行感染,并且能通过软盘等移动介质在不同计算机之间进行传播,因而命名为病毒。后来,他又创造出一种主动式电脑病毒,主要目的是帮助电脑用户找到未受感染可执行文件。
3.史上第一位程序员为女性
这位女程序员的名字是Ada Lovelace,在1843年,翻译了意大利工程LuigiMenabreaw
撰写的分析引擎文章。她把自己的理解都批注到每篇文章下,而这举动加快了计算机编程技术的发展。在这之后她又设计出了第一种能够利用分析引擎计算伯努利数的算法,这也是第一个用电脑编写的算法。
4.第一款数字化电脑游戏从未带来任何利润回报
第一个电脑游戏出现于1962年,由麻省理工学院的计算机程序员Steve Russell与其团队一同编写。这款名为《太空大战》的游戏耗费了他们近200个小时。虽然Russell和他的团队从未在这个游戏所得任何收益,但如果没有这一突破,我们可能永远不会拥有如今蓬勃发展的视频游戏产业。
5.图像处理算法中使用最广的一幅图片来自《花花公子》杂志
40年来,这幅被应用为图像处理方案中的泛用性标准测试素材,还被程序员们亲切称为Lena的图片,但大多数人都不知道它是来自《花花公子》杂志1972年11月刊的插页。
6.GIT中保证文件完整性的SHA-1值
Linux kernel开创者和Git的开发者——Linus说Git使用了SHA-1并非是为了安全性,而是为了数据的完整性,它可以保证,在很多年后你重新checkout某个commit时一定是它多年前的当时的状态完全一摸一样,完全值得信任。
7.程序中bug的名称源自“虫子”
这一术语最初由爱迪生在1878年提出的,但当时并没有流行起来。在这的几年之后,美国上将Grace Hopper在她的日志本中写下了她在Mark II电脑上发现的一项bug不过实际上,她说的真的是“虫子”问题,因为一只蛾子被困在电脑的继电器中导致电脑的操作无法正常运行
如图片所见,她写道“这是我在电脑上发现的第一个bug”。
8.丰富多彩的计算机编程世界里,如果将计算机编程世界看作一个国家,那么其中涉及的语言种类必然冠绝群伦。目前已知的编程语言共有698种,远远超过任何以语言多样性著称的国家。