据说「软件工程师」这个名词就是她发明的

玛格丽特站在阿波罗计算机指导手册 (AGC) 的源代码程序列表旁边,这些材料摞起来比她的人还要高。图片来源:Margaret Hamilton

缔造传奇的人似乎有个共性:本来没想干一票大的,甚至她的打算都只是相夫教子,却“一不小心”把人类送上了月球——在 1960 年代做职场妈妈已经是件很不寻常的事,而玛格丽特竟然还是个给太空飞船写代码的程序员。可以说,没有Margaret Hamilton,就没有阿姆斯特朗的一小步和人类的一大步。

  • 那时的周末或者平常夜晚,玛格丽特会把女儿劳伦带来实验室。在俯瞰查尔斯河的办公室里,四岁的劳伦在地板上熟睡,而玛格丽特忙着编写代码——这些代码,最终都会添加到阿波罗控制舱的计算机里

  • 那时阿波罗登月计划启动了,玛格丽特在实验室带领一次史诗般的工程壮举,这项工程将改变人类和科技的未来

  • 那时离微软的出现还有 10 年,离马克·安德森 (Marc Andreessen,这家伙是世界上最早开发浏览器的人) 发现软件正在「吞噬世界」也还有将近 50 年。

玛格丽特躺在阿波罗控制舱的模拟器内,图片来源:Margaret Hamilton

玛格丽特和她的女儿劳伦,图片来源:Margaret Hamilton

舞会皇后 Margaret Hamilton

1954 年,她从汉考克高中毕业,随后入读厄勒姆学院,并于四年后取得学士学位,专业是数学,辅修哲学

在这段黄金岁月里,风华正茂的美丽姑娘玛格丽特在厄勒姆学院认识了詹姆士·考克斯·汉密尔顿。在很多人眼里,他只是个不起眼的男孩。而玛格丽特早就在校园里声名远播,已享有「舞会皇后」的美名。爱神丘比特射中了这对璧人,他们不久后便结婚了。

毕业后,玛格丽特·汉密尔顿一边在高中教数学和法语,一边等着丈夫拿到学士学位。之后,他们搬到波士顿,玛格丽特在布兰代斯大学做抽象数学方面的研究。

然而,两个人的小日子还是太紧张了,此时一个工作机会摆在了她面前,当时计算机科学的先锋MIT里一个实验室在招临时编码工。玛格丽特抱着试试看的态度,就这样踏进了程序员的殿堂。

一开始,她为天体学系写天气预报系统的代码,因为工作出色,转为正式工。后来又去了大名鼎鼎的林肯实验室,在这里,玛格丽特给北美防空司令部的半自动地面防空系统项目工作。期间为第一台 AN/FSQ-7 作战指挥中央系统编写探测敌方飞行的软件。

阿波罗飞行控制软件背后的大脑

玛格丽特的事业发展渐渐上了轨道,而此刻的软件世界——由于肯尼迪在 1961 年发起的阿波罗登月项目——也身处巨变的边缘。玛格丽特就职于 MIT 的仪器实验室,在那里,她和同事一起为世界上第一部便携式计算机写代码,同时也创造了计算机编程的核心理念。玛格丽特成了系统编程的专家,也在多场重要的技术争论中得到认可。「我最开始研究编程的时候,没人知道我们在干嘛。我们就像身处美国荒凉的大西部,没有这样的课程,也没有任何一个教授教这个」,玛格丽特说。

左下角的是玛格丽特,她和其他同事正在MIT为阿波罗8号提供后方支持。图片来源:Margaret Hamilton

1965年,玛格丽特开始负责“阿波罗”号计算机的飞行软件。对玛格丽特而言,这是一段激动人心的日子,整个美国都指望着她的工作成果。但是有时候压力也会让她夜里睡不着。

有一次,在参加过一个深夜派对之后,玛格丽特又冲回实验室去修改一段突然想起来出错了的代码。「我总是在幻想报纸的新闻标题,它们会追问错误是如何发生的,而最终原因会指向我」。

软件成了美国要赢登月竞赛的重要筹码。在 1968 年,已经有超过 400 人参与研发阿波罗号的软件。当然,最终人们发现软件为世界带来的远超于此。当玛格丽特和同事在为阿波罗飞船编程的时候,他们也在孵化这个未来估值 4000 亿美元的产业。

