大约在50年前的这个时候,1969年7月21日,载着巴兹·奥尔德林和尼尔·阿姆斯特朗的阿波罗11号登月舱正在月球轨道上与CSM和迈克尔·柯林斯会合。

大家都知道这件事,但你知道吗,阿波罗能成功登月的背后,少不了这位女程序员。

玛格丽特·汉密尔顿 Margaret Hamilton

玛格丽特·希菲尔德·汉密尔顿出生于 1936 年,是一名美国计算机科学家,系统工程师和企业家,曾担任 MIT 仪器实验室软件工程部的主管,帮助该实验室开发阿波罗计划中航天器搭载的飞行软件,其编写的程序都以大程度防止崩溃为目的,从而防止了阿波罗 11 号登月计划失败。

而汉密尔顿则在1965年成为了其软件编程部门的主管[8]。汉密尔顿负责编写全新的月球表面导航软件,以及后来该软件在其他项目中的各个版本(比如天空实验室计划)。

汉密尔顿被认为发明了“软件工程”一词。在这一领域,她还是并行计算、优先级调配、端对端测试等技术的先驱者。

“大多数成功的程序员都是男的?”这是对程序员的许多常见刻板印象之一。长久以来,女性程序员常常难以成为受到关注的焦点,而她们的贡献在世界上也变得鲜为人知。今天我们决定列出十大女性程序员名单(包括玛格丽特),以纪念她们在计算机科学和信息技术领域作出的巨大贡献。

格蕾丝·霍普 Grace Hopper

格蕾丝·霍普(1906年12月9日~1992年1月1日),计算机科学家,世界上最早的一批程序员之一。她是哈佛“马克一号”计算机的第一个专职程序员。她创造了现代第一个编译器 A-0 系统,以及第一个高级商用计算机程序语言“COBOL”,被誉为“COBOL 之母”。著名的计算机术语“Debug”(调试排错)便是她在受到从计算机中驱除蛾子的启发而开始使用的,于是她也被冠以“Debug 之母”的称号。她也是Y2K危机的创造者。她培育出了许多编程语言专家。

除此之外,还是美国第一个获得准将头衔的女性,美国海军唯一一艘以女性命名的战舰,“阿利·伯克”级驱逐舰第20号舰“霍珀号 USS Hopper (DDG-70)”就以她来命名。

埃达·洛夫莱斯 Ada Lovelace

埃达·洛夫莱斯(1815年12月10日~1852年11月27日)原姓拜伦,又称洛夫莱斯伯爵夫人。她是一位作家,也是非常有天赋的数学家。她是第一位主张计算机不只可以用来算数的人,也发表了第一段为查尔斯·巴贝奇的分析机——机械式通用计算机——所写的算法。因此,埃达被公认为史上第一位认识计算机完全潜能的人,也是史上第一位计算机程序员。

洛伊丝·海贝特 Lois Haibt

洛伊丝·海贝特生于 1934 年,她是美国的一名计算机科学家。她是 IBM 开发 FORTRAN 语言的十人团队之一。FORTRAN 是世界上第一个成功的高级编程语言。在开发 FORTRAN 期间,她分析了编译器其他部分生成程序的流程。她还创建了第一个算术表达式的语法分析器,这整个部分都是她设计并编写的。此外,当 IBM 在 1956 年编制并发布 FORTRAN 的第一本参考手册时,她也是当时十一人团队中的一员。

芭芭拉·利斯科夫 Barbara Liskov

芭芭拉·利斯科夫生于 1939 年。她是美国最早获得计算机科学博士学位的女性之一,2008 年图灵奖得主,2004 年冯诺依曼奖得主。她现任麻省理工学院电子电气与计算机科学系教授。

利斯科夫领导了许多重要的项目,包括小型低成本交互式的分时操作系统 Venus,第一个支持数据抽象的面向对象编程语言 CLU 的设计与实现(1970年代),第一个支持分布式程序实现的高级语言 Argus(1980年代),面向对象数据库系统 Thor,还有最近的拜占庭(Byzantine)分布式容错系统。其中,CLU 语言对现代主流语言如 C++/Java/Python/Ruby/C# 都有比较深远的影响。而她从这些实际项目中提炼出来的数据抽象思想,已经成为软件工程中最重要的精髓之一。

