编玩边学

>

资讯中心

>

推荐资讯

> 正文

她一边带娃一边把阿波罗送上月球……

2016-03-05 来源:编玩边学团队


 虽然现在程序员看似是个男女数量极其不平均的岗位,但就在不远的过去,在计算机拓荒的年代,却是有不少女性程序员为此贡献了智慧与青春。

玛格丽特·希菲尔德·汉密尔顿(Margaret Heafield Hamilton)就是其中一个。
玛格丽特本姓希菲尔德,1936年生于美国一个普通家庭,普通地读完了高中和大学,主修的是数学。在读书时她就嫁了人,成了汉密尔顿太太。

毕业后她找了一份教师的工作,教数学和法语。为了家庭重担,玛格丽特成为了当时计算机科学的先锋MIT里一个实验室的临时编码工,就这样踏进了程序员的殿堂。

一开始,她为天体学系写天气预报系统的代码。

因为工作出色,转为正式工,后来又去了大名鼎鼎的林肯实验室,为美国军方SAGE项目写代码——在冷战之弦拉得最紧的1960年代,用电脑程序帮助侦查危险的“不友好的飞行物”。
玛格丽特的女儿劳伦(Lauren),也在这时候出生了。繁忙的妈妈玛格丽特不得不将小劳伦带去工作,让她睡在查尔斯河畔实验室的地板上,醒来的时候兀自玩耍。

当时的人们对于这样一个“工作狂妈妈”十分不理解。“你怎么这么不顾你的小孩?”

玛格丽特并不在意。她热爱着她这份虽然不时枯燥,但却充满挑战和“神秘感”的工作。

她也喜欢着实验室,喜欢每个人开的极客冷笑话,工作结束之后和每个人去喝酒。“就跟实验室里其他男孩子一模一样。”
由于出色的表现,玛格丽特获得了另外一个机会:加入MIT的Charles Stark Draper实验室,带领一个小团队,为NASA的阿波罗计划写软件

在阿波罗的最初的预算报告中,根本就没有“软件”二字。不过后来,NASA意识到了软件的重要,逐渐把软件相关的团队扩大到了400多人。

但玛格丽特依然是一个无名小卒,她负责的大概是整个计划当中最不受重视的部分:“万一”任务失败之后的后备方案。所有人都觉得这不可能发生,连这个部分的名字,都被称作“Forget it”。
那时候计算机的存储空间和计算能力都十分有限,决策者不希望有任何“累赘”的部分。
玛格丽特无奈,只好在操作系统里做了一个备注,“不要在飞行的时候选择P01模式”。

但是,墨菲定律发生了。

阿波罗8号环绕月球的任务中,宇航员罗威尔(Jim Lovell)一时疏忽,按下了P01模式,所有的巡航数据都被清空了,飞船分分钟迷路。

休斯顿紧急打来电话,玛格丽特领着一群程序员,连夜奋战了9个小时,过了每一行代码,修复了这个问题,数据被重新上传上去。阿波罗8号得以成功返航。

而真正的考验还在后面——就在阿波罗11号历史性着陆月面的3分钟之前,忽然警报大作,轨交雷达发来了大量的数据涌入电脑存储区,快把电脑弄崩溃了。

若是系统崩溃,飞船将毫无悬念地坠毁在月面,“人类的一小步”可能是一个大坑和两条生命。
但是,玛格丽特设计的系统顶住了这个压力

在大量的数据涌入电脑的时候,最宝贵的计算资源,被用于最关键的部分,比如安全登陆本身,而处理不重要的雷达交互数据的任务被砍掉,让程序可以随时中止低优先级任务,专注于高优先级任务。

这次的事件,也让她提出了后来的“异步程序”的概念。

即程序可以不用等待当前任务响应,先处理其它任务,待到任务处理完成之后再接受任务完成的通知。

这也提高计算效率,防止程序被卡死。用开发术语来说,玛格丽特的程序“鲁棒性”(Robust)非常高,在出错的时候更稳定、更可靠。

玛格丽特拯救了人类的登月计划。

她不仅努力、聪明,而且心思缜密,她的团队在每次程序确定之后,都会一遍遍严格地测试。

这种我们现在看来完全是常识的东西,在计算机的“蛮荒年代”,需要一颗清醒而负责的头脑来制定最初的规范。

玛格丽特打趣说,自己如此努力,是因为“不想在报纸头版头条上看到‘阿波罗计划失败,玛格丽特团队难辞其咎’”。“责任感”三个字,或许在她身上,比什么都清晰。
这就是她写的代码,反复修改的版本,几乎快要超过她娇小的身躯了。

就是这些代码,写好之后打印出来,然后被送到另外一个小工作室,在那儿有一帮精于针线活儿的女士,用铜圈“写”到硬件上……

所以,不要再想当然地说计算机是男人的事业了。

离开NASA的玛格丽特自立门户,继续在软件工程领域发光发热。2003年,她因技术和科学贡献获NASA杰出太空行动奖(Exceptional Space Act Award。该奖奖金37,200美元,是美国宇航局史上对个人的最大奖赏)。

是的,人们都不应该忘记,在层叠的代码背后,那个时常沉默的女孩,也不要忘记为早期的计算机事业付出辛劳的女性们。

即使现在也一样。
《WIRED》上最近的她。
(内容来源:果壳网)


版权及免责声明

1、"编玩边学"上的内容,包括文章、资料、资讯等,本网注明"来源:编玩边学"的,其版权均为"编玩边学"或深圳市编玩边学教育科技有限公司所有,任何公司、媒体、网站或个人未经授权不得转载、链接、转贴或以其他方式使用。已经得到"编玩边学"许可的媒体、网站,在使用时必须注明"来源:编玩边学",违者本网站将依法追究责任。

2、"编玩边学" 未注明"来源:编玩边学"的文章、资料、资讯等均为转载,本网站转载出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网站下载使用,必须保留本网站注明的"稿件来源",并自负版权等法律责任。如擅自篡改为" 来源:编玩边学 " ,本网站将依法追究其法律责任。

3、如果本网所转载内容侵犯了您的权益,请与我们联系team@codepku.com,我们将及时处理。

证书查询 x
请输入证书编号:

请输入正确的证书编号

学员姓名:孙兴民

课程:Scratch Level 1

发证日期:2019.08.15

证书查询

该证书不存在