获总统自由勋章

一天,劳伦在摆弄 MIT 控制舱模拟器的显示器键盘一体机 DSKY。当她在键盘上乱按的时候,一条错误信息突然出现。劳伦不知怎地启动了一个叫做 P01 的预运行程序,原本正在飞行状态的模拟器一下子崩溃了。

虽然一般来说宇航员不会犯这样的错,但玛格丽特还是想加一段代码防止这种状况的发生。这一提议被 NASA 否决,「他们一遍又一遍地跟我说宇航员不会犯任何错误,他们被训练得近乎完美,」玛格丽特说。她转而加了一句程序说明,所有 NASA 工程师和宇航员都能看到:「不要在飞行过程中按下 P01」。她回忆说,「所有人都说,『那样的事情永远都不会发生』。」

但事情的的确确发生了。时间大约在 1968 年的圣诞节,进入阿波罗 8 号飞船的第五天飞行,宇航员吉姆·洛威尔 (Jim Lovell) 不小心在飞行中启动了 P01 程序。当电话从休斯顿打来的时候,玛格丽特正在仪器实验室的 2 层会议室。启动 P01 程序导致此的导航数据全部清空,阿波罗计算机无法计算出如何返回地球。

玛格丽特和 MIT 的程序员们需要想出一个补救的办法,必须是无错漏的完美办法。在花费 9 小时钻研过面前 8 英寸厚的程序列表后,他们有了一个计划。休斯顿方面需要上传一份新的导航数据,而后一切都会顺利进行。多亏了玛格丽特,还有调皮的劳伦,阿波罗号上的宇航员才得以重返地球。

她做了一个最美的人生选择

时至今日,当你看到玛格丽特的照片,她的美丽跨越了时代和国籍,你仍然会惊叹于她出众的外貌。

她甚至在 1969 年就已经引领了黑丝连衣裙的流行女神装扮,中年之后的她依然美丽知性。

到 1970 年代,玛格丽特已经超越了之前在 NASA 和阿波罗计划中的研究。她后来成立并领导了多家软件公司。如今她的公司汉米尔顿科技距离她开始职业生涯的地方只有几个街区远——MIT,那个至今仍引领代码革命、仍然仰望星辰的地方。

在当今「网红」遍布的喧嚣时代,颜值似乎是你通向康庄大道的捷径。然而,那个时代的她选择用才华征服这个世界,走了一条特立独行的人生之路。她不为自己的美貌所累,而选择了一条苦逼程序员的职业生涯,而且她还领导了堪称为人类历史上最伟大的软件工程项目

明明可以靠颜值,她却偏偏拼代码。玛格丽特·汉密尔顿,这个集智慧、美貌于一身的女子,告诉我们,最美的一条人生之路是用你的智慧为这个世界带来一点点改变。

THE END -

∑编辑:Gemini

本文素材整理自:新浪科技、网易数码、百度百科

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域
稿件一经采用,我们将奉上稿酬。

投稿邮箱:math_alg@163.com