此外,与周以真(Jeannette Wing)合作发展出子类型定义,并且一起提出利斯科夫代换原则——这是面向对象程序设计中重要的几大原则之一。

法兰西斯·伊丽莎白·艾伦 Frances Elizabeth Allen

法兰·艾伦出生于 1932 年,是一位计算机科学家,作为一名编译器优化领域的先驱,她的成就主要包括编译器的基本原理、代码优化和并行编译等。她是 IBM 首位女性院士,并在 2006 年成为首位女性图灵奖得主。

她的大部分职业生涯都在为 IBM 研究院开发尖端的编程语言编译器。早在 1980 年代,她就创立了并行翻译(Parallel TRANslation,PTRAN)研究组,致力于研究并行计算机的编译问题。该小组的工作在编译器的并行化方面处于世界领先的位置。她在这些项目中的工作促成了许多当前广泛应用于商业编译器中的程序优化算法和技术。

贝蒂·让·詹宁斯 Jean Bartik

贝蒂·让·詹宁斯(1924年12月27日~2011年3月23日)是世界上第一台通用电子计算机埃尼阿克(ENIAC)的原始程序员之一。1997年入选国际科技名人堂。她和她的同事在 ENIAC 工作期间设计并编写了许多基础程序,在完成 ENIAC 的工作之后,她继续在 BINAC 和 UNIVAC 工作,并在各种技术企业中担任包括作家、经理、工程师和程序员的各种职务。

莎菲·戈德瓦塞尔 Shafi Goldwasser

莎菲·戈德瓦塞尔出生于 1958 年,她是出生于美国的以色列计算机科学家。2012年她因其密码学的杰出工作获得图灵奖。

她主要在计算复杂性理论、密码学和计算数论领域做出了贡献。她是概率加密的共同发明者,它建立并实现了数据加密安全的黄金标准。

她还共同发明了零知识证明——一种以概率和交互方式证明断言的有效性,而无需传达任何额外的知识——这是加密协议设计中的关键一环。

阿黛尔·戈德堡 Adele Goldberg

阿黛尔·戈德堡出生于 1945 年,是一名计算机科学家。在 20 世纪 70 年代,她作为施乐帕罗奥多研究中心(Xerox Palo Alto Research Center, PARC)的研究人员,提出了关于面向对象编程的各种概念,并在 Simula 67 语言的面向对象方法的基础上,开发出了 Smalltalk-80 编程语言,还在图形显示屏上引入了重叠多窗口的编程环境。

Smalltalk 这一创造性的新格式使用起来更简单,自定义程度更高,并且可以轻松地在应用程序之间传输对象。她还参与了设计模板的研究,这是软件设计中常用的设计模式的前身。

拉迪亚·珀尔曼 Radia Perlman

拉迪亚·珀尔曼生于 1951 年,人称“互联网之母”,她是一名美国计算机程序员,网络工程师。1988 年获得麻省理工学院计算机科学博士学位。2006 年获得美国高等计算机系统协会(USENIX)颁发的终身成就奖。

她以发明网络生成树协议(spanning-tree protocol,STP)而闻名,用于确保以太网中无环路的逻辑拓扑结构,这对于互联网设施的稳健运行至关重要。

此外,她还为网络设计和标准化的许多其他领域做出了巨大贡献,包括制定了稳健和可扩展的网络路由协议、发明了可删除的存储系统以及可抵制恶意连接的分布式计算方法。

图文投稿:欧剃

