前言:

作为一个不合格的程序猿,今天在探(lang)索(sao)的时候接触到了一些冷门知识。。。

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

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

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

2.电脑病毒的设计初衷并非是造成损害

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

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

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

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的名称源自“虫子”

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

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

  如果将计算机编程世界看作一个国家,那么其中涉及的语言种类必然冠绝群伦。目前已知的编程语言共有698种,远远超过任何以语言多样性著称的国家。

  更重要的是,程序员们应当了解编程技术的发展历程以及各大里程碑式创新成果背后的贡献者。另外,历史文化能够激发人们对于所从事行业的热爱之情,从而更为积极地投身于工作当中。

作为程序员该了解的8条冷知识相关推荐

  1. 接口是什么意思_程序员天天用却不懂得冷知识,这两句口诀,让你理解RESTful接口...

    在我们前后端交互过程中,我们经常提到一个英文单词RESTful,那么什么是RESTful接口呢? REST,全称Resource Representational State Transfer,翻译成 ...

  2. 老婆给程序员老公发了一条信息:下班买几个苹果回来,如果看到西瓜,就买一个~...

    老婆给程序员老公发了一条信息:下班买几个苹果回来,如果看到西瓜,就买一个~ 结果老公回去的时候,手上拿着一个苹果 分析下,这个程序员十个傻逼 正确应该是 买苹果(n); if(看见西瓜){      ...

  3. 软考 程序员教程-第三章 数据库基础知识

    软考 程序员教程-第三章 数据库基础知识 第三章 数据库基础知识 3.1 基本概念 数据库系统(DataBase System,DBS)由数据库(DataBase,DB).硬件.软件和人员4大部分组成 ...

  4. 写给程序员的最好的13条建议

    今天看到一篇很不错的文章,觉得很有教益,仔细看看,好好思考一下,规划一下自己的职业生涯,肯定让你受益无穷. 这里都是经验之谈,我会根据我自己的经历,慢慢给本文加注解. 原文如下: 1. 分享第一条经验 ...

  5. 程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!

    作者 | Alfred Wu 责编 | 伍杏玲 本文经授权转载自Alfred数据室(ID:Alfred_Lab) 最近,悄悄上线的<长安十二时辰>在朋友圈被吹爆了:年度最佳古装剧.服道化精 ...

  6. 程序员之禅的10条黄金法则

    程序员是一份特别辛苦的职业,也是一个承受各种压力的群体.每周6天工作,无休止的加班,甚至过劳死,程序员的身心健康面临很大的问题.禅是另一种生活方式,在物欲横流的今天,禅对于程序员有着特殊的意义和价值. ...

  7. python黑客库长安十二时辰 更新_程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!...

    该剧总体评价如何? 优酷给<长安十二时辰>打出了8.8的高分(首播时为9.0分).该剧在豆瓣.IMDB.时光网等平台分别收获了8.6.8.5.8.4分,这足以说明该剧总体评价还是不错的. ...

  8. 程序员求职面试心经40条—谨记原则

    一年一度的实习招聘已经开始了,正式地找工作也不远了. 为今年的面试做准备,这不是教你面试技巧,而是让你保持良好的心态.有很多人在面试中表现的不尽人意从而被刷,而这所谓的"不尽人意" ...

  9. 一名优秀的程序员,总结的20条金句良言,真正的生存指南

    新手程序员入坑20条生存指南,首先,欢迎来到程序员的世界.在这个世界上,不是有很多人想创造软件并解决问题.你是一名hacker,属于那些愿意做一些有挑战性的事情的人. "当你不创造东西时,你 ...

最新文章

  1. Java控件模糊半透明_Android如何实现模糊的半透明窗口 | 学步园
  2. weidingma参考文献
  3. 配置CAS应用客户端
  4. 【解决办法】No module named 'ahocorasick'
  5. 项目总结二:人脸识别项目(Face Recognition for the Happy House)
  6. sklearn:auc、roc_curve、roc_auc_score
  7. 为什么jsp写script代码报错_JSP 报错:ReferenceError: $ is not defined
  8. 计算机指令格式哪几部分组成,计算机的指令格式,通常是由()两部分组成。 - 百科题库网...
  9. 编译原理(三)之语义分析
  10. MySQL Show命令的使用
  11. Android 系统(196)---Android 属性动画
  12. Linux网络配置之二ip、ss、网络相关配置文件
  13. android textview api,Android API中文文档TextView
  14. 关于对H264码流的PS的封装的相关代码实现
  15. PPT中插入Flash
  16. inline详细讲解【C语言】
  17. Excel绘制斜线表头
  18. 不超过 20 行,搞定关键词屏蔽功能!
  19. 微量小程序联盟,如何实现微信小程序换量和微信小程序推广?
  20. win11延迟高 win11有延迟如何解决?

热门文章

  1. 选址问题matlab,MATLAB 选址问题.ppt
  2. 网易云API接口运行教程
  3. 有心者有所累,无心者无所谓
  4. Velocity.js介绍 --js 动画实现
  5. [Linux Audio Driver] 高通平台内部MIC_BIAS简介
  6. rados以及s3api测试和使用ceph
  7. 给自己的礼物-谁是谁的麦琪?
  8. flask-openapi3
  9. DateTime 格式字符串
  10. 儿知错父之过下一句_“子不孝父之过”下一句是什么?