再看那个用代码把人类送上月球的女人——Margaret Hamilton相关推荐

  1. 50年前的程序员女神,用代码把人类送上月球

    1969年7月20日,经过4天飞行的阿波罗11号终于来到了最关键的时刻:降落到月球表面. 就在这个时候,飞船计算机突然开始闪烁报警. 全球6亿人在观看电视直播,NASA飞行控制中心的气氛让人窒息. 人 ...

  2. 史上最美女程序员:手写代码把人类送上月球

    1969年,美国"阿波罗11号"宇宙飞船载着三明宇航员成功登上月球,宇航员阿姆斯特朗踏上月球表面的这一刻,人类实现了千百年来的飞天梦,也成就了那句经典名言--这只是我一个人的一小步 ...

  3. (转)把人类送上月球的女程序员:她的代码跟登月本身一般浪漫...

    转自:http://knowpia.k76.net/appdoc.php?p=10029356&r=&z=10003045 美国西部时间7月18日晚上,位于加州的世界最大太阳能电站-- ...

  4. 代码传奇 | 明明可以靠颜值 却用代码把人类送上了月球的女人——Margaret Hamilton

    据说「软件工程师」这个名词就是她发明的 玛格丽特站在阿波罗计算机指导手册 (AGC) 的源代码程序列表旁边,这些材料摞起来比她的人还要高.图片来源:Margaret Hamilton 缔造传奇的人似乎 ...

  5. 只能存储12KB数据,“码农女神”是怎样把人类送上月球的?

    导读: 电脑算速极慢.只能存储12KB数据,临时存储空间仅1KB--在这样的条件下,"码农女神"玛格丽特·汉密尔顿把阿波罗11号送上了月球. 从那时兴起的工业软件,在之后的几十年里 ...

  6. 【历史上的今天】7 月 20 日:人类登上月球;数据仓库之父诞生;Mac OS X Lion 发布

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 7 月 20 日,在 2005 年的今天,时任微软全球副总裁的李开复加盟谷歌担任谷歌全球副总裁及中国 ...

  7. 月球好忙 蓝色起源2024年要将首位女性送上月球表面

    12月6日消息,继迎接中国"美女"嫦娥五号落月采土后,现在,月球可能要在2024年迎接蓝色起源送来的首位女性. 据外媒报道,亚马逊创始人杰夫·贝佐斯表示,其太空公司蓝色起源要于20 ...

  8. 马斯克的火星梦:SpaceX将在5年半内将人类送上火星

    马斯克到底有多传奇?马斯克从1995年开始创业,最先做的是Zip2,把企业的信息录入网络并生成相应地图,类似于大众点评.Zip2卖了2200万美元,当时马斯克27岁. 之后马斯克注册了一家新公司X.c ...

  9. NASA计划2024年送首位女性上月球,数字孪生助力计划执行

    据中新网9月23日电 美国中文网报道,21日,美国宇航局(NASA)公布了一项280亿美元的航天计划,预计在2024年将美国首位女性宇航员和另一位男性宇航员送上月球.同时众议院通过了一项法案,批准为登 ...

最新文章

  1. 基于Flink的在线机器学习系统架构探讨
  2. CVPR 2021 | 视觉目标检测大模型GAIA:面向行业的视觉物体检测一站式解决方案
  3. 关于使用mail命令产生:-bash: mail: command not found的解决方法
  4. 【Paper】2015_异构无人机群鲁棒一致性协议设计_孙长银
  5. 静态方法(对象方法)、实例方法的调用
  6. Struts中Action三种接收参数的方式?
  7. 在命令提示符输出c语言代码_您可以在Windows命令提示符中更改输出缓冲区的大小吗?...
  8. 使用Arquillian测试Spring Data + Spring Boot应用程序(第2部分)
  9. flutter怎么添加ios网络权限_视频号直播间怎么添加购物车商品;超详细流程步骤。丨国仁网络资讯...
  10. 3 css 奖品出现弹出动画_10 个 GitHub 上超火的 CSS 奇技淫巧项目,找到写 CSS 的灵感!...
  11. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法
  12. .net core2 发送电子邮件封装
  13. CS229 课程笔记一
  14. 计算机房通气换气次数,各种换气次数汇总
  15. jQuery获取屏幕宽度和高度
  16. C++读取图片二进制数据并保存
  17. 这才是心理学:02可证伪性,如何打败头脑中的小精灵
  18. Avfoundation 相机指定裁剪区域
  19. Mac删除软件之后图标还在怎么办?
  20. 作业4 | Lloyd-Max标量量化器DCMP基本原理

热门文章

  1. post和get请求的区别
  2. nlp cs224n 学习笔记1 Introduction and Word Vectors
  3. c# 获取路径的盘符_c#获取驱动器盘符
  4. python中table表结构_python中的简易表格prettytable
  5. java 图片分段上传_java 分段读取文件 并通过HTTP上传
  6. JAVA入门级教学之(方法-1)
  7. 公交查询系统 c语言,城市公交查询系统的设计任务书
  8. python文件writelines_python 写文件write(string), writelines(list)
  9. html中属性的作用,html的标签中 unselectable=on 属性的作用
  10. python面试设计模式问题_聊聊 Python 面试最常被问到的几种设计模式(下)