程序员的数学全三册密码_阿波罗50年前成功登月,少不了这位硬核女程序员相关推荐

  1. 50年前的登月程序和程序员有多硬核?

    来自:酷 壳 - CoolShell,作者:陈皓 链接:https://coolshell.cn/articles/19612.html 2019年7月20日,是有纪念意义的一天,这天不是因为广大网民 ...

  2. 50年前的登月程序和程序员有多硬核

    作者:陈浩 原文链接:https://coolshell.cn/articles/19612.html 2019年7月20日,是有纪念意义的一天,这天不是因为广大网民帮周杰伦在新浪微博上的超话刷到第一 ...

  3. 《程序员的数学》第二册 (概率统计)

    <程序员的数学>第二册 (概率统计) <程序员的数学>第二册 (概率统计) 概率的定义 概率的数学定义 三扇门(蒙提霍尔问题)一一飞艇视角 蒙提霍尔问题 正确答案与常见错误 以 ...

  4. 外包公司:这位高颜值女程序媛请留步!

    本篇在我的公众号:前端你别闹 首发,转载请联系我,声明转载来源 今天这篇文,很有意义,是我的一个迷妹程序媛-祈澈姑娘写的,她发给我后,我看了通篇,感觉写的很真实,而且又是记录女程序媛的日常,比较少见, ...

  5. 读书笔记-欢乐颂(全三册)

    作者:阿耐 第二章 樊胜美又看一遍短信,一撇嘴,"小关,教你两条做人道理.首先,如果对方心诚,邀请短信或者电话一定是在适当时间提前发出,留给女孩子矜持思考的空间,更绝不可深更半夜:其次,如果 ...

  6. 超硬核!程序员10种副业赚钱之道,实现月收入增加20k!

    大家好,我是良许. 经常有小伙伴问我说,良许,你的副业搞得那么溜,能不能给我们介绍一些可操作性的副业,让我们在让我们在工作之余能有另外一份收入. 为了响应大家的需求,本文我就整理了一些我所知道的适合程 ...

  7. 这位硬核程序员,想好怎么过春节了吗?

    现在的你应该和我一样 沉浸在工作中无法自拔! 悄悄告诉你一个消息, 还有不到一周就要过春节了! 今年春节格外不一样, 很多人选择了"就地过年" 过年的形式虽然有变化, 不变的是思乡 ...

  8. 硬核的程序员告诉你,为什么现在还不能出门

    最近天气开始转暖,上海也是一改之前的阴雨天气,开始放晴,看着外面明媚的阳光,好想出去散个步放放风啊. 可惜疫情依然严重,还不到出门的时候. 很多公司已经安排开始上班了,小编对此表示理解,毕竟大家都是要 ...

  9. 【硬核干货 | 程序的编译、链接、装载与运行】

    微信公众号:CurryCoder的程序人生 业精于勤,荒于嬉:行成于思,毁于随 1.问题引入 学过C语言的小伙伴们,基本上都知道从一个xxx.c的源文件到最后生成的可执行文件,需要经过预处理.编译.汇 ...

最新文章

  1. k8s traefik ingress tls
  2. 软件开发人员的“七重苦”(2)
  3. 半天搭建你的Jenkins持续集成与自动化部署系统
  4. 用于检测敏感词的 PHP 扩展
  5. mybatis级联查询list_MyBatis手把手跟我做系列(四) ---级联查询与懒加载
  6. 电脑网络怎么添加计算机,Win10系统如何添加网络共享打印机
  7. 孙子和外孙就是不一样吗?
  8. 二维概率密度求解边缘密度
  9. mysql replication 互为主从的安装及配置,以及数据同步
  10. 由swap引出的局部变量,形参和指针的小问题
  11. 【物联网】12.物联网服务器发送方式(HTTP,WebSocket ,MQTT )
  12. python pygame字体设置_2015/11/3用Python写游戏,pygame入门(3):字体模块、事件显示和错误处理...
  13. VISIO中如何增加连接点
  14. HDU 5336 BFS
  15. Windows 2008 R2 标准版 ie提示 当前安全设置不允许下载该文件 解决办法
  16. [WDS] Disconnected!问题解决
  17. 递归算法从入门到完全掌握
  18. mysql别名_MySQL设置别名
  19. 口语语汇单词篇(5)
  20. javascript作用域链与原型链有联系吗?

热门文章

  1. Linux下命令行安装weblogic10.3.6
  2. 【Tomcat】Tomcat性能分析
  3. 关于Exchange邮箱服务器角色故障排查及解决思路分享
  4. 曾优雅击退史上最凶狠的DDoS攻击,AliGuard的高性能从何而来?
  5. 限制CheckBoxList控件只能单选
  6. 执行存储过程出现:不是有效的标识符。
  7. jquery的closest方法和parents方法的区别
  8. jquery实现回车键触发事件
  9. __dopostback的用法
  10. Flex与.NET互操作(三):基于WebService的数据访问(下)