她是史上最伟大的女程序员,发明了“软件工程”一词,她用代码将阿波罗11号飞船顺利送上月球,阿姆斯特朗能在月球上踏出人类的一大步,全都要感谢她所作出的贡献。
她叫玛格丽特·希菲尔德·汉密尔顿,公认的代码女皇。
1936年,玛格丽特出生于一个普通家庭,波澜不惊地念完了高中和大学,1958年取得学士学位,专业是数学,辅修哲学。读书期间她认识并嫁给了詹姆斯·汉密尔顿,成为汉密尔顿太太。
毕业后,玛格丽特·汉密尔顿一边在高中教数学和法语,一边等着丈夫拿到学士学位;然后他们搬到波士顿,玛格丽特在布兰代斯大学做抽象数学方面的研究。
1960年,玛格丽特在麻省理工找了一份临时的软件开发工作,负责编写天气预报软件,这一年她才25岁。一年以后,她又转去了成立刚10年的林肯实验室。在这里,玛格丽特给北美防空司令部的半自动地面防空系统项目工作,期间编写探测敌方飞行的软件。
由于在军方表现太优秀,1963 年,她被推荐进入到NASA,在那里,她带领一个小团队,为即将要载人航天的阿波罗计划,编写软件代码。
一边带娃,一边编程
此时的她已有一个四岁的女儿,作为一个职业的女性,同时肩负着作为母亲的责任。
她带着自己的孩子劳伦到查尔斯河畔的办公室,开始了一边带娃一边编码的生活,孩子自己玩,玩累了自己睡,她则是在旁边给阿波罗飞船的软件写代码。
要是那时候有Scratch,她女儿一定会第一眼爱上这款编程软件。
她很快喜欢上了这里的氛围,喜欢她的 geek(极客) 同事们,她说自己是他们的一份子。
在那个年代,不同模块用的汇编语言都不同,但是玛格瑞特却能掌握三四种汇编语言,可见这个姑娘有多逆天。
由于表现出色,没多久,她成为了阿波罗计划首席软件工程师。对于玛格丽特来说,编程意味着不仅是给一堆穿孔卡片打孔,更是会在一台大型的霍尼韦尔主机上批量处理上整晚,以便模拟出阿波罗着陆的情景,一切都容不得半点差错,她认真地用模拟器模拟飞行状态,检查系统漏洞。
挽救阿波罗8号飞船
一天,玛格丽特正在摆弄MIT指令舱模拟器的显示与键盘单元,正当她戳弄键盘的时候,一个错误信息冒了出来,她在模拟器处于飞行中状态时,随意摆弄键盘,触发了一个预发射项目P01,这个错误信息可能使系统直接崩溃。
虽然宇航员是绝对不会这样做的,但玛格丽特还是想为这样意外的误触设置一个防错代码(看来妈妈们就是心细),可惜NASA否决了这样的提议,因为他们认为:宇航员是绝对不会犯错的,他们已经被训练的很完美。
玛格丽特只好作罢,但是为了保险起见,她制作了一个指示提醒,一个嵌进程序文件里的附件,可以被NASA工程师与宇航员看到:飞行时不要选择P01模式。
她希望为阿波罗系统加上一个错误检查的代码,预防P01使系统崩溃,但她的上级不这样认为:所有人都在说,那根本不会发生的。
首次围绕月球载人飞行的阿波罗8号发射的五天后——
宇航员Jim Lovell不小心在飞行中触发了P01。玛格丽特那时正在仪表实验室的第二层会议室里,来自休斯顿的紧急电话响了,P01的启动使得Lovell收集的所有导航数据被抹去,这可是个大问题,没有这些数据,阿波罗的计算机无法将宇航员带回家。
玛格丽特立马领着手下的程序员,连夜奋战9个小时,一行行检查代码,编程确实能培养孩子的耐心,将清空的数据一一补回,修复了这个问题,阿波罗8号才成功返航。再次立功,挽救阿波罗11号
眼看人类第一次踏足月球,就要变成一场灾难,玛格丽特设计的系统顶住了这个压力,在大量数据涌入电脑的时候,最宝贵的计算资源,被用于最关键的部分,比如安全登陆本身,而处理不重要的雷达交互数据的任务被砍掉,让程序可以随时中止低优先级任务,专注于高优级任务。
(编程思维的应用示范:事情按重要程度进行优先级划分处理)
这就是现在每个程序员都知道且熟练的“异步程序”。
凭着努力、聪明和心思缜密,玛格丽特拯救了人类的登月计划。
她的团队在每次程序确定之后,都会一遍遍严格地测试,使用模拟器(尽管还非常初级、简陋)来模拟登陆状况。许多问题她早就考虑到了,毕竟“不出错”永远都是一个理想状态。后来玛格丽特离开NASA的玛格丽特自立门户,继续在软件工程领域发光发热,直到退休。
最近美国媒体IT world通过投票,选出了还在世的“世界上最伟大程序员排名”,玛格丽特的名字稳稳地排在第一。
2003年,她因技术和科学贡献获NASA杰出太空行动奖,该奖是美国宇航局史上对个人的最大奖赏。
美貌和才华并不冲突
有如此的成绩,当然有背后所付出的努力,努力和责任感两大特点在玛格丽特身上得到清晰体现。
这就是她写的代码,经过反反复复修改的版本,几乎要超过她那娇小的身躯。
眼尖的伙伴可能已经发现,玛格瑞特长得很漂亮。她甚至在 1969 年,就已经引领了黑丝连衣裙的流行女神装扮。中年之后的她依然美丽知性。在当今「网红」遍布的喧嚣时代,颜值似乎是你通向康庄大道的捷径,拥有美貌的她选择用才华征服这个世界,领导了堪称为人类历史上最伟大的软件工程项目。
明明可以靠颜值,她却偏偏拼才华。
玛格丽特·汉密尔顿,这个集智慧、美貌于一身的女子靠着编程,将人类有所为、有所成的边疆从脚下的土地,开拓到大气层外的太空。
强,无敌,,,
有才华的人!