值得程序员一看的8个冷门小知识

译文
云计算
想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方。接下就为大家普及下计算机发展历程中的8个冷门小知识!

【51CTO.com快译】想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方。接下就为大家普及下计算机发展历程中的8个冷门小知识!


1.第一台电脑为蒸汽驱动

[[179383]]

作为公认的编程之父,Charles Babbage发明了世界上首批计算机之一。他将这台新设备称为分析引擎。其体积超过一栋房屋,由六台蒸汽机驱动并使用打孔卡进行编程。分析引擎有四大主要组成部分:1.转盘——相当于现代计算机中的CPU; 2.存储——相当于现代计算机中的内存与存储介质; 3.读取器——相当于输入机制; 4.打印机——用于实现信息输出。
2.电脑病毒的设计初衷并非是造成损害

[[179384]]

史上第一款电脑病毒,竟然是由防御技术专家Fred Cohen亲手设计出来的。他创造电脑病毒的目的仅仅是为了证明程序对电脑感染的可行性,从未希望借此对电脑造成任何危害。但这款程序却能够对电脑进行感染,并且能通过软盘等移动介质在不同计算机之间进行传播,因而命名为病毒。后来,他又创造出一种主动式电脑病毒,主要目的是帮助电脑用户找到未受感染可执行文件。

3.第一名程序员是位女性

也许最令人难以置信的是,历史上第一名程序员是位女性。她的名字是Ada Lovelace。在1843年,这位英国数学家Ada Lovelace,翻译了意大利工程师Luigi Menabreaw撰写的分析引擎文章。在翻译过程中,她把自己的理解都批注到每篇文章下,而这举动加快了计算机编程技术的发展。在这之后,她又设计出了第一种能够利用分析引擎计算伯努利数的算法,这也是第一个用电脑编写的算法。
4.第一款数字化电脑游戏从未带来任何利润回报

[[179385]]

现在的视频游戏已经成为了最受瞩目的程序开发成果,然而历史上第一款数字计算机游戏则遭遇巨大失败。第一个电脑游戏出现于1962年,由麻省理工学院的计算机程序员Steve Russell与其团队一同编写,这款名为《太空大战》的游戏耗费了他们近200个小时。该游戏允许两名玩家分别控制两艘飞船,目标是击中并摧毁对方飞船,并且玩家还需要躲避屏幕中代表星球的小白点。如果玩家撞上这些星球,则游戏失败。虽然Russell和他的团队从未在这个游戏说的任何收益,但必须承认如果没有这一突破我们可能永远不会拥有如今蓬勃发展的视频游戏产业。

5.图像处理算法中使用最广的一幅图片来自《花花公子》杂志

[[179386]]

40年来,这幅被应用为图像处理方案中的泛用性标准测试素材,还被程序员们亲切称为Lena的图片。但大多数人都不知道,它是来自《花花公子》杂志1972年11月刊的插页。
6. GIT中保证文件完整性的SHA-1值

Linux kernel开创者和Git的开发者——Linus说,Git使用了SHA-1并非是为了安全性,而是为了数据的完整性;它可以保证,在很多年后,你重新checkout某个commit时,一定是它多年前的当时的状态,完全一摸一样,完全值得信任。
7.程序中bug的名称源自“虫子”

在程序中bug一词用于技术错误。这一术语最初由爱迪生在1878年提出的,但当时并没有流行起来。在这的几年之后,美国上将Grace Hopper在她的日志本中,写下了她在Mark II电脑上发现的一项bug。不过实际上,她说的真的是“虫子”问题,因为一只蛾子被困在电脑的继电器中,导致电脑的操作无法正常运行。如图片所见,她写道“这是我在电脑上发现的第一个bug”。

8. 丰富多彩的计算机编程世界

如果将计算机编程世界看作一个国家,那么其中涉及的语言种类必然冠绝群伦。目前已知的编程语言共有698种,远远超过任何以语言多样性著称的国家。
更重要的是,程序员们应当了解编程技术的发展历程以及各大里程碑式创新成果背后的贡献者。另外,历史文化能够激发人们对于所从事行业的热爱之情,从而更为积极地投身于工作当中。
原文链接:http://codecondo.com/8-facts-every-programmer-needs-to-know/
原文标题:8 Facts Every Programmer Needs to Know
原文作者:Darrel Henry 

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:关崇 来源: 51CTO
相关推荐

2016-12-27 10:29:38

程序IT周刊

2015-12-02 09:59:14

2021-05-22 07:27:14

程序员专业术语编程

2021-01-21 00:06:26

vue.js语言开发

2019-10-17 15:10:33

PHP程序员Linux

2022-05-31 09:09:10

vuex技巧前端

2015-07-30 14:20:27

面试攻略

2012-07-24 09:29:33

黑帽大会

2016-09-27 17:29:23

腾讯云小程序微信

2022-03-21 21:05:40

TypeScript语言API

2020-10-18 17:05:43

缓存设计架构

2020-02-22 21:51:43

程序员Microsoft SServerSQL

2013-05-10 16:57:26

Android开发定制皮肤

2014-11-03 14:43:38

程序员

2022-04-27 20:52:48

JSChrome元素

2015-03-17 10:41:36

2019-05-24 10:29:29

华为咨询

2020-10-05 21:13:37

程序员技能开发者

2020-03-27 09:24:39

程序员技能开发者

2020-12-02 19:09:24

开源源代码文件
点赞
收藏

51CTO技术栈公众号