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


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


玛格丽特站在阿波罗计算机指导手册 (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,那个至今仍引领代码革命、仍然仰望星辰的地方。


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


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


转自:程序人生

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每扇区2048字节的U盘乱码的数据恢复

每扇区2048字节的U盘乱码的数据恢复一个U盘,FAT32分区,显示的是乱码,远程看对方的U盘参数,发现一个比较怪的现象:每扇区字节数是2048字节(U盘量产时可能是以光盘形式形成的),对方传的…

为什么有些大公司的效率弱爆了?

阅读本文大概需要5分钟。上周写了篇文章:为什么有些大公司的技术弱爆了?不少朋友读完后表示有同感,还有一些朋友在读者群探讨大公司效率问题。有几个朋友谈到自己的公司效率低下,做一件事需要层层审批,并且遇到各种阻力…

2018年最有前景的十大行业

我们想和大家分享的是围绕十个行业、数十个细分领域,在2018年发展趋势展望:01 消费新零售——平台级近半年,新零售已被多次提及。但在年终盘点我们再次提到这个“热词”,是因为该领域未来还将出现超级平台级的公司。新零售未来更多…

昨日搬至办公室的书籍

由于家里地方小,总有一部分书籍需要跟着我辗转至各公司。其中一些公司只能让我放抽屉(地方小)甚至地板上,而有一些公司就能让我把书都摞桌子上。昨天下午我特地来了一次办公室,只为搬运书籍。灭霍霍,可真是…

如何在 ASP.Net Core 中对接 WCF

在 REST API 出现之前,SOAP (Simple Object Access Protocol) 一直都是基于 web 的标准协议,虽然现在 REST 大行其道,但在平时开发中总会遇到对接第三方服务采用的是基于SOAP协议的场景,在这篇文章中,我们将会讨论如何…

什么是区块链? 区块链的入门教程~

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,…

linux提升权限命令提示符,win10如何直接使用命令提示符提高管理员权限?

原标题:win10如何直接使用命令提示符提高管理员权限?在使用普通的命令提示符时,如果遇到需要管理员权限的操作,往往需要重新打开一个具有管理员权限的命令提示符页面进行操作。而在Linux操作系统中,可以通过输入su来获取系统最高…

探索 .NET Core 依赖注入的 IServiceProvider

在上一篇文章中,我们学习了Microsoft.Extensions.DependencyInjection中的IServiceCollection,包括服务注册转换为ServiceDescriptors,然后添加到集合中。探索 .NET Core 依赖注入的 IServiceCollection[1]在本文中,我们会学习 IS…

如何快速高效地学习互联网新技术

我们生活在一个振奋人心的时代,区块链、人工智能、大数据,现在各种新技术层出不穷,那么如何快速高效地学习互联网新技术呢?我认为首先思想要主动求变,敢于跳出自己的舒适区,对任何技术都抱有开放的心态。贪…

.NET Core用数据库做配置中心加载Configuration

本文介绍了一个在.NET中用数据库做配置中心服务器的方式,介绍了读取配置的开源自定义ConfigurationProvider,并且讲解了主要实现原理。1、 为什么用数据库做配置中心在开发youzack.com这个学英语网站的时候,需要保存第三方接口AppKey、JWT等配…

Abp Vnext Pro 的 Vue 实现版本

Abp Vnext Pro 的 Vue 实现版本开箱即用的中后台前端/设计解决方案知识点.Net Core5.0Abp Vnext 4.x ,Ant Design, Vue2.xMysql,Redis,Hangfire,ES(日志可选),Nocas(可选,未集成,计划中),RabbitMq(未集成,计划中)微服务架构设计, DDD 实践容器化 CI CD系统功能用户管理角色管理…

2018年,该转行AI工程师吗?

如此火爆的AI,会不会像Android和iOS一样,五年后归于平淡?转型AI真的有必要吗?2017年,AI就像一个点石成金的神器,所有的行业,任何的创业,抑或是职位背景,只要沾着这个词&a…

使用 Tye 辅助开发 dotnet 应用程序

newbe.pro 已经给我们写了系列文章介绍Tye 辅助开发k8s 应用:使用 Tye 辅助开发 k8s 应用竟如此简单(一)使用 Tye 辅助开发 k8s 应用竟如此简单(二)使用 Tye 辅助开发 k8s 应用竟如此简单(三)使…

你感兴趣的大学专业真相 | 16万人参与调查,看完80%都哭了

俗话说,隔行如隔山学科专业也是如此你以为我的专业十分高大上事实却是我也不知道我在学啥下面就由各个专业的同学为你揭秘他们专业的真相~人文社会类法学▼泛泛SaMa:在我们法学界,唯有秃头这件事,不分男女不墮紅塵:第一…

通过 .NET NativeAOT 实现用户体验升级

前言TypedocConverter 是我先前因帮助维护 monaco-editor-uwp 但苦于 monaco editor 的 API 实在太多,手写 C# 的类型绑定十分不划算而发起的一个项目。这个工具可以将 typedoc 根据 TypeScript 生成的 JSON 文件直接生成对应的 C# 类型绑定代码,并提供完…

序列每天从0开始_序列比对(十一)——计算符号序列的全概率

前文介绍了在知道符号序列后用viterbi算法求解最可能路径。本文介绍了如何使用前向算法和后向算法计算符号序列的全概率。如果一个符号序列中每个符号所对应的状态是已知的,那么这个符号序列出现的概率是容易计算的:但是,如果一个符号序列中每…

SQL 2005 使用row_number来分页

今天研究了一下row_number,用它来返回特定行的记录感觉是非常方便的,所以就做了个分页的存储过程,但不知道性能较之top和游标之类的那个好 代码 createprocedure[dbo].[proc_TestPage]--表名 tablenamenvarchar(255), --排序字段 sortcolumnnvarchar(255…

债务大爆发,中国30%家庭不堪一击!

债务大爆发,30%中国家庭“不堪一击”!从2007年到2016年,中国家庭的债务率翻了一倍多。已经有超过1/3的家庭属于高负债家庭。前不久,深圳中兴网信科技有限公司的一研发组主管欧某,以最决绝的方式,从中兴通迅…

腾讯35k招.NET Core开发,深扒这些技术要求 真的很难吗?

3月草长莺飞,3月招聘满天飞,各种高薪招聘更是心里种草,前几天分享了腾讯牛年35k的.NET Core招聘需求,分享了一波资料深受好评,本着再接再厉的精神,本文继续为大家上干货,补齐腾讯的各种要求。新…

【直观理解】为什么梯度的负方向是局部下降最快的方向?

推荐阅读时间:8min~15min主要内容:为什么梯度的负方向是局部下降最快的方向?刚接触梯度下降这个概念的时候,是在学习机器学习算法的时候,很多训练算法用的就是梯度下降,然后资料和老师们也说朝着梯度的